x
1004
{ parameter (or (or (or (address %ChangeAdmin) (or (option %ChangeBakerAddress key_hash) (unit %ChangeLockState))) (or (unit %ChangeState) (or (address %ChangeSystem) (pair %add_liquidity (nat %maxCashDeposited) (pair (nat %minLqtMinted) (address %owner)))))) (or (or (pair %ctez_to_tez (nat %cashSold) (pair (nat %minTezBought) (address %recipient))) (or (nat %ctez_to_tez_callback) (unit %default))) (or (or (pair %forwardFee (nat %epoch) (address %feeDistributor)) (pair %remove_liquidity (nat %lqtBurned) (pair (nat %minCashWithdrawn) (nat %minTezWithdrawn)))) (or (pair %tez_to_ctez (nat %minCashBought) (address %recipient)) (nat %tez_to_ctez_callback))))) ; storage (pair (pair (pair (pair (bool %Locked) (address %admin)) (pair (address %ctezAddress) (nat %ctezFee))) (pair (pair (nat %ctezPool) (address %ctez_admin)) (pair (nat %lpFee) (pair (address %lqtAddress) (nat %lqtTotal))))) (pair (pair (pair (option %minAmount nat) (bool %paused)) (pair (option %recipient address) (option %sender address))) (pair (pair (bool %state) (nat %tezPool)) (pair (option %tradeAmount nat) (pair (option %voterContract address) (nat %xtzFee)))))) ; code { LAMBDA nat nat { DUP ; PUSH nat 0 ; SWAP ; COMPARE ; GE ; IF {} { PUSH string "FlatSwap_Negative_Value" ; FAILWITH } ; DUP ; DUP ; DUG 2 ; SWAP ; DUP ; DUP ; DUG 3 ; MUL ; COMPARE ; GT ; LOOP { PUSH nat 2 ; SWAP ; DUP ; DUP 4 ; EDIV ; IF_NONE { PUSH int 128 ; FAILWITH } { CAR } ; ADD ; EDIV ; IF_NONE { PUSH int 128 ; FAILWITH } { CAR } ; SWAP ; DUP ; DUG 2 ; SWAP ; DUP ; DUP ; DUG 3 ; MUL ; COMPARE ; GT } ; SWAP ; DUP ; DUG 2 ; SWAP ; DUP ; DUP ; DUG 3 ; MUL ; COMPARE ; LE ; IF { DUP ; PUSH nat 1 ; ADD ; PUSH nat 1 ; DUP 3 ; ADD ; MUL ; DIG 2 ; COMPARE ; LT } { SWAP ; DROP ; PUSH bool False } ; IF {} { PUSH string "WrongCondition: ((y.value * y.value) <= _x0) & (_x0 < ((y.value + 1) * (y.value + 1)))" ; FAILWITH } } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FlatSwap_Not_Admin" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; CAR ; DIG 4 ; SWAP ; PAIR ; PAIR ; PAIR ; PAIR ; NIL operation } { IF_LEFT { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FlatSwap_Not_Admin" ; FAILWITH } ; SET_DELEGATE ; NIL operation ; SWAP ; CONS } { DROP ; SWAP ; DROP ; DUP ; CAR ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FlatSwap_Not_Admin" ; FAILWITH } ; DUP ; UNPAIR ; UNPAIR ; UNPAIR ; CDR ; DIG 4 ; CAR ; CAR ; CAR ; CAR ; NOT ; PAIR ; PAIR ; PAIR ; PAIR ; NIL operation } } } { IF_LEFT { DROP ; SWAP ; DROP ; DUP ; CAR ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FlatSwap_Not_Admin" ; FAILWITH } ; DUP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CAR ; DIG 4 ; GET 3 ; CAR ; CDR ; NOT ; SWAP ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; NIL operation } { IF_LEFT { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CDR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FlatSwap_Not_Admin" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CDR ; PUSH bool True ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; SOME ; UPDATE 9 ; NIL operation } { PUSH nat 0 ; PUSH nat 0 ; PUSH nat 0 ; PUSH nat 0 ; DUP 6 ; CAR ; GET 8 ; COMPARE ; NEQ ; IF { DIG 2 ; DROP 3 ; DIG 2 ; DROP ; PUSH mutez 1 ; AMOUNT ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; DIG 2 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 4 ; CAR ; GET 8 ; DUP 3 ; MUL ; EDIV ; IF_NONE { PUSH int 161 ; FAILWITH } {} ; CAR ; DIG 3 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 5 ; CAR ; GET 3 ; CAR ; DUP 4 ; MUL ; EDIV ; IF_NONE { PUSH int 162 ; FAILWITH } { CAR } ; SWAP ; PUSH nat 0 ; DUP 4 ; COMPARE ; GT ; IF {} { PUSH string "FlatSwap_Invalid_LP_Ratio" ; FAILWITH } ; PUSH nat 0 ; DUP 3 ; COMPARE ; GT ; IF {} { PUSH string "FlatSwap_Invalid_LP_Ratio" ; FAILWITH } } { DROP 3 ; PUSH nat 1000 ; DIG 3 ; DUP 3 ; CAR ; PUSH mutez 1 ; AMOUNT ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; MUL ; EXEC ; PUSH nat 2 ; MUL ; SUB ; ISNAT ; IF_NONE { PUSH int 166 ; FAILWITH } {} ; DIG 2 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; PUSH nat 1000 ; ADD ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 2 ; PUSH mutez 1 ; AMOUNT ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; SWAP ; DUP 3 ; CAR ; SWAP } ; DUP ; PUSH nat 0 ; COMPARE ; LT ; IF {} { PUSH string "WrongCondition: lqtMinted.value > 0" ; FAILWITH } ; DUP 4 ; CAR ; DUP 3 ; COMPARE ; LE ; IF {} { PUSH string "FlatSwap_Max_Cash_Error" ; FAILWITH } ; DUP 4 ; GET 3 ; SWAP ; DUP ; DUG 2 ; COMPARE ; GE ; IF {} { PUSH string "FlatSwap_Min_Lqt_Minted_Error" ; FAILWITH } ; DIG 4 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; DIG 7 ; ADD ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; DUP 7 ; ADD ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 3 ; NIL operation ; DUP 5 ; CAR ; CAR ; GET 3 ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH int 65 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; SELF_ADDRESS ; SENDER ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 4 ; CAR ; GET 7 ; CONTRACT %mint (pair (address %address) (nat %value)) ; IF_NONE { PUSH int 73 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; DIG 5 ; GET 4 ; PAIR ; TRANSFER_TOKENS ; CONS ; DIG 2 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DIG 7 ; ADD ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } } } } { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; DUP ; CAR ; PUSH nat 0 ; COMPARE ; LT ; IF {} { PUSH string "FlatSwap_Zero_Amount_Transfer" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 3 ; CAR ; CDR ; IF { PUSH string "FlatSwap_Paused_State" ; FAILWITH } {} ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DUP 4 ; GET 4 ; SOME ; SENDER ; SOME ; SWAP ; PAIR ; SWAP ; CDR ; DUP 5 ; GET 3 ; SOME ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; CAR ; SOME ; UPDATE 7 ; DUP ; UNPAIR ; UNPAIR ; UNPAIR ; CDR ; DIG 4 ; CAR ; CAR ; CAR ; CAR ; NOT ; PAIR ; PAIR ; PAIR ; PAIR ; DUP ; CAR ; GET 3 ; CDR ; CONTRACT %get_target (contract nat) ; IF_NONE { PUSH int 291 ; FAILWITH } {} ; NIL operation ; SWAP ; PUSH mutez 0 ; SELF %ctez_to_tez_callback ; TRANSFER_TOKENS ; CONS } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; IF {} { PUSH string "WrongCondition: self.data.Locked" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; IF_NONE { PUSH string "WrongCondition: self.data.recipient.is_some()" ; FAILWITH } { DROP } ; SWAP ; DUP ; DUG 2 ; GET 7 ; IF_NONE { PUSH string "WrongCondition: self.data.tradeAmount.is_some()" ; FAILWITH } { DROP } ; SWAP ; DUP ; DUG 2 ; GET 3 ; CAR ; CAR ; IF_NONE { PUSH string "WrongCondition: self.data.minAmount.is_some()" ; FAILWITH } { DROP } ; PUSH int 5 ; PUSH nat 0 ; DUP ; PUSH nat 48 ; DUP 6 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 5 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 5 ; MUL ; DUP 6 ; CAR ; GET 3 ; CAR ; DUP 6 ; MUL ; ADD ; ADD ; SWAP ; DUP ; DUG 2 ; PUSH nat 48 ; DUP 7 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 6 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 6 ; MUL ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; ADD ; ADD ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; ADD ; MUL ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; ADD ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; ADD ; MUL ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; ADD ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; ADD ; MUL ; MUL ; MUL ; MUL ; INT ; SWAP ; DUP ; DUG 2 ; PUSH nat 48 ; DUP 7 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 6 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 6 ; MUL ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; ADD ; SUB ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; SUB ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; SUB ; MUL ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; SUB ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; SUB ; MUL ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; SUB ; DUP 6 ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 10 ; MUL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; ADD ; SUB ; MUL ; MUL ; MUL ; MUL ; ADD ; ABS ; PUSH nat 8 ; MUL ; SWAP ; DUP ; DUG 2 ; PUSH nat 48 ; DUP 7 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 6 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 6 ; MUL ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; ADD ; SUB ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; SUB ; MUL ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; SUB ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; SUB ; MUL ; MUL ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; SUB ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; SUB ; MUL ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; SUB ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; SUB ; MUL ; MUL ; MUL ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; ADD ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; ADD ; MUL ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; ADD ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; ADD ; MUL ; MUL ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; ADD ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; ADD ; MUL ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; ADD ; DUP 6 ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 10 ; MUL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; ADD ; ADD ; MUL ; MUL ; MUL ; INT ; SUB ; ABS ; PAIR ; DUP ; CAR ; SWAP ; DUP ; DUG 2 ; CDR ; PUSH int 0 ; DUP 6 ; COMPARE ; NEQ ; LOOP { DIG 2 ; DROP 3 ; DUP ; PUSH nat 48 ; DUP 6 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 5 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 5 ; MUL ; DUP 6 ; CAR ; GET 3 ; CAR ; DUP 6 ; MUL ; ADD ; ADD ; SWAP ; DUP ; DUG 2 ; PUSH nat 48 ; DUP 7 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 6 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 6 ; MUL ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; ADD ; ADD ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; ADD ; MUL ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; ADD ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; ADD ; MUL ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; ADD ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; ADD ; MUL ; MUL ; MUL ; MUL ; INT ; SWAP ; DUP ; DUG 2 ; PUSH nat 48 ; DUP 7 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 6 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 6 ; MUL ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; ADD ; SUB ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; SUB ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; SUB ; MUL ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; SUB ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; SUB ; MUL ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; SUB ; DUP 6 ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 10 ; MUL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; ADD ; SUB ; MUL ; MUL ; MUL ; MUL ; ADD ; ABS ; PUSH nat 8 ; MUL ; SWAP ; DUP ; DUG 2 ; PUSH nat 48 ; DUP 7 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 6 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 6 ; MUL ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; ADD ; SUB ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; SUB ; MUL ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; SUB ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; SUB ; MUL ; MUL ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; SUB ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; SUB ; MUL ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; SUB ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; SUB ; MUL ; MUL ; MUL ; DUP 3 ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 7 ; MUL ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; ADD ; ADD ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; ADD ; MUL ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; ADD ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; ADD ; MUL ; MUL ; DUP 4 ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 8 ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; ADD ; ADD ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; ADD ; MUL ; DUP 5 ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 9 ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; ADD ; DUP 6 ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; SUB ; ABS ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; DUP 10 ; MUL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; ADD ; ADD ; MUL ; MUL ; MUL ; INT ; SUB ; ABS ; PAIR ; DUP ; CAR ; SWAP ; DUP ; DUG 2 ; CDR ; DUP ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; SUB ; MUL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; SUB ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; SUB ; MUL ; MUL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; SUB ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; SUB ; MUL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; SUB ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; DUP 12 ; CAR ; GET 3 ; CAR ; DUP 12 ; MUL ; SUB ; MUL ; MUL ; MUL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; ADD ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; ADD ; MUL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; ADD ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; DUP 12 ; CAR ; GET 3 ; CAR ; DUP 12 ; MUL ; ADD ; MUL ; MUL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; ADD ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; DUP 12 ; CAR ; GET 3 ; CAR ; DUP 12 ; MUL ; ADD ; MUL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; DUP 12 ; CAR ; GET 3 ; CAR ; DUP 12 ; MUL ; ADD ; PUSH nat 48 ; DUP 13 ; GET 5 ; CDR ; LSL ; DUP 13 ; CAR ; GET 3 ; CAR ; DUP 13 ; MUL ; ADD ; MUL ; MUL ; MUL ; INT ; SUB ; ABS ; DUP 4 ; SUB ; ABS ; EDIV ; IF_NONE { PUSH int 101 ; FAILWITH } { CAR } ; DIG 4 ; ADD ; DUG 3 ; PUSH int 1 ; DIG 5 ; SUB ; DUG 4 ; PUSH int 0 ; DUP 6 ; COMPARE ; NEQ } ; DROP 3 ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; CAR ; GET 5 ; PUSH nat 48 ; DUP 3 ; LSR ; EDIV ; IF_NONE { PUSH int 309 ; FAILWITH } { CAR } ; DUP 3 ; GET 3 ; CAR ; CAR ; IF_NONE { PUSH int 311 ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; PUSH nat 48 ; DUP 5 ; LSR ; SUB ; ABS ; COMPARE ; GE ; IF {} { PUSH string "FlatSwap_Min_Tez_Error" ; FAILWITH } ; DUP 3 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; PUSH nat 48 ; DUP 5 ; LSR ; SUB ; ABS ; COMPARE ; LT ; IF {} { PUSH string "FlatSwap_Tez_Bought_Exceeds_Pool" ; FAILWITH } ; DUP 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; DIG 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; ADD ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; DUG 3 ; GET 5 ; CAR ; IF { DUP 3 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; PUSH nat 48 ; DUP 7 ; LSR ; DIG 7 ; GET 5 ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 318 ; FAILWITH } {} ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUP ; GET 10 ; DUP 3 ; ADD ; UPDATE 10 ; DUG 2 } { DUP 3 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DUP 5 ; PUSH nat 48 ; DUP 8 ; LSR ; SUB ; ABS ; DIG 7 ; GET 5 ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 324 ; FAILWITH } {} ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUG 2 } ; NIL operation ; DUP 4 ; CAR ; CAR ; GET 3 ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH int 65 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 6 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; SELF_ADDRESS ; DUP 8 ; GET 3 ; GET 4 ; IF_NONE { PUSH int 326 ; FAILWITH } {} ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 4 ; GET 3 ; GET 3 ; IF_NONE { PUSH int 328 ; FAILWITH } {} ; CONTRACT unit ; IF_NONE { PUSH int 62 ; FAILWITH } {} ; PUSH mutez 1 ; DIG 3 ; PUSH nat 48 ; DIG 5 ; LSR ; SUB ; ABS ; MUL ; UNIT ; TRANSFER_TOKENS ; CONS ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; NONE address ; NONE address ; SWAP ; PAIR ; SWAP ; CDR ; NONE nat ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; NONE nat ; UPDATE 7 ; DUP ; DUG 2 ; UNPAIR ; UNPAIR ; UNPAIR ; CDR ; DIG 5 ; CAR ; CAR ; CAR ; CAR ; NOT ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } { DROP ; SWAP ; DROP ; DUP ; GET 5 ; CAR ; IF { DUP ; GET 10 ; PUSH mutez 1 ; AMOUNT ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; ADD ; UPDATE 10 ; NIL operation } { DUP ; CAR ; CAR ; CAR ; CDR ; CONTRACT unit ; IF_NONE { PUSH int 144 ; FAILWITH } {} ; NIL operation ; SWAP ; AMOUNT ; UNIT ; TRANSFER_TOKENS ; CONS } } } } { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 5 ; CAR ; IF {} { PUSH string "FlatSwap_Invalid_State" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 9 ; IF_NONE { PUSH int 385 ; FAILWITH } {} ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FlatSwap_Not_Voter" ; FAILWITH } ; PUSH nat 0 ; DUP 3 ; GET 10 ; COMPARE ; NEQ ; IF { DUP ; CDR ; CONTRACT unit ; IF_NONE { PUSH int 62 ; FAILWITH } {} ; NIL operation ; SWAP ; PUSH mutez 1 ; DUP 5 ; GET 10 ; MUL ; UNIT ; TRANSFER_TOKENS ; CONS } { NIL operation } ; PUSH nat 0 ; DUP 4 ; CAR ; CAR ; GET 4 ; COMPARE ; NEQ ; IF { DUP 3 ; CAR ; CAR ; GET 3 ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH int 65 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 5 ; CAR ; CAR ; GET 4 ; DUP 5 ; CDR ; SELF_ADDRESS ; PAIR 3 ; TRANSFER_TOKENS ; CONS } {} ; SWAP ; DUP ; DUG 2 ; CDR ; CONTRACT %add_fees (pair (nat %epoch) (map %fees (or (address %fa12) (or (pair %fa2 address nat) (unit %tez))) nat)) ; IF_NONE { PUSH int 409 ; FAILWITH } {} ; PUSH mutez 0 ; EMPTY_MAP (or address (or (pair address nat) unit)) nat ; DUP 6 ; GET 10 ; SOME ; PUSH (or address (or (pair address nat) unit)) (Right (Right Unit)) ; UPDATE ; DUP 6 ; CAR ; CAR ; GET 4 ; SOME ; DUP 7 ; CAR ; CAR ; GET 3 ; LEFT (or (pair address nat) unit) ; UPDATE ; DIG 4 ; CAR ; PAIR ; TRANSFER_TOKENS ; CONS ; SWAP ; PUSH nat 0 ; UPDATE 10 ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; CAR ; PUSH nat 0 ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; PAIR ; SWAP } { DIG 2 ; DROP ; SWAP ; DUP ; CAR ; GET 8 ; SWAP ; DUP ; DUG 3 ; GET 5 ; CDR ; DUP 3 ; CAR ; MUL ; EDIV ; IF_NONE { PUSH int 192 ; FAILWITH } { CAR } ; DIG 2 ; DUP ; CAR ; GET 8 ; SWAP ; DUP ; DUG 4 ; CAR ; GET 3 ; CAR ; DUP 4 ; CAR ; MUL ; EDIV ; IF_NONE { PUSH int 193 ; FAILWITH } { CAR } ; DUP 3 ; GET 4 ; DUP 3 ; COMPARE ; GE ; IF {} { PUSH string "FlatSwap_Min_Tez_Error" ; FAILWITH } ; DUP 3 ; GET 3 ; SWAP ; DUP ; DUG 2 ; COMPARE ; GE ; IF {} { PUSH string "FlatSwap_Min_Cash_Error" ; FAILWITH } ; DUP 4 ; CAR ; GET 8 ; DUP 4 ; CAR ; COMPARE ; LT ; IF {} { PUSH string "FlatSwap_Lqt_Burned_Error" ; FAILWITH } ; DUP 4 ; GET 5 ; CDR ; DUP 3 ; COMPARE ; LT ; IF {} { PUSH string "FlatSwap_Tez_Bought_Exceeds_Pool" ; FAILWITH } ; DUP 4 ; CAR ; GET 3 ; CAR ; SWAP ; DUP ; DUG 2 ; COMPARE ; LT ; IF {} { PUSH string "FlatSwap_Cash_Bought_Exceeds_Pool" ; FAILWITH } ; DUP 4 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DUP 6 ; DIG 8 ; GET 5 ; CDR ; SUB ; ABS ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUP ; DUG 4 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; CDR ; DUP 5 ; DIG 8 ; CAR ; GET 3 ; CAR ; SUB ; ABS ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; DUG 4 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CAR ; DUP 8 ; CAR ; DIG 9 ; CAR ; GET 8 ; SUB ; ABS ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 3 ; NIL operation ; DUP 5 ; CAR ; GET 7 ; CONTRACT %burn (pair (address %address) (nat %value)) ; IF_NONE { PUSH int 69 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 5 ; CAR ; SENDER ; PAIR ; TRANSFER_TOKENS ; CONS ; DUP 4 ; CAR ; CAR ; GET 3 ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH int 65 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; SENDER ; SELF_ADDRESS ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; SENDER ; CONTRACT unit ; IF_NONE { PUSH int 62 ; FAILWITH } {} ; PUSH mutez 1 ; DIG 3 ; MUL ; UNIT ; TRANSFER_TOKENS ; CONS } } { IF_LEFT { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 3 ; CAR ; CDR ; IF { PUSH string "FlatSwap_Paused_State" ; FAILWITH } {} ; PUSH mutez 0 ; AMOUNT ; COMPARE ; GT ; IF {} { PUSH string "FlatSwap_Zero_Amount_Transfer" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; DUP 5 ; CDR ; SOME ; PAIR ; SWAP ; CDR ; DIG 4 ; CAR ; SOME ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; PUSH mutez 1 ; AMOUNT ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; SOME ; UPDATE 7 ; DUP ; UNPAIR ; UNPAIR ; UNPAIR ; CDR ; DIG 4 ; CAR ; CAR ; CAR ; CAR ; NOT ; PAIR ; PAIR ; PAIR ; PAIR ; DUP ; CAR ; GET 3 ; CDR ; CONTRACT %get_target (contract nat) ; IF_NONE { PUSH int 225 ; FAILWITH } {} ; NIL operation ; SWAP ; PUSH mutez 0 ; SELF %tez_to_ctez_callback ; TRANSFER_TOKENS ; CONS } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; IF {} { PUSH string "WrongCondition: self.data.Locked" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; IF_NONE { PUSH string "WrongCondition: self.data.recipient.is_some()" ; FAILWITH } { DROP } ; SWAP ; DUP ; DUG 2 ; GET 7 ; IF_NONE { PUSH string "WrongCondition: self.data.tradeAmount.is_some()" ; FAILWITH } { DROP } ; SWAP ; DUP ; DUG 2 ; GET 3 ; CAR ; CAR ; IF_NONE { PUSH string "WrongCondition: self.data.minAmount.is_some()" ; FAILWITH } { DROP } ; PUSH int 5 ; PUSH nat 0 ; DUP ; DUP 5 ; CAR ; GET 3 ; CAR ; DUP 5 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 6 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 7 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; SWAP ; DUP ; DUG 2 ; DUP 6 ; CAR ; GET 3 ; CAR ; DUP 6 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; MUL ; MUL ; MUL ; INT ; SWAP ; DUP ; DUG 2 ; DUP 6 ; CAR ; GET 3 ; CAR ; DUP 6 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 6 ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 11 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; MUL ; MUL ; MUL ; ADD ; ABS ; PUSH nat 8 ; MUL ; SWAP ; DUP ; DUG 2 ; DUP 6 ; CAR ; GET 3 ; CAR ; DUP 6 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; MUL ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; MUL ; MUL ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; MUL ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 6 ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 11 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; MUL ; MUL ; INT ; SUB ; ABS ; PAIR ; DUP ; CAR ; SWAP ; DUP ; DUG 2 ; CDR ; PUSH int 0 ; DUP 6 ; COMPARE ; NEQ ; LOOP { DIG 2 ; DROP 3 ; DUP ; DUP 5 ; CAR ; GET 3 ; CAR ; DUP 5 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 6 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 7 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; SWAP ; DUP ; DUG 2 ; DUP 6 ; CAR ; GET 3 ; CAR ; DUP 6 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; MUL ; MUL ; MUL ; INT ; SWAP ; DUP ; DUG 2 ; DUP 6 ; CAR ; GET 3 ; CAR ; DUP 6 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 6 ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 11 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; MUL ; MUL ; MUL ; ADD ; ABS ; PUSH nat 8 ; MUL ; SWAP ; DUP ; DUG 2 ; DUP 6 ; CAR ; GET 3 ; CAR ; DUP 6 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 8 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; MUL ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; SUB ; MUL ; MUL ; MUL ; DUP 3 ; DUP 7 ; CAR ; GET 3 ; CAR ; DUP 7 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 8 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 9 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; MUL ; DUP 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 9 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; DUP 5 ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 10 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; DUP 6 ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; SUB ; ABS ; PUSH nat 48 ; DUP 11 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; LSL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; ADD ; ADD ; MUL ; MUL ; MUL ; INT ; SUB ; ABS ; PAIR ; DUP ; CAR ; SWAP ; DUP ; DUG 2 ; CDR ; DUP ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 8 ; MUL ; PUSH nat 48 ; DUP 10 ; GET 5 ; CDR ; LSL ; SUB ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; SUB ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; SUB ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; SUB ; MUL ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; SUB ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; SUB ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; SUB ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; PUSH nat 48 ; DUP 13 ; GET 5 ; CDR ; LSL ; SUB ; MUL ; MUL ; MUL ; DUP 9 ; CAR ; GET 3 ; CAR ; DUP 9 ; MUL ; PUSH nat 48 ; DUP 11 ; GET 5 ; CDR ; LSL ; ADD ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; ADD ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; ADD ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; PUSH nat 48 ; DUP 13 ; GET 5 ; CDR ; LSL ; ADD ; MUL ; MUL ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 10 ; MUL ; PUSH nat 48 ; DUP 12 ; GET 5 ; CDR ; LSL ; ADD ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; PUSH nat 48 ; DUP 13 ; GET 5 ; CDR ; LSL ; ADD ; MUL ; DUP 11 ; CAR ; GET 3 ; CAR ; DUP 11 ; MUL ; PUSH nat 48 ; DUP 13 ; GET 5 ; CDR ; LSL ; ADD ; DUP 12 ; CAR ; GET 3 ; CAR ; DUP 12 ; MUL ; PUSH nat 48 ; DUP 14 ; GET 5 ; CDR ; LSL ; ADD ; MUL ; MUL ; MUL ; INT ; SUB ; ABS ; DUP 4 ; SUB ; ABS ; EDIV ; IF_NONE { PUSH int 101 ; FAILWITH } { CAR } ; DIG 4 ; ADD ; DUG 3 ; PUSH int 1 ; DIG 5 ; SUB ; DUG 4 ; PUSH int 0 ; DUP 6 ; COMPARE ; NEQ } ; DROP 3 ; SWAP ; DROP ; DIG 3 ; DROP ; EDIV ; IF_NONE { PUSH int 115 ; FAILWITH } { CAR } ; SWAP ; DUP ; DUG 2 ; CAR ; GET 5 ; SWAP ; DUP ; DUG 2 ; EDIV ; IF_NONE { PUSH int 243 ; FAILWITH } { CAR } ; DUP 3 ; GET 3 ; CAR ; CAR ; IF_NONE { PUSH int 311 ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; DUP 4 ; SUB ; ABS ; COMPARE ; GE ; IF {} { PUSH string "FlatSwap_Min_Cash_Error" ; FAILWITH } ; DUP 3 ; CAR ; GET 3 ; CAR ; SWAP ; DUP ; DUG 2 ; DUP 4 ; SUB ; ABS ; COMPARE ; LT ; IF {} { PUSH string "FlatSwap_Cash_Bought_Exceeds_Pool" ; FAILWITH } ; DUP 3 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; DIG 7 ; GET 7 ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; ADD ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUP ; DUG 3 ; GET 5 ; CAR ; IF { DUP 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; CDR ; DUP 6 ; DIG 7 ; CAR ; GET 3 ; CAR ; SUB ; ISNAT ; IF_NONE { PUSH int 253 ; FAILWITH } {} ; PAIR ; PAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP 6 ; ADD ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; PAIR ; DUG 2 } { DUP 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; CDR ; DUP 5 ; DUP 7 ; SUB ; ABS ; DIG 7 ; CAR ; GET 3 ; CAR ; SUB ; ISNAT ; IF_NONE { PUSH int 259 ; FAILWITH } {} ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 2 } ; NIL operation ; DUP 4 ; CAR ; CAR ; GET 3 ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH int 65 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DIG 4 ; SUB ; ABS ; DUP 5 ; GET 3 ; GET 3 ; IF_NONE { PUSH int 328 ; FAILWITH } {} ; SELF_ADDRESS ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; NONE address ; PAIR ; SWAP ; CDR ; NONE nat ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; NONE nat ; UPDATE 7 ; DUP ; DUG 2 ; UNPAIR ; UNPAIR ; UNPAIR ; CDR ; DIG 5 ; CAR ; CAR ; CAR ; CAR ; NOT ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } } } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR } ; view "getReserveBalance" unit (pair (nat %ctezPool) (nat %tezPool)) { CDR ; DUP ; GET 5 ; CDR ; SWAP ; CAR ; GET 3 ; CAR ; PAIR } }