Compare commits

..

74 Commits

Author SHA1 Message Date
Ulf Norell 4228605470 Set store map size theshold to 0 ifdef TEST 2020-02-03 11:39:48 +01:00
Hans Svensson 059d114a06 Merge pull request #88 from aeternity/GH-2850-add_fancy_crypto_bls12_381
Add FATE-ops for BLS12-381
2019-11-29 15:27:13 +01:00
Hans Svensson e4b09d7c5c Add FATE-ops for BLS12-381 2019-11-27 09:06:20 +01:00
skkw b040dccdef Merge pull request #87 from aeternity/PT-158904718-aens-update-sophia
fixed documenting of AENS_UPDATE type
2019-11-18 16:20:16 +01:00
skkw 211ee74df2 fixed documenting of AENS_UPDATE type 2019-11-18 16:00:36 +01:00
skkw 38f4f0ecd7 Merge pull request #81 from aeternity/PT-158904718-aens-update-sophia
add support for AENS.update call
2019-11-12 14:17:11 +01:00
Hans Svensson 281e9b210c Merge pull request #86 from aeternity/GH-2942-bytes_is_also_a_type
TYPE_BYTES was missing in IS_TYPE_TAG
2019-10-25 11:39:33 +02:00
Hans Svensson 3e7a8e4a69 TYPE_BYTES was missing in IS_TYPE_TAG 2019-10-25 11:30:47 +02:00
Ulf Norell ea5548be6c Merge pull request #84 from aeternity/store-gas
Store gas
2019-10-01 13:11:39 +02:00
Ulf Norell 48cfbd03b0 Recalibrate the store map threshold
Now that we charge gas for store writes the math is changed.
2019-10-01 10:52:54 +02:00
Ulf Norell 04878c5ed9 Add function to compute the byte size of a heap_value
Used to compute store gas cost in AEVM
2019-10-01 10:52:09 +02:00
Ulf Norell 4f4d6d30cd Merge pull request #83 from aeternity/address-to-contract-instruction
Add ADDRESS_TO_CONTRACT
2019-09-30 13:50:22 +02:00
Ulf Norell 176df87bb0 Add ADDRESS_TO_CONTRACT 2019-09-30 13:14:11 +02:00
Ulf Norell 2239bfb6f6 Merge pull request #82 from aeternity/fate-gas-cost-tweaks
Bump gas cost for non-trivial instructions
2019-09-30 12:27:55 +02:00
Ulf Norell 872766260b Bump gas cost for non-trivial instructions 2019-09-30 11:39:38 +02:00
skkw f184abeb87 add support for AENS.update call 2019-09-10 15:46:04 +02:00
Ulf Norell a66dc0a97f Merge pull request #80 from aeternity/bytes_concat
Add FATE instructions for Bytes.concat and Bytes.split
2019-09-09 19:08:06 +02:00
Ulf Norell 17c9656f5c Add FATE instructions for Bytes.concat and Bytes.split 2019-09-09 14:45:23 +02:00
Thomas Arts 3106ca1306 Merge pull request #79 from aeternity/fix-opcodees-in-QuickCheck-tests
New opcodes after renumbering
2019-09-06 15:00:16 +02:00
Thomas Arts 3565719c7a New opcodes after renumbering 2019-09-06 14:48:37 +02:00
Erik Stenman b036531dc2 Renumber ops and set base gas. (#78) 2019-09-06 14:13:51 +02:00
Tobias Lindahl 7f0593fbf2 Merge pull request #77 from aeternity/PT-168310969-expose-gas-costs
Make api function for exposing gas costs of fate ops
2019-09-05 16:20:45 +02:00
Hans Svensson a533fd5fcb Merge pull request #76 from aeternity/dont_crash_on_deserialize
Don't crash in decode_calldata for FATE
2019-09-05 14:26:00 +02:00
Hans Svensson 02a3462cf4 Don't crash in decode_calldata for FATE 2019-09-05 14:12:13 +02:00
Tobias Lindahl 69912db2b6 Make api function for exposing gas costs of ops 2019-09-05 13:27:33 +02:00
Hans Svensson 5e16b85ae2 Merge pull request #75 from aeternity/PT-168256282-disallow_calls_to_init
Implement aeb_fate_code:strip_init_function/1
2019-09-03 13:12:59 +02:00
Hans Svensson d272e821b2 Implement aeb_fate_code:strip_init_function/1 2019-09-03 11:00:32 +02:00
Thomas Arts 72b2a581d5 Merge pull request #73 from aeternity/aens-at-full-node-ver-ta
Add argument to claim tx to enable bidding
2019-09-02 08:51:09 +02:00
Thomas Arts 72d61471e0 Depend on newer aeserialization 2019-09-02 08:47:21 +02:00
sennui e21abb875e Add argument to claim tx to enable bidding 2019-08-28 11:02:21 +02:00
Ulf Norell e7f2be7ce8 Merge pull request #74 from aeternity/fate-map-fixes
Fate map fixes
2019-08-27 10:55:37 +02:00
Ulf Norell c6475fe1c2 Fix typo 2019-08-26 11:57:21 +02:00
Ulf Norell 4e4c20c387 Remember to unfold store map caches too! 2019-08-26 09:06:43 +02:00
Thomas Arts 1d5e5be252 Merge pull request #72 from aeternity/PT-166330348-check-map-keys-fate
Pt 166330348 check map keys fate
2019-08-26 08:37:52 +02:00
Ulf Norell 6efa4a0cb8 Merge pull request #71 from aeternity/missing-case-in-allocate-maps
Add missing case for map tombstones
2019-08-23 17:13:24 +02:00
Thomas Arts 59b7b786ac Update quickcheck/aefate_code_eqc.erl
Co-Authored-By: Hans Svensson <hanssv@gmail.com>
2019-08-23 15:50:39 +02:00
Thomas Arts f31887c2ed Update properties 2019-08-23 15:00:12 +02:00
Thomas Arts d794566363 Fix check for no maps in keys 2019-08-23 14:45:15 +02:00
Ulf Norell 850a5e2c35 Add missing case for map tombstones 2019-08-23 14:30:07 +02:00
Thomas Arts c270c794c3 Fix tests to new datastructure containing attributes 2019-08-23 11:31:54 +02:00
Hans Svensson 10cc127883 Merge pull request #70 from aeternity/PT-167996886-a_proper_ecverify
PT-167996886 a proper ecverify
2019-08-21 11:07:59 +02:00
Hans Svensson 50df849709 VERIFY_SIG_SECP256K1 was too long for code generation 2019-08-21 09:26:01 +02:00
Hans Svensson dfa9b80a3c Change ECVERIFY to VERIFY_SIG and add proper ECVERIFY 2019-08-21 09:25:28 +02:00
Hans Svensson befa1e3ff9 Merge pull request #69 from aeternity/PT-162578406-payable_modifier
PT-162578406 Add payable modifier
2019-08-19 08:54:31 +02:00
Hans Svensson efb4afeafa Add IS_PAYABLE opcode 2019-08-16 09:31:27 +02:00
Hans Svensson e75336486e Track payable (and private) in FATE/AEVM type info
Privateness is only tracked for FATE.
2019-08-16 09:31:27 +02:00
Ulf Norell fdd660a219 Merge pull request #67 from aeternity/PT-167221635-remote-type-check
PT-167221635 remote type check
2019-08-16 09:10:47 +02:00
Tino Breddin 3954bd22da Merge pull request #64 from aeternity/newby/ecrecover
[PT-167805291] Add opcode for ecrecover
2019-08-14 16:08:45 +02:00
Ulf Norell 13211887a3 Update src/aeb_fate_generate_ops.erl
Co-Authored-By: Hans Svensson <hanssv@gmail.com>
2019-08-14 09:32:23 +02:00
Ulf Norell 834ab298d1 typereps are values 2019-08-14 09:27:51 +02:00
Ulf Norell 52781060b2 fix type spec 2019-08-14 09:01:53 +02:00
Ulf Norell 3721fde7e8 Add typereps to remote call instructions 2019-08-14 09:01:53 +02:00
Tino Breddin 23ee7e0ca4 Add missing crypto entries to all_instructions 2019-08-13 16:24:17 +02:00
Ulf Norell af6224cb3b Merge pull request #66 from aeternity/PT-166788647-fate-efficient-maps
PT-166788647 FATE efficient maps
2019-08-13 15:51:13 +02:00
Tino Breddin 197dfd5da1 Let ecrecover only require two parameters 2019-08-13 15:15:03 +02:00
Ulf Norell 087ec31698 Fix bad type spec 2019-08-13 13:17:41 +02:00
Ulf Norell c49140fd5d Fix type and some code cleanup 2019-08-13 11:33:21 +02:00
Ulf Norell 414c45fbf7 Export refcount type 2019-08-13 11:25:54 +02:00
Ulf Norell f5a9be67d9 Remove CALL_TR and CALL_GTR 2019-08-13 09:20:29 +02:00
Ulf Norell 15095a74ab Add has_store_maps function 2019-08-12 14:40:34 +02:00
Ulf Norell 5aee70b8ff Add arity to CALL_R and CALL_GR
and deprecate CALL_TR and CALL_GTR
2019-08-12 14:38:10 +02:00
John Newby 44ec31d958 fixed ordering 2019-08-12 13:52:27 +02:00
John Newby 8fde1e5e24 Added FATE opcode for ecrecover 2019-08-12 13:36:49 +02:00
Ulf Norell 54dcf364e5 Store map reference counting 2019-08-12 10:59:30 +02:00
johnsnewby 7c6a80fef7 Update include/aeb_opcodes.hrl
Co-Authored-By: Hans Svensson <hanssv@gmail.com>
2019-08-12 10:52:47 +02:00
John Newby c0bc71b0b7 Added opcode for ecrecover 2019-08-09 16:32:00 +02:00
Ulf Norell c30bfd7b1c Unfolding store maps 2019-08-09 12:52:31 +02:00
Ulf Norell e184028261 Code for allocating store maps 2019-08-08 12:42:03 +02:00
Ulf Norell 986a7e6734 Add a store map fate value.
A store map is a (contract local) unique id pointing to a map saved in the contract store, plus a cache of updates.
2019-08-08 12:41:42 +02:00
Thomas Arts 2a9035d5ef Merge pull request #63 from aeternity/PT-167126818
Pt 167126818
2019-08-06 13:15:39 +02:00
Thomas Arts 8a50d20a67 Bring tests up-to-date 2019-08-06 13:04:25 +02:00
Thomas Arts 0b0cc38444 Provide API for querying implemented abi version 2019-08-06 12:21:51 +02:00
Tobias Lindahl 17c2a93e72 Merge pull request #62 from aeternity/PT-167164508-auto-generate-offchain-capabilities
Add information on offchain capabilities of operation
2019-07-10 11:10:49 +02:00
Tobias Lindahl e62cedb22c Add information on offchain capabilities of operation 2019-07-10 10:09:17 +02:00
91 changed files with 708 additions and 8901 deletions
+10
View File
@@ -5,6 +5,7 @@
-define(FATE_LIST_T, list()).
-define(FATE_UNIT_T, {tuple, {}}).
-define(FATE_MAP_T, #{ fate_type() => fate_type() }).
-define(FATE_STORE_MAP_T, {store_map, #{ fate_type() => fate_type() | ?FATE_MAP_TOMBSTONE }, integer()}).
-define(FATE_STRING_T, binary()).
-define(FATE_ADDRESS_T, {address, <<_:256>>}).
-define(FATE_BYTES_T(N), {bytes, binary()}).
@@ -16,10 +17,15 @@
-define(FATE_VOID_T, void).
-define(FATE_TUPLE_T, {tuple, tuple()}).
-define(FATE_BITS_T, {bits, integer()}).
-define(FATE_TYPEREP_T, {typerep, fate_type_type()}).
-define(IS_FATE_INTEGER(X), (is_integer(X))).
-define(IS_FATE_LIST(X), (is_list(X))).
-define(IS_FATE_STRING(X), (is_binary(X))).
-define(IS_FATE_STORE_MAP(X), (is_tuple(X) andalso tuple_size(X) == 3
andalso store_map == element(1, X)
andalso is_map(element(2, X))
andalso is_integer(element(3, X)))).
-define(IS_FATE_MAP(X), (is_map(X))).
-define(IS_FATE_TUPLE(X), (is_tuple(X) andalso (tuple == element(1, X) andalso is_tuple(element(2, X))))).
-define(IS_FATE_ADDRESS(X), (is_tuple(X) andalso (address == element(1, X) andalso is_binary(element(2, X))))).
@@ -50,6 +56,8 @@
-define(FATE_CHANNEL(X), {channel, X}).
-define(FATE_BITS(B), {bits, B}).
-define(FATE_TYPEREP(T), {typerep, T}).
-define(FATE_STORE_MAP(Cache, Id), {store_map, Cache, Id}).
-define(FATE_MAP_TOMBSTONE, '__DELETED__').
-define(FATE_INTEGER_VALUE(X), (X)).
-define(FATE_BOOLEAN_VALUE(X), (X)).
@@ -63,6 +71,8 @@
-define(FATE_CHANNEL_VALUE(X), (element(2, X))).
-define(FATE_BITS_VALUE(X), (element(2, X))).
-define(FATE_MAP_VALUE(X), (X)).
-define(FATE_STORE_MAP_CACHE(X), (element(2, X))).
-define(FATE_STORE_MAP_ID(X), (element(3, X))).
-define(FATE_MAP_SIZE(X), (map_size(X))).
-define(FATE_STRING_SIZE(X), (byte_size(X))).
-define(FATE_TRUE, true).
+10 -7
View File
@@ -186,13 +186,15 @@
-define(PRIM_CALL_MAP_TOLIST, 305).
-define(PRIM_CALL_IN_CRYPTO_RANGE(__TTYPE__), (((__TTYPE__) > 399) andalso ((__TTYPE__) < 500))).
-define(PRIM_CALL_CRYPTO_ECVERIFY, 400).
-define(PRIM_CALL_CRYPTO_SHA3, 401).
-define(PRIM_CALL_CRYPTO_SHA256, 402).
-define(PRIM_CALL_CRYPTO_BLAKE2B, 403).
-define(PRIM_CALL_CRYPTO_SHA256_STRING, 404).
-define(PRIM_CALL_CRYPTO_BLAKE2B_STRING, 405).
-define(PRIM_CALL_CRYPTO_ECVERIFY_SECP256K1, 410).
-define(PRIM_CALL_CRYPTO_VERIFY_SIG, 400).
-define(PRIM_CALL_CRYPTO_SHA3, 401).
-define(PRIM_CALL_CRYPTO_SHA256, 402).
-define(PRIM_CALL_CRYPTO_BLAKE2B, 403).
-define(PRIM_CALL_CRYPTO_SHA256_STRING, 404).
-define(PRIM_CALL_CRYPTO_BLAKE2B_STRING, 405).
-define(PRIM_CALL_CRYPTO_VERIFY_SIG_SECP256K1, 410).
-define(PRIM_CALL_CRYPTO_ECVERIFY_SECP256K1, 420).
-define(PRIM_CALL_CRYPTO_ECRECOVER_SECP256K1, 421).
-define(PRIM_CALL_IN_AUTH_RANGE(__TTYPE__), (((__TTYPE__) > 499) andalso ((__TTYPE__) < 600))).
-define(PRIM_CALL_AUTH_TX_HASH, 500).
@@ -200,3 +202,4 @@
-define(PRIM_CALL_IN_ADDRESS_RANGE(__TTYPE__), (((__TTYPE__) > 599) andalso ((__TTYPE__) < 700))).
-define(PRIM_CALL_ADDR_IS_ORACLE, 600).
-define(PRIM_CALL_ADDR_IS_CONTRACT, 601).
-define(PRIM_CALL_ADDR_IS_PAYABLE, 610).
+1
View File
@@ -22,5 +22,6 @@ quickcheck_test_() ->
{setup, fun() -> eqc:start() end,
[ ?EQC_EUNIT(aefate_type_eqc, prop_roundtrip, 1000),
?EQC_EUNIT(aefate_eqc, prop_serializes, 1000),
?EQC_EUNIT(aefate_eqc, prop_no_maps_in_keys, 1000),
?EQC_EUNIT(aefate_eqc, prop_idempotent, 1000)
]}.
+3 -2
View File
@@ -77,7 +77,7 @@ prop_opcodes() ->
valid_opcodes() ->
lists:seq(0, 16#75) ++ lists:seq(16#fa, 16#fd).
lists:seq(0, 16#80) ++ lists:seq(16#fa, 16#fd).
fate_code(Failure) ->
@@ -85,7 +85,8 @@ fate_code(Failure) ->
?LET({FMap, SMap, AMap},
{non_empty(map(if Failure == 1 -> binary(1);
true -> binary(4) end,
{{list(aefate_type_eqc:fate_type(Size div 3)), aefate_type_eqc:fate_type(Size div 3)}, bbs_code(Failure)})),
{sublist(lists:sort([private, payable])), %% deserialize sorts them
{list(aefate_type_eqc:fate_type(Size div 3)), aefate_type_eqc:fate_type(Size div 3)}, bbs_code(Failure)})),
small_map(small_fate_data_key(5), small_fate_data(4)),
small_map(small_fate_data_key(5), small_fate_data(4))},
aeb_fate_code:update_annotations(
+52 -10
View File
@@ -10,6 +10,7 @@
-module(aefate_eqc).
-include_lib("eqc/include/eqc.hrl").
-include("../include/aeb_fate_data.hrl").
-compile([export_all, nowarn_export_all]).
@@ -23,7 +24,7 @@ prop_roundtrip() ->
end)).
prop_format_scan() ->
?FORALL(FateData, fate_data(),
?FORALL(FateData, fate_data([variant, map]),
?WHENFAIL(eqc:format("Trying to format ~p failed~n", [FateData]),
begin
String = aeb_fate_data:format(FateData),
@@ -43,6 +44,18 @@ prop_serializes() ->
{size, size(Binary) < 500000}]))
end)).
prop_no_maps_in_keys() ->
?FORALL(FateData, fate_bad_map(), %% may contain a map in its keys
begin
HasMapInKeys = lists:any(fun(K) -> has_map(K) end, maps:keys(FateData)),
try aeb_fate_encoding:serialize(FateData),
?WHENFAIL(eqc:format("Should not serialize, contains a map in key\n", []),
not HasMapInKeys)
catch error:Reason ->
?WHENFAIL(eqc:format("(~p) Should serialize\n", [Reason]), HasMapInKeys)
end
end).
prop_fuzz() ->
in_parallel(
?FORALL(Binary, ?LET(FateData, ?SIZED(Size, resize(Size div 4, fate_data())), aeb_fate_encoding:serialize(FateData)),
@@ -59,13 +72,14 @@ prop_fuzz() ->
prop_order() ->
?FORALL(Items, vector(3, fate_data()),
?FORALL(Items, vector(3, fate_data([variant, map])),
begin
%% Use lt to take minimum
Min = lt_min(Items),
Max = lt_max(Items),
conjunction([ {minimum, is_empty([ {Min, '>', I} || I<-Items, aeb_fate_data:lt(I, Min)])},
{maximum, is_empty([ {Max, '<', I} || I<-Items, aeb_fate_data:lt(Max, I)])}])
{maximum, is_empty([ {Max, '<', I} || I<-Items, aeb_fate_data:lt(Max, I)])},
{asym, aeb_fate_data:lt(Min, Max) orelse Min == Max}])
end).
lt_min([X, Y | Rest]) ->
@@ -88,18 +102,24 @@ prop_idempotent() ->
aeb_fate_encoding:sort(aeb_fate_encoding:sort(Items)))).
fate_data(Kind) ->
?SIZED(Size, ?LET(Data, fate_data(Size, Kind), eqc_symbolic:eval(Data))).
fate_data() ->
?SIZED(Size, ?LET(Data, fate_data(Size, [map, variant]), eqc_symbolic:eval(Data))).
fate_data([map, variant, store_map]).
%% keys may contain variants but no maps
fate_data_key() ->
?SIZED(Size, ?LET(Data, fate_data(Size div 4, [variant]), eqc_symbolic:eval(Data))).
fate_data([variant]).
fate_data(0, _Options) ->
fate_data(0, Options) ->
?LAZY(
frequency(
[{5, oneof([fate_integer(), fate_boolean(), fate_nil(), fate_unit()])},
{1, oneof([fate_string(), fate_address(), fate_bytes(), fate_contract(),
fate_oracle(), fate_oracle_q(), fate_bits(), fate_channel()])}]));
[{50, oneof([fate_integer(), fate_boolean(), fate_nil(), fate_unit()])},
{10, oneof([fate_string(), fate_address(), fate_bytes(), fate_contract(),
fate_oracle(), fate_oracle_q(), fate_bits(), fate_channel()])}] ++
[{1, fate_store_map()} || lists:member(store_map, Options)]));
fate_data(Size, Options) ->
?LAZY(
oneof([fate_data(0, Options),
@@ -148,9 +168,20 @@ fate_list(Size, Options) ->
fate_map(Size, Options) ->
?LET(N, choose(0, 6),
?LETSHRINK(Values, fate_values(Size, N, Options),
?LET(Keys, vector(length(Values), fate_data(Size div max(1, N * 2), Options -- [map])),
?LET(Keys, vector(length(Values), fate_data(Size div max(1, N * 2), Options -- [map, store_map])),
return(aeb_fate_data:make_map(maps:from_list(lists:zip(Keys, Values))))))).
fate_store_map() ->
%% only #{} is allowed as cache in serialization
?LET(X, oneof([int(), largeint()]),
return(aeb_fate_data:make_store_map(abs(X)))).
fate_bad_map() ->
?LET(N, choose(0, 6),
?LET(Values, vector(N, ?SIZED(Size, resize(Size div 8, fate_data()))),
?LET(Keys, vector(N, ?SIZED(Size, resize(Size div 4, fate_data()))),
return(aeb_fate_data:make_map(maps:from_list(lists:zip(Keys, Values))))))).
non_quote_string() ->
?SUCHTHAT(S, utf8(), [ quote || <<34>> <= S ] == []).
@@ -167,3 +198,14 @@ injection(Binary) ->
is_empty(L) ->
?WHENFAIL(eqc:format("~p\n", [L]), L == []).
has_map(L) when is_list(L) ->
lists:any(fun(V) -> has_map(V) end, L);
has_map(T) when is_tuple(T) ->
has_map(tuple_to_list(T));
has_map(M) when is_map(M) ->
true;
has_map(?FATE_STORE_MAP(_, _)) ->
true;
has_map(_) ->
false.
+2 -2
View File
@@ -6,7 +6,7 @@
{deps, [ {eblake2, "1.0.0"}
, {aeserialization, {git, "https://github.com/aeternity/aeserialization.git",
{ref, "816bf99"}}}
{ref, "47aaa8f"}}}
, {getopt, "1.0.1"}
]}.
@@ -40,7 +40,7 @@
{profiles, [{binary, [
{deps, [ {eblake2, "1.0.0"}
, {aeserialization, {git, "https://github.com/aeternity/aeserialization.git",
{ref, "b55c372"}}}
{ref, "47aaa8f"}}}
, {getopt, "1.0.1"}
]},
+5 -1
View File
@@ -1,13 +1,17 @@
{"1.1.0",
[{<<"aeserialization">>,
{git,"https://github.com/aeternity/aeserialization.git",
{ref,"816bf994ffb5cee218c3f22dc5fea296c9e0882e"}},
{ref,"47aaa8f5434b365c50a35bfd1490340b19241991"}},
0},
{<<"base58">>,
{git,"https://github.com/aeternity/erl-base58.git",
{ref,"60a335668a60328a29f9731b67c4a0e9e3d50ab6"}},
1},
{<<"eblake2">>,{pkg,<<"eblake2">>,<<"1.0.0">>},0},
{<<"enacl">>,
{git,"https://github.com/aeternity/enacl.git",
{ref,"26180f42c0b3a450905d2efd8bc7fd5fd9cece75"}},
1},
{<<"getopt">>,{pkg,<<"getopt">>,<<"1.0.1">>},0}]}.
[
{pkg_hash,[
+77 -33
View File
@@ -11,14 +11,16 @@
-define(HASH_SIZE, 32).
-export([ create_calldata/4
, check_calldata/2
, function_type_info/3
, check_calldata/3
, function_type_info/4
, function_type_hash/3
, arg_typerep_from_function/2
, type_hash_from_function_name/2
, typereps_from_type_hash/2
, function_name_from_type_hash/2
, get_function_hash_from_calldata/1
, is_payable/2
, abi_version/0
]).
-type hash() :: <<_:256>>. %% 256 = ?HASH_SIZE * 8.
@@ -26,6 +28,7 @@
-type typerep() :: aeb_aevm_data:type().
-type function_type_info() :: { FunctionHash :: hash()
, FunctionName :: function_name()
, Payable :: boolean()
, ArgType :: binary() %% binary typerep
, OutType :: binary() %% binary typerep
}.
@@ -35,6 +38,11 @@
%%% API
%%%===================================================================
%% Shall match ?ABI_AEVM_SOPHIA_1
-spec abi_version() -> integer().
abi_version() ->
1.
%%%===================================================================
%%% Handle calldata
@@ -45,30 +53,40 @@ create_calldata(FunName, Args, ArgTypes0, RetType) ->
Data = aeb_heap:to_binary({TypeHashInt, list_to_tuple(Args)}),
{ok, Data}.
-spec check_calldata(binary(), type_info()) ->
-spec check_calldata(binary(), type_info(), boolean()) ->
{'ok', typerep(), typerep()} | {'error', atom()}.
check_calldata(CallData, TypeInfo) ->
check_calldata(CallData, TypeInfo, CheckPayable) ->
%% The first element of the CallData should be the function name
case get_function_hash_from_calldata(CallData) of
{ok, Hash} ->
case typereps_from_type_hash(Hash, TypeInfo) of
{ok, ArgType, OutType} ->
try aeb_heap:from_binary({tuple, [word, ArgType]}, CallData) of
{ok, _Something} ->
{ok, {tuple, [word, ArgType]}, OutType};
{error, _} ->
{error, bad_call_data}
catch
_T:_E ->
{error, bad_call_data}
end;
{error, _} ->
{error, unknown_function}
end;
check_calldata(Hash, CallData, TypeInfo, CheckPayable);
{error, _What} ->
{error, bad_call_data}
end.
check_calldata(Hash, CallData, TypeInfo, true) ->
case is_payable(Hash, TypeInfo) of
{ok, true} -> check_calldata(Hash, CallData, TypeInfo, false);
{ok, false} -> {error, function_is_not_payable};
Err = {error, _} -> Err
end;
check_calldata(Hash, CallData, TypeInfo, false) ->
case typereps_from_type_hash(Hash, TypeInfo) of
{ok, ArgType, OutType} ->
try aeb_heap:from_binary({tuple, [word, ArgType]}, CallData) of
{ok, _Something} ->
{ok, {tuple, [word, ArgType]}, OutType};
{error, _} ->
{error, bad_call_data}
catch
_T:_E ->
{error, bad_call_data}
end;
{error, _} ->
{error, unknown_function}
end.
-spec get_function_hash_from_calldata(CallData::binary()) ->
{ok, binary()} | {error, term()}.
get_function_hash_from_calldata(CallData) ->
@@ -80,12 +98,13 @@ get_function_hash_from_calldata(CallData) ->
%%%===================================================================
%%% Handle type info from contract meta data
-spec function_type_info(function_name(), [typerep()], typerep()) ->
-spec function_type_info(function_name(), boolean(), [typerep()], typerep()) ->
function_type_info().
function_type_info(Name, ArgTypes, OutType) ->
function_type_info(Name, Payable, ArgTypes, OutType) ->
ArgType = {tuple, ArgTypes},
{ function_type_hash(Name, ArgType, OutType)
, Name
, Payable
, aeb_heap:to_binary(ArgType)
, aeb_heap:to_binary(OutType)
}.
@@ -104,35 +123,46 @@ function_type_hash(Name, ArgType, OutType) when is_binary(Name) ->
{'ok', typerep()} | {'error', 'bad_type_data' | 'unknown_function'}.
arg_typerep_from_function(Function, TypeInfo) ->
case lists:keyfind(Function, 2, TypeInfo) of
{_TypeHash, Function, ArgTypeBin,_OutTypeBin} ->
case aeb_heap:from_binary(typerep, ArgTypeBin) of
{ok, ArgType} -> {ok, ArgType};
{error,_} -> {error, bad_type_data}
end;
{_TypeHash, Function, ArgTypeBin, _OutTypeBin} ->
arg_typerep_from_type_binary(ArgTypeBin);
{_TypeHash, Function, _Payable, ArgTypeBin, _OutTypeBin} ->
arg_typerep_from_type_binary(ArgTypeBin);
false ->
{error, unknown_function}
end.
arg_typerep_from_type_binary(ArgTBin) ->
case aeb_heap:from_binary(typerep, ArgTBin) of
{ok, ArgT} -> {ok, ArgT};
{error,_} -> {error, bad_type_data}
end.
-spec typereps_from_type_hash(hash(), type_info()) ->
{'ok', typerep(), typerep()} | {'error', 'bad_type_data' | 'unknown_function'}.
typereps_from_type_hash(TypeHash, TypeInfo) ->
case lists:keyfind(TypeHash, 1, TypeInfo) of
{TypeHash,_Function, ArgTypeBin, OutTypeBin} ->
case {aeb_heap:from_binary(typerep, ArgTypeBin),
aeb_heap:from_binary(typerep, OutTypeBin)} of
{{ok, ArgType}, {ok, OutType}} -> {ok, ArgType, OutType};
{_, _} -> {error, bad_type_data}
end;
{TypeHash, _Function, ArgTypeBin, OutTypeBin} ->
typereps_from_type_binaries(ArgTypeBin, OutTypeBin);
{TypeHash, _Function, _Payable, ArgTypeBin, OutTypeBin} ->
typereps_from_type_binaries(ArgTypeBin, OutTypeBin);
false ->
{error, unknown_function}
end.
typereps_from_type_binaries(ArgTBin, OutTBin) ->
case {aeb_heap:from_binary(typerep, ArgTBin), aeb_heap:from_binary(typerep, OutTBin)} of
{{ok, ArgT}, {ok, OutT}} -> {ok, ArgT, OutT};
{_, _} -> {error, bad_type_data}
end.
-spec function_name_from_type_hash(hash(), type_info()) ->
{'ok', function_name()}
| {'error', 'unknown_function'}.
function_name_from_type_hash(TypeHash, TypeInfo) ->
case lists:keyfind(TypeHash, 1, TypeInfo) of
{TypeHash, Function,_ArgTypeBin,_OutTypeBin} ->
{TypeHash, Function, _ArgTypeBin, _OutTypeBin} ->
{ok, Function};
{TypeHash, Function, _Payable, _ArgTypeBin, _OutTypeBin} ->
{ok, Function};
false ->
{error, unknown_function}
@@ -143,8 +173,22 @@ function_name_from_type_hash(TypeHash, TypeInfo) ->
| {'error', 'unknown_function'}.
type_hash_from_function_name(Name, TypeInfo) ->
case lists:keyfind(Name, 2, TypeInfo) of
{TypeHash, Name,_ArgTypeBin,_OutTypeBin} ->
{TypeHash, Name, _ArgTypeBin, _OutTypeBin} ->
{ok, TypeHash};
{TypeHash, Name, _Payable, _ArgTypeBin, _OutTypeBin} ->
{ok, TypeHash};
false ->
{error, unknown_function}
end.
-spec is_payable(hash(), type_info()) -> {ok, boolean()} | {error, 'unknown_function'}.
is_payable(TypeHash, TypeInfo) ->
case lists:keyfind(TypeHash, 1, TypeInfo) of
{TypeHash, _Function, _ArgTypeBin, _OutTypeBin} ->
{ok, true};
{TypeHash, _Function, Payable, _ArgTypeBin, _OutTypeBin} ->
{ok, Payable};
false ->
{error, unknown_function}
end.
+11 -3
View File
@@ -13,7 +13,8 @@
, decode_calldata/2
, get_function_hash_from_calldata/1
, get_function_name_from_function_hash/2
, get_function_type_from_function_hash/2 ]).
, get_function_type_from_function_hash/2
, abi_version/0 ]).
-include("../include/aeb_fate_data.hrl").
@@ -21,6 +22,11 @@
%%% API
%%%===================================================================
%% Shall match ?ABI_FATE_SOPHIA_1
-spec abi_version() -> integer().
abi_version() ->
3.
-spec create_calldata(list(), [term()]) -> {ok, binary()}.
create_calldata(FunName, Args) ->
FunctionId = aeb_fate_code:symbol_identifier(list_to_binary(FunName)),
@@ -31,9 +37,11 @@ create_calldata(FunName, Args) ->
-spec decode_calldata(list(), binary()) -> {ok, term()} | {error, term()}.
decode_calldata(FunName, Calldata) ->
FunctionId = aeb_fate_code:symbol_identifier(list_to_binary(FunName)),
case ?FATE_TUPLE_ELEMENTS(aeb_fate_encoding:deserialize(Calldata)) of
try ?FATE_TUPLE_ELEMENTS(aeb_fate_encoding:deserialize(Calldata)) of
[FunctionId, FateArgs] -> {ok, ?FATE_TUPLE_ELEMENTS(FateArgs)};
_ -> {error, decode_error}
catch _:_ ->
{error, decode_error}
end.
-spec get_function_name_from_function_hash(binary(), aeb_fate_code:fcode()) ->
@@ -66,6 +74,6 @@ get_function_type_from_function_hash(SymbolHash, FateCode) ->
case maps:get(SymbolHash, Functions, undefined) of
undefined ->
{error, no_function_matching_function_hash};
{{ArgTypes, RetType}, _Code} ->
{_Attrs, {ArgTypes, RetType}, _Code} ->
{ok, ArgTypes, RetType}
end.
+2 -2
View File
@@ -153,7 +153,7 @@ format_functions(Functions, Symbols) ->
lists:sort(maps:to_list(CodeMap)),
Symbols)
||
{Name, {Sig, CodeMap}} <- maps:to_list(Functions)].
{Name, {_Attrs, Sig, CodeMap}} <- maps:to_list(Functions)].
format(Name, Sig, BBs, Symbols) ->
@@ -484,7 +484,7 @@ insert_fun({NameString, ArgType, RetType}, Code, #{ fate_code := FateCode
{FateCode1, Id} = aeb_fate_code:insert_symbol(Name, FateCode),
BodyByteCode = aeb_fate_code:serialize_code(lists:reverse(Code)),
SigByteCode = aeb_fate_code:serialize_signature({ArgType, RetType}),
FunByteCode = [?FUNCTION, Id, SigByteCode, BodyByteCode],
FunByteCode = [?FUNCTION, Id, aeb_fate_encoding:serialize(0), SigByteCode, BodyByteCode],
Env#{ functions => Funs#{ Id => FunByteCode }
, fate_code => FateCode1}.
+51 -45
View File
@@ -11,7 +11,7 @@
, deserialize/1
, functions/1
, insert_annotation/4
, insert_fun/4
, insert_fun/5
, insert_symbol/2
, new/0
, serialize/1
@@ -19,6 +19,7 @@
, serialize/3
, serialize_code/1
, serialize_signature/1
, strip_init_function/1
, symbol_identifier/1
, symbols/1
]).
@@ -39,31 +40,8 @@
-define(HASH_BYTES, 32).
-type fate_arg_spec() :: {'immediate', aeb_fate_data:fate_type()}
| {'arg', integer()}
| {'var', integer()}
| {'stack', 0}.
-type fate_instruction() :: atom()
| {atom(), fate_arg_spec()}
| {atom(), fate_arg_spec(), fate_arg_spec()}
| {atom(), fate_arg_spec(), fate_arg_spec(), fate_arg_spec()}
| {atom(), fate_arg_spec(), fate_arg_spec(), fate_arg_spec(),
fate_arg_spec()}
| {atom(), fate_arg_spec(), fate_arg_spec(), fate_arg_spec(),
fate_arg_spec(), fate_arg_spec()}
| {atom(), fate_arg_spec(), fate_arg_spec(), fate_arg_spec(),
fate_arg_spec(), fate_arg_spec(), fate_arg_spec()}
| {atom(), fate_arg_spec(), fate_arg_spec(), fate_arg_spec(),
fate_arg_spec(), fate_arg_spec(), fate_arg_spec(),
fate_arg_spec()}
| {atom(), fate_arg_spec(), fate_arg_spec(), fate_arg_spec(),
fate_arg_spec(), fate_arg_spec(), fate_arg_spec(),
fate_arg_spec(), fate_arg_spec()}.
-type fcode() :: #fcode{}.
-export_type([fate_arg_spec/0, fate_instruction/0, fcode/0]).
-export_type([fcode/0]).
%%%===================================================================
%%% API
@@ -95,9 +73,9 @@ symbol_identifier(Bin) ->
{ok, <<X:4/binary,_/binary>> } = eblake2:blake2b(?HASH_BYTES, Bin),
X.
insert_fun(Name, {ArgType, RetType}, #{} = BBs, FCode) ->
insert_fun(Name, Attrs, {ArgType, RetType}, #{} = BBs, FCode) ->
{F1, ID} = insert_symbol(Name, FCode),
update_functions(F1, #{ID => {{ArgType, RetType}, BBs}}).
update_functions(F1, #{ID => {Attrs, {ArgType, RetType}, BBs}}).
insert_symbol(Name, #fcode{ symbols = Syms } = F) ->
ID = symbol_identifier(Name),
@@ -115,6 +93,13 @@ insert_annotation(comment =_Type, Line, Comment, FCode) ->
Value = aeb_fate_data:make_string(Comment),
update_annotations(FCode, #{ Key => Value }).
strip_init_function(#fcode{ functions = Funs,
symbols = Syms } = FCode) ->
Id = symbol_identifier(<<"init">>),
Funs1 = maps:remove(Id, Funs),
Syms1 = maps:remove(Id, Syms),
FCode#fcode{ functions = Funs1, symbols = Syms1 }.
%%%===================================================================
%%% Serialization
%%%===================================================================
@@ -151,10 +136,17 @@ to_hexstring(ByteList) ->
serialize_functions(#fcode{ functions = Functions }) ->
%% Sort the functions on name to get a canonical serialisation.
iolist_to_binary(
lists:foldr(fun({Id, {Sig, C}}, Acc) ->
[[?FUNCTION, Id, serialize_signature(Sig), serialize_bbs(C)] | Acc]
lists:foldr(fun({Id, {Attrs, Sig, C}}, Acc) ->
[[?FUNCTION, Id, serialize_attributes(Attrs), serialize_signature(Sig), serialize_bbs(C)] | Acc]
end, [], lists:sort(maps:to_list(Functions)))).
serialize_attributes(Attrs) ->
AttrVal = lists:sum([ attr_value(Attr) || Attr <- Attrs ]),
aeb_fate_encoding:serialize(?MAKE_FATE_INTEGER(AttrVal)).
attr_value(private) -> 1;
attr_value(payable) -> 2.
serialize_signature({Args, RetType}) ->
[aeb_fate_encoding:serialize_type({tuple, Args}) |
aeb_fate_encoding:serialize_type(RetType)].
@@ -162,7 +154,7 @@ serialize_signature({Args, RetType}) ->
serialize_symbol_table(#fcode{ symbols = Symbols }) ->
aeb_fate_encoding:serialize(aeb_fate_data:make_map(Symbols)).
serialize_annotations(#fcode{ annotations = Annotations}) ->
serialize_annotations(#fcode{ annotations = Annotations }) ->
aeb_fate_encoding:serialize(aeb_fate_data:make_map(Annotations)).
serialize_bbs(#{} = BBs) ->
@@ -189,8 +181,8 @@ serialize_op(Op) ->
sanity_check(#fcode{ functions = Funs }) ->
_ = [ case Def of
{_, BBs} when byte_size(Id) == 4 -> sanity_check_bbs(BBs);
_ -> error({illegal_function_id, Id})
{_, _, BBs} when byte_size(Id) == 4 -> sanity_check_bbs(BBs);
_ -> error({illegal_function_id, Id})
end || {Id, Def} <- maps:to_list(Funs) ],
ok.
@@ -326,33 +318,35 @@ deserialize_functions(<<?FUNCTION:8, A, B, C, D, Rest/binary>>,
, bb := 0
, current_bb_code := []
} = Env) ->
{Sig, Rest2} = deserialize_signature(Rest),
Env2 = Env#{function => {<<A,B,C,D>>, Sig}},
deserialize_functions(Rest2, Env2);
{Attrs, Rest2} = deserialize_attributes(Rest),
{Sig, Rest3} = deserialize_signature(Rest2),
Env2 = Env#{function => {<<A,B,C,D>>, Attrs, Sig}},
deserialize_functions(Rest3, Env2);
deserialize_functions(<<?FUNCTION:8, A, B, C, D, Rest/binary>>,
#{ function := {F, Sig}
#{ function := {F, Attrs, Sig}
, bb := BB
, current_bb_code := Code
, code := Program
, functions := Funs} = Env) ->
{NewSig, Rest2} = deserialize_signature(Rest),
{NewAttrs, Rest2} = deserialize_attributes(Rest),
{NewSig, Rest3} = deserialize_signature(Rest2),
case Code of
[] ->
Env2 = Env#{ bb => 0
, current_bb_code => []
, function => {<<A,B,C,D>>, NewSig}
, function => {<<A,B,C,D>>, NewAttrs, NewSig}
, code => #{}
, functions => Funs#{F => {Sig, Program}}},
deserialize_functions(Rest2, Env2);
, functions => Funs#{F => {Attrs, Sig, Program}}},
deserialize_functions(Rest3, Env2);
_ ->
Env2 = Env#{ bb => 0
, current_bb_code => []
, function => {<<A,B,C,D>>, NewSig}
, function => {<<A,B,C,D>>, NewAttrs, NewSig}
, code => #{}
, functions =>
Funs#{F => {Sig,
Funs#{F => {Attrs, Sig,
Program#{ BB => lists:reverse(Code)}}}},
deserialize_functions(Rest2, Env2)
deserialize_functions(Rest3, Env2)
end;
deserialize_functions(<<_Op:8, _Rest/binary>>,
#{ function := none }) ->
@@ -374,7 +368,7 @@ deserialize_functions(<<Op:8, Rest/binary>>,
deserialize_functions(<<>>, #{ function := none
, functions := Funs}) ->
Funs;
deserialize_functions(<<>>, #{ function := {F, Sig}
deserialize_functions(<<>>, #{ function := {F, Attrs, Sig}
, bb := BB
, current_bb_code := Code
, code := Program
@@ -384,7 +378,7 @@ deserialize_functions(<<>>, #{ function := {F, Sig}
[] -> Program;
_ -> Program#{ BB => lists:reverse(Code)}
end,
Funs#{F => {Sig, FunctionCode}}.
Funs#{F => {Attrs, Sig, FunctionCode}}.
deserialize_op(Op, Rest, Code) ->
OpName = aeb_fate_opcodes:mnemonic(Op),
@@ -422,6 +416,18 @@ deserialize_n_args(N, <<M7:2, M6:2, M5:2, M4:2, M3:2, M2:2, M1:2, M0:2,
end
end, Rest, ArgMods).
deserialize_attributes(Binary) ->
{AttrVal, Rest} = aeb_fate_encoding:deserialize_one(Binary),
Attrs = [ attr(AVal) || AVal <- attr_vals(1, AttrVal) ],
{lists:sort(Attrs), Rest}.
attr_vals(_, 0) -> [];
attr_vals(X, N) when N rem 2 == 0 -> attr_vals(X + 1, N div 2);
attr_vals(X, N) -> [X | attr_vals(X + 1, N div 2)].
attr(1) -> private;
attr(2) -> payable.
deserialize_signature(Binary) ->
{{tuple, Args}, Rest} = aeb_fate_encoding:deserialize_type(Binary),
{RetType, Rest2} = aeb_fate_encoding:deserialize_type(Rest),
+9 -1
View File
@@ -10,6 +10,7 @@
-type fate_list() :: ?FATE_LIST_T.
-type fate_unit() :: ?FATE_UNIT_T.
-type fate_map() :: ?FATE_MAP_T.
-type fate_store_map() :: ?FATE_STORE_MAP_T.
-type fate_string() :: ?FATE_STRING_T.
-type fate_address() :: ?FATE_ADDRESS_T.
-type fate_hash() :: ?FATE_BYTES_T(32).
@@ -20,6 +21,7 @@
-type fate_variant() :: ?FATE_VARIANT_T.
-type fate_tuple() :: ?FATE_TUPLE_T.
-type fate_bits() :: ?FATE_BITS_T.
-type fate_typerep() :: ?FATE_TYPEREP_T.
-type fate_type_type() :: integer
| boolean
@@ -53,7 +55,8 @@
| fate_channel()
| fate_variant()
| fate_map()
| fate_bits().
| fate_bits()
| fate_typerep().
-export_type([fate_type/0
, fate_boolean/0
@@ -71,6 +74,7 @@
, fate_channel/0
, fate_variant/0
, fate_map/0
, fate_store_map/0
, fate_bits/0
, fate_type_type/0
]).
@@ -82,6 +86,8 @@
, make_tuple/1
, make_string/1
, make_map/1
, make_store_map/1
, make_store_map/2
, make_address/1
, make_bytes/1
, make_hash/1
@@ -108,6 +114,8 @@ make_list(L) -> ?MAKE_FATE_LIST(L).
make_unit() -> ?FATE_UNIT.
make_tuple(T) -> ?FATE_TUPLE(T).
make_map(M) -> ?MAKE_FATE_MAP(M).
make_store_map(Id) -> make_store_map(#{}, Id).
make_store_map(Cache, Id) -> ?FATE_STORE_MAP(Cache, Id).
make_address(X) -> ?FATE_ADDRESS(X).
make_bytes(X) -> ?FATE_BYTES(X).
make_hash(X) -> make_bytes(X).
+14
View File
@@ -93,6 +93,7 @@
%% %% 1000 1111 - FREE (Possibly for bytecode in the future.)
-define(OBJECT , 2#10011111). %% 1001 1111 | ObjectType | RLP encoded Array
-define(VARIANT , 2#10101111). %% 1010 1111 | [encoded arities] | encoded tag | [encoded values]
-define(MAP_ID , 2#10111111). %% 1011 1111 | RLP encoded integer (store map id)
-define(NEG_BITS , 2#11001111). %% 1100 1111 | RLP encoded integer (infinite 1:s bitfield)
-define(EMPTY_MAP , 2#11011111). %% 1101 1111
-define(NEG_BIG_INT , 2#11101111). %% 1110 1111 | RLP encoded (integer - 64)
@@ -122,6 +123,7 @@
X =:= ?TYPE_TUPLE orelse
X =:= ?TYPE_OBJECT orelse
X =:= ?TYPE_BITS orelse
X =:= ?TYPE_BYTES orelse
X =:= ?TYPE_MAP orelse
X =:= ?TYPE_STRING orelse
X =:= ?TYPE_VARIANT)).
@@ -193,6 +195,9 @@ serialize(Map) when ?IS_FATE_MAP(Map) ->
<<?MAP,
(rlp_encode_int(Size))/binary,
(Elements)/binary>>;
serialize(?FATE_STORE_MAP(Cache, Id)) when Cache =:= #{} ->
%% We should never get to serialization without having flushed the caches.
<<?MAP_ID, (rlp_encode_int(Id))/binary>>;
serialize(?FATE_VARIANT(Arities, Tag, Values)) ->
Arities = [A || A <- Arities, is_integer(A), A < 256],
Size = length(Arities),
@@ -426,6 +431,9 @@ deserialize2(<<?MAP, Rest/binary>>) ->
false ->
error({unknown_map_serialization_format, KVList})
end;
deserialize2(<<?MAP_ID, Rest/binary>>) ->
{Id, Rest1} = rlp_decode_int(Rest),
{?FATE_STORE_MAP(#{}, Id), Rest1};
deserialize2(<<?VARIANT, Rest/binary>>) ->
{AritiesBin, <<Tag:8, Rest2/binary>>} = aeser_rlp:decode_one(Rest),
Arities = binary_to_list(AritiesBin),
@@ -480,5 +488,11 @@ sort(KVList) ->
valid_key_type(K) when ?IS_FATE_MAP(K) ->
error({map_as_key_in_map, K});
valid_key_type(?FATE_STORE_MAP(_, _) = K) ->
error({map_as_key_in_map, K});
valid_key_type(K) when is_list(K) ->
lists:all(fun(E) -> valid_key_type(E) end, K);
valid_key_type(K) when is_tuple(K) ->
lists:all(fun(E) -> valid_key_type(E) end, tuple_to_list(K));
valid_key_type(_K) ->
true.
+202 -154
View File
@@ -4,7 +4,7 @@
, generate/0
, generate_documentation/1
, get_ops/0
, test_asm_generator/1]).
, test_asm_generator/1 ]).
gen_and_halt([SrcDirArg, IncludeDirArg]) ->
generate(atom_to_list(SrcDirArg),
@@ -42,145 +42,177 @@ check_numbering(_, []) -> true.
%% TODO: Some real gas numbers...
ops_defs() ->
%% Opname, Opcode, end_bb, in_auth, gas, format, Constructor, ArgType, ResType, Documentation
[ { 'RETURN', 16#00, true, true, 2, [], return, {}, any, "Return from function call, top of stack is return value . The type of the retun value has to match the return type of the function."}
, { 'RETURNR', 16#01, true, true, 2, [a], returnr, {any}, any, "Push Arg0 and return from function. The type of the retun value has to match the return type of the function."}
, { 'CALL', 16#02, true, true, 4, [a], call, {string}, any, "Call the function Arg0 with args on stack. The types of the arguments has to match the argument typs of the function."}
, { 'CALL_R', 16#03, true, false, 8, [a,is,a], call_r, {contract, string, integer}, any, "Remote call to contract Arg0 and function Arg1 with value Arg2. The types of the arguments has to match the argument typs of the function."}
, { 'CALL_T', 16#04, true, true, 4, [a], call_t, {string}, any, "Tail call to function Arg0. The types of the arguments has to match the argument typs of the function. And the return type of the called function has to match the type of the current function."}
, { 'CALL_TR', 16#05, true, false, 8, [a,is,a], call_tr, {contract, string, integer}, any, "Remote tail call to contract Arg0 and function Arg1 with value Arg2. The types of the arguments has to match the argument typs of the function. And the return type of the called function has to match the type of the current function."}
, { 'CALL_GR', 16#06, true, false, 8, [a,is,a,a], call_gr, {contract, string, integer, integer}, any, "Remote call with gas cap in Arg3. Otherwise as CALL_R."}
, { 'CALL_GTR', 16#07, true, false, 8, [a,is,a,a], call_gtr, {contract, string, integer, integer}, any, "Remote tail call with gas cap in Arg3. Otherwise as CALL_TR."}
, { 'JUMP', 16#08, true, true, 3, [ii], jump, {integer}, none, "Jump to a basic block. The basic block has to exist in the current function."}
, { 'JUMPIF', 16#09, true, true, 4, [a,ii], jumpif, {boolean, integer}, none, "Conditional jump to a basic block. If Arg0 then jump to Arg1."}
, { 'SWITCH_V2', 16#0a, true, true, 4, [a,ii,ii], switch, {variant, integer, ingeger}, none, "Conditional jump to a basic block on variant tag."}
, { 'SWITCH_V3', 16#0b, true, true, 4, [a,ii,ii,ii], switch, {variant, integer, integer, ingeger}, none, "Conditional jump to a basic block on variant tag."}
, { 'SWITCH_VN', 16#0c, true, true, 4, [a, li], switch, {variant, {list, integer}}, none, "Conditional jump to a basic block on variant tag."}
, { 'CALL_VALUE', 16#0d, false, true, 3, [a], call_value, {}, integer, "The value sent in the current remote call."}
, { 'PUSH', 16#0e, false, true, 13, [a], push, {any}, any, "Push argument to stack."}
, { 'DUPA', 16#0f, false, true, 8, [], dup, {any}, any, "Duplicate top of stack."}
, { 'DUP', 16#10, false, true, 11, [a], dup, {any}, any, "push Arg0 stack pos on top of stack."}
, { 'POP', 16#11, false, true, 15, [a], pop, {integer}, integer, "Arg0 := top of stack."}
, { 'INCA', 16#12, false, true, 14, [], inc, {integer}, integer, "Increment accumulator."}
, { 'INC', 16#13, false, true, 15, [a], inc, {integer}, integer, "Increment argument."}
, { 'DECA', 16#14, false, true, 13, [], dec, {integer}, integer, "Decrement accumulator."}
, { 'DEC', 16#15, false, true, 14, [a], dec, {integer}, integer, "Decrement argument."}
, { 'ADD', 16#16, false, true, 18, [a,a,a], add, {integer, integer}, integer, "Arg0 := Arg1 + Arg2."}
, { 'SUB', 16#17, false, true, 18, [a,a,a], sub, {integer, integer}, integer, "Arg0 := Arg1 - Arg2."}
, { 'MUL', 16#18, false, true, 16, [a,a,a], mul, {integer, integer}, integer, "Arg0 := Arg1 * Arg2."}
, { 'DIV', 16#19, false, true, 16, [a,a,a], divide, {integer, integer}, integer, "Arg0 := Arg1 / Arg2."}
, { 'MOD', 16#1a, false, true, 17, [a,a,a], modulo, {integer, integer}, integer, "Arg0 := Arg1 mod Arg2."}
, { 'POW', 16#1b, false, true, 18, [a,a,a], pow, {integer, integer}, integer, "Arg0 := Arg1 ^ Arg2."}
, { 'STORE', 16#1c, false, true, 20, [a,a], store, {any}, any, "Arg0 := Arg1."}
, { 'SHA3', 16#1d, false, true, 45, [a,a], sha3, {any}, hash, "Arg0 := sha3(Arg1)."}
, { 'SHA256', 16#1e, false, true, 43, [a,a], sha256, {any}, hash, "Arg0 := sha256(Arg1)."}
, { 'BLAKE2B', 16#1f, false, true, 40, [a,a], blake2b, {any}, hash, "Arg0 := blake2b(Arg1)."}
, { 'LT', 16#20, false, true, 15, [a,a,a], lt, {integer, integer}, boolean, "Arg0 := Arg1 < Arg2."}
, { 'GT', 16#21, false, true, 15, [a,a,a], gt, {integer, integer}, boolean, "Arg0 := Arg1 > Arg2."}
, { 'EQ', 16#22, false, true, 15, [a,a,a], eq, {integer, integer}, boolean, "Arg0 := Arg1 = Arg2."}
, { 'ELT', 16#23, false, true, 16, [a,a,a], elt, {integer, integer}, boolean, "Arg0 := Arg1 =< Arg2."}
, { 'EGT', 16#24, false, true, 15, [a,a,a], egt, {integer, integer}, boolean, "Arg0 := Arg1 >= Arg2."}
, { 'NEQ', 16#25, false, true, 16, [a,a,a], neq, {integer, integer}, boolean, "Arg0 := Arg1 /= Arg2."}
, { 'AND', 16#26, false, true, 16, [a,a,a], and_op, {boolean, boolean}, boolean, "Arg0 := Arg1 and Arg2."}
, { 'OR', 16#27, false, true, 16, [a,a,a], or_op, {boolean, boolean}, boolean, "Arg0 := Arg1 or Arg2."}
, { 'NOT', 16#28, false, true, 13, [a,a], not_op, {boolean}, boolean, "Arg0 := not Arg1."}
, { 'TUPLE', 16#29, false, true, 15, [a,ii], tuple, {integer}, tuple, "Arg0 := tuple of size = Arg1. Elements on stack."}
, { 'ELEMENT', 16#2a, false, true, 3, [a,a,a], element_op, {integer, tuple}, any, "Arg1 := element(Arg2, Arg3)."}
, { 'SETELEMENT', 16#2b, false, true, 3, [a,a,a,a], setelement, {integer, tuple, any}, tuple, "Arg0 := a new tuple similar to Arg2, but with element number Arg1 replaced by Arg3."}
, { 'MAP_EMPTY', 16#2c, false, true, 3, [a], map_empty, {}, map, "Arg0 := #{}."}
, { 'MAP_LOOKUP', 16#2d, false, true, 3, [a,a,a], map_lookup, {map, any}, any, "Arg0 := lookup key Arg2 in map Arg1."}
, { 'MAP_LOOKUPD', 16#2e, false, true, 3, [a,a,a,a], map_lookup, {map, any, any}, any, "Arg0 := lookup key Arg2 in map Arg1 if key exists in map otherwise Arg0 := Arg3."}
, { 'MAP_UPDATE', 16#2f, false, true, 3, [a,a,a,a], map_update, {map, any, any}, map, "Arg0 := update key Arg2 in map Arg1 with value Arg3."}
, { 'MAP_DELETE', 16#30, false, true, 3, [a,a,a], map_delete, {map, any}, map, "Arg0 := delete key Arg2 from map Arg1."}
, { 'MAP_MEMBER', 16#31, false, true, 3, [a,a,a], map_member, {map, any}, boolean, "Arg0 := true if key Arg2 is in map Arg1."}
, { 'MAP_FROM_LIST', 16#32, false, true, 3, [a,a], map_from_list, {{list, {tuple, [any, any]}}}, map, "Arg0 := make a map from (key, value) list in Arg1."}
, { 'IS_NIL', 16#33, false, true, 3, [a,a], is_nil, {list}, boolean, "Arg0 := true if Arg1 == []."}
, { 'CONS', 16#34, false, true, 3, [a,a,a], cons, {any, list}, list, "Arg0 := [Arg1|Arg2]."}
, { 'HD', 16#35, false, true, 3, [a,a], hd, {list}, any, "Arg0 := head of list Arg1."}
, { 'TL', 16#36, false, true, 3, [a,a], tl, {list}, list, "Arg0 := tail of list Arg1."}
, { 'LENGTH', 16#37, false, true, 3, [a,a], length, {list}, integer, "Arg0 := length of list Arg1."}
, { 'NIL', 16#38, false, true, 3, [a], nil, {}, list, "Arg0 := []."}
, { 'STR_JOIN', 16#39, false, true, 3, [a,a,a], str_join, {string, string}, string, "Arg0 := string Arg1 followed by string Arg2."}
, { 'INT_TO_STR', 16#3a, false, true, 3, [a,a], int_to_str, {integer}, string, "Arg0 := turn integer Arg1 into a string."}
, { 'ADDR_TO_STR', 16#3b, false, true, 3, [a,a], addr_to_str, {address}, string, "Arg0 := turn address Arg1 into a string."}
, { 'STR_REVERSE', 16#3c, false, true, 3, [a,a], str_reverse, {string}, string, "Arg0 := the reverse of string Arg1."}
, { 'APPEND', 16#3d, false, true, 3, [a,a,a], append, {list, list}, list, "Arg0 := Arg1 ++ Arg2."}
, { 'INT_TO_ADDR', 16#3e, false, true, 3, [a,a], int_to_addr, {integer}, address, "Arg0 := turn integer Arg1 into an address."}
, { 'VARIANT', 16#3f, false, true, 3, [a,a,a,a], variant, {integer, integer, integer}, variant, "Arg0 := create a variant of size Arg1 with the tag Arg2 (Arg2 < Arg1) and take Arg3 elements from the stack."}
, { 'VARIANT_TEST', 16#40, false, true, 3, [a,a,a], variant_test, {variant, integer}, boolean, "Arg0 := true if variant Arg1 has the tag Arg2."}
, { 'VARIANT_ELEMENT', 16#41, false, true, 3, [a,a,a], variant_element, {variant, integer}, any, "Arg0 := element number Arg2 from variant Arg1."}
, { 'BITS_NONEA', 16#42, false, true, 3, [], bits_none, {}, bits, "push an empty bitmap on the stack."}
, { 'BITS_NONE', 16#43, false, true, 3, [a], bits_none, {}, bits, "Arg0 := empty bitmap."}
, { 'BITS_ALLA', 16#44, false, true, 3, [], bits_all, {}, bits, "push a full bitmap on the stack."}
, { 'BITS_ALL', 16#45, false, true, 3, [a], bits_all, {}, bits, "Arg0 := full bitmap."}
, { 'BITS_ALL_N', 16#46, false, true, 3, [a,a], bits_all_n, {integer}, bits, "Arg0 := bitmap with Arg1 bits set."}
, { 'BITS_SET', 16#47, false, true, 3, [a,a,a], bits_set, {bits, integer}, bits, "Arg0 := set bit Arg2 of bitmap Arg1."}
, { 'BITS_CLEAR', 16#48, false, true, 3, [a,a,a], bits_clear, {bits, integer}, bits, "Arg0 := clear bit Arg2 of bitmap Arg1."}
, { 'BITS_TEST', 16#49, false, true, 3, [a,a,a], bits_test, {bits, integer}, boolean, "Arg0 := true if bit Arg2 of bitmap Arg1 is set."}
, { 'BITS_SUM', 16#4a, false, true, 3, [a,a], bits_sum, {bits}, integer, "Arg0 := sum of set bits in bitmap Arg1. Exception if infinit bitmap."}
, { 'BITS_OR', 16#4b, false, true, 3, [a,a,a], bits_or, {bits, bits}, bits, "Arg0 := Arg1 v Arg2."}
, { 'BITS_AND', 16#4c, false, true, 3, [a,a,a], bits_and, {bits, bits}, bits, "Arg0 := Arg1 ^ Arg2."}
, { 'BITS_DIFF', 16#4d, false, true, 3, [a,a,a], bits_diff, {bits, bits}, bits, "Arg0 := Arg1 - Arg2."}
, { 'BALANCE', 16#4e, false, true, 3, [a], balance, {}, integer, "Arg0 := The current contract balance."}
, { 'ORIGIN', 16#4f, false, true, 3, [a], origin, {}, address, "Arg0 := Address of contract called by the call transaction."}
, { 'CALLER', 16#50, false, true, 3, [a], caller, {}, address, "Arg0 := The address that signed the call transaction."}
, { 'GASPRICE', 16#51, false, true, 3, [a], gasprice, {}, integer, "Arg0 := The current gas price."}
, { 'BLOCKHASH', 16#52, false, true, 3, [a,a], blockhash, {integer}, hash, "Arg0 := The blockhash at height Arg1."}
, { 'BENEFICIARY', 16#53, false, true, 3, [a], beneficiary, {}, address, "Arg0 := The address of the current beneficiary."}
, { 'TIMESTAMP', 16#54, false, true, 3, [a], timestamp, {}, integer, "Arg0 := The current timestamp. Unrelaiable, don't use for anything."}
, { 'GENERATION', 16#55, false, true, 3, [a], generation, {}, integer, "Arg0 := The block height of the cureent generation."}
, { 'MICROBLOCK', 16#56, false, true, 3, [a], microblock, {}, integer, "Arg0 := The current micro block number."}
, { 'DIFFICULTY', 16#57, false, true, 3, [a], difficulty, {}, integer, "Arg0 := The current difficulty."}
, { 'GASLIMIT', 16#58, false, true, 3, [a], gaslimit, {}, integer, "Arg0 := The current gaslimit."}
, { 'GAS', 16#59, false, true, 3, [a], gas, {}, integer, "Arg0 := The amount of gas left."}
, { 'ADDRESS', 16#5a, false, true, 3, [a], address, {}, address, "Arg0 := The current contract address."}
%% Opname, Opcode, end_bb, in_auth offchain, gas, format, Constructor, ArgType, ResType, Documentation
[ { 'RETURN', 16#00, true, true, true, 10, [], return, {}, any, "Return from function call, top of stack is return value . The type of the retun value has to match the return type of the function."}
, { 'RETURNR', 16#01, true, true, true, 10, [a], returnr, {any}, any, "Push Arg0 and return from function. The type of the retun value has to match the return type of the function."}
, { 'CALL', 16#02, true, true, true, 10, [a], call, {string}, any, "Call the function Arg0 with args on stack. The types of the arguments has to match the argument typs of the function."}
, { 'CALL_R', 16#03, true, false, true, 100, [a,is,a,a,a], call_r, {contract, string, typerep, typerep, integer}, any, "Remote call to contract Arg0 and function Arg1 of type Arg2 => Arg3 with value Arg4. The types of the arguments has to match the argument types of the function."}
, { 'CALL_T', 16#04, true, true, true, 10, [a], call_t, {string}, any, "Tail call to function Arg0. The types of the arguments has to match the argument typs of the function. And the return type of the called function has to match the type of the current function."}
, { 'CALL_GR', 16#05, true, false, true, 100, [a,is,a,a,a,a], call_gr, {contract, string, typerep, typerep, integer, integer}, any, "Remote call with gas cap in Arg4. Otherwise as CALL_R."}
, { 'JUMP', 16#06, true, true, true, 10, [ii], jump, {integer}, none, "Jump to a basic block. The basic block has to exist in the current function."}
, { 'JUMPIF', 16#07, true, true, true, 10, [a,ii], jumpif, {boolean, integer}, none, "Conditional jump to a basic block. If Arg0 then jump to Arg1."}
, { 'SWITCH_V2', 16#08, true, true, true, 10, [a,ii,ii], switch, {variant, integer, ingeger}, none, "Conditional jump to a basic block on variant tag."}
, { 'SWITCH_V3', 16#09, true, true, true, 10, [a,ii,ii,ii], switch, {variant, integer, integer, ingeger}, none, "Conditional jump to a basic block on variant tag."}
, { 'SWITCH_VN', 16#0a, true, true, true, 10, [a, li], switch, {variant, {list, integer}}, none, "Conditional jump to a basic block on variant tag."}
, { 'CALL_VALUE', 16#0b, false, true, true, 10, [a], call_value, {}, integer, "The value sent in the current remote call."}
, { 'PUSH', 16#0c, false, true, true, 10, [a], push, {any}, any, "Push argument to stack."}
, { 'DUPA', 16#0d, false, true, true, 10, [], dup, {any}, any, "Duplicate top of stack."}
, { 'DUP', 16#0e, false, true, true, 10, [a], dup, {any}, any, "push Arg0 stack pos on top of stack."}
, { 'POP', 16#0f, false, true, true, 10, [a], pop, {integer}, integer, "Arg0 := top of stack."}
, { 'INCA', 16#10, false, true, true, 10, [], inc, {integer}, integer, "Increment accumulator."}
, { 'INC', 16#11, false, true, true, 10, [a], inc, {integer}, integer, "Increment argument."}
, { 'DECA', 16#12, false, true, true, 10, [], dec, {integer}, integer, "Decrement accumulator."}
, { 'DEC', 16#13, false, true, true, 10, [a], dec, {integer}, integer, "Decrement argument."}
, { 'ADD', 16#14, false, true, true, 10, [a,a,a], add, {integer, integer}, integer, "Arg0 := Arg1 + Arg2."}
, { 'SUB', 16#15, false, true, true, 10, [a,a,a], sub, {integer, integer}, integer, "Arg0 := Arg1 - Arg2."}
, { 'MUL', 16#16, false, true, true, 10, [a,a,a], mul, {integer, integer}, integer, "Arg0 := Arg1 * Arg2."}
, { 'DIV', 16#17, false, true, true, 10, [a,a,a], divide, {integer, integer}, integer, "Arg0 := Arg1 / Arg2."}
, { 'MOD', 16#18, false, true, true, 10, [a,a,a], modulo, {integer, integer}, integer, "Arg0 := Arg1 mod Arg2."}
, { 'POW', 16#19, false, true, true, 10, [a,a,a], pow, {integer, integer}, integer, "Arg0 := Arg1 ^ Arg2."}
, { 'STORE', 16#1a, false, true, true, 10, [a,a], store, {any}, any, "Arg0 := Arg1."}
, { 'SHA3', 16#1b, false, true, true, 100, [a,a], sha3, {any}, hash, "Arg0 := sha3(Arg1)."}
, { 'SHA256', 16#1c, false, true, true, 100, [a,a], sha256, {any}, hash, "Arg0 := sha256(Arg1)."}
, { 'BLAKE2B', 16#1d, false, true, true, 100, [a,a], blake2b, {any}, hash, "Arg0 := blake2b(Arg1)."}
, { 'LT', 16#1e, false, true, true, 10, [a,a,a], lt, {integer, integer}, boolean, "Arg0 := Arg1 < Arg2."}
, { 'GT', 16#1f, false, true, true, 10, [a,a,a], gt, {integer, integer}, boolean, "Arg0 := Arg1 > Arg2."}
, { 'EQ', 16#20, false, true, true, 10, [a,a,a], eq, {integer, integer}, boolean, "Arg0 := Arg1 = Arg2."}
, { 'ELT', 16#21, false, true, true, 10, [a,a,a], elt, {integer, integer}, boolean, "Arg0 := Arg1 =< Arg2."}
, { 'EGT', 16#22, false, true, true, 10, [a,a,a], egt, {integer, integer}, boolean, "Arg0 := Arg1 >= Arg2."}
, { 'NEQ', 16#23, false, true, true, 10, [a,a,a], neq, {integer, integer}, boolean, "Arg0 := Arg1 /= Arg2."}
, { 'AND', 16#24, false, true, true, 10, [a,a,a], and_op, {boolean, boolean}, boolean, "Arg0 := Arg1 and Arg2."}
, { 'OR', 16#25, false, true, true, 10, [a,a,a], or_op, {boolean, boolean}, boolean, "Arg0 := Arg1 or Arg2."}
, { 'NOT', 16#26, false, true, true, 10, [a,a], not_op, {boolean}, boolean, "Arg0 := not Arg1."}
, { 'TUPLE', 16#27, false, true, true, 10, [a,ii], tuple, {integer}, tuple, "Arg0 := tuple of size = Arg1. Elements on stack."}
, { 'ELEMENT', 16#28, false, true, true, 10, [a,a,a], element_op, {integer, tuple}, any, "Arg1 := element(Arg2, Arg3)."}
, { 'SETELEMENT', 16#29, false, true, true, 10, [a,a,a,a], setelement, {integer, tuple, any}, tuple, "Arg0 := a new tuple similar to Arg2, but with element number Arg1 replaced by Arg3."}
, { 'MAP_EMPTY', 16#2a, false, true, true, 10, [a], map_empty, {}, map, "Arg0 := #{}."}
, { 'MAP_LOOKUP', 16#2b, false, true, true, 10, [a,a,a], map_lookup, {map, any}, any, "Arg0 := lookup key Arg2 in map Arg1."}
, { 'MAP_LOOKUPD', 16#2c, false, true, true, 10, [a,a,a,a], map_lookup, {map, any, any}, any, "Arg0 := lookup key Arg2 in map Arg1 if key exists in map otherwise Arg0 := Arg3."}
, { 'MAP_UPDATE', 16#2d, false, true, true, 10, [a,a,a,a], map_update, {map, any, any}, map, "Arg0 := update key Arg2 in map Arg1 with value Arg3."}
, { 'MAP_DELETE', 16#2e, false, true, true, 10, [a,a,a], map_delete, {map, any}, map, "Arg0 := delete key Arg2 from map Arg1."}
, { 'MAP_MEMBER', 16#2f, false, true, true, 10, [a,a,a], map_member, {map, any}, boolean, "Arg0 := true if key Arg2 is in map Arg1."}
, { 'MAP_FROM_LIST', 16#30, false, true, true, 10, [a,a], map_from_list, {{list, {tuple, [any, any]}}}, map, "Arg0 := make a map from (key, value) list in Arg1."}
, { 'MAP_SIZE', 16#31, false, true, true, 10, [a,a], map_size_, {map}, integer, "Arg0 := The size of the map Arg1."}
, { 'MAP_TO_LIST', 16#32, false, true, true, 10, [a,a], map_to_list, {map}, list, "Arg0 := The tuple list representation of the map Arg1."}
, { 'IS_NIL', 16#33, false, true, true, 10, [a,a], is_nil, {list}, boolean, "Arg0 := true if Arg1 == []."}
, { 'CONS', 16#34, false, true, true, 10, [a,a,a], cons, {any, list}, list, "Arg0 := [Arg1|Arg2]."}
, { 'HD', 16#35, false, true, true, 10, [a,a], hd, {list}, any, "Arg0 := head of list Arg1."}
, { 'TL', 16#36, false, true, true, 10, [a,a], tl, {list}, list, "Arg0 := tail of list Arg1."}
, { 'LENGTH', 16#37, false, true, true, 10, [a,a], length, {list}, integer, "Arg0 := length of list Arg1."}
, { 'NIL', 16#38, false, true, true, 10, [a], nil, {}, list, "Arg0 := []."}
, { 'APPEND', 16#39, false, true, true, 10, [a,a,a], append, {list, list}, list, "Arg0 := Arg1 ++ Arg2."}
, { 'STR_JOIN', 16#3a, false, true, true, 10, [a,a,a], str_join, {string, string}, string, "Arg0 := string Arg1 followed by string Arg2."}
, { 'INT_TO_STR', 16#3b, false, true, true, 100, [a,a], int_to_str, {integer}, string, "Arg0 := turn integer Arg1 into a string."}
, { 'ADDR_TO_STR', 16#3c, false, true, true, 100, [a,a], addr_to_str, {address}, string, "Arg0 := turn address Arg1 into a string."}
, { 'STR_REVERSE', 16#3d, false, true, true, 100, [a,a], str_reverse, {string}, string, "Arg0 := the reverse of string Arg1."}
, { 'STR_LENGTH', 16#3e, false, true, true, 10, [a,a], str_length, {string}, integer, "Arg0 := The length of the string Arg1."}
, { 'BYTES_TO_INT', 16#3f, false, true, true, 10, [a,a], bytes_to_int, {bytes}, integer, "Arg0 := bytes_to_int(Arg1)"}
, { 'BYTES_TO_STR', 16#40, false, true, true, 100, [a,a], bytes_to_str, {bytes}, string, "Arg0 := bytes_to_str(Arg1)"}
, { 'BYTES_CONCAT', 16#41, false, true, true, 10, [a,a,a], bytes_concat, {bytes, bytes}, bytes, "Arg0 := bytes_concat(Arg1, Arg2)"}
, { 'BYTES_SPLIT', 16#42, false, true, true, 10, [a,a,a], bytes_split, {bytes, integer}, bytes, "Arg0 := bytes_split(Arg2, Arg1), where Arg2 is the length of the first chunk."}
, { 'INT_TO_ADDR', 16#43, false, true, true, 10, [a,a], int_to_addr, {integer}, address, "Arg0 := turn integer Arg1 into an address."}
, { 'VARIANT', 16#44, false, true, true, 10, [a,a,a,a], variant, {integer, integer, integer}, variant, "Arg0 := create a variant of size Arg1 with the tag Arg2 (Arg2 < Arg1) and take Arg3 elements from the stack."}
, { 'VARIANT_TEST', 16#45, false, true, true, 10, [a,a,a], variant_test, {variant, integer}, boolean, "Arg0 := true if variant Arg1 has the tag Arg2."}
, { 'VARIANT_ELEMENT', 16#46, false, true, true, 10, [a,a,a], variant_element, {variant, integer}, any, "Arg0 := element number Arg2 from variant Arg1."}
, { 'BITS_NONEA', 16#47, false, true, true, 10, [], bits_none, {}, bits, "push an empty bitmap on the stack."}
, { 'BITS_NONE', 16#48, false, true, true, 10, [a], bits_none, {}, bits, "Arg0 := empty bitmap."}
, { 'BITS_ALLA', 16#49, false, true, true, 10, [], bits_all, {}, bits, "push a full bitmap on the stack."}
, { 'BITS_ALL', 16#4a, false, true, true, 10, [a], bits_all, {}, bits, "Arg0 := full bitmap."}
, { 'BITS_ALL_N', 16#4b, false, true, true, 10, [a,a], bits_all_n, {integer}, bits, "Arg0 := bitmap with Arg1 bits set."}
, { 'BITS_SET', 16#4c, false, true, true, 10, [a,a,a], bits_set, {bits, integer}, bits, "Arg0 := set bit Arg2 of bitmap Arg1."}
, { 'BITS_CLEAR', 16#4d, false, true, true, 10, [a,a,a], bits_clear, {bits, integer}, bits, "Arg0 := clear bit Arg2 of bitmap Arg1."}
, { 'BITS_TEST', 16#4e, false, true, true, 10, [a,a,a], bits_test, {bits, integer}, boolean, "Arg0 := true if bit Arg2 of bitmap Arg1 is set."}
, { 'BITS_SUM', 16#4f, false, true, true, 10, [a,a], bits_sum, {bits}, integer, "Arg0 := sum of set bits in bitmap Arg1. Exception if infinit bitmap."}
, { 'BITS_OR', 16#50, false, true, true, 10, [a,a,a], bits_or, {bits, bits}, bits, "Arg0 := Arg1 v Arg2."}
, { 'BITS_AND', 16#51, false, true, true, 10, [a,a,a], bits_and, {bits, bits}, bits, "Arg0 := Arg1 ^ Arg2."}
, { 'BITS_DIFF', 16#52, false, true, true, 10, [a,a,a], bits_diff, {bits, bits}, bits, "Arg0 := Arg1 - Arg2."}
, { 'BALANCE', 16#53, false, true, true, 10, [a], balance, {}, integer, "Arg0 := The current contract balance."}
, { 'ORIGIN', 16#54, false, true, true, 10, [a], origin, {}, address, "Arg0 := Address of contract called by the call transaction."}
, { 'CALLER', 16#55, false, true, true, 10, [a], caller, {}, address, "Arg0 := The address that signed the call transaction."}
, { 'BLOCKHASH', 16#56, false, true, true, 10, [a,a], blockhash, {integer}, hash, "Arg0 := The blockhash at height."}
, { 'BENEFICIARY', 16#57, false, true, true, 10, [a], beneficiary, {}, address, "Arg0 := The address of the current beneficiary."}
, { 'TIMESTAMP', 16#58, false, true, true, 10, [a], timestamp, {}, integer, "Arg0 := The current timestamp. Unrelaiable, don't use for anything."}
, { 'GENERATION', 16#59, false, true, true, 10, [a], generation, {}, integer, "Arg0 := The block height of the cureent generation."}
, { 'MICROBLOCK', 16#5a, false, true, true, 10, [a], microblock, {}, integer, "Arg0 := The current micro block number."}
, { 'DIFFICULTY', 16#5b, false, true, true, 10, [a], difficulty, {}, integer, "Arg0 := The current difficulty."}
, { 'GASLIMIT', 16#5c, false, true, true, 10, [a], gaslimit, {}, integer, "Arg0 := The current gaslimit."}
, { 'GAS', 16#5d, false, true, true, 10, [a], gas, {}, integer, "Arg0 := The amount of gas left."}
, { 'ADDRESS', 16#5e, false, true, true, 10, [a], address, {}, address, "Arg0 := The current contract address."}
, { 'GASPRICE', 16#5f, false, true, true, 10, [a], gasprice, {}, integer, "Arg0 := The current gas price."}
, { 'LOG0', 16#5b, false, true, 3, [a], log, {string}, none, "Create a log message in the call object."}
, { 'LOG1', 16#5c, false, true, 3, [a,a], log, {integer, string}, none, "Create a log message with one topic in the call object."}
, { 'LOG2', 16#5d, false, true, 3, [a,a,a], log, {integer, integer, string}, none, "Create a log message with two topics in the call object."}
, { 'LOG3', 16#5e, false, true, 3, [a,a,a,a], log, {integer, integer, integer, string}, none, "Create a log message with three topics in the call object."}
, { 'LOG4', 16#5f, false, true, 3, [a,a,a,a,a], log, {integer, integer, integer, integer, string}, none, "Create a log message with four topics in the call object."}
, { 'LOG0', 16#60, false, true, true, 1000, [a], log, {string}, none, "Create a log message in the call object."}
, { 'LOG1', 16#61, false, true, true, 1100, [a,a], log, {integer, string}, none, "Create a log message with one topic in the call object."}
, { 'LOG2', 16#62, false, true, true, 1200, [a,a,a], log, {integer, integer, string}, none, "Create a log message with two topics in the call object."}
, { 'LOG3', 16#63, false, true, true, 1300, [a,a,a,a], log, {integer, integer, integer, string}, none, "Create a log message with three topics in the call object."}
, { 'LOG4', 16#64, false, true, true, 1400, [a,a,a,a,a], log, {integer, integer, integer, integer, string}, none, "Create a log message with four topics in the call object."}
%% Transaction ops
, { 'SPEND', 16#60, false, false, 3, [a,a], spend, {address, integer}, none, "Transfer Arg1 tokens to account Arg0. (If the contract account has at least that many tokens."}
, { 'ORACLE_REGISTER', 16#61, false, false, 3, [a,a,a,a,a,a,a], oracle_register, {signature, address, integer, variant, typerep, typerep}, oracle, "Arg0 := New oracle with address Arg2, query fee Arg3, TTL Arg4, query type Arg5 and response type Arg6. Arg0 contains delegation signature."}
, { 'ORACLE_QUERY', 16#62, false, false, 3, [a,a,a,a,a,a,a,a], oracle_query, {oracle, any, integer, variant, variant, typerep, typerep}, oracle_query, "Arg0 := New oracle query for oracle Arg1, question in Arg2, query fee in Arg3, query TTL in Arg4, response TTL in Arg5. Typereps for checking oracle type is in Arg6 and Arg7."}
, { 'ORACLE_RESPOND', 16#63, false, false, 3, [a,a,a,a,a,a], oracle_respond, {signature, oracle, oracle_query,any, typerep, typerep}, none, "Respond as oracle Arg1 to query in Arg2 with response Arg3. Arg0 contains delegation signature. Typereps for checking oracle type is in Arg4 and Arg5."}
, { 'ORACLE_EXTEND', 16#64, false, false, 3, [a,a,a], oracle_extend, {signature, oracle, variant}, none, "Extend oracle in Arg1 with TTL in Arg2. Arg0 contains delegation signature."}
, { 'ORACLE_GET_ANSWER', 16#65, false, false, 3, [a,a,a,a,a], oracle_get_answer, {oracle, oracle_query, typerep, typerep}, any, "Arg0 := option variant with answer (if any) from oracle query in Arg1 given by oracle Arg0. Typereps for checking oracle type is in Arg3 and Arg4."}
, { 'ORACLE_GET_QUESTION', 16#66, false, false, 3, [a,a,a,a,a], oracle_get_question, {oracle, oracle_query, typerep, typerep}, any, "Arg0 := question in oracle query Arg2 given to oracle Arg1. Typereps for checking oracle type is in Arg3 and Arg4."}
, { 'ORACLE_QUERY_FEE', 16#67, false, false, 3, [a,a], oracle_query_fee, {oracle}, integer, "Arg0 := query fee for oracle Arg1"}
, { 'AENS_RESOLVE', 16#68, false, false, 3, [a,a,a,a], aens_resolve, {string, string, typerep}, variant, "Resolve name in Arg0 with tag Arg1. Arg2 describes the type parameter of the resolved name."}
, { 'AENS_PRECLAIM', 16#69, false, false, 3, [a,a,a], aens_preclaim, {signature, address, hash}, none, "Preclaim the hash in Arg2 for address in Arg1. Arg0 contains delegation signature."}
, { 'AENS_CLAIM', 16#6a, false, false, 3, [a,a,a,a], aens_claim, {signature, address, string, integer}, none, "Claim the name in Arg2 for address in Arg1. Arg3 contains the salt used to hash the preclaim. Arg0 contains delegation signature."}
, { 'AENS_UPDATE', 16#6b, false, false, 3, [], aens_update, {}, none, "NYI"}
, { 'AENS_TRANSFER', 16#6c, false, false, 3, [a,a,a,a], aens_transfer,{signature, address, address, string}, none, "Transfer ownership of name Arg3 from account Arg1 to Arg2. Arg0 contains delegation signature."}
, { 'AENS_REVOKE', 16#6d, false, false, 3, [a,a,a], aens_revoke, {signature, address, string}, none, "Revoke the name in Arg2 from owner Arg1. Arg0 contains delegation signature."}
, { 'BALANCE_OTHER', 16#6e, false, true, 3, [a,a], balance_other, {address}, integer, "Arg0 := The balance of address Arg1."}
%% TODO: Reorder these before documenting the specification
, { 'MAP_SIZE', 16#6f, false, true, 3, [a,a], map_size_, {map}, integer, "Arg0 := The size of the map Arg1."}
, { 'MAP_TO_LIST', 16#70, false, true, 3, [a,a], map_to_list, {map}, list, "Arg0 := The tuple list representation of the map Arg1."}
, { 'STR_LENGTH', 16#71, false, true, 3, [a,a], str_length, {string}, integer, "Arg0 := The length of the string Arg1."}
, { 'SPEND', 16#65, false, false, true, 100, [a,a], spend, {address, integer}, none, "Transfer Arg1 tokens to account Arg0. (If the contract account has at least that many tokens."}
, { 'ORACLE_REGISTER', 16#66, false, false, false, 100, [a,a,a,a,a,a,a], oracle_register, {signature, address, integer, variant, typerep, typerep}, oracle, "Arg0 := New oracle with address Arg2, query fee Arg3, TTL Arg4, query type Arg5 and response type Arg6. Arg0 contains delegation signature."}
, { 'ORACLE_QUERY', 16#67, false, false, false, 100, [a,a,a,a,a,a,a,a], oracle_query, {oracle, any, integer, variant, variant, typerep, typerep}, oracle_query, "Arg0 := New oracle query for oracle Arg1, question in Arg2, query fee in Arg3, query TTL in Arg4, response TTL in Arg5. Typereps for checking oracle type is in Arg6 and Arg7."}
, { 'ORACLE_RESPOND', 16#68, false, false, false, 100, [a,a,a,a,a,a], oracle_respond, {signature, oracle, oracle_query,any, typerep, typerep}, none, "Respond as oracle Arg1 to query in Arg2 with response Arg3. Arg0 contains delegation signature. Typereps for checking oracle type is in Arg4 and Arg5."}
, { 'ORACLE_EXTEND', 16#69, false, false, false, 100, [a,a,a], oracle_extend, {signature, oracle, variant}, none, "Extend oracle in Arg1 with TTL in Arg2. Arg0 contains delegation signature."}
, { 'ORACLE_GET_ANSWER', 16#6a, false, false, true, 100, [a,a,a,a,a], oracle_get_answer, {oracle, oracle_query, typerep, typerep}, any, "Arg0 := option variant with answer (if any) from oracle query in Arg1 given by oracle Arg0. Typereps for checking oracle type is in Arg3 and Arg4."}
, { 'ORACLE_GET_QUESTION', 16#6b, false, false, true, 100, [a,a,a,a,a], oracle_get_question, {oracle, oracle_query, typerep, typerep}, any, "Arg0 := question in oracle query Arg2 given to oracle Arg1. Typereps for checking oracle type is in Arg3 and Arg4."}
, { 'ORACLE_QUERY_FEE', 16#6c, false, false, true, 100, [a,a], oracle_query_fee, {oracle}, integer, "Arg0 := query fee for oracle Arg1"}
, { 'AENS_RESOLVE', 16#6d, false, false, true, 100, [a,a,a,a], aens_resolve, {string, string, typerep}, variant, "Resolve name in Arg0 with tag Arg1. Arg2 describes the type parameter of the resolved name."}
, { 'AENS_PRECLAIM', 16#6e, false, false, false, 100, [a,a,a], aens_preclaim, {signature, address, hash}, none, "Preclaim the hash in Arg2 for address in Arg1. Arg0 contains delegation signature."}
, { 'AENS_CLAIM', 16#6f, false, false, false, 100, [a,a,a,a,a], aens_claim, {signature, address, string, integer, integer}, none, "Attempt to claim the name in Arg2 for address in Arg1 at a price in Arg4. Arg3 contains the salt used to hash the preclaim. Arg0 contains delegation signature."}
, { 'AENS_UPDATE', 16#70, false, false, false, 100, [a,a,a,a,a,a], aens_update, {signature, address, string, variant, variant, variant}, none, "Updates name in Arg2 for address in Arg1. Arg3 contains optional ttl (of type Chain.ttl), Arg4 contains optional client_ttl (of type int), Arg5 contains optional pointers (of type map(string, pointee))"}
, { 'AENS_TRANSFER', 16#71, false, false, false, 100, [a,a,a,a], aens_transfer,{signature, address, address, string}, none, "Transfer ownership of name Arg3 from account Arg1 to Arg2. Arg0 contains delegation signature."}
, { 'AENS_REVOKE', 16#72, false, false, false, 100, [a,a,a], aens_revoke, {signature, address, string}, none, "Revoke the name in Arg2 from owner Arg1. Arg0 contains delegation signature."}
, { 'BALANCE_OTHER', 16#73, false, true, true, 50, [a,a], balance_other, {address}, integer, "Arg0 := The balance of address Arg1."}
, { 'ECVERIFY', 16#72, false, true, 1300, [a,a,a,a], ecverify, {bytes, address, bytes}, boolean, "Arg0 := ecverify(Hash, PubKey, Signature)"}
, { 'ECVERIFY_SECP256K1', 16#73, false, true, 1300, [a,a,a,a], ecverify_secp256k1, {bytes, bytes, bytes}, boolean, "Arg0 := ecverify_secp256k1(Hash, PubKey, Signature)"}
, { 'VERIFY_SIG', 16#74, false, true, true, 1300, [a,a,a,a], verify_sig, {bytes, address, bytes}, boolean, "Arg0 := verify_sig(Hash, PubKey, Signature)"}
, { 'VERIFY_SIG_SECP256K1',16#75, false, true, true, 1300, [a,a,a,a], verify_sig_secp256k1, {bytes, bytes, bytes}, boolean, "Arg0 := verify_sig_secp256k1(Hash, PubKey, Signature)"}
, { 'CONTRACT_TO_ADDRESS', 16#74, false, true, 3, [a,a], contract_to_address, {contract}, address, "Arg0 := Arg1 - A no-op type conversion"}
, { 'AUTH_TX_HASH', 16#75, false, true, 3, [a], auth_tx_hash, {}, variant, "If in GA authentication context return Some(TxHash) otherwise None."}
, { 'CONTRACT_TO_ADDRESS', 16#76, false, true, true, 10, [a,a], contract_to_address, {contract}, address, "Arg0 := Arg1 - A no-op type conversion"}
, { 'AUTH_TX_HASH', 16#77, false, true, true, 10, [a], auth_tx_hash, {}, variant, "If in GA authentication context return Some(TxHash) otherwise None."}
, { 'BYTES_TO_INT', 16#76, false, true, 3, [a,a], bytes_to_int, {bytes}, integer, "Arg0 := bytes_to_int(Arg1)"}
, { 'BYTES_TO_STR', 16#77, false, true, 3, [a,a], bytes_to_str, {bytes}, string, "Arg0 := bytes_to_str(Arg1)"}
, { 'ORACLE_CHECK', 16#78, false, false, true, 100, [a,a,a,a], oracle_check, {oracle, typerep, typerep}, bool, "Arg0 := is Arg1 an oracle with the given query (Arg2) and response (Arg3) types"}
, { 'ORACLE_CHECK_QUERY', 16#79, false, false, true, 100, [a,a,a,a,a], oracle_check_query, {oracle, oracle_query, typerep, typerep}, bool, "Arg0 := is Arg2 a query for the oracle Arg1 with the given types (Arg3, Arg4)"}
, { 'ORACLE_CHECK', 16#78, false, false, 3, [a,a,a,a], oracle_check, {oracle, typerep, typerep}, bool, "Arg0 := is Arg1 an oracle with the given query (Arg2) and response (Arg3) types"}
, { 'ORACLE_CHECK_QUERY', 16#79, false, false, 3, [a,a,a,a,a], oracle_check_query, {oracle, oracle_query, typerep, typerep}, bool, "Arg0 := is Arg2 a query for the oracle Arg1 with the given types (Arg3, Arg4)"}
, { 'IS_ORACLE', 16#7a, false, false, true, 100, [a,a], is_oracle, {address}, bool, "Arg0 := is Arg1 an oracle"}
, { 'IS_CONTRACT', 16#7b, false, false, true, 100, [a,a], is_contract, {address}, bool, "Arg0 := is Arg1 a contract"}
, { 'IS_PAYABLE', 16#7c, false, false, true, 100, [a,a], is_payable, {address}, bool, "Arg0 := is Arg1 a payable address"}
, { 'CREATOR', 16#7d, false, true, true, 10, [a], contract_creator, {}, address, "Arg0 := contract creator"}
, { 'IS_ORACLE', 16#7a, false, false, 3, [a,a], is_oracle, {address}, bool, "Arg0 := is Arg1 an oracle"}
, { 'IS_CONTRACT', 16#7b, false, false, 3, [a,a], is_contract, {address}, bool, "Arg0 := is Arg1 a contract"}
, { 'CREATOR', 16#7c, false, true, 3, [a], contract_creator, {}, address, "Arg0 := contract creator"}
, { 'ECVERIFY_SECP256K1', 16#7e, false, true, true, 1300, [a,a,a,a], ecverify_secp256k1, {bytes, bytes, bytes}, bytes, "Arg0 := ecverify_secp256k1(Hash, Addr, Signature)"}
, { 'ECRECOVER_SECP256K1', 16#7f, false, true, true, 1300, [a,a,a], ecrecover_secp256k1, {bytes, bytes}, bytes, "Arg0 := ecrecover_secp256k1(Hash, Signature)"}
, { 'DEACTIVATE', 16#fa, false, true, 3, [], deactivate, {}, none, "Mark the current contract for deactivation."}
, { 'ABORT', 16#fb, true, true, 3, [a], abort, {string}, none, "Abort execution (dont use all gas) with error message in Arg0."}
, { 'EXIT', 16#fc, true, true, 3, [a], exit, {string}, none, "Abort execution (use upp all gas) with error message in Arg0."}
, { 'NOP', 16#fd, false, true, 1, [], nop, {}, none, "The no op. does nothing."}
, { 'ADDRESS_TO_CONTRACT', 16#80, false, true, true, 10, [a,a], address_to_contract, {address}, contract, "Arg0 := Arg1 - A no-op type conversion"}
, { 'BLS12_381_G1_NEG', 16#81, false, true, true, 100, [a,a], bls12_381_g1_neg, {tuple}, tuple, "Arg0 := BLS12_381.g1_neg(Arg1) - Negate a G1-value"}
, { 'BLS12_381_G1_NORM', 16#82, false, true, true, 100, [a,a], bls12_381_g1_norm, {tuple}, tuple, "Arg0 := BLS12_381.g1_normalize(Arg1) - Normalize a G1-value"}
, { 'BLS12_381_G1_VALID', 16#83, false, true, true, 2000, [a,a], bls12_381_g1_valid, {tuple}, bool, "Arg0 := BLS12_381.g1_valid(Arg1) - Check if G1-value is a valid group member"}
, { 'BLS12_381_G1_IS_ZERO', 16#84, false, true, true, 30, [a,a], bls12_381_g1_is_zero, {tuple}, bool, "Arg0 := BLS12_381.g1_is_zero(Arg1) - Check if G1-value is zero"}
, { 'BLS12_381_G1_ADD', 16#85, false, true, true, 100, [a,a,a], bls12_381_g1_add, {tuple, tuple}, tuple, "Arg0 := BLS12_381.g1_add(Arg1, Arg2) - Add two G1-values"}
, { 'BLS12_381_G1_MUL', 16#86, false, true, true, 1000, [a,a,a], bls12_381_g1_mul, {tuple, tuple}, tuple, "Arg0 := BLS12_381.g1_mul(Arg1, Arg2) - Scalar multiplication for a G1-value (Arg1), and an Fr-value"}
, { 'BLS12_381_G2_NEG', 16#87, false, true, true, 100, [a,a], bls12_381_g2_neg, {tuple}, tuple, "Arg0 := BLS12_381.g2_neg(Arg1) - Negate a G2-value"}
, { 'BLS12_381_G2_NORM', 16#88, false, true, true, 100, [a,a], bls12_381_g2_norm, {tuple}, tuple, "Arg0 := BLS12_381.g2_normalize(Arg1) - Normalize a G2-value"}
, { 'BLS12_381_G2_VALID', 16#89, false, true, true, 2000, [a,a], bls12_381_g2_valid, {tuple}, bool, "Arg0 := BLS12_381.g2_valid(Arg1) - Check if G2-value is a valid group member"}
, { 'BLS12_381_G2_IS_ZERO', 16#8a, false, true, true, 30, [a,a], bls12_381_g2_is_zero, {tuple}, bool, "Arg0 := BLS12_381.g2_is_zero(Arg1) - Check if G2-value is zero"}
, { 'BLS12_381_G2_ADD', 16#8b, false, true, true, 100, [a,a,a], bls12_381_g2_add, {tuple, tuple}, tuple, "Arg0 := BLS12_381.g2_add(Arg1, Arg2) - Add two G2-values"}
, { 'BLS12_381_G2_MUL', 16#8c, false, true, true, 1000, [a,a,a], bls12_381_g2_mul, {tuple, tuple}, tuple, "Arg0 := BLS12_381.g2_mul(Arg1, Arg2) - Scalar multiplication for a G2-value (Arg2), and an Fr-value"}
, { 'BLS12_381_GT_INV', 16#8d, false, true, true, 100, [a,a], bls12_381_gt_inv, {tuple}, tuple, "Arg0 := BLS12_381.gt_inv(Arg1) - Invert a GT-value"}
, { 'BLS12_381_GT_ADD', 16#8e, false, true, true, 100, [a,a,a], bls12_381_gt_add, {tuple, tuple}, tuple, "Arg0 := BLS12_381.gt_add(Arg1, Arg2) - Add two GT-values"}
, { 'BLS12_381_GT_MUL', 16#8f, false, true, true, 100, [a,a,a], bls12_381_gt_mul, {tuple, tuple}, tuple, "Arg0 := BLS12_381.gt_mul(Arg1, Arg2) - Multiply two GT-values"}
, { 'BLS12_381_GT_POW', 16#90, false, true, true, 2000, [a,a,a], bls12_381_gt_pow, {tuple, tuple}, tuple, "Arg0 := BLS12_381.gt_pow(Arg1, Arg2) - Scalar exponentiation for a GT-value (Arg2), and an Fr-value"}
, { 'BLS12_381_GT_IS_ONE', 16#91, false, true, true, 30, [a,a], bls12_381_gt_is_one, {tuple}, bool, "Arg0 := BLS12_381.gt_is_one(Arg1) - Check if a GT value is \"one\""}
, { 'BLS12_381_PAIRING', 16#92, false, true, true, 12000, [a,a,a], bls12_381_pairing, {tuple, tuple}, tuple, "Arg0 := BLS12_381.pairing(Arg1, Arg2) - Find the pairing of a G1-value (Arg1) and a G2-value (Arg2)"}
, { 'BLS12_381_MILLER_LOOP', 16#93, false, true, true, 5000, [a,a,a], bls12_381_miller_loop, {tuple, tuple}, tuple, "Arg0 := BLS12_381.miller_loop(Arg1, Arg2) - Do the Miller-loop step of pairing for a G1-value (Arg1) and a G2-value (Arg2)"}
, { 'BLS12_381_FINAL_EXP', 16#94, false, true, true, 7000, [a,a], bls12_381_final_exp, {tuple}, tuple, "Arg0 := BLS12_381.final_exp(Arg1) - Do the final exponentiation in pairing"}
, { 'BLS12_381_INT_TO_FR', 16#95, false, true, true, 30, [a,a], bls12_381_int_to_fr, {tuple}, tuple, "Arg0 := to_montgomery(Arg1) - Convert (Big)integer to montgomery representation (32 bytes)"}
, { 'BLS12_381_INT_TO_FP', 16#96, false, true, true, 30, [a,a], bls12_381_int_to_fp, {tuple}, tuple, "Arg0 := to_montgomery(Arg1) - Convert (Big)integer to montgomery representation (48 bytes)"}
, { 'BLS12_381_FR_TO_INT', 16#97, false, true, true, 30, [a,a], bls12_381_fr_to_int, {tuple}, tuple, "Arg0 := from_montgomery(Arg1) - Convert montgomery representation (32 bytes) to integer"}
, { 'BLS12_381_FP_TO_INT', 16#98, false, true, true, 30, [a,a], bls12_381_fp_to_int, {tuple}, tuple, "Arg0 := from_montgomery(Arg1) - Convert montgomery representation (48 bytes) to integer"}
, { 'DEACTIVATE', 16#fa, false, true, true, 10, [], deactivate, {}, none, "Mark the current contract for deactivation."}
, { 'ABORT', 16#fb, true, true, true, 10, [a], abort, {string}, none, "Abort execution (dont use all gas) with error message in Arg0."}
, { 'EXIT', 16#fc, true, true, true, 10, [a], exit, {string}, none, "Abort execution (use upp all gas) with error message in Arg0."}
, { 'NOP', 16#fd, false, true, true, 1, [], nop, {}, none, "The no op. does nothing."}
%% FUNCTION 16#fe "Function declaration and entrypoint."
%% EXTEND 16#ff "Reserved for future extensions beyond one byte opcodes."
].
@@ -205,16 +237,18 @@ generate_opcodes_ops(Modulename, HrlFile, SrcDir, Ops) ->
Args = lists:flatten([gen_args(Op) || Op <- Ops]),
EndBB = lists:flatten([gen_bb(Op) || Op <- Ops]),
InAuth = lists:flatten([gen_in_auth(Op) || Op <- Ops]),
ResType = lists:flatten([gen_res_type(Op) || Op <- Ops]),
Offchain = lists:flatten([gen_allowed_offchain(Op) || Op <- Ops]),
GasCost = lists:flatten([gen_gas_cost(Op) || Op <- Ops]),
io:format(File, "~s", [prelude("Provides opcode primitives.\n")]),
io:format(File, "~s", [ops_exports(Modulename, HrlFile,
["args/1\n"
" , end_bb/1\n"
" , in_auth/1\n"
" , allowed_offchain/1\n"
" , mnemonic/1\n"
" , m_to_op/1\n"
" , result_type/1\n"
" , gas_cost/1\n"
])]),
io:format(File, "%% FATE mnemonics\n~s", [Mnemonic]),
@@ -232,8 +266,11 @@ generate_opcodes_ops(Modulename, HrlFile, SrcDir, Ops) ->
io:format(File, "%% Is FATE Op allowed in GA Authentication context?\n~s", [InAuth]),
io:format(File, "in_auth(_) -> false.\n\n", []),
io:format(File, "%% What is the result type.\n~s", [ResType]),
io:format(File, "result_type(_) -> none.\n\n", []),
io:format(File, "%% Is FATE Op allowed in a state channel offchain context?\n~s", [Offchain]),
io:format(File, "allowed_offchain(_) -> false.\n\n", []),
io:format(File, "%% Base cost of operation\n~s", [GasCost]),
io:format(File, "gas_cost(Op) -> exit({bad_opcode, Op}).\n\n", []),
file:close(File).
@@ -277,7 +314,7 @@ generate_code_ops(Modulename, SrcDir, Ops) ->
file:close(File).
gen_type(#{type_name := TypeName, type := Type}) ->
lists:flatten(io_lib:format("-type ~-26s :: ~s.\n",
lists:flatten(io_lib:format("-type ~-29s :: ~s.\n",
[TypeName, Type])).
gen_fate_code_type(#{type_name := TypeName}) ->
@@ -355,29 +392,32 @@ ops_exports(Module, HrlFile, Exports) ->
[Module, Exports])).
gen_mnemonic(#{opname := Name, macro := Macro}) ->
lists:flatten(io_lib:format("mnemonic(~21s) -> ~21w ;\n",
lists:flatten(io_lib:format("mnemonic(~24s) -> ~24w ;\n",
[Macro, Name])).
gen_m_to_op(#{opname := Name, macro := Macro}) ->
lists:flatten(io_lib:format("m_to_op(~21w) -> ~21s ;\n",
lists:flatten(io_lib:format("m_to_op(~24w) -> ~24s ;\n",
[Name, Macro])).
gen_args(#{macro := Macro, arity := Arity}) ->
lists:flatten(io_lib:format("args(~21s) -> ~2w ;\n",
lists:flatten(io_lib:format("args(~24s) -> ~2w ;\n",
[Macro, Arity])).
gen_bb(#{macro := Macro, end_bb := EndBB}) ->
lists:flatten(io_lib:format("end_bb(~21s) -> ~w ;\n",
lists:flatten(io_lib:format("end_bb(~24s) -> ~w ;\n",
[Macro, EndBB])).
gen_in_auth(#{macro := Macro, in_auth := InAuth}) ->
lists:flatten(io_lib:format("in_auth(~21s) -> ~w ;\n",
lists:flatten(io_lib:format("in_auth(~24s) -> ~w ;\n",
[Macro, InAuth])).
gen_res_type(#{macro := Macro, res_type := ResType}) ->
lists:flatten(io_lib:format("result_type(~21s) -> ~w ;\n",
[Macro, ResType])).
gen_allowed_offchain(#{macro := Macro, offchain := Offchain}) ->
lists:flatten(io_lib:format("allowed_offchain(~24s) -> ~w ;\n",
[Macro, Offchain])).
gen_gas_cost(#{macro := Macro, gas := Gas}) ->
lists:flatten(io_lib:format("gas_cost(~24s) -> ~w ;\n",
[Macro, Gas])).
prelude(Doc) ->
"%%%-------------------------------------------------------------------\n"
@@ -393,11 +433,11 @@ prelude(Doc) ->
gen_defines(#{opname := Name, opcode := OpCode}) ->
lists:flatten(io_lib:format("-define(~-26w, 16#~2.16.0b).\n", [Name, OpCode])).
lists:flatten(io_lib:format("-define(~-29w, 16#~2.16.0b).\n", [Name, OpCode])).
gen([]) ->
[];
gen([{OpName, OpCode, EndBB, InAuth, Gas, FateFormat, Constructor, ArgTypes, ResType, Doc} | Rest]) ->
gen([{OpName, OpCode, EndBB, InAuth, AllowedOffchain, Gas, FateFormat, Constructor, ArgTypes, ResType, Doc} | Rest]) ->
Arity = length(FateFormat),
Name = atom_to_list(OpName),
LowerName = string:to_lower(Name),
@@ -415,6 +455,7 @@ gen([{OpName, OpCode, EndBB, InAuth, Gas, FateFormat, Constructor, ArgTypes, Res
, arity => Arity
, end_bb => EndBB
, in_auth => InAuth
, offchain => AllowedOffchain
, format => FateFormat
, macro => Macro
, type_name => TypeName
@@ -488,25 +529,33 @@ gen_asm_pp(Module, Path, Ops) ->
io:format(File, "format_op(Op, _Symbols) -> io_lib:format(\";; Bad Op: ~~w\\n\", [Op]).\n", []),
file:close(File).
gen_format(#{opname := Name}) when (Name =:= 'CALL_R') or (Name =:= 'CALL_TR') ->
io_lib:format("format_op({~w, {immediate, Contract}, {immediate, Function}, Value}, Symbols) ->\n"
gen_format(#{opname := Name}) when (Name =:= 'CALL_R') ->
io_lib:format("format_op({~w, {immediate, Contract}, {immediate, Function}, ArgType, RetType, Value}, Symbols) ->\n"
" [\"~s \", lookup(Contract, Symbols), \".\", "
"lookup(Function, Symbols), \" \", "
"format_arg(a, ArgType), \" \", "
"format_arg(a, RetType), \" \", "
"format_arg(a, Value)];\n"
"format_op({~w, Contract, {immediate, Function}, Value}, Symbols) ->\n"
"format_op({~w, Contract, {immediate, Function}, ArgType, RetType, Value}, Symbols) ->\n"
"[\"~s \", format_arg(a, Contract), \".\", "
"lookup(Function, Symbols), \" \", "
"format_arg(a, ArgType), \" \", "
"format_arg(a, RetType), \" \", "
"format_arg(a, Value)];\n",
[Name, atom_to_list(Name), Name, atom_to_list(Name)]);
gen_format(#{opname := Name}) when (Name =:= 'CALL_GR') or (Name =:= 'CALL_GTR') ->
io_lib:format("format_op({~w, {immediate, Contract}, {immediate, Function}, Value, Gas}, Symbols) ->\n"
gen_format(#{opname := Name}) when (Name =:= 'CALL_GR') ->
io_lib:format("format_op({~w, {immediate, Contract}, {immediate, Function}, ArgType, RetType, Value, Gas}, Symbols) ->\n"
" [\"~s \", lookup(Contract, Symbols), \".\", "
"lookup(Function, Symbols), \" \", "
"format_arg(a, ArgType), \" \", "
"format_arg(a, RetType), \" \", "
"format_arg(a, Value), \" \", "
"format_arg(a, Gas)];\n"
"format_op({~w, Contract, {immediate, Function}, Value, Gas}, Symbols) ->\n"
"format_op({~w, Contract, {immediate, Function}, ArgType, RetType, Value, Gas}, Symbols) ->\n"
"[\"~s \", format_arg(a, Contract), \".\", "
"lookup(Function, Symbols), \" \", "
"format_arg(a, ArgType), \" \", "
"format_arg(a, RetType), \" \", "
"format_arg(a, Value), \" \", "
"format_arg(a, Gas)];\n",
[Name, atom_to_list(Name), Name, atom_to_list(Name)]);
@@ -752,4 +801,3 @@ format_arg_doc({is,_N}) -> "Identifier";
format_arg_doc({ii,_N}) -> "Integer";
format_arg_doc({li,_N}) -> "[Integers]";
format_arg_doc({t,_N}) -> "Type".
+218
View File
@@ -0,0 +1,218 @@
%%%-------------------------------------------------------------------
%%% @copyright (C) 2019, Aeternity Anstalt
%%% @doc
%%% Functions for manipulating FATE maps. In particular for mediating
%%% between plain map values (represented by Erlang maps) and maps that are
%%% fully or partially saved in the contract store.
%%% @end
%%% -------------------------------------------------------------------
-module(aeb_fate_maps).
-include("aeb_fate_data.hrl").
-export([ allocate_store_maps/2
, has_store_maps/1
, unfold_store_maps/2
, refcount/1
, refcount_zero/0
, refcount_diff/2
, refcount_union/1
, refcount_union/2
, no_used_ids/0 ]).
-export_type([used_ids/0, maps/0, refcount/0]).
%% Size in bytes of serialization of a map for which we turn it into a store
%% map. It's not worth turning small maps into store maps.
%% Under consensus!
-ifdef(TEST).
-define(STORE_MAP_THRESHOLD, 0).
-else.
-define(STORE_MAP_THRESHOLD, 100).
-endif.
-type fate_value() :: aeb_fate_data:fate_type().
-type fate_value_or_tombstone() :: fate_value() | ?FATE_MAP_TOMBSTONE.
-type id() :: integer().
-type used_ids() :: list(id()).
-type maps() :: #{ id() => aeb_fate_data:fate_map() | aeb_fate_data:fate_store_map() }.
%% -- Allocating store maps --------------------------------------------------
-spec allocate_store_maps(used_ids(), [fate_value_or_tombstone()]) -> {[fate_value_or_tombstone()], maps()}.
allocate_store_maps(Used, Vals) ->
{_Used, Vals1, Maps} = allocate_store_maps_l(Used, Vals, #{}),
{Vals1, Maps}.
allocate_store_maps(Used, ?FATE_MAP_TOMBSTONE = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_TRUE = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_FALSE = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_UNIT = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_BITS(_) = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_BYTES(_) = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_ADDRESS(_) = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_CONTRACT(_) = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_ORACLE(_) = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_ORACLE_Q(_) = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_CHANNEL(_) = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_TYPEREP(_) = Val, Maps) -> {Used, Val, Maps};
allocate_store_maps(Used, Val, Maps) when ?IS_FATE_INTEGER(Val) -> {Used, Val, Maps};
allocate_store_maps(Used, Val, Maps) when ?IS_FATE_STRING(Val) -> {Used, Val, Maps};
allocate_store_maps(Used, ?FATE_TUPLE(Val), Maps) ->
{Used1, Vals, Maps1} = allocate_store_maps_l(Used, tuple_to_list(Val), Maps),
{Used1, ?FATE_TUPLE(list_to_tuple(Vals)), Maps1};
allocate_store_maps(Used, Val, Maps) when ?IS_FATE_LIST(Val) ->
{Used1, Vals, Maps1} = allocate_store_maps_l(Used, ?FATE_LIST_VALUE(Val), Maps),
{Used1, ?MAKE_FATE_LIST(Vals), Maps1};
allocate_store_maps(Used, ?FATE_VARIANT(Arities, Tag, Vals), Maps) ->
{Used1, Vals1, Maps1} = allocate_store_maps_l(Used, tuple_to_list(Vals), Maps),
{Used1, ?FATE_VARIANT(Arities, Tag, list_to_tuple(Vals1)), Maps1};
allocate_store_maps(Used, Val, Maps) when ?IS_FATE_MAP(Val) ->
{Used1, KVs, Maps1} = allocate_store_maps_m(Used, ?FATE_MAP_VALUE(Val), Maps),
Val1 = ?MAKE_FATE_MAP(KVs),
case byte_size(aeb_fate_encoding:serialize(Val1)) < ?STORE_MAP_THRESHOLD of
true -> {Used1, Val1, Maps1};
false ->
{Id, Used2} = next_id(Used1),
{Used2, ?FATE_STORE_MAP(#{}, Id), Maps1#{Id => Val1}}
end;
allocate_store_maps(Used, ?FATE_STORE_MAP(Cache, _Id) = Val, Maps) when Cache =:= #{} ->
{Used, Val, Maps};
allocate_store_maps(Used, ?FATE_STORE_MAP(Cache, Id), Maps) ->
{NewId, Used1} = next_id(Used),
{Used2, Cache1, Maps1} = allocate_store_maps_m(Used1, Cache, Maps),
{Used2, ?FATE_STORE_MAP(#{}, NewId), Maps1#{NewId => ?FATE_STORE_MAP(Cache1, Id)}}.
allocate_store_maps_l(Used, [], Maps) -> {Used, [], Maps};
allocate_store_maps_l(Used, [H | T], Maps) ->
{Used1, H1, Maps1} = allocate_store_maps(Used, H, Maps),
{Used2, T1, Maps2} = allocate_store_maps(Used1, T, Maps1),
{Used2, [H1 | T1], Maps2}.
allocate_store_maps_m(Used, Val, Maps) ->
maps:fold(fun(K, V, {Us, M, Ms}) ->
{Us1, V1, Ms1} = allocate_store_maps(Us, V, Ms),
{Us1, M#{ K => V1 }, Ms1}
end, {Used, #{}, Maps}, Val).
%% -- Unfolding store maps ---------------------------------------------------
-type unfold_fun() :: fun((id()) -> aeb_fate_data:fate_map()).
-spec unfold_store_maps(unfold_fun(), fate_value_or_tombstone()) -> fate_value_or_tombstone().
unfold_store_maps(_Unfold, ?FATE_MAP_TOMBSTONE = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_TRUE = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_FALSE = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_UNIT = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_BITS(_) = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_BYTES(_) = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_ADDRESS(_) = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_CONTRACT(_) = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_ORACLE(_) = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_ORACLE_Q(_) = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_CHANNEL(_) = Val) -> Val;
unfold_store_maps(_Unfold, ?FATE_TYPEREP(_) = Val) -> Val;
unfold_store_maps(_Unfold, Val) when ?IS_FATE_INTEGER(Val) -> Val;
unfold_store_maps(_Unfold, Val) when ?IS_FATE_STRING(Val) -> Val;
unfold_store_maps(Unfold, ?FATE_TUPLE(Val)) ->
Vals = unfold_store_maps_l(Unfold, tuple_to_list(Val)),
?FATE_TUPLE(list_to_tuple(Vals));
unfold_store_maps(Unfold, Val) when ?IS_FATE_LIST(Val) ->
?MAKE_FATE_LIST(unfold_store_maps_l(Unfold, ?FATE_LIST_VALUE(Val)));
unfold_store_maps(Unfold, ?FATE_VARIANT(Arities, Tag, Vals)) ->
Vals1 = unfold_store_maps_l(Unfold, tuple_to_list(Vals)),
?FATE_VARIANT(Arities, Tag, list_to_tuple(Vals1));
unfold_store_maps(Unfold, Val) when ?IS_FATE_MAP(Val) ->
?MAKE_FATE_MAP(unfold_store_maps_m(Unfold, ?FATE_MAP_VALUE(Val)));
unfold_store_maps(Unfold, ?FATE_STORE_MAP(Cache, Id)) ->
StoreMap = Unfold(Id),
maps:fold(fun write_cache/3, unfold_store_maps(Unfold, StoreMap),
unfold_store_maps_m(Unfold, Cache)).
unfold_store_maps_l(Unfold, Vals) ->
[ unfold_store_maps(Unfold, Val) || Val <- Vals ].
unfold_store_maps_m(Unfold, Val) ->
maps:map(fun(_, V) -> unfold_store_maps(Unfold, V) end, Val).
write_cache(Key, ?FATE_MAP_TOMBSTONE, Map) ->
maps:remove(Key, Map);
write_cache(Key, Val, Map) ->
Map#{ Key => Val }.
%% -- Reference counting -----------------------------------------------------
-type refcount() :: #{id() => integer()}.
-spec refcount_zero() -> refcount().
refcount_zero() -> #{}.
-spec refcount_diff(refcount(), refcount()) -> refcount().
refcount_diff(New, Old) ->
maps:fold(fun(K, N, C) -> maps:update_with(K, fun(M) -> M - N end, -N, C) end,
New, Old).
-spec refcount_union([refcount()]) -> refcount().
refcount_union(Counts) -> lists:foldl(fun refcount_union/2, #{}, Counts).
-spec refcount_union(refcount(), refcount()) -> refcount().
refcount_union(A, B) ->
maps:fold(fun(K, N, C) -> maps:update_with(K, fun(M) -> M + N end, N, C) end,
B, A).
-spec has_store_maps(fate_value()) -> boolean().
has_store_maps(Val) ->
refcount_zero() /= refcount(Val).
-spec refcount(fate_value()) -> refcount().
refcount(Val) -> refcount(Val, #{}).
-spec refcount(fate_value_or_tombstone(), refcount()) -> refcount().
refcount(?FATE_MAP_TOMBSTONE, Count) -> Count;
refcount(?FATE_TRUE, Count) -> Count;
refcount(?FATE_FALSE, Count) -> Count;
refcount(?FATE_UNIT, Count) -> Count;
refcount(?FATE_BITS(_), Count) -> Count;
refcount(?FATE_BYTES(_), Count) -> Count;
refcount(?FATE_ADDRESS(_), Count) -> Count;
refcount(?FATE_CONTRACT(_), Count) -> Count;
refcount(?FATE_ORACLE(_), Count) -> Count;
refcount(?FATE_ORACLE_Q(_), Count) -> Count;
refcount(?FATE_CHANNEL(_), Count) -> Count;
refcount(?FATE_TYPEREP(_), Count) -> Count;
refcount(Val, Count) when ?IS_FATE_INTEGER(Val) -> Count;
refcount(Val, Count) when ?IS_FATE_STRING(Val) -> Count;
refcount(?FATE_TUPLE(Val), Count) ->
refcount_l(tuple_to_list(Val), Count);
refcount(Val, Count) when ?IS_FATE_LIST(Val) ->
refcount_l(?FATE_LIST_VALUE(Val), Count);
refcount(?FATE_VARIANT(_Arities, _Tag, Vals), Count) ->
refcount_l(tuple_to_list(Vals), Count);
refcount(Val, Count) when ?IS_FATE_MAP(Val) ->
refcount_m(?FATE_MAP_VALUE(Val), Count);
refcount(?FATE_STORE_MAP(Cache, Id), Count) ->
refcount_m(Cache, maps:update_with(Id, fun(N) -> N + 1 end, 1, Count)).
refcount_l(Vals, Count) ->
lists:foldl(fun refcount/2, Count, Vals).
refcount_m(Val, Count) ->
%% No maps in map keys
maps:fold(fun(_, ?FATE_MAP_TOMBSTONE, C) -> C;
(_, V, C) -> refcount(V, C) end, Count, Val).
%% -- Map id allocation ------------------------------------------------------
-spec no_used_ids() -> used_ids().
no_used_ids() -> [].
-spec next_id(used_ids()) -> {id(), used_ids()}.
next_id(UsedIds) ->
next_id(UsedIds, 0, []).
next_id(Used, J, Acc) when Used == []; J < hd(Used) ->
{J, lists:reverse(Acc) ++ [J | Used]};
next_id([I | Used], I, Acc) ->
next_id(Used, I + 1, [I | Acc]);
next_id([I | Used], J, Acc) when J > I ->
next_id(Used, J, [I | Acc]).
+20
View File
@@ -14,6 +14,7 @@
, heap_value_maps/1
, heap_value_offset/1
, heap_value_heap/1
, heap_value_byte_size/1
, heap_fragment_maps/1
, heap_fragment_offset/1
, heap_fragment_heap/1
@@ -90,6 +91,25 @@ heap_value_offset({_, Heap}) -> Heap#heap.offset.
binary() | #{non_neg_integer() => non_neg_integer()}.
heap_value_heap({_, Heap}) -> Heap#heap.heap.
%% -- Byte size of a heap value ----------------------------------------------
-spec heap_value_byte_size(heap_value()) -> non_neg_integer().
heap_value_byte_size({_, Heap}) ->
Value = Heap#heap.heap,
Maps = Heap#heap.maps,
ValueSize =
if is_binary(Value) -> byte_size(Value);
true -> 0 end,
MapsSize =
lists:sum([ pmap_size(Map) || Map <- maps:values(Maps#maps.maps) ]),
ValueSize + MapsSize.
pmap_size(#pmap{data = stored}) -> 0;
pmap_size(#pmap{data = Data}) when is_map(Data) ->
lists:sum([ byte_size(Key) + byte_size(Val)
|| {Key, Val} <- maps:to_list(Data),
Val /= tombstone ]).
%% -- Value to binary --------------------------------------------------------
-spec to_binary(aeb_aevm_data:data()) -> aeb_aevm_data:heap().
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
ADD a 0 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
+14 -2
View File
@@ -1,7 +1,7 @@
;; CONTRACT all_instructions
;; Dont expect this contract to typecheck or run.
;; Just used to check assembler rountrip of all instructions.
;; Just used to check assembler roundtrip of all instructions.
FUNCTION foo () : {tuple, []}
RETURN
@@ -224,7 +224,13 @@ FUNCTION foo () : {tuple, []}
AENS_REVOKE
ECVERIFY
ECRECOVER_SECP256K1
VERIFY_SIG
VERIFY_SIG_SECP256K1
ECVERIFY_SECP256K1
SHA3 a
@@ -247,3 +253,9 @@ FUNCTION foo () : {tuple, []}
AUTH_TX_HASH
CONTRACT_TO_ADDRESS @ct_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
IS_ORACLE @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
IS_CONTRACT @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
IS_PAYABLE @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
AND a true true
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
APPEND a [1] [2]
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
BALANCE a
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
BITS_ALL a
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
BITS_ALL_N a 42
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
BITS_ALLA
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
BITS_AND a <101010> <010101>
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
BITS_CLEAR a <101010> 1
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
BITS_DIFF a <101010> <010101>
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
BITS_NONE a
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
BITS_NONEA
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
BITS_OR a <101010> <010101>
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
BITS_SET a <101010> 2
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
BITS_SUM a <101010>
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
BITS_TEST a <101010> 1
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
BLAKE2B a "This is a string"
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
BLOCKHASH var3 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
CALLER var3
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
CONS a 42 []
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC a
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DECA
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DIV a 1 1
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DUP 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DUPA
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
EGT a 0 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
ELEMENT a 0 (42)
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
ELT a 0 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-5
View File
@@ -1,5 +0,0 @@
;; CONTRACT empty
FUNCTION run () : integer
RETURNR 0
-12
View File
@@ -1,12 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
JUMP 1
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
EQ a 0 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
GASPRICE var3
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
GT a 0 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
HD a [42]
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
INC a
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
INCA
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
INT_TO_ADDR a 42
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
INT_TO_STR a 42
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
IS_NIL a []
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
LENGTH a [42]
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
LT a 0 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
MAP_DELETE a { 42 => true } 42
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
MAP_EMPTY a
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
MAP_FROM_LIST a [ ( 42, true) ]
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
MAP_LOOKUP a { 42 => true } 42
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
MAP_LOOKUPD a { 42 => true } 41 false
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
MAP_MEMBER a { 42 => true } 42
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
MAP_UPDATE a { 42 => true } 42 false
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
MOD a 1 1
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
MUL a 0 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
+2 -4
View File
@@ -4,8 +4,8 @@ FUNCTION preclaim(address, {bytes, 32}) : {tuple, []}
AENS_PRECLAIM #AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== arg0 arg1
RETURNR {}
FUNCTION claim(address, string, integer) : {tuple, []}
AENS_CLAIM #AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== arg0 arg1 arg2
FUNCTION claim(address, string, integer, integer) : {tuple, []}
AENS_CLAIM #AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== arg0 arg1 arg2 arg3
RETURNR {}
FUNCTION transfer(address, address, {bytes, 32}) : {tuple, []}
@@ -19,5 +19,3 @@ FUNCTION revoke(address, {bytes, 32}) : {tuple, []}
FUNCTION resolve(string, string) : {variant, [{tuple, []}, {tuple, [address]}]}
AENS_RESOLVE a arg0 arg1 'address
RETURN
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
NEQ a 0 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
NIL a
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
NOT a true
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
OR a true true
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
ORIGIN var3
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
POP a
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
POW a 1 1
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-122
View File
@@ -1,122 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
JUMP 1
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
PUSH 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
SETELEMENT a 0 (42) 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
SHA256 a "This is a string"
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
STORE var3 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
STR_JOIN a "hello " "world!"
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
STR_REVERSE a "abba"
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; CONTRACT empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
SUB a 0 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
+5 -9
View File
@@ -28,15 +28,11 @@ FUNCTION tailcall(integer) -> integer
INCA
CALL_T "inc"
FUNCTION remote_call(integer) : integer
PUSH arg0
CALL_R remote.add_five 0
INCA
RETURN
FUNCTION remote_tailcall(integer) : integer
PUSH arg0
CALL_TR remote add_five 0
;; FUNCTION remote_call(integer) : integer
;; PUSH arg0
;; CALL_R remote.add_five {tuple, [integer]} integer 0 ;; typereps don't parse
;; INCA
;; RETURN
;; Test the code from the shell
;; _build/default/rel/aessembler/bin/aessembler console
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
TL a [42]
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH 0
JUMP 1
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
TUPLE a 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
VARIANT a [0] 0 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0
-123
View File
@@ -1,123 +0,0 @@
;; Contract empty_loop
FUNCTION run (integer) : integer
STORE var0 arg0
PUSH (0)
JUMP 1
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
VARIANT_TEST a (| [0] | 0 | () |) 0
DEC var0
GT var1 var0 0
JUMPIF var1 1
RETURNR 0