x
865
1829
parameter (or (or (or (or (nat %bailout) (nat %burn)) (or (pair %create_vault (bool %allows_settlement) (pair (option %baker key_hash) (contract %contract_address_callback address))) (or (lambda %execute unit (list operation)) (nat %internal_bailout)))) (or (or (nat %internal_burn) (or (pair %internal_liquidate (address %vault_owner) (nat %token_amount)) (nat %internal_mint))) (or (pair %internal_settle_with_vault (address %vault_owner) (pair (nat %token_amount) (address %recipient))) (or (mutez %internal_withdraw) (pair %liquidate (address %vault_owner) (nat %token_amount)))))) (or (or (or (nat %mint) (pair %remove_administrator (address %administrator_to_remove) (nat %token_id))) (or (pair %set_administrator (address %administrator_to_set) (nat %token_id)) (or (pair %set_contracts (pair (address %governance_token_contract) (address %options_contract)) (pair (address %reward_pool_contract) (pair (address %savings_pool_contract) (address %target_price_oracle)))) (nat %set_reference_interest_rate)))) (or (or (nat %set_target_price) (or (mutez %set_vault_balance) (option %set_vault_delegate key_hash))) (or (pair %settle_with_vault (address %vault_owner) (pair (nat %token_amount) (address %recipient))) (or (unit %update) (mutez %withdraw))))));storage (pair (pair (pair (pair (timestamp %accrual_update_timestamp) (big_map %administrators (pair (address %owner) (nat %token_id)) unit)) (pair (nat %compound_interest_rate) (address %governance_token_contract))) (pair (pair (address %options_contract) (nat %reference_interest_rate)) (pair (address %reward_pool_contract) (address %savings_pool_contract)))) (pair (pair (pair (address %sender) (nat %target_price)) (pair (address %target_price_oracle) (address %token_contract))) (pair (pair (nat %token_id) (nat %total_supply)) (pair (big_map %vault_contexts address (pair (pair (address %address) (bool %allows_settlement)) (pair (mutez %balance) (pair (bool %is_being_liquidated) (nat %minted))))) (big_map %vault_lookup address address)))));code { LAMBDA (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair address nat) (pair address address))) (pair (pair (pair address nat) (pair address address)) (pair (pair nat nat) (pair (big_map address (pair (pair address bool) (pair mutez (pair bool nat)))) (big_map address address))))))) (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair address nat) (pair address address))) (pair (pair (pair address nat) (pair address address)) (pair (pair nat nat) (pair (big_map address (pair (pair address bool) (pair mutez (pair bool nat)))) (big_map address address))))))) { CDR ; UNPAIR ; SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; CONTRACT %get_price (contract nat) ; IF_NONE { PUSH int 69 ; FAILWITH } {} ; PUSH mutez 0 ; SELF_ADDRESS ; CONTRACT %set_target_price nat ; IF_NONE { PUSH int 71 ; FAILWITH } {} ; TRANSFER_TOKENS ; CONS ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair address nat) (pair address address))) (pair (pair (pair address nat) (pair address address)) (pair (pair nat nat) (pair (big_map address (pair (pair address bool) (pair mutez (pair bool nat)))) (big_map address address))))))) (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair address nat) (pair address address))) (pair (pair (pair address nat) (pair address address)) (pair (pair nat nat) (pair (big_map address (pair (pair address bool) (pair mutez (pair bool nat)))) (big_map address address))))))) { UNPAIR 3 ; SWAP ; DUP 3 ; CAR ; CAR ; CAR ; CAR ; NOW ; SUB ; ISNAT ; IF_NONE { PUSH int 133 ; FAILWITH } {} ; DUP ; PUSH nat 0 ; COMPARE ; LT ; IF { DIG 2 ; DROP ; PUSH nat 1000000000000 ; DUP 4 ; GET 5 ; CDR ; DUP 3 ; DUP 6 ; CAR ; GET 3 ; CDR ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 136 ; FAILWITH } { CAR } ; PUSH nat 1000000000000 ; DUP 5 ; GET 5 ; CDR ; DUP 4 ; PUSH nat 316 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 138 ; FAILWITH } { CAR } ; DUP 5 ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; CDR ; PUSH nat 1000000000000 ; DIG 7 ; PUSH nat 316 ; DUP 11 ; CAR ; GET 3 ; CDR ; ADD ; MUL ; PUSH nat 1000000000000 ; ADD ; DIG 9 ; CAR ; CAR ; GET 3 ; MUL ; EDIV ; IF_NONE { PUSH int 142 ; FAILWITH } { CAR } ; PAIR ; SWAP ; PAIR ; PAIR ; PAIR ; DUG 3 ; DIG 2 ; DUP 4 ; GET 3 ; GET 4 ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 5 ; DIG 6 ; DUP ; GET 5 ; CAR ; SWAP ; DUP ; DUG 8 ; CAR ; GET 6 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 4 ; GET 3 ; GET 4 ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; DIG 6 ; DUP ; GET 5 ; CAR ; SWAP ; DUP ; DUG 8 ; CAR ; GET 5 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 2 ; DIG 3 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; DIG 5 ; DIG 6 ; ADD ; ADD ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; UNPAIR ; UNPAIR ; CDR ; NOW ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } { DROP ; SWAP ; DROP } ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair (pair address nat) (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair address nat) (pair address address))) (pair (pair (pair address nat) (pair address address)) (pair (pair nat nat) (pair (big_map address (pair (pair address bool) (pair mutez (pair bool nat)))) (big_map address address))))))) (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair address nat) (pair address address))) (pair (pair (pair address nat) (pair address address)) (pair (pair nat nat) (pair (big_map address (pair (pair address bool) (pair mutez (pair bool nat)))) (big_map address address))))))) { UNPAIR 3 ; SWAP ; DUP 3 ; CAR ; CAR ; GET 4 ; CONTRACT %update_stake (pair address nat) ; IF_NONE { PUSH int 161 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair address nat) (pair address address))) (pair (pair (pair address nat) (pair address address)) (pair (pair nat nat) (pair (big_map address (pair (pair address bool) (pair mutez (pair bool nat)))) (big_map address address))))))) (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair address nat) (pair address address))) (pair (pair (pair address nat) (pair address address)) (pair (pair nat nat) (pair (big_map address (pair (pair address bool) (pair mutez (pair bool nat)))) (big_map address address))))))) { CDR ; UNPAIR ; SELF_ADDRESS ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 400 ; FAILWITH } ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair nat (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair address nat) (pair address address))) (pair (pair (pair address nat) (pair address address)) (pair (pair nat nat) (pair (big_map address (pair (pair address bool) (pair mutez (pair bool nat)))) (big_map address address))))))) (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair nat address)) (pair (pair address nat) (pair address address))) (pair (pair (pair address nat) (pair address address)) (pair (pair nat nat) (pair (big_map address (pair (pair address bool) (pair mutez (pair bool nat)))) (big_map address address))))))) { UNPAIR 3 ; SWAP ; DUP 3 ; CAR ; CAR ; CAR ; CDR ; DIG 2 ; SENDER ; PAIR ; MEM ; IF {} { PUSH int 401 ; FAILWITH } ; UNIT ; PAIR 3 } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CDR ; SENDER ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; DUP ; DUG 3 ; CAR ; GET 6 ; CONTRACT %bailout nat ; IF_NONE { PUSH int 581 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; TRANSFER_TOKENS ; CONS ; SELF %internal_bailout ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CDR ; SENDER ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_burn ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 7 ; SENDER ; MEM ; IF { NIL operation ; DUP 3 ; GET 7 ; SENDER ; GET ; IF_NONE { PUSH int 227 ; FAILWITH } {} ; CAR ; CAR ; CONTRACT unit ; IF_NONE { PUSH int 227 ; FAILWITH } {} ; AMOUNT ; UNIT ; TRANSFER_TOKENS ; CONS } { NIL operation ; SELF_ADDRESS ; AMOUNT ; DUP 4 ; GET 3 ; CREATE_CONTRACT { parameter (or (unit %default) (or (option %set_delegate key_hash) (pair %withdraw (address %recipient) (mutez %amount)))) ; storage address ; code { CAST (pair (or unit (or (option key_hash) (pair address mutez))) address) ; UNPAIR ; IF_LEFT { DROP ; DUP ; CONTRACT %set_vault_balance mutez ; IF_NONE { PUSH int 64 ; FAILWITH } {} ; NIL operation ; SWAP ; PUSH mutez 0 ; BALANCE ; TRANSFER_TOKENS ; CONS } { IF_LEFT { SWAP ; DUP ; DUG 2 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; SET_DELEGATE ; NIL operation ; SWAP ; CONS ; SELF_ADDRESS ; CONTRACT unit ; IF_NONE { PUSH int 57 ; FAILWITH } {} ; PUSH mutez 0 ; UNIT ; TRANSFER_TOKENS ; CONS } { SWAP ; DUP ; DUG 2 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; DUP ; CAR ; CONTRACT unit ; IF_NONE { PUSH int 79 ; FAILWITH } {} ; NIL operation ; SWAP ; DIG 2 ; CDR ; UNIT ; TRANSFER_TOKENS ; CONS } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR } } ; PAIR ; DUP ; DUG 2 ; CAR ; CONS ; SWAP ; DIG 3 ; DUP ; GET 7 ; PUSH (pair bool nat) (Pair False 0) ; AMOUNT ; PAIR ; DUP 6 ; CAR ; DUP 5 ; CDR ; PAIR ; PAIR ; SOME ; SENDER ; UPDATE ; UPDATE 7 ; DUP ; GET 8 ; SENDER ; SOME ; DIG 3 ; CDR ; UPDATE ; UPDATE 8 ; DUG 2 } ; SWAP ; GET 4 ; PUSH mutez 0 ; DUP 4 ; GET 7 ; SENDER ; GET ; IF_NONE { PUSH int 229 ; FAILWITH } {} ; CAR ; CAR ; TRANSFER_TOKENS ; CONS } { IF_LEFT { NIL operation ; DUP 4 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; DUP 3 ; UNIT ; EXEC ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 2 ; SWAP ; CONS ; SWAP } ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 3 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 5 ; GET 3 ; CAR ; CAR ; GET ; IF_NONE { PUSH int 606 ; FAILWITH } {} ; DUP 5 ; GET 3 ; CAR ; CDR ; DUP 5 ; MUL ; PUSH mutez 1 ; PUSH nat 1000000000000 ; PUSH nat 2 ; DUP 4 ; LSR ; DUP 4 ; ADD ; EDIV ; IF_NONE { PUSH int 610 ; FAILWITH } { CAR } ; MUL ; DUP ; PUSH mutez 1000 ; SWAP ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; PUSH nat 1000000000000 ; DUP 8 ; CAR ; CAR ; GET 3 ; DUP 5 ; GET 6 ; MUL ; EDIV ; IF_NONE { PUSH int 614 ; FAILWITH } { CAR } ; DIG 3 ; DUP 8 ; CAR ; CAR ; GET 3 ; PUSH nat 1000000000000 ; DUP 9 ; DUP 5 ; SUB ; ISNAT ; IF_NONE { PUSH int 615 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 615 ; FAILWITH } { CAR } ; UPDATE 6 ; DUP ; GET 3 ; DUP 4 ; SWAP ; SUB ; UPDATE 3 ; DUG 3 ; DUP 8 ; DUP ; GET 7 ; DUP 6 ; SOME ; DIG 10 ; GET 3 ; CAR ; CAR ; UPDATE ; UPDATE 7 ; DUG 7 ; DUP 4 ; CAR ; CDR ; IF { DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 6 ; DROP ; DIG 6 ; DROP ; DIG 7 ; DROP ; DIG 7 ; DROP ; DIG 6 ; DUP 7 ; GET 3 ; CAR ; CDR ; DUP 7 ; DIG 3 ; SUB ; ISNAT ; IF_NONE { PUSH int 620 ; FAILWITH } {} ; MUL ; DUP 7 ; GET 3 ; CAR ; CAR ; PAIR ; SWAP ; DIG 6 ; DIG 5 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 4 ; DIG 2 ; DIG 4 ; DIG 4 } { DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP } ; DUG 2 ; CAR ; CAR ; CONTRACT %withdraw (pair address mutez) ; IF_NONE { PUSH int 622 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 6 ; CAR ; GET 6 ; PAIR ; TRANSFER_TOKENS ; CONS ; DUP 3 ; GET 3 ; GET 4 ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; DIG 5 ; DUP ; GET 5 ; CAR ; SWAP ; DUP ; DUG 7 ; CAR ; GET 6 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 3 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DIG 5 ; DIG 6 ; GET 5 ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 626 ; FAILWITH } {} ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP } } } } { IF_LEFT { IF_LEFT { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; PUSH nat 1000001 ; DUP 4 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; DIG 3 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 5 ; GET 3 ; CAR ; CAR ; GET ; IF_NONE { PUSH int 348 ; FAILWITH } {} ; PUSH nat 1000000000000 ; DUP 6 ; CAR ; CAR ; GET 3 ; DUP 3 ; GET 6 ; MUL ; EDIV ; IF_NONE { PUSH int 350 ; FAILWITH } { CAR } ; DUP 6 ; GET 3 ; CAR ; CDR ; DUP 6 ; DUP 3 ; SUB ; ISNAT ; IF_NONE { PUSH int 351 ; FAILWITH } {} ; MUL ; DIG 2 ; DUP 7 ; CAR ; CAR ; GET 3 ; PUSH nat 1000000000000 ; DUP 8 ; DUP 6 ; SUB ; ISNAT ; IF_NONE { PUSH int 353 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 353 ; FAILWITH } { CAR } ; UPDATE 6 ; DUG 2 ; DUP 7 ; DUP ; GET 7 ; DUP 5 ; SOME ; DIG 9 ; GET 3 ; CAR ; CAR ; UPDATE ; UPDATE 7 ; DUG 6 ; DIG 4 ; DUP 7 ; GET 3 ; GET 4 ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 8 ; DIG 9 ; DUP ; GET 5 ; CAR ; SWAP ; DUP ; DUG 11 ; GET 3 ; CAR ; CAR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 4 ; DUP 7 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DUP 10 ; DIG 11 ; GET 5 ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 359 ; FAILWITH } {} ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUG 6 ; DUP 3 ; CAR ; CDR ; IF { SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 3 ; SWAP ; DUP 4 ; GET 3 ; CAR ; CAR ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } { DROP 4 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } } { IF_LEFT { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; DUP 4 ; GET 7 ; DUP 4 ; CAR ; GET ; IF_NONE { PUSH int 405 ; FAILWITH } {} ; PUSH nat 1000000000000 ; PUSH mutez 1 ; DUP 3 ; GET 3 ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; MUL ; PUSH nat 2 ; DUP 7 ; GET 3 ; CAR ; CDR ; PUSH nat 1000000000000 ; DUP 9 ; CAR ; CAR ; GET 3 ; DUP 6 ; GET 6 ; MUL ; EDIV ; IF_NONE { PUSH int 408 ; FAILWITH } { CAR } ; MUL ; MUL ; SWAP ; DUP ; DUG 2 ; COMPARE ; LT ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; GET 5 } ; IF {} { PUSH int 802 ; FAILWITH } ; SWAP ; PUSH bool True ; UPDATE 5 ; SWAP ; PUSH nat 3 ; DUP 7 ; GET 3 ; CAR ; CDR ; DUP 7 ; CDR ; MUL ; LSR ; DUP 7 ; GET 3 ; CAR ; CDR ; DUP 7 ; CDR ; MUL ; ADD ; PUSH mutez 1 ; PUSH nat 1000000000000 ; DUP 3 ; EDIV ; IF_NONE { PUSH int 418 ; FAILWITH } { CAR } ; MUL ; DUP 8 ; GET 3 ; CAR ; CDR ; DUP 8 ; CDR ; PUSH nat 1000000000000 ; DUP 11 ; CAR ; CAR ; GET 3 ; DUP 8 ; GET 6 ; MUL ; EDIV ; IF_NONE { PUSH int 408 ; FAILWITH } { CAR } ; SUB ; ISNAT ; IF_NONE { PUSH int 419 ; FAILWITH } {} ; MUL ; DUP ; PUSH nat 3 ; SWAP ; MUL ; DUP 4 ; DUP 6 ; SUB ; ISNAT ; IF_NONE { PUSH int 421 ; FAILWITH } {} ; COMPARE ; LT ; IF {} { PUSH int 803 ; FAILWITH } ; PUSH mutez 1000 ; DUP 3 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; PUSH nat 100 ; PUSH nat 3 ; DUP 3 ; MUL ; MUL ; PUSH nat 105 ; DUP 5 ; DUP 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 424 ; FAILWITH } {} ; MUL ; COMPARE ; GE ; IF { DIG 4 ; PUSH bool False ; UPDATE 5 ; DUG 4 } {} ; DIG 6 ; DUP 9 ; GET 3 ; GET 4 ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 10 ; CDR ; DIG 11 ; DUP ; GET 5 ; CAR ; SWAP ; DUP ; DUG 13 ; GET 3 ; CAR ; CAR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 6 ; DUP 9 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DUP 12 ; CDR ; DIG 13 ; GET 5 ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 429 ; FAILWITH } {} ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUG 8 ; DUP 5 ; DUP 10 ; CAR ; CAR ; GET 3 ; PUSH nat 1000000000000 ; DUP 11 ; CDR ; PUSH nat 1000000000000 ; DUP 14 ; CAR ; CAR ; GET 3 ; DIG 10 ; GET 6 ; MUL ; EDIV ; IF_NONE { PUSH int 408 ; FAILWITH } { CAR } ; SUB ; ISNAT ; IF_NONE { PUSH int 431 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 431 ; FAILWITH } { CAR } ; UPDATE 6 ; DUP ; GET 3 ; DUP 4 ; SWAP ; SUB ; UPDATE 3 ; DUG 4 ; DIG 8 ; DUP ; GET 7 ; DUP 7 ; SOME ; DUP 11 ; CAR ; UPDATE ; UPDATE 7 ; DUG 8 ; DUP 5 ; CAR ; CDR ; IF { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 6 ; DROP ; DIG 6 ; DROP ; DIG 7 ; DROP ; DIG 7 ; DROP ; DIG 6 ; SWAP ; DIG 5 ; CAR ; PAIR ; SWAP ; DIG 5 ; DIG 5 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 3 } { DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP } ; DUG 2 ; CAR ; CAR ; CONTRACT %withdraw (pair address mutez) ; IF_NONE { PUSH int 438 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 5 ; GET 3 ; CAR ; CAR ; PAIR ; TRANSFER_TOKENS ; CONS } { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; PUSH nat 1000001 ; DUP 4 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; DIG 3 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 5 ; GET 3 ; CAR ; CAR ; GET ; IF_NONE { PUSH int 285 ; FAILWITH } {} ; PUSH nat 1000000000000 ; DUP 6 ; CAR ; CAR ; GET 3 ; DUP 3 ; GET 6 ; MUL ; EDIV ; IF_NONE { PUSH int 288 ; FAILWITH } { CAR } ; DUP 6 ; GET 3 ; CAR ; CDR ; DUP 6 ; DUP 3 ; ADD ; MUL ; DUP ; PUSH nat 3 ; SWAP ; MUL ; PUSH nat 1000000000000 ; PUSH mutez 1 ; DUP 6 ; GET 3 ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; MUL ; COMPARE ; GE ; IF {} { PUSH int 801 ; FAILWITH } ; DIG 2 ; DUP ; GET 6 ; DUP 8 ; CAR ; CAR ; GET 3 ; PUSH nat 1000000000000 ; DUP 9 ; MUL ; EDIV ; IF_NONE { PUSH int 298 ; FAILWITH } { CAR } ; ADD ; UPDATE 6 ; DUG 2 ; DUP 7 ; DUP ; GET 7 ; DUP 5 ; SOME ; DIG 9 ; GET 3 ; CAR ; CAR ; UPDATE ; UPDATE 7 ; DUG 6 ; DIG 4 ; DUP 7 ; GET 3 ; GET 4 ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; PUSH nat 6 ; DUP 9 ; LSR ; DUP 9 ; SUB ; ISNAT ; IF_NONE { PUSH int 296 ; FAILWITH } {} ; DIG 9 ; DUP ; GET 5 ; CAR ; SWAP ; DUP ; DUG 11 ; GET 3 ; CAR ; CAR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 7 ; GET 3 ; GET 4 ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; PUSH nat 6 ; DUP 9 ; LSR ; DIG 9 ; DUP ; GET 5 ; CAR ; SWAP ; DUP ; DUG 11 ; CAR ; GET 5 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 4 ; DIG 6 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; DUP 11 ; ADD ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUG 6 ; DUP 3 ; CAR ; CDR ; IF { SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 3 ; SWAP ; DUP 4 ; GET 3 ; CAR ; CAR ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } { DROP 4 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } } } } { IF_LEFT { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 3 ; DUP ; CAR ; GET 3 ; CAR ; SWAP ; DUP ; DUG 5 ; GET 3 ; CAR ; CAR ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; DUP 4 ; GET 7 ; DUP 4 ; CAR ; GET ; IF_NONE { PUSH int 534 ; FAILWITH } {} ; DUP ; CAR ; CDR ; IF {} { PUSH int 403 ; FAILWITH } ; DUP 5 ; GET 3 ; CAR ; CDR ; DUP 5 ; GET 3 ; MUL ; PUSH mutez 1 ; PUSH nat 1000000000000 ; PUSH nat 4 ; DUP 4 ; LSR ; DUP 4 ; SUB ; ISNAT ; IF_NONE { PUSH int 541 ; FAILWITH } {} ; EDIV ; IF_NONE { PUSH int 541 ; FAILWITH } { CAR } ; MUL ; DUP ; PUSH mutez 1000 ; SWAP ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; PUSH nat 1000000000000 ; DUP 8 ; CAR ; CAR ; GET 3 ; DUP 5 ; GET 6 ; MUL ; EDIV ; IF_NONE { PUSH int 546 ; FAILWITH } { CAR } ; DIG 3 ; DUP 8 ; CAR ; CAR ; GET 3 ; PUSH nat 1000000000000 ; DUP 9 ; GET 3 ; DUP 5 ; SUB ; ISNAT ; IF_NONE { PUSH int 548 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 548 ; FAILWITH } { CAR } ; UPDATE 6 ; DUP ; GET 3 ; DUP 4 ; SWAP ; SUB ; UPDATE 3 ; DUG 3 ; DIG 7 ; DUP ; GET 7 ; DUP 6 ; SOME ; DUP 10 ; CAR ; UPDATE ; UPDATE 7 ; DUG 7 ; DUP 4 ; CAR ; CDR ; IF { DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 6 ; DROP ; DIG 6 ; DROP ; DIG 7 ; DROP ; DIG 7 ; DROP ; DIG 6 ; DUP 7 ; GET 3 ; CAR ; CDR ; DUP 7 ; GET 3 ; DIG 3 ; SUB ; ISNAT ; IF_NONE { PUSH int 554 ; FAILWITH } {} ; MUL ; DUP 6 ; CAR ; PAIR ; SWAP ; DIG 6 ; DIG 5 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 4 ; DIG 2 ; DIG 4 ; DIG 4 } { DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP } ; DUG 2 ; CAR ; CAR ; CONTRACT %withdraw (pair address mutez) ; IF_NONE { PUSH int 556 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 5 ; GET 4 ; PAIR ; TRANSFER_TOKENS ; CONS ; DUP 3 ; GET 3 ; GET 4 ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; GET 3 ; DIG 5 ; DUP ; GET 5 ; CAR ; SWAP ; DUP ; DUG 7 ; GET 3 ; CAR ; CAR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 3 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DIG 5 ; GET 3 ; DIG 6 ; GET 5 ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 560 ; FAILWITH } {} ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP } { IF_LEFT { DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; NIL operation ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DUP ; GET 7 ; SWAP ; DUP ; DUG 4 ; GET 3 ; CAR ; CAR ; GET ; IF_NONE { PUSH int 477 ; FAILWITH } {} ; PUSH nat 3 ; DIG 4 ; DUP ; GET 3 ; CAR ; CDR ; SWAP ; DUP ; DUG 6 ; CAR ; CAR ; GET 3 ; DUP 4 ; GET 6 ; MUL ; MUL ; MUL ; PUSH nat 1000000000000 ; DUP ; PUSH mutez 1 ; DUP 7 ; DUP 6 ; GET 3 ; SUB ; EDIV ; IF_NONE { UNIT ; FAILWITH } {} ; CAR ; MUL ; MUL ; COMPARE ; GE ; IF {} { PUSH int 801 ; FAILWITH } ; DUP ; GET 3 ; DUP 4 ; SWAP ; SUB ; UPDATE 3 ; DUP 4 ; DUP ; GET 7 ; DUP 3 ; SOME ; DIG 6 ; GET 3 ; CAR ; CAR ; UPDATE ; UPDATE 7 ; DUG 3 ; CAR ; CAR ; CONTRACT %withdraw (pair address mutez) ; IF_NONE { PUSH int 488 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 5 ; GET 3 ; CAR ; CAR ; PAIR ; TRANSFER_TOKENS ; CONS } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CDR ; SENDER ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_liquidate ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } } } } { IF_LEFT { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CDR ; SENDER ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_mint ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; NIL operation ; DIG 3 ; DUP 3 ; CDR ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; NONE unit ; DIG 7 ; UPDATE ; SWAP ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; NIL operation ; DIG 3 ; DUP 3 ; CDR ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; PUSH (option unit) (Some Unit) ; DIG 7 ; UPDATE ; SWAP ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; DUP 6 ; GET 6 ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; UNPAIR ; SWAP ; CAR ; DUP 5 ; GET 3 ; DUP 6 ; GET 5 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; UNPAIR ; SWAP ; CAR ; DUP 6 ; CAR ; CAR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; UNPAIR ; CDR ; DIG 5 ; CAR ; CDR ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DIG 5 ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } } } } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; IF_LEFT { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "WrongCondition: sp.sender == self.data.target_price_oracle" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CAR ; DIG 4 ; SWAP ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; NIL operation } { IF_LEFT { DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; DUP ; GET 7 ; DUP ; DIG 4 ; GET 8 ; SENDER ; GET ; IF_NONE { PUSH int 172 ; FAILWITH } {} ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 172 ; FAILWITH } {} ; DIG 4 ; UPDATE 3 ; SOME ; SWAP ; UPDATE ; UPDATE 7 ; NIL operation } { DIG 2 ; DROP ; NIL operation ; DUP 3 ; GET 7 ; SENDER ; GET ; IF_NONE { PUSH int 243 ; FAILWITH } {} ; CAR ; CAR ; CONTRACT %set_delegate (option key_hash) ; IF_NONE { PUSH int 243 ; FAILWITH } {} ; AMOUNT ; DIG 3 ; TRANSFER_TOKENS ; CONS } } } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CDR ; SENDER ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_settle_with_vault ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { IF_LEFT { DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 2 ; UNIT ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CDR ; SENDER ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_withdraw ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } } } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }