x
1012
parameter (or
(or
(or
(or
(pair %borrow nat
(pair address
(pair address
(pair nat
(pair nat
(pair bool
(pair int (pair int nat))))))))
(pair %deposit address
(pair address
(pair nat (pair nat (pair bool (pair int int)))))))
(or (contract %getInterestIndex nat)
(pair %liquidate nat
(pair address
(pair address
(pair nat
(pair nat
(pair bool
(pair int
(pair int
address))))))))))
(or
(or
(pair %repay address
(pair address
(pair nat
(pair nat
(pair bool (pair int (pair int nat)))))))
(nat %setCollateralizationPercentage))
(or (address %setDeveloperFundContract)
(or (address %setGovernorContract) (nat %setLiquidationFeePercent)))))
(or
(or
(or (address %setLiquidityPoolContract) (address %setOvenProxyContract))
(or (nat %setPrivateLiquidationThreshold) (nat %setStabilityFee)))
(or (or (address %setStabilityFundContract) (address %setTokenContract))
(or
(pair %updateFundSplits (nat %developerFundSplit)
(nat %stabilityFundSplit))
(or (pair %updateParams nat (pair nat (pair nat (option mutez))))
(pair %withdraw nat
(pair address
(pair address
(pair nat
(pair nat
(pair bool
(pair int
(pair int
mutez)))))))))))));
storage (pair
(pair
(pair (nat %collateralizationPercentage)
(pair (nat %devFundSplit) (address %developerFundContractAddress)))
(pair (address %governorContractAddress)
(pair (nat %interestIndex) (timestamp %lastInterestIndexUpdateTime))))
(pair
(pair (nat %liquidationFeePercent)
(pair (address %liquidityPoolContractAddress)
(address %ovenProxyContractAddress)))
(pair (pair (nat %privateOwnerLiquidationThreshold) (nat %stabilityFee))
(pair (address %stabilityFundContractAddress)
(address %tokenContractAddress)))));
code { LAMBDA
(pair int (pair nat (pair nat nat)))
nat
{ DUP ;
GET 5 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
ADD ;
PUSH nat 1000000000000000000 ;
DIG 2 ;
DUP ;
GET 5 ;
SWAP ;
DUP ;
DUG 4 ;
GET 3 ;
ADD ;
DUP 4 ;
CAR ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PUSH nat 1000000000000000000 ;
DIG 5 ;
GET 6 ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} } ;
SWAP ;
LAMBDA
(pair nat (pair nat nat))
nat
{ PUSH nat 1000000000000000000 ;
SWAP ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 3 ;
GET 4 ;
MUL ;
PUSH nat 1000000000000000000 ;
ADD ;
DIG 2 ;
CAR ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } } ;
SWAP ;
LAMBDA
(pair nat (pair nat nat))
nat
{ DUP ;
GET 4 ;
PUSH nat 100 ;
SWAP ;
PUSH nat 1000000000000000000 ;
DUP ;
DIG 4 ;
DUP ;
GET 3 ;
SWAP ;
CAR ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL } ;
SWAP ;
UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 2 ; FAILWITH } ;
DUP ;
UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH bool False ;
DUP 4 ;
COMPARE ;
EQ ;
IF {} { PUSH int 16 ; FAILWITH } ;
PUSH nat 0 ;
DUP 18 ;
DUP 18 ;
PUSH nat 60 ;
DUP 18 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 18 ;
GET 5 ;
CDR ;
PAIR ;
DUP 18 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 4 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 7 ;
PAIR ;
DUP 5 ;
CAR ;
PAIR ;
EXEC ;
DUP 3 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 4 ;
CDR ;
DUP 7 ;
ADD ;
ADD ;
COMPARE ;
GT ;
IF
{ DIG 5 ;
DROP ;
DIG 6 ;
DROP ;
DIG 7 ;
DROP ;
DIG 8 ;
DROP ;
DIG 8 ;
DROP ;
DUP 9 ;
CAR ;
CAR ;
CAR ;
DIG 10 ;
DUP 13 ;
DUP 13 ;
PUSH nat 60 ;
DUP 14 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 14 ;
GET 5 ;
CDR ;
PAIR ;
DUP 14 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 5 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 8 ;
PAIR ;
DUP 6 ;
CAR ;
PAIR ;
EXEC ;
DUP 4 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 5 ;
CDR ;
DUP 8 ;
ADD ;
ADD ;
DIG 10 ;
PAIR ;
DIG 7 ;
PAIR ;
EXEC ;
COMPARE ;
GE ;
IF {} { PUSH int 11 ; FAILWITH } }
{ DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 5 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 7 ;
DROP } ;
DUP 7 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DUP 12 ;
PUSH nat 60 ;
DUP 13 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 13 ;
GET 5 ;
CDR ;
PAIR ;
DIG 12 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 7 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 60 ;
DUP ;
DUP 13 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
INT ;
DIG 11 ;
CAR ;
GET 6 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 6 ;
NIL operation ;
DUP 8 ;
GET 3 ;
GET 4 ;
CONTRACT %updateState (pair address
(pair nat (pair int (pair int bool)))) ;
IF_NONE { UNIT ; FAILWITH } {} ;
BALANCE ;
DIG 5 ;
DUP 11 ;
PUSH nat 60 ;
DUP 12 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 12 ;
GET 5 ;
CDR ;
PAIR ;
DUP 12 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
INT ;
PAIR ;
DIG 11 ;
DIG 11 ;
PUSH nat 60 ;
DUP 13 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 13 ;
GET 5 ;
CDR ;
PAIR ;
DUP 13 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 7 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 9 ;
PAIR ;
DUP 8 ;
CAR ;
PAIR ;
EXEC ;
DIG 5 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
INT ;
PAIR ;
DUP 5 ;
CDR ;
DIG 6 ;
ADD ;
PAIR ;
DIG 6 ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUP 4 ;
GET 8 ;
CONTRACT %mint (pair (address %address) (nat %value)) ;
IF_NONE { UNIT ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
CDR ;
DIG 4 ;
PAIR ;
TRANSFER_TOKENS ;
CONS }
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 2 ; FAILWITH } ;
UNPAIR ;
SWAP ;
GET 4 ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP ;
PUSH bool False ;
COMPARE ;
EQ ;
IF {} { PUSH int 16 ; FAILWITH } ;
DUP 5 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DUP 10 ;
PUSH nat 60 ;
DUP 11 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 11 ;
GET 5 ;
CDR ;
PAIR ;
DIG 10 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 5 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 60 ;
DUP ;
DUP 11 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
INT ;
DIG 9 ;
CAR ;
GET 6 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 4 ;
NIL operation ;
DUP 6 ;
GET 3 ;
GET 4 ;
CONTRACT %updateState (pair address
(pair nat (pair int (pair int bool)))) ;
IF_NONE { UNIT ; FAILWITH } {} ;
BALANCE ;
DIG 3 ;
DUP 9 ;
PUSH nat 60 ;
DUP 10 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 10 ;
GET 5 ;
CDR ;
PAIR ;
DUP 10 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
INT ;
PAIR ;
DIG 9 ;
DIG 9 ;
PUSH nat 60 ;
DUP 11 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 11 ;
GET 5 ;
CDR ;
PAIR ;
DUP 11 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 7 ;
CAR ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 8 ;
PAIR ;
DUP 7 ;
CDR ;
PAIR ;
EXEC ;
DIG 5 ;
CAR ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
INT ;
PAIR ;
DIG 4 ;
PAIR ;
DIG 4 ;
PAIR ;
TRANSFER_TOKENS ;
CONS } }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH int 15 ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DUP 7 ;
PUSH nat 60 ;
DUP 8 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 8 ;
GET 5 ;
CDR ;
PAIR ;
DIG 7 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 60 ;
DUP ;
DUP 8 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
INT ;
DIG 6 ;
CAR ;
GET 6 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
NIL operation ;
SWAP ;
PUSH mutez 0 ;
DIG 4 ;
PUSH nat 60 ;
DUP 6 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 6 ;
GET 5 ;
CDR ;
PAIR ;
DUP 6 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
TRANSFER_TOKENS ;
CONS }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 2 ; FAILWITH } ;
DUP ;
UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
CDR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH bool False ;
DIG 3 ;
COMPARE ;
EQ ;
IF {} { PUSH int 16 ; FAILWITH } ;
DUP 9 ;
CAR ;
CAR ;
CAR ;
DUP 11 ;
DUP 14 ;
DUP 14 ;
PUSH nat 60 ;
DUP 14 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 14 ;
GET 5 ;
CDR ;
PAIR ;
DUP 14 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 5 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 7 ;
PAIR ;
DUP 6 ;
CAR ;
PAIR ;
EXEC ;
DUP 4 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 6 ;
ADD ;
DUP 9 ;
PAIR ;
DUP 7 ;
PAIR ;
EXEC ;
COMPARE ;
LT ;
IF {} { PUSH int 10 ; FAILWITH } ;
DUP 9 ;
GET 3 ;
GET 3 ;
DUP 3 ;
CDR ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ DUP 9 ; GET 7 ; DUP 3 ; CDR ; COMPARE ; EQ } ;
IF
{ DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 6 ; DROP ; PUSH bool True }
{ DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DUP ;
GET 5 ;
CAR ;
SWAP ;
DUP ;
DUG 8 ;
CAR ;
CAR ;
CAR ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
DIG 8 ;
DUP 11 ;
DUP 11 ;
PUSH nat 60 ;
DUP 12 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 12 ;
GET 5 ;
CDR ;
PAIR ;
DUP 12 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 5 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 7 ;
PAIR ;
DUP 6 ;
CAR ;
PAIR ;
EXEC ;
DUP 4 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 6 ;
ADD ;
DIG 8 ;
PAIR ;
DUP 7 ;
PAIR ;
EXEC ;
COMPARE ;
LT } ;
IF {} { PUSH int 26 ; FAILWITH } ;
NIL operation ;
DUP 7 ;
GET 8 ;
CONTRACT %burn (pair (address %address) (nat %value)) ;
IF_NONE { UNIT ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH nat 1000000000000000000 ;
DUP 10 ;
GET 3 ;
CAR ;
DUP 13 ;
DUP 13 ;
PUSH nat 60 ;
DUP 14 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 14 ;
GET 5 ;
CDR ;
PAIR ;
DUP 14 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 8 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 10 ;
PAIR ;
DUP 9 ;
CAR ;
PAIR ;
EXEC ;
DUP 7 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 9 ;
ADD ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 12 ;
DUP 12 ;
PUSH nat 60 ;
DUP 13 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 13 ;
GET 5 ;
CDR ;
PAIR ;
DUP 13 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 7 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 9 ;
PAIR ;
DUP 8 ;
CAR ;
PAIR ;
EXEC ;
DUP 6 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 8 ;
ADD ;
ADD ;
DUP 6 ;
CDR ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUP 7 ;
GET 8 ;
CONTRACT %mint (pair (address %address) (nat %value)) ;
IF_NONE { UNIT ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH nat 1000000000000000000 ;
DUP 10 ;
CAR ;
CAR ;
GET 3 ;
PUSH nat 1000000000000000000 ;
DUP 12 ;
GET 3 ;
CAR ;
DUP 15 ;
DUP 15 ;
PUSH nat 60 ;
DUP 16 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 16 ;
GET 5 ;
CDR ;
PAIR ;
DUP 16 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 10 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 12 ;
PAIR ;
DUP 11 ;
CAR ;
PAIR ;
EXEC ;
DUP 9 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 11 ;
ADD ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 14 ;
DUP 14 ;
PUSH nat 60 ;
DUP 15 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 15 ;
GET 5 ;
CDR ;
PAIR ;
DUP 15 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 9 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 11 ;
PAIR ;
DUP 10 ;
CAR ;
PAIR ;
EXEC ;
DUP 8 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
ADD ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 10 ;
CAR ;
CAR ;
GET 4 ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUP 7 ;
GET 8 ;
CONTRACT %mint (pair (address %address) (nat %value)) ;
IF_NONE { UNIT ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH nat 1000000000000000000 ;
DUP 10 ;
CAR ;
CAR ;
GET 3 ;
PUSH nat 1000000000000000000 ;
DUP 12 ;
GET 3 ;
CAR ;
DUP 15 ;
DUP 15 ;
PUSH nat 60 ;
DUP 16 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 16 ;
GET 5 ;
CDR ;
PAIR ;
DUP 16 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 10 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 12 ;
PAIR ;
DUP 11 ;
CAR ;
PAIR ;
EXEC ;
DUP 9 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 11 ;
ADD ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 14 ;
DUP 14 ;
PUSH nat 60 ;
DUP 15 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 15 ;
GET 5 ;
CDR ;
PAIR ;
DUP 15 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 9 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 11 ;
PAIR ;
DUP 10 ;
CAR ;
PAIR ;
EXEC ;
DUP 8 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
ADD ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
PUSH nat 1000000000000000000 ;
DUP 11 ;
GET 3 ;
CAR ;
DUP 14 ;
DUP 14 ;
PUSH nat 60 ;
DUP 15 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 15 ;
GET 5 ;
CDR ;
PAIR ;
DUP 15 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 9 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 11 ;
PAIR ;
DUP 10 ;
CAR ;
PAIR ;
EXEC ;
DUP 8 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 10 ;
ADD ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DIG 12 ;
DUP 13 ;
PUSH nat 60 ;
DUP 14 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 14 ;
GET 5 ;
CDR ;
PAIR ;
DUP 14 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 8 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DIG 9 ;
PAIR ;
DUP 9 ;
CAR ;
PAIR ;
EXEC ;
DIG 6 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
ADD ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
DUP 8 ;
GET 7 ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUP 5 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DUP 10 ;
PUSH nat 60 ;
DUP 11 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 11 ;
GET 5 ;
CDR ;
PAIR ;
DIG 10 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 5 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 60 ;
DUP ;
DUP 11 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
INT ;
DIG 9 ;
CAR ;
GET 6 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 5 ;
GET 3 ;
GET 4 ;
CONTRACT %updateState (pair address
(pair nat (pair int (pair int bool)))) ;
IF_NONE { UNIT ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH bool True ;
DIG 8 ;
PUSH nat 60 ;
DUP 10 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 10 ;
GET 5 ;
CDR ;
PAIR ;
DUP 10 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
INT ;
PAIR ;
PUSH nat 0 ;
INT ;
PAIR ;
PUSH nat 0 ;
PAIR ;
DIG 6 ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
CDR ;
CONTRACT unit ;
IF_NONE { UNIT ; FAILWITH } {} ;
PUSH mutez 1 ;
PUSH nat 1000000000000 ;
DIG 4 ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS } } }
{ IF_LEFT
{ IF_LEFT
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 2 ; FAILWITH } ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH bool False ;
DUP 4 ;
COMPARE ;
EQ ;
IF {} { PUSH int 16 ; FAILWITH } ;
DUP 9 ;
DUP 9 ;
PUSH nat 60 ;
DUP 10 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 10 ;
GET 5 ;
CDR ;
PAIR ;
DUP 10 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 3 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 6 ;
PAIR ;
DUP 4 ;
CAR ;
PAIR ;
EXEC ;
SWAP ;
DUP ;
DUG 2 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 3 ;
CDR ;
COMPARE ;
LT ;
IF
{ SWAP ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 3 ;
CDR ;
DIG 10 ;
DUP 11 ;
PUSH nat 60 ;
DUP 12 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 12 ;
GET 5 ;
CDR ;
PAIR ;
DUP 12 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 5 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 8 ;
PAIR ;
DUP 6 ;
CAR ;
PAIR ;
EXEC ;
DIG 3 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
DIG 4 }
{ DUP 9 ;
DUP 9 ;
PUSH nat 60 ;
DUP 10 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 10 ;
GET 5 ;
CDR ;
PAIR ;
DUP 10 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 3 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 6 ;
PAIR ;
DUP 4 ;
CAR ;
PAIR ;
EXEC ;
SWAP ;
DUP ;
DUG 2 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
PUSH nat 0 ;
DIG 10 ;
DUP 11 ;
PUSH nat 60 ;
DUP 12 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 12 ;
GET 5 ;
CDR ;
PAIR ;
DUP 12 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 5 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 8 ;
PAIR ;
DUP 6 ;
CAR ;
PAIR ;
EXEC ;
DIG 3 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 4 ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
DIG 5 ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} } ;
DUP 8 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DUP 13 ;
PUSH nat 60 ;
DUP 14 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 14 ;
GET 5 ;
CDR ;
PAIR ;
DIG 13 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 8 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 60 ;
DUP ;
DUP 14 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
INT ;
DIG 12 ;
CAR ;
GET 6 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 7 ;
NIL operation ;
DUP 9 ;
GET 3 ;
GET 4 ;
CONTRACT %updateState (pair address
(pair nat (pair int (pair int bool)))) ;
IF_NONE { UNIT ; FAILWITH } {} ;
BALANCE ;
DIG 7 ;
DIG 11 ;
PUSH nat 60 ;
DUP 13 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 13 ;
GET 5 ;
CDR ;
PAIR ;
DUP 13 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
INT ;
PAIR ;
DIG 5 ;
INT ;
PAIR ;
DIG 4 ;
PAIR ;
DIG 7 ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUP 5 ;
GET 8 ;
CONTRACT %mint (pair (address %address) (nat %value)) ;
IF_NONE { UNIT ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH nat 1000000000000000000 ;
DUP 8 ;
CAR ;
CAR ;
GET 3 ;
DUP 6 ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 8 ;
CAR ;
CAR ;
GET 4 ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUP 5 ;
GET 8 ;
CONTRACT %mint (pair (address %address) (nat %value)) ;
IF_NONE { UNIT ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH nat 1000000000000000000 ;
DUP 8 ;
CAR ;
CAR ;
GET 3 ;
DUP 6 ;
MUL ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DIG 4 ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
DUP 7 ;
GET 7 ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUP 4 ;
GET 8 ;
CONTRACT %burn (pair (address %address) (nat %value)) ;
IF_NONE { UNIT ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
CDR ;
DIG 4 ;
PAIR ;
TRANSFER_TOKENS ;
CONS }
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 3 ;
PAIR ;
PAIR ;
PAIR ;
NIL operation } }
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
DIG 3 ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CDR ;
DIG 3 ;
PAIR ;
PAIR ;
SWAP ;
PAIR } } ;
NIL operation } } }
{ IF_LEFT
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
DIG 4 ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR } }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR }
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DIG 6 ;
PUSH nat 60 ;
DUP 8 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 8 ;
GET 5 ;
CDR ;
PAIR ;
DIG 7 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 60 ;
DUP ;
DUP 8 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
INT ;
DIG 6 ;
CAR ;
GET 6 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR } } ;
NIL operation }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
UPDATE 7 }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
UPDATE 8 } ;
NIL operation }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
PUSH nat 1000000000000000000 ;
SWAP ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 3 ;
CAR ;
ADD ;
COMPARE ;
EQ ;
IF {} { PUSH int 25 ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
DIG 4 ;
CAR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
NIL operation }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 4 ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DIG 6 ;
PUSH nat 60 ;
DUP 8 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 8 ;
GET 5 ;
CDR ;
PAIR ;
DIG 7 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 2 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 60 ;
DUP ;
DUP 8 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
INT ;
DIG 6 ;
CAR ;
GET 6 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
DIG 3 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
DIG 6 ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
CDR ;
DIG 3 ;
PAIR ;
PAIR ;
SWAP ;
UNPAIR ;
CDR ;
DIG 3 ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
NIL operation }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 2 ; FAILWITH } ;
DUP ;
UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH nat 0 ;
DUP 15 ;
DUP 15 ;
PUSH nat 60 ;
DUP 15 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 15 ;
GET 5 ;
CDR ;
PAIR ;
DUP 15 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 4 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 7 ;
PAIR ;
DUP 5 ;
CAR ;
PAIR ;
EXEC ;
DUP 3 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 6 ;
ADD ;
COMPARE ;
GT ;
IF
{ DIG 8 ;
DROP ;
DIG 8 ;
DROP ;
DUP 9 ;
CAR ;
CAR ;
CAR ;
DIG 10 ;
DUP 13 ;
DUP 13 ;
PUSH nat 60 ;
DUP 14 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 14 ;
GET 5 ;
CDR ;
PAIR ;
DUP 14 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 5 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 8 ;
PAIR ;
DUP 6 ;
CAR ;
PAIR ;
EXEC ;
DUP 4 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
DUP 7 ;
ADD ;
DIG 10 ;
PAIR ;
PUSH nat 1000000000000 ;
PUSH mutez 1 ;
DUP 7 ;
CDR ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
MUL ;
DUP 9 ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
EXEC ;
COMPARE ;
GE ;
IF {} { PUSH int 11 ; FAILWITH } }
{ DIG 7 ; DROP ; DIG 7 ; DROP ; DIG 7 ; DROP ; DIG 8 ; DROP } ;
DUP 8 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DUP 13 ;
PUSH nat 60 ;
DUP 14 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 14 ;
GET 5 ;
CDR ;
PAIR ;
DIG 13 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 8 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
PUSH nat 60 ;
DUP ;
DUP 14 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
INT ;
DIG 12 ;
CAR ;
GET 6 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 7 ;
NIL operation ;
DUP 9 ;
GET 3 ;
GET 4 ;
CONTRACT %updateState (pair address
(pair nat
(pair int (pair int bool)))) ;
IF_NONE { UNIT ; FAILWITH } {} ;
DUP 4 ;
CDR ;
PUSH mutez 1 ;
PUSH nat 1000000000000 ;
DIG 9 ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
MUL ;
SUB_MUTEZ ;
IF_NONE { UNIT ; FAILWITH } {} ;
DIG 5 ;
DUP 11 ;
PUSH nat 60 ;
DUP 12 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 12 ;
GET 5 ;
CDR ;
PAIR ;
DUP 12 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
INT ;
PAIR ;
DIG 11 ;
DIG 11 ;
PUSH nat 60 ;
DUP 13 ;
CAR ;
GET 6 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } { CAR } ;
DUP 13 ;
GET 5 ;
CDR ;
PAIR ;
DUP 13 ;
CAR ;
GET 5 ;
PAIR ;
EXEC ;
DUP 7 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
PAIR ;
DUP 9 ;
PAIR ;
DUP 8 ;
CAR ;
PAIR ;
EXEC ;
DIG 5 ;
ISNAT ;
IF_NONE { UNIT ; FAILWITH } {} ;
ADD ;
INT ;
PAIR ;
DIG 5 ;
PAIR ;
DIG 6 ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DIG 2 ;
CONTRACT unit ;
IF_NONE { UNIT ; FAILWITH } {} ;
DIG 2 ;
CDR ;
UNIT ;
TRANSFER_TOKENS ;
CONS } } } } } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR }