{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "factory_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenB",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "truePriceTokenA",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "truePriceTokenB",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "liquidityAmount",
          "type": "uint256"
        }
      ],
      "name": "getGasCostOfGetLiquidityValueAfterArbitrageToPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenB",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "liquidityAmount",
          "type": "uint256"
        }
      ],
      "name": "getLiquidityValue",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "tokenAAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "tokenBAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenB",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "truePriceTokenA",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "truePriceTokenB",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "liquidityAmount",
          "type": "uint256"
        }
      ],
      "name": "getLiquidityValueAfterArbitrageToPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "tokenAAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "tokenBAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenB",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "truePriceTokenA",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "truePriceTokenB",
          "type": "uint256"
        }
      ],
      "name": "getReservesAfterArbitrage",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "reserveA",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "reserveB",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "evm": {
    "bytecode": {
      "object": "60a060405234801561001057600080fd5b506040516114bf3803806114bf83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6114146100ab6000396000818160f9015281816101370152818161017a015281816101c201526101ec01526114146000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806380caa3531161005057806380caa353146100a9578063c45a0155146100c9578063d9b7a6e7146100de57610067565b80633558e94c1461006c57806369a2fcbd14610096575b600080fd5b61007f61007a366004610e4a565b6100f1565b60405161008d9291906112d7565b60405180910390f35b61007f6100a4366004610e8f565b61012f565b6100bc6100b7366004610e8f565b61016f565b60405161008d91906112ce565b6100d16101c0565b60405161008d9190611000565b61007f6100ec366004610e0a565b6101e4565b6000806101217f00000000000000000000000000000000000000000000000000000000000000008787878761021f565b915091505b94509492505050565b6000806101607f0000000000000000000000000000000000000000000000000000000000000000888888888861030b565b915091505b9550959350505050565b6000805a90506101a37f0000000000000000000000000000000000000000000000000000000000000000888888888861030b565b505060005a90506101b48183611373565b98975050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102137f000000000000000000000000000000000000000000000000000000000000000086868661055b565b91509150935093915050565b60008061022d878787610761565b909250905081158015906102415750600081115b610280576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610277906110c6565b60405180910390fd5b60008061028f8686868661086f565b9150915080600014156102a3575050610165565b81156102d65760006102b682868661094b565b90506102c282866112e5565b94506102ce8185611373565b9350506102ff565b60006102e382858761094b565b90506102ef82856112e5565b93506102fb8186611373565b9450505b50509550959350505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561036d57600080fd5b505afa158015610381573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a59190610de7565b73ffffffffffffffffffffffffffffffffffffffff161415905060006103cc8a8a8a610a19565b90506000826103dc57600061045a565b8173ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561042257600080fd5b505afa158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a9190610f2d565b905060008273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a457600080fd5b505afa1580156104b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104dc9190610f2d565b90508681101580156104ee5750600087115b610524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102779061123a565b6000806105348e8e8e8e8e61021f565b915091506105468282858c8a89610aa7565b97509750505050505050965096945050505050565b60008060008061056c888888610761565b91509150600061057d898989610a19565b905060008073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156105de57600080fd5b505afa1580156105f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106169190610de7565b73ffffffffffffffffffffffffffffffffffffffff161415905060008161063e5760006106bc565b8273ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561068457600080fd5b505afa158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bc9190610f2d565b905060008373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561070657600080fd5b505afa15801561071a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073e9190610f2d565b905061074e8686838c8787610aa7565b9750975050505050505094509492505050565b60008060006107708585610b6a565b509050600080610781888888610a19565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe9190610edf565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461085d578082610860565b81815b90999098509650505050505050565b600080858361087e8688610c69565b61088891906112fd565b10915060006108978585610c69565b905060006108e76108b76103e5866108af578a6108b1565b895b90610c69565b6108d86108c6856103e8610c69565b876108d1578a6108d3565b8b5b610c69565b6108e291906112fd565b610cc9565b905060006103e585610904576108ff876103e8610c69565b610910565b610910886103e8610c69565b61091a91906112fd565b9050808210156109335760008094509450505050610126565b61093d8282610d39565b935050505094509492505050565b6000808411610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611123565b6000831180156109965750600082115b6109cc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610277906111dd565b60006109da856103e5610c69565b905060006109e88285610c69565b90506000610a02836109fc886103e8610c69565b90610d81565b9050610a0e81836112fd565b979650505050505050565b6000806000610a288585610b6a565b91509150858282604051602001610a40929190610f45565b60405160208183030381529060405280519060200120604051602001610a67929190610f7f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b600080838015610ab75750600083115b15610b31576000610acb6108e28a8a610c69565b90506000610ad885610cc9565b905080821115610b2e57876000610aef8484610d39565b90506000610b02846109fc876005610c69565b9050600081610b118585610c69565b610b1b91906112fd565b9050610b278c82610d81565b9b50505050505b50505b85610b3c8987610c69565b610b4691906112fd565b86610b518988610c69565b610b5b91906112fd565b91509150965096945050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611180565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610c0d578284610c10565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611297565b9250929050565b6000811580610c8d57508282610c7f8183611336565b9250610c8b90836112fd565b145b610cc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611058565b92915050565b60006003821115610d2a5750806000610ce36002836112fd565b610cee9060016112e5565b90505b81811015610d2457905080600281610d0981866112fd565b610d1391906112e5565b610d1d91906112fd565b9050610cf1565b50610d34565b8115610d34575060015b919050565b600082610d468382611373565b9150811115610cc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611021565b600082610d8e83826112e5565b9150811015610cc3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102779061108f565b80516dffffffffffffffffffffffffffff81168114610d3457600080fd5b600060208284031215610df8578081fd5b8151610e03816113b9565b9392505050565b600080600060608486031215610e1e578182fd5b8335610e29816113b9565b92506020840135610e39816113b9565b929592945050506040919091013590565b60008060008060808587031215610e5f578081fd5b8435610e6a816113b9565b93506020850135610e7a816113b9565b93969395505050506040820135916060013590565b600080600080600060a08688031215610ea6578081fd5b8535610eb1816113b9565b94506020860135610ec1816113b9565b94979496505050506040830135926060810135926080909101359150565b600080600060608486031215610ef3578283fd5b610efc84610dc9565b9250610f0a60208501610dc9565b9150604084015163ffffffff81168114610f22578182fd5b809150509250925092565b600060208284031215610f3e578081fd5b5051919050565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811682529190921b16601482015260280190565b7fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f1974917c1e01e6369c1b45f631eae6a71d24cb5108c460cc7f0b1c608b3a7c94603582015260550190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b60208082526015908201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604082015260600190565b6020808252602b908201527f4d6174657269614172626974726167654c6962726172793a205a45524f5f504160408201527f49525f5245534552564553000000000000000000000000000000000000000000606082015260800190565b60208082526029908201527f4d6174657269614c6962726172793a20494e53554646494349454e545f494e5060408201527f55545f414d4f554e540000000000000000000000000000000000000000000000606082015260800190565b60208082526023908201527f4d6174657269614c6962726172793a204944454e544943414c5f41444452455360408201527f5345530000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f4d6174657269614c6962726172793a20494e53554646494349454e545f4c495160408201527f5549444954590000000000000000000000000000000000000000000000000000606082015260800190565b60208082526027908201527f436f6d707574654c697175696469747956616c75653a204c495155494449545960408201527f5f414d4f554e5400000000000000000000000000000000000000000000000000606082015260800190565b6020808252601c908201527f4d6174657269614c6962726172793a205a45524f5f4144445245535300000000604082015260600190565b90815260200190565b918252602082015260400190565b600082198211156112f8576112f861138a565b500190565b600082611331577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561136e5761136e61138a565b500290565b6000828210156113855761138561138a565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146113db57600080fd5b5056fea2646970667358221220579dfe9cfd1449f3d03f1178e62850a8cbf4a3e9703a02341ecef1ed9bd86efd64736f6c63430008000033",
      "sourceMap": "81:2419:5:-:0;;;197:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;244:18;;-1:-1:-1;;;;;;244:18:5;;;81:2419;;14:310:38;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:38;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:38:o;:::-;81:2419:5;;;;;;;;;;;;"
    },
    "deployedBytecode": {
      "object": "608060405234801561001057600080fd5b50600436106100675760003560e01c806380caa3531161005057806380caa353146100a9578063c45a0155146100c9578063d9b7a6e7146100de57610067565b80633558e94c1461006c57806369a2fcbd14610096575b600080fd5b61007f61007a366004610e4a565b6100f1565b60405161008d9291906112d7565b60405180910390f35b61007f6100a4366004610e8f565b61012f565b6100bc6100b7366004610e8f565b61016f565b60405161008d91906112ce565b6100d16101c0565b60405161008d9190611000565b61007f6100ec366004610e0a565b6101e4565b6000806101217f00000000000000000000000000000000000000000000000000000000000000008787878761021f565b915091505b94509492505050565b6000806101607f0000000000000000000000000000000000000000000000000000000000000000888888888861030b565b915091505b9550959350505050565b6000805a90506101a37f0000000000000000000000000000000000000000000000000000000000000000888888888861030b565b505060005a90506101b48183611373565b98975050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102137f000000000000000000000000000000000000000000000000000000000000000086868661055b565b91509150935093915050565b60008061022d878787610761565b909250905081158015906102415750600081115b610280576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610277906110c6565b60405180910390fd5b60008061028f8686868661086f565b9150915080600014156102a3575050610165565b81156102d65760006102b682868661094b565b90506102c282866112e5565b94506102ce8185611373565b9350506102ff565b60006102e382858761094b565b90506102ef82856112e5565b93506102fb8186611373565b9450505b50509550959350505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561036d57600080fd5b505afa158015610381573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a59190610de7565b73ffffffffffffffffffffffffffffffffffffffff161415905060006103cc8a8a8a610a19565b90506000826103dc57600061045a565b8173ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561042257600080fd5b505afa158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a9190610f2d565b905060008273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a457600080fd5b505afa1580156104b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104dc9190610f2d565b90508681101580156104ee5750600087115b610524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102779061123a565b6000806105348e8e8e8e8e61021f565b915091506105468282858c8a89610aa7565b97509750505050505050965096945050505050565b60008060008061056c888888610761565b91509150600061057d898989610a19565b905060008073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156105de57600080fd5b505afa1580156105f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106169190610de7565b73ffffffffffffffffffffffffffffffffffffffff161415905060008161063e5760006106bc565b8273ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561068457600080fd5b505afa158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bc9190610f2d565b905060008373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561070657600080fd5b505afa15801561071a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073e9190610f2d565b905061074e8686838c8787610aa7565b9750975050505050505094509492505050565b60008060006107708585610b6a565b509050600080610781888888610a19565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe9190610edf565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461085d578082610860565b81815b90999098509650505050505050565b600080858361087e8688610c69565b61088891906112fd565b10915060006108978585610c69565b905060006108e76108b76103e5866108af578a6108b1565b895b90610c69565b6108d86108c6856103e8610c69565b876108d1578a6108d3565b8b5b610c69565b6108e291906112fd565b610cc9565b905060006103e585610904576108ff876103e8610c69565b610910565b610910886103e8610c69565b61091a91906112fd565b9050808210156109335760008094509450505050610126565b61093d8282610d39565b935050505094509492505050565b6000808411610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611123565b6000831180156109965750600082115b6109cc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610277906111dd565b60006109da856103e5610c69565b905060006109e88285610c69565b90506000610a02836109fc886103e8610c69565b90610d81565b9050610a0e81836112fd565b979650505050505050565b6000806000610a288585610b6a565b91509150858282604051602001610a40929190610f45565b60405160208183030381529060405280519060200120604051602001610a67929190610f7f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b600080838015610ab75750600083115b15610b31576000610acb6108e28a8a610c69565b90506000610ad885610cc9565b905080821115610b2e57876000610aef8484610d39565b90506000610b02846109fc876005610c69565b9050600081610b118585610c69565b610b1b91906112fd565b9050610b278c82610d81565b9b50505050505b50505b85610b3c8987610c69565b610b4691906112fd565b86610b518988610c69565b610b5b91906112fd565b91509150965096945050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611180565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610c0d578284610c10565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611297565b9250929050565b6000811580610c8d57508282610c7f8183611336565b9250610c8b90836112fd565b145b610cc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611058565b92915050565b60006003821115610d2a5750806000610ce36002836112fd565b610cee9060016112e5565b90505b81811015610d2457905080600281610d0981866112fd565b610d1391906112e5565b610d1d91906112fd565b9050610cf1565b50610d34565b8115610d34575060015b919050565b600082610d468382611373565b9150811115610cc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611021565b600082610d8e83826112e5565b9150811015610cc3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102779061108f565b80516dffffffffffffffffffffffffffff81168114610d3457600080fd5b600060208284031215610df8578081fd5b8151610e03816113b9565b9392505050565b600080600060608486031215610e1e578182fd5b8335610e29816113b9565b92506020840135610e39816113b9565b929592945050506040919091013590565b60008060008060808587031215610e5f578081fd5b8435610e6a816113b9565b93506020850135610e7a816113b9565b93969395505050506040820135916060013590565b600080600080600060a08688031215610ea6578081fd5b8535610eb1816113b9565b94506020860135610ec1816113b9565b94979496505050506040830135926060810135926080909101359150565b600080600060608486031215610ef3578283fd5b610efc84610dc9565b9250610f0a60208501610dc9565b9150604084015163ffffffff81168114610f22578182fd5b809150509250925092565b600060208284031215610f3e578081fd5b5051919050565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811682529190921b16601482015260280190565b7fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f1974917c1e01e6369c1b45f631eae6a71d24cb5108c460cc7f0b1c608b3a7c94603582015260550190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b60208082526015908201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604082015260600190565b6020808252602b908201527f4d6174657269614172626974726167654c6962726172793a205a45524f5f504160408201527f49525f5245534552564553000000000000000000000000000000000000000000606082015260800190565b60208082526029908201527f4d6174657269614c6962726172793a20494e53554646494349454e545f494e5060408201527f55545f414d4f554e540000000000000000000000000000000000000000000000606082015260800190565b60208082526023908201527f4d6174657269614c6962726172793a204944454e544943414c5f41444452455360408201527f5345530000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f4d6174657269614c6962726172793a20494e53554646494349454e545f4c495160408201527f5549444954590000000000000000000000000000000000000000000000000000606082015260800190565b60208082526027908201527f436f6d707574654c697175696469747956616c75653a204c495155494449545960408201527f5f414d4f554e5400000000000000000000000000000000000000000000000000606082015260800190565b6020808252601c908201527f4d6174657269614c6962726172793a205a45524f5f4144445245535300000000604082015260600190565b90815260200190565b918252602082015260400190565b600082198211156112f8576112f861138a565b500190565b600082611331577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561136e5761136e61138a565b500290565b6000828210156113855761138561138a565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146113db57600080fd5b5056fea2646970667358221220579dfe9cfd1449f3d03f1178e62850a8cbf4a3e9703a02341ecef1ed9bd86efd64736f6c63430008000033",
      "sourceMap": "81:2419:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;340:420;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1279:538;;;;;;:::i;:::-;;:::i;1890:608::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;158:32::-;;;:::i;:::-;;;;;;;:::i;823:372::-;;;;;;:::i;:::-;;:::i;340:420::-;518:16;536;571:182;638:7;659:6;679;699:15;728;571:53;:182::i;:::-;564:189;;;;340:420;;;;;;;;:::o;1279:538::-;1512:20;1542;1586:224;1666:7;1687:6;1707;1727:15;1756;1785;1586:66;:224::i;:::-;1579:231;;;;1279:538;;;;;;;;;:::o;1890:608::-;2135:7;2159:14;2176:9;2159:26;;2195:224;2275:7;2296:6;2316;2336:15;2365;2394;2195:66;:224::i;:::-;;;2429:13;2445:9;2429:25;-1:-1:-1;2471:20:5;2429:25;2471:9;:20;:::i;:::-;2464:27;1890:608;-1:-1:-1;;;;;;;;1890:608:5:o;158:32::-;;;:::o;823:372::-;969:20;999;1043:145;1102:7;1123:6;1143;1163:15;1043:45;:145::i;:::-;1036:152;;;;823:372;;;;;;:::o;1515:1153:33:-;1718:16;1736;1833:51;1860:7;1869:6;1877;1833:26;:51::i;:::-;1810:74;;-1:-1:-1;1810:74:33;-1:-1:-1;1903:12:33;;;;;:28;;;1930:1;1919:8;:12;1903:28;1895:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;2057:9;2068:16;2088:82;2117:15;2134;2151:8;2161;2088:28;:82::i;:::-;2056:114;;;;2185:8;2197:1;2185:13;2181:71;;;2214:27;;;;2181:71;2314:4;2310:352;;;2334:14;2351:57;2379:8;2389;2399;2351:27;:57::i;:::-;2334:74;-1:-1:-1;2422:20:33;2434:8;2422:20;;:::i;:::-;;-1:-1:-1;2456:21:33;2468:9;2456:21;;:::i;:::-;;;2310:352;;;;2508:14;2525:57;2553:8;2563;2573;2525:27;:57::i;:::-;2508:74;-1:-1:-1;2596:20:33;2608:8;2596:20;;:::i;:::-;;-1:-1:-1;2630:21:33;2642:9;2630:21;;:::i;:::-;;;2310:352;;1515:1153;;;;;;;;;;:::o;4799:976::-;5057:20;5087;5124:10;5181:1;5137:46;;5153:7;5137:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46;;;;5124:59;;5193:17;5226:47;5249:7;5258:6;5266;5226:22;:47::i;:::-;5193:81;;5284:10;5297:5;:24;;5320:1;5297:24;;;5305:4;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5284:37;;5331:16;5350:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5331:37;;5451:15;5436:11;:30;;:53;;;;;5488:1;5470:15;:19;5436:53;5428:105;;;;;;;;;;;;:::i;:::-;5545:14;5561;5579:84;5605:7;5614:6;5622;5630:15;5647;5579:25;:84::i;:::-;5544:119;;;;5681:87;5703:9;5714;5725:11;5738:15;5755:5;5762;5681:21;:87::i;:::-;5674:94;;;;;;;;;;4799:976;;;;;;;;;:::o;3900:673::-;4062:20;4084;4117:17;4136;4157:51;4184:7;4193:6;4201;4157:26;:51::i;:::-;4116:92;;;;4218:17;4251:47;4274:7;4283:6;4291;4251:22;:47::i;:::-;4218:81;;4309:10;4366:1;4322:46;;4338:7;4322:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46;;;;4309:59;;4378:10;4391:5;:24;;4414:1;4391:24;;;4399:4;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4378:37;;4425:16;4444:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4425:37;;4479:87;4501:9;4512;4523:11;4536:15;4553:5;4560;4479:21;:87::i;:::-;4472:94;;;;;;;;;;3900:673;;;;;;;:::o;1527:429:32:-;1650:16;1668;1697:14;1717:26;1728:6;1736;1717:10;:26::i;:::-;1696:47;;;1754:16;1772;1807:32;1815:7;1824:6;1832;1807:7;:32::i;:::-;1794:58;;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1753:101;;;;;;;;;1897:6;1887:16;;:6;:16;;;:62;;1930:8;1940;1887:62;;;1907:8;1917;1887:62;1864:85;;;;-1:-1:-1;1527:429:32;-1:-1:-1;;;;;;;1527:429:32:o;488:890:33:-;673:9;684:16;770:15;759:8;719:39;732:8;742:15;719:12;:39::i;:::-;:48;;;;:::i;:::-;:66;;-1:-1:-1;796:17:33;816:22;:8;829;816:12;:22::i;:::-;796:42;;849:16;868:223;1017:51;1064:3;1018:4;:40;;1043:15;1018:40;;;1025:15;1018:40;1017:46;;:51::i;:::-;891:108;921:19;:9;935:4;921:13;:19::i;:::-;958:4;:40;;983:15;958:40;;;965:15;958:40;891:12;:108::i;:::-;:177;;;;:::i;:::-;868:9;:223::i;:::-;849:242;;1101:17;1172:3;1122:4;:46;;1150:18;:8;1163:4;1150:12;:18::i;:::-;1122:46;;;1129:18;:8;1142:4;1129:12;:18::i;:::-;1121:54;;;;:::i;:::-;1101:74;;1201:9;1190:8;:20;1186:43;;;1220:5;1227:1;1212:17;;;;;;;;;1186:43;1348:23;:8;1361:9;1348:12;:23::i;:::-;1337:34;;488:890;;;;;;;;;;:::o;2540:557:32:-;2672:17;2720:1;2709:8;:12;2701:66;;;;;;;;;;;;:::i;:::-;2797:1;2785:9;:13;:31;;;;;2815:1;2802:10;:14;2785:31;2777:82;;;;;;;;;;;;:::i;:::-;2869:23;2895:17;:8;2908:3;2895:12;:17::i;:::-;2869:43;-1:-1:-1;2922:17:32;2942:31;2869:43;2962:10;2942:19;:31::i;:::-;2922:51;-1:-1:-1;2983:19:32;3005:40;3029:15;3005:19;:9;3019:4;3005:13;:19::i;:::-;:23;;:40::i;:::-;2983:62;-1:-1:-1;3067:23:32;2983:62;3067:9;:23;:::i;:::-;3055:35;2540:557;-1:-1:-1;;;;;;;2540:557:32:o;764:708::-;883:12;908:14;924;942:26;953:6;961;942:10;:26::i;:::-;907:61;;;;1178:7;1242:6;1250;1225:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1215:43;;;;;;1095:306;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;1060:363;;1095:306;1060:363;;;;;764:708;-1:-1:-1;;;;;;764:708:32:o;2743:895:33:-;2959:20;2981;3017:5;:18;;;;;3034:1;3026:5;:9;3017:18;3013:510;;;3051:10;3064:35;3074:24;:9;3088;3074:13;:24::i;3064:35::-;3051:48;;3113:14;3130:16;3140:5;3130:9;:16::i;:::-;3113:33;;3172:9;3164:5;:17;3160:353;;;3219:11;3201:15;3266:20;:5;3276:9;3266;:20::i;:::-;3248:38;-1:-1:-1;3304:16:33;3323:27;3340:9;3323:12;:5;3333:1;3323:9;:12::i;:27::-;3304:46;;3368:17;3426:11;3388:36;3401:10;3413;3388:12;:36::i;:::-;:49;;;;:::i;:::-;3368:69;-1:-1:-1;3469:29:33;:11;3368:69;3469:15;:29::i;:::-;3455:43;;3160:353;;;;;3013:510;;;3573:11;3540:30;:9;3554:15;3540:13;:30::i;:::-;:44;;;;:::i;:::-;3619:11;3586:30;:9;3600:15;3586:13;:30::i;:::-;:44;;;;:::i;:::-;3532:99;;;;2743:895;;;;;;;;;:::o;334:341:32:-;409:14;425;469:6;459:16;;:6;:16;;;;451:64;;;;;;;;;;;;:::i;:::-;553:6;544:15;;:6;:15;;;:53;;582:6;590;544:53;;;563:6;571;544:53;525:72;;-1:-1:-1;525:72:32;-1:-1:-1;615:20:32;;;607:61;;;;;;;;;;;;:::i;:::-;334:341;;;;;:::o;458:140:35:-;510:6;536;;;:30;;-1:-1:-1;565:1:35;560;551:5;560:1;565;551:5;:::i;:::-;547:9;-1:-1:-1;546:15:35;;547:9;546:15;:::i;:::-;:20;536:30;528:63;;;;;;;;;;;;:::i;:::-;458:140;;;;:::o;346:292:34:-;391:6;417:1;413;:5;409:223;;;-1:-1:-1;438:1:34;453:6;462:5;466:1;438;462:5;:::i;:::-;:9;;470:1;462:9;:::i;:::-;453:18;;485:89;496:1;492;:5;485:89;;;521:1;-1:-1:-1;521:1:34;558;521;545:5;521:1;545;:5;:::i;:::-;:9;;;;:::i;:::-;544:15;;;;:::i;:::-;540:19;;485:89;;;409:223;;;;594:6;;590:42;;-1:-1:-1;620:1:34;590:42;346:292;;;:::o;325:127:35:-;377:6;418:1;408:5;412:1;418;408:5;:::i;:::-;404:9;;;403:16;;395:50;;;;;;;;;;;;:::i;193:126::-;245:6;286:1;276:5;280:1;286;276:5;:::i;:::-;272:9;;;271:16;;263:49;;;;;;;;;;;;:::i;14:190:38:-;95:13;;148:30;137:42;;127:53;;117:2;;194:1;191;184:12;209:263;;332:2;320:9;311:7;307:23;303:32;300:2;;;353:6;345;338:22;300:2;390:9;384:16;409:33;436:5;409:33;:::i;:::-;461:5;290:182;-1:-1:-1;;;290:182:38:o;477:470::-;;;;623:2;611:9;602:7;598:23;594:32;591:2;;;644:6;636;629:22;591:2;688:9;675:23;707:33;734:5;707:33;:::i;:::-;759:5;-1:-1:-1;816:2:38;801:18;;788:32;829:35;788:32;829:35;:::i;:::-;581:366;;883:7;;-1:-1:-1;;;937:2:38;922:18;;;;909:32;;581:366::o;952:539::-;;;;;1115:3;1103:9;1094:7;1090:23;1086:33;1083:2;;;1137:6;1129;1122:22;1083:2;1181:9;1168:23;1200:33;1227:5;1200:33;:::i;:::-;1252:5;-1:-1:-1;1309:2:38;1294:18;;1281:32;1322:35;1281:32;1322:35;:::i;:::-;1073:418;;1376:7;;-1:-1:-1;;;;1430:2:38;1415:18;;1402:32;;1481:2;1466:18;1453:32;;1073:418::o;1496:608::-;;;;;;1676:3;1664:9;1655:7;1651:23;1647:33;1644:2;;;1698:6;1690;1683:22;1644:2;1742:9;1729:23;1761:33;1788:5;1761:33;:::i;:::-;1813:5;-1:-1:-1;1870:2:38;1855:18;;1842:32;1883:35;1842:32;1883:35;:::i;:::-;1634:470;;1937:7;;-1:-1:-1;;;;1991:2:38;1976:18;;1963:32;;2042:2;2027:18;;2014:32;;2093:3;2078:19;;;2065:33;;-1:-1:-1;1634:470:38:o;2109:474::-;;;;2265:2;2253:9;2244:7;2240:23;2236:32;2233:2;;;2286:6;2278;2271:22;2233:2;2314:42;2346:9;2314:42;:::i;:::-;2304:52;;2375:51;2422:2;2411:9;2407:18;2375:51;:::i;:::-;2365:61;;2469:2;2458:9;2454:18;2448:25;2513:10;2506:5;2502:22;2495:5;2492:33;2482:2;;2544:6;2536;2529:22;2482:2;2572:5;2562:15;;;2223:360;;;;;:::o;2588:194::-;;2711:2;2699:9;2690:7;2686:23;2682:32;2679:2;;;2732:6;2724;2717:22;2679:2;-1:-1:-1;2760:16:38;;2669:113;-1:-1:-1;2669:113:38:o;2787:368::-;2954:66;3049:2;3045:15;;;3041:24;;3029:37;;3100:15;;;;3096:24;3091:2;3082:12;;3075:46;3146:2;3137:12;;2934:221::o;3160:724::-;3531:66;3519:79;;3635:2;3631:15;;;;3648:66;3627:88;3623:1;3614:11;;3607:109;3741:2;3732:12;;3725:28;3783:66;3778:2;3769:12;;3762:88;3875:2;3866:12;;3509:375::o;3889:226::-;4065:42;4053:55;;;;4035:74;;4023:2;4008:18;;3990:125::o;4120:345::-;4322:2;4304:21;;;4361:2;4341:18;;;4334:30;4400:23;4395:2;4380:18;;4373:51;4456:2;4441:18;;4294:171::o;4470:344::-;4672:2;4654:21;;;4711:2;4691:18;;;4684:30;4750:22;4745:2;4730:18;;4723:50;4805:2;4790:18;;4644:170::o;4819:344::-;5021:2;5003:21;;;5060:2;5040:18;;;5033:30;5099:22;5094:2;5079:18;;5072:50;5154:2;5139:18;;4993:170::o;5168:407::-;5370:2;5352:21;;;5409:2;5389:18;;;5382:30;5448:34;5443:2;5428:18;;5421:62;5519:13;5514:2;5499:18;;5492:41;5565:3;5550:19;;5342:233::o;5580:405::-;5782:2;5764:21;;;5821:2;5801:18;;;5794:30;5860:34;5855:2;5840:18;;5833:62;5931:11;5926:2;5911:18;;5904:39;5975:3;5960:19;;5754:231::o;5990:399::-;6192:2;6174:21;;;6231:2;6211:18;;;6204:30;6270:34;6265:2;6250:18;;6243:62;6341:5;6336:2;6321:18;;6314:33;6379:3;6364:19;;6164:225::o;6394:402::-;6596:2;6578:21;;;6635:2;6615:18;;;6608:30;6674:34;6669:2;6654:18;;6647:62;6745:8;6740:2;6725:18;;6718:36;6786:3;6771:19;;6568:228::o;6801:403::-;7003:2;6985:21;;;7042:2;7022:18;;;7015:30;7081:34;7076:2;7061:18;;7054:62;7152:9;7147:2;7132:18;;7125:37;7194:3;7179:19;;6975:229::o;7209:352::-;7411:2;7393:21;;;7450:2;7430:18;;;7423:30;7489;7484:2;7469:18;;7462:58;7552:2;7537:18;;7383:178::o;7566:177::-;7712:25;;;7700:2;7685:18;;7667:76::o;7748:248::-;7922:25;;;7978:2;7963:18;;7956:34;7910:2;7895:18;;7877:119::o;8001:128::-;;8072:1;8068:6;8065:1;8062:13;8059:2;;;8078:18;;:::i;:::-;-1:-1:-1;8114:9:38;;8049:80::o;8134:274::-;;8200:1;8190:2;;8235:77;8232:1;8225:88;8336:4;8333:1;8326:15;8364:4;8361:1;8354:15;8190:2;-1:-1:-1;8393:9:38;;8180:228::o;8413:::-;;8579:1;8511:66;8507:74;8504:1;8501:81;8496:1;8489:9;8482:17;8478:105;8475:2;;;8586:18;;:::i;:::-;-1:-1:-1;8626:9:38;;8465:176::o;8646:125::-;;8714:1;8711;8708:8;8705:2;;;8719:18;;:::i;:::-;-1:-1:-1;8756:9:38;;8695:76::o;8776:184::-;8828:77;8825:1;8818:88;8925:4;8922:1;8915:15;8949:4;8946:1;8939:15;8965:156;9053:42;9046:5;9042:54;9035:5;9032:65;9022:2;;9111:1;9108;9101:12;9022:2;9012:109;:::o"
    }
  },
  "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidityAmount\",\"type\":\"uint256\"}],\"name\":\"getGasCostOfGetLiquidityValueAfterArbitrageToPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidityAmount\",\"type\":\"uint256\"}],\"name\":\"getLiquidityValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenBAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidityAmount\",\"type\":\"uint256\"}],\"name\":\"getLiquidityValueAfterArbitrageToPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenBAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"truePriceTokenB\",\"type\":\"uint256\"}],\"name\":\"getReservesAfterArbitrage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveB\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/ExampleComputeLiquidityValue.sol\":\"ExampleComputeLiquidityValue\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":9999},\"remappings\":[]},\"sources\":{\"contracts/examples/ExampleComputeLiquidityValue.sol\":{\"keccak256\":\"0xb689faf17113dba152230713291e1fd1d782d230171bc2564ab5adf965929109\",\"urls\":[\"bzz-raw://3ac5d21ddd70241036ceb64bf725340eac8d24cc5fa22e9e569eb50e49109daf\",\"dweb:/ipfs/QmNwB4FXci6rphNhPpbfcaazu54V7kNbSKv5CHTf4yJHxy\"]},\"contracts/interfaces/IMateriaFactory.sol\":{\"keccak256\":\"0xbb23d0937dd4e8da3b15e4e461603554abc9945d40b713f5f8f6e612d7e36dae\",\"license\":\"GPL3\",\"urls\":[\"bzz-raw://1cc856dd3375c7c345c693edda94b27d5c03d666843989308d6e61ef786b3718\",\"dweb:/ipfs/QmZaq9Vec3gVXNFoaWX56B2DQPYjpiDahdEoqogskHiJAp\"]},\"contracts/interfaces/IMateriaPair.sol\":{\"keccak256\":\"0x9bebb503cf622a7e7328ff812b8817e1d3b22e273d345083118e92522b810693\",\"urls\":[\"bzz-raw://a0b3308a2e9f28a85ec586372329792eaf32562c7293af0657ef03f8d04bc7f9\",\"dweb:/ipfs/QmegwdpH1wYAUtTwKu1yUiekj13CB251znNc4Kb2Jf5b2L\"]},\"contracts/libraries/MateriaLibrary.sol\":{\"keccak256\":\"0x84b8cdd67ecab6d9bd442140670a16c4608fefdcaa702c25339a89b0527381c6\",\"license\":\"GPL3\",\"urls\":[\"bzz-raw://f2ce38a46f0ddc6b043ba9e91590f482553fc96c7bec769825d36089f6d08887\",\"dweb:/ipfs/QmXVp7AwoHFm4whU26XE9kvaYmfb4QyXrzsqaEGXvgybFN\"]},\"contracts/libraries/MateriaLiquidityMathLibrary.sol\":{\"keccak256\":\"0x138eda0b6b2fcd13896f36df95fabfba41993ed795390821bf122627f72d88d3\",\"urls\":[\"bzz-raw://82d6d09dd40daeb1753dcaea811bf07915c5ee54eaf8b8c4b025d7216eae46ba\",\"dweb:/ipfs/QmUCp5AjamJqu6cJdGnfwG2m27UfMtaAe67ksroFknrNcJ\"]},\"contracts/libraries/Math.sol\":{\"keccak256\":\"0x8d2aa0782d2018f23f4dde78b89f561c377dbb9bbcc877da7c2bb5e5f95e1502\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c62a2dbd0f790792855815f1ff2d39fea43b1bc9a29b7e60407afb7fc1ba1bf0\",\"dweb:/ipfs/QmYDAf4QU6xL9FDBKzkjVmoXxUhx3R4FBTnA9hxjJE9mxk\"]},\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0xe04b4ed1aab8779734d012e907f742e8b6e8ad539c01d5466b9eb58752fdc514\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://667941f2ea3584629681a303e988ffcbc33a2e8313f4658ad8700b2209b3ea4d\",\"dweb:/ipfs/QmafqLrntkf6gRyhAHt4wYojdHwuZXeD8gcE7FJWW6rKWm\"]}},\"version\":1}",
  "bytecode": "60a060405234801561001057600080fd5b506040516114bf3803806114bf83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6114146100ab6000396000818160f9015281816101370152818161017a015281816101c201526101ec01526114146000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806380caa3531161005057806380caa353146100a9578063c45a0155146100c9578063d9b7a6e7146100de57610067565b80633558e94c1461006c57806369a2fcbd14610096575b600080fd5b61007f61007a366004610e4a565b6100f1565b60405161008d9291906112d7565b60405180910390f35b61007f6100a4366004610e8f565b61012f565b6100bc6100b7366004610e8f565b61016f565b60405161008d91906112ce565b6100d16101c0565b60405161008d9190611000565b61007f6100ec366004610e0a565b6101e4565b6000806101217f00000000000000000000000000000000000000000000000000000000000000008787878761021f565b915091505b94509492505050565b6000806101607f0000000000000000000000000000000000000000000000000000000000000000888888888861030b565b915091505b9550959350505050565b6000805a90506101a37f0000000000000000000000000000000000000000000000000000000000000000888888888861030b565b505060005a90506101b48183611373565b98975050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102137f000000000000000000000000000000000000000000000000000000000000000086868661055b565b91509150935093915050565b60008061022d878787610761565b909250905081158015906102415750600081115b610280576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610277906110c6565b60405180910390fd5b60008061028f8686868661086f565b9150915080600014156102a3575050610165565b81156102d65760006102b682868661094b565b90506102c282866112e5565b94506102ce8185611373565b9350506102ff565b60006102e382858761094b565b90506102ef82856112e5565b93506102fb8186611373565b9450505b50509550959350505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561036d57600080fd5b505afa158015610381573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a59190610de7565b73ffffffffffffffffffffffffffffffffffffffff161415905060006103cc8a8a8a610a19565b90506000826103dc57600061045a565b8173ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561042257600080fd5b505afa158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a9190610f2d565b905060008273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a457600080fd5b505afa1580156104b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104dc9190610f2d565b90508681101580156104ee5750600087115b610524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102779061123a565b6000806105348e8e8e8e8e61021f565b915091506105468282858c8a89610aa7565b97509750505050505050965096945050505050565b60008060008061056c888888610761565b91509150600061057d898989610a19565b905060008073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156105de57600080fd5b505afa1580156105f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106169190610de7565b73ffffffffffffffffffffffffffffffffffffffff161415905060008161063e5760006106bc565b8273ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561068457600080fd5b505afa158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bc9190610f2d565b905060008373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561070657600080fd5b505afa15801561071a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073e9190610f2d565b905061074e8686838c8787610aa7565b9750975050505050505094509492505050565b60008060006107708585610b6a565b509050600080610781888888610a19565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe9190610edf565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461085d578082610860565b81815b90999098509650505050505050565b600080858361087e8688610c69565b61088891906112fd565b10915060006108978585610c69565b905060006108e76108b76103e5866108af578a6108b1565b895b90610c69565b6108d86108c6856103e8610c69565b876108d1578a6108d3565b8b5b610c69565b6108e291906112fd565b610cc9565b905060006103e585610904576108ff876103e8610c69565b610910565b610910886103e8610c69565b61091a91906112fd565b9050808210156109335760008094509450505050610126565b61093d8282610d39565b935050505094509492505050565b6000808411610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611123565b6000831180156109965750600082115b6109cc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610277906111dd565b60006109da856103e5610c69565b905060006109e88285610c69565b90506000610a02836109fc886103e8610c69565b90610d81565b9050610a0e81836112fd565b979650505050505050565b6000806000610a288585610b6a565b91509150858282604051602001610a40929190610f45565b60405160208183030381529060405280519060200120604051602001610a67929190610f7f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b600080838015610ab75750600083115b15610b31576000610acb6108e28a8a610c69565b90506000610ad885610cc9565b905080821115610b2e57876000610aef8484610d39565b90506000610b02846109fc876005610c69565b9050600081610b118585610c69565b610b1b91906112fd565b9050610b278c82610d81565b9b50505050505b50505b85610b3c8987610c69565b610b4691906112fd565b86610b518988610c69565b610b5b91906112fd565b91509150965096945050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611180565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610c0d578284610c10565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610c62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611297565b9250929050565b6000811580610c8d57508282610c7f8183611336565b9250610c8b90836112fd565b145b610cc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611058565b92915050565b60006003821115610d2a5750806000610ce36002836112fd565b610cee9060016112e5565b90505b81811015610d2457905080600281610d0981866112fd565b610d1391906112e5565b610d1d91906112fd565b9050610cf1565b50610d34565b8115610d34575060015b919050565b600082610d468382611373565b9150811115610cc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027790611021565b600082610d8e83826112e5565b9150811015610cc3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102779061108f565b80516dffffffffffffffffffffffffffff81168114610d3457600080fd5b600060208284031215610df8578081fd5b8151610e03816113b9565b9392505050565b600080600060608486031215610e1e578182fd5b8335610e29816113b9565b92506020840135610e39816113b9565b929592945050506040919091013590565b60008060008060808587031215610e5f578081fd5b8435610e6a816113b9565b93506020850135610e7a816113b9565b93969395505050506040820135916060013590565b600080600080600060a08688031215610ea6578081fd5b8535610eb1816113b9565b94506020860135610ec1816113b9565b94979496505050506040830135926060810135926080909101359150565b600080600060608486031215610ef3578283fd5b610efc84610dc9565b9250610f0a60208501610dc9565b9150604084015163ffffffff81168114610f22578182fd5b809150509250925092565b600060208284031215610f3e578081fd5b5051919050565b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811682529190921b16601482015260280190565b7fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f1974917c1e01e6369c1b45f631eae6a71d24cb5108c460cc7f0b1c608b3a7c94603582015260550190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b60208082526015908201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604082015260600190565b6020808252602b908201527f4d6174657269614172626974726167654c6962726172793a205a45524f5f504160408201527f49525f5245534552564553000000000000000000000000000000000000000000606082015260800190565b60208082526029908201527f4d6174657269614c6962726172793a20494e53554646494349454e545f494e5060408201527f55545f414d4f554e540000000000000000000000000000000000000000000000606082015260800190565b60208082526023908201527f4d6174657269614c6962726172793a204944454e544943414c5f41444452455360408201527f5345530000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f4d6174657269614c6962726172793a20494e53554646494349454e545f4c495160408201527f5549444954590000000000000000000000000000000000000000000000000000606082015260800190565b60208082526027908201527f436f6d707574654c697175696469747956616c75653a204c495155494449545960408201527f5f414d4f554e5400000000000000000000000000000000000000000000000000606082015260800190565b6020808252601c908201527f4d6174657269614c6962726172793a205a45524f5f4144445245535300000000604082015260600190565b90815260200190565b918252602082015260400190565b600082198211156112f8576112f861138a565b500190565b600082611331577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561136e5761136e61138a565b500290565b6000828210156113855761138561138a565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146113db57600080fd5b5056fea2646970667358221220579dfe9cfd1449f3d03f1178e62850a8cbf4a3e9703a02341ecef1ed9bd86efd64736f6c63430008000033"
}