@acala-network/contracts
Version:
AcalaNetwork Smart Contract library for Solidity
348 lines (347 loc) • 34.3 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "DEX",
"sourceName": "contracts/dex/DEX.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "maxAmountA",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "maxAmountB",
"type": "uint256"
}
],
"name": "AddedLiquidity",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "removeShare",
"type": "uint256"
}
],
"name": "RemovedLiquidity",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": false,
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"indexed": false,
"internalType": "uint256",
"name": "supplyAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "targetAmount",
"type": "uint256"
}
],
"name": "Swaped",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "maxAmountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxAmountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minShareIncrement",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "getLiquidityPool",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "getLiquidityTokenAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "targetAmount",
"type": "uint256"
}
],
"name": "getSwapSupplyAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "supplyAmount",
"type": "uint256"
}
],
"name": "getSwapTargetAmount",
"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": "removeShare",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minWithdrawnA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minWithdrawnB",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "supplyAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minTargetAmount",
"type": "uint256"
}
],
"name": "swapWithExactSupply",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "targetAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxSupplyAmount",
"type": "uint256"
}
],
"name": "swapWithExactTarget",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50611a1a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063dbcd19a21161005b578063dbcd19a2146100fc578063e2dc85dc1461010f578063f4f31ede14610122578063ffd73c4a1461014a57600080fd5b80633d8d96201461008d5780634d60beb1146100b55780636fc4b4e5146100d657806391c98a2a146100e9575b600080fd5b6100a061009b3660046116cf565b610182565b60405190151581526020015b60405180910390f35b6100c86100c336600461171d565b610439565b6040519081526020016100ac565b6100a06100e43660046116cf565b610691565b6100a06100f7366004611762565b61092f565b6100c861010a36600461171d565b610c89565b6100a061011d366004611762565b610e72565b6101356101303660046117b3565b611171565b604080519283526020830191909152016100ac565b61015d6101583660046117b3565b611395565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ac565b6000805b845181101561025557600073ffffffffffffffffffffffffffffffffffffffff168582815181106101b9576101b96117ec565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4445583a20746f6b656e206973207a65726f206164647265737300000000000060448201526064015b60405180910390fd5b8061024d8161181b565b915050610186565b50826000036102c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4445583a20746172676574416d6f756e74206973207a65726f00000000000000604482015260640161023a565b60008061040573ffffffffffffffffffffffffffffffffffffffff16338787876040516024016102f394939291906118cb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9782ac810000000000000000000000000000000000000000000000000000000017905251610374919061190d565b6000604051808303816000865af19150503d80600081146103b1576040519150601f19603f3d011682016040523d82523d6000602084013e6103b6565b606091505b509092509050816103c8573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7b1ccce9b5299ff0ae3d9adc0855268a4ad3527b2bcde01ccadde2fb878ecb8a8783806020019051810190610415919061193c565b8860405161042593929190611955565b60405180910390a250600195945050505050565b6000805b835181101561050757600073ffffffffffffffffffffffffffffffffffffffff16848281518110610470576104706117ec565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036104f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4445583a20746f6b656e206973207a65726f2061646472657373000000000000604482015260640161023a565b806104ff8161181b565b91505061043d565b5081600003610572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4445583a20737570706c79416d6f756e74206973207a65726f00000000000000604482015260640161023a565b60008061040573ffffffffffffffffffffffffffffffffffffffff1685856040516024016105a192919061197a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4d60beb10000000000000000000000000000000000000000000000000000000017905251610622919061190d565b600060405180830381855afa9150503d806000811461065d576040519150601f19603f3d011682016040523d82523d6000602084013e610662565b606091505b50909250905081610674573d60208201fd5b80806020019051810190610688919061193c565b95945050505050565b6000805b845181101561075f57600073ffffffffffffffffffffffffffffffffffffffff168582815181106106c8576106c86117ec565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361074d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4445583a20746f6b656e206973207a65726f2061646472657373000000000000604482015260640161023a565b806107578161181b565b915050610695565b50826000036107ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4445583a20737570706c79416d6f756e74206973207a65726f00000000000000604482015260640161023a565b60008061040573ffffffffffffffffffffffffffffffffffffffff16338787876040516024016107fd94939291906118cb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f579baa18000000000000000000000000000000000000000000000000000000001790525161087e919061190d565b6000604051808303816000865af19150503d80600081146108bb576040519150601f19603f3d011682016040523d82523d6000602084013e6108c0565b606091505b509092509050816108d2573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7b1ccce9b5299ff0ae3d9adc0855268a4ad3527b2bcde01ccadde2fb878ecb8a878784806020019051810190610920919061193c565b60405161042593929190611955565b600073ffffffffffffffffffffffffffffffffffffffff86166109ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e41206973207a65726f20616464726573730000000000604482015260640161023a565b73ffffffffffffffffffffffffffffffffffffffff8516610a2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e42206973207a65726f20616464726573730000000000604482015260640161023a565b83600003610a95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4445583a206d6178416d6f756e7441206973207a65726f000000000000000000604482015260640161023a565b82600003610aff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4445583a206d6178416d6f756e7442206973207a65726f000000000000000000604482015260640161023a565b60405133602482015273ffffffffffffffffffffffffffffffffffffffff8781166044830152861660648201526084810185905260a4810184905260c4810183905260009081906104059060e401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f67088d590000000000000000000000000000000000000000000000000000000017905251610bce919061190d565b6000604051808303816000865af19150503d8060008114610c0b576040519150601f19603f3d011682016040523d82523d6000602084013e610c10565b606091505b50909250905081610c22573d60208201fd5b604080518781526020810187905273ffffffffffffffffffffffffffffffffffffffff808a1692908b169133917f5b6f5f6550282279c4e72b95a8ba538bea92c64dec9e8c7c08a556d4457225c891015b60405180910390a4506001979650505050505050565b6000805b8351811015610d5757600073ffffffffffffffffffffffffffffffffffffffff16848281518110610cc057610cc06117ec565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610d45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4445583a20746f6b656e206973207a65726f2061646472657373000000000000604482015260640161023a565b80610d4f8161181b565b915050610c8d565b5081600003610dc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4445583a20746172676574416d6f756e74206973207a65726f00000000000000604482015260640161023a565b60008061040573ffffffffffffffffffffffffffffffffffffffff168585604051602401610df192919061197a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fdbcd19a20000000000000000000000000000000000000000000000000000000017905251610622919061190d565b600073ffffffffffffffffffffffffffffffffffffffff8616610ef1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e41206973207a65726f20616464726573730000000000604482015260640161023a565b73ffffffffffffffffffffffffffffffffffffffff8516610f6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e42206973207a65726f20616464726573730000000000604482015260640161023a565b83600003610fd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4445583a2072656d6f76655368617265206973207a65726f0000000000000000604482015260640161023a565b60405133602482015273ffffffffffffffffffffffffffffffffffffffff8781166044830152861660648201526084810185905260a4810184905260c4810183905260009081906104059060e401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3531533200000000000000000000000000000000000000000000000000000000179052516110a7919061190d565b6000604051808303816000865af19150503d80600081146110e4576040519150601f19603f3d011682016040523d82523d6000602084013e6110e9565b606091505b509092509050816110fb573d60208201fd5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f038116623990e7d0fed04a27e35b5dc88000ea942b37360c5898ae750bfa5df689604051610c7391815260200190565b60008073ffffffffffffffffffffffffffffffffffffffff84166111f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e41206973207a65726f20616464726573730000000000604482015260640161023a565b73ffffffffffffffffffffffffffffffffffffffff831661126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e42206973207a65726f20616464726573730000000000604482015260640161023a565b60405173ffffffffffffffffffffffffffffffffffffffff858116602483015284166044820152600090819061040590606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff4f31ede0000000000000000000000000000000000000000000000000000000017905251611322919061190d565b600060405180830381855afa9150503d806000811461135d576040519150601f19603f3d011682016040523d82523d6000602084013e611362565b606091505b50909250905081611374573d60208201fd5b80806020019051810190611388919061199c565b9350935050509250929050565b600073ffffffffffffffffffffffffffffffffffffffff8316611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e41206973207a65726f20616464726573730000000000604482015260640161023a565b73ffffffffffffffffffffffffffffffffffffffff8216611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e42206973207a65726f20616464726573730000000000604482015260640161023a565b60405173ffffffffffffffffffffffffffffffffffffffff848116602483015283166044820152600090819061040590606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffd73c4a0000000000000000000000000000000000000000000000000000000017905251611545919061190d565b600060405180830381855afa9150503d8060008114611580576040519150601f19603f3d011682016040523d82523d6000602084013e611585565b606091505b50909250905081611597573d60208201fd5b8080602001905181019061068891906119c0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146115fc57600080fd5b50565b803561160a816115da565b919050565b600082601f83011261162057600080fd5b8135602067ffffffffffffffff8083111561163d5761163d6115ab565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715611680576116806115ab565b60405293845285810183019383810192508785111561169e57600080fd5b83870191505b848210156116c4576116b5826115ff565b835291830191908301906116a4565b979650505050505050565b6000806000606084860312156116e457600080fd5b833567ffffffffffffffff8111156116fb57600080fd5b6117078682870161160f565b9660208601359650604090950135949350505050565b6000806040838503121561173057600080fd5b823567ffffffffffffffff81111561174757600080fd5b6117538582860161160f565b95602094909401359450505050565b600080600080600060a0868803121561177a57600080fd5b8535611785816115da565b94506020860135611795816115da565b94979496505050506040830135926060810135926080909101359150565b600080604083850312156117c657600080fd5b82356117d1816115da565b915060208301356117e1816115da565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611873577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b600081518084526020808501945080840160005b838110156118c057815173ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161188e565b509495945050505050565b73ffffffffffffffffffffffffffffffffffffffff851681526080602082015260006118fa608083018661187a565b6040830194909452506060015292915050565b6000825160005b8181101561192e5760208186018101518583015201611914565b506000920191825250919050565b60006020828403121561194e57600080fd5b5051919050565b606081526000611968606083018661187a565b60208301949094525060400152919050565b60408152600061198d604083018561187a565b90508260208301529392505050565b600080604083850312156119af57600080fd5b505080516020909101519092909150565b6000602082840312156119d257600080fd5b81516119dd816115da565b939250505056fea26469706673582212203571b085ba38af00af94c1024e11fe466dc0cf2492619dd503ef2e797a627b5464736f6c63430008120033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063dbcd19a21161005b578063dbcd19a2146100fc578063e2dc85dc1461010f578063f4f31ede14610122578063ffd73c4a1461014a57600080fd5b80633d8d96201461008d5780634d60beb1146100b55780636fc4b4e5146100d657806391c98a2a146100e9575b600080fd5b6100a061009b3660046116cf565b610182565b60405190151581526020015b60405180910390f35b6100c86100c336600461171d565b610439565b6040519081526020016100ac565b6100a06100e43660046116cf565b610691565b6100a06100f7366004611762565b61092f565b6100c861010a36600461171d565b610c89565b6100a061011d366004611762565b610e72565b6101356101303660046117b3565b611171565b604080519283526020830191909152016100ac565b61015d6101583660046117b3565b611395565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ac565b6000805b845181101561025557600073ffffffffffffffffffffffffffffffffffffffff168582815181106101b9576101b96117ec565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4445583a20746f6b656e206973207a65726f206164647265737300000000000060448201526064015b60405180910390fd5b8061024d8161181b565b915050610186565b50826000036102c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4445583a20746172676574416d6f756e74206973207a65726f00000000000000604482015260640161023a565b60008061040573ffffffffffffffffffffffffffffffffffffffff16338787876040516024016102f394939291906118cb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9782ac810000000000000000000000000000000000000000000000000000000017905251610374919061190d565b6000604051808303816000865af19150503d80600081146103b1576040519150601f19603f3d011682016040523d82523d6000602084013e6103b6565b606091505b509092509050816103c8573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7b1ccce9b5299ff0ae3d9adc0855268a4ad3527b2bcde01ccadde2fb878ecb8a8783806020019051810190610415919061193c565b8860405161042593929190611955565b60405180910390a250600195945050505050565b6000805b835181101561050757600073ffffffffffffffffffffffffffffffffffffffff16848281518110610470576104706117ec565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036104f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4445583a20746f6b656e206973207a65726f2061646472657373000000000000604482015260640161023a565b806104ff8161181b565b91505061043d565b5081600003610572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4445583a20737570706c79416d6f756e74206973207a65726f00000000000000604482015260640161023a565b60008061040573ffffffffffffffffffffffffffffffffffffffff1685856040516024016105a192919061197a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4d60beb10000000000000000000000000000000000000000000000000000000017905251610622919061190d565b600060405180830381855afa9150503d806000811461065d576040519150601f19603f3d011682016040523d82523d6000602084013e610662565b606091505b50909250905081610674573d60208201fd5b80806020019051810190610688919061193c565b95945050505050565b6000805b845181101561075f57600073ffffffffffffffffffffffffffffffffffffffff168582815181106106c8576106c86117ec565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361074d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4445583a20746f6b656e206973207a65726f2061646472657373000000000000604482015260640161023a565b806107578161181b565b915050610695565b50826000036107ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4445583a20737570706c79416d6f756e74206973207a65726f00000000000000604482015260640161023a565b60008061040573ffffffffffffffffffffffffffffffffffffffff16338787876040516024016107fd94939291906118cb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f579baa18000000000000000000000000000000000000000000000000000000001790525161087e919061190d565b6000604051808303816000865af19150503d80600081146108bb576040519150601f19603f3d011682016040523d82523d6000602084013e6108c0565b606091505b509092509050816108d2573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7b1ccce9b5299ff0ae3d9adc0855268a4ad3527b2bcde01ccadde2fb878ecb8a878784806020019051810190610920919061193c565b60405161042593929190611955565b600073ffffffffffffffffffffffffffffffffffffffff86166109ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e41206973207a65726f20616464726573730000000000604482015260640161023a565b73ffffffffffffffffffffffffffffffffffffffff8516610a2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e42206973207a65726f20616464726573730000000000604482015260640161023a565b83600003610a95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4445583a206d6178416d6f756e7441206973207a65726f000000000000000000604482015260640161023a565b82600003610aff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4445583a206d6178416d6f756e7442206973207a65726f000000000000000000604482015260640161023a565b60405133602482015273ffffffffffffffffffffffffffffffffffffffff8781166044830152861660648201526084810185905260a4810184905260c4810183905260009081906104059060e401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f67088d590000000000000000000000000000000000000000000000000000000017905251610bce919061190d565b6000604051808303816000865af19150503d8060008114610c0b576040519150601f19603f3d011682016040523d82523d6000602084013e610c10565b606091505b50909250905081610c22573d60208201fd5b604080518781526020810187905273ffffffffffffffffffffffffffffffffffffffff808a1692908b169133917f5b6f5f6550282279c4e72b95a8ba538bea92c64dec9e8c7c08a556d4457225c891015b60405180910390a4506001979650505050505050565b6000805b8351811015610d5757600073ffffffffffffffffffffffffffffffffffffffff16848281518110610cc057610cc06117ec565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610d45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4445583a20746f6b656e206973207a65726f2061646472657373000000000000604482015260640161023a565b80610d4f8161181b565b915050610c8d565b5081600003610dc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4445583a20746172676574416d6f756e74206973207a65726f00000000000000604482015260640161023a565b60008061040573ffffffffffffffffffffffffffffffffffffffff168585604051602401610df192919061197a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fdbcd19a20000000000000000000000000000000000000000000000000000000017905251610622919061190d565b600073ffffffffffffffffffffffffffffffffffffffff8616610ef1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e41206973207a65726f20616464726573730000000000604482015260640161023a565b73ffffffffffffffffffffffffffffffffffffffff8516610f6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e42206973207a65726f20616464726573730000000000604482015260640161023a565b83600003610fd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4445583a2072656d6f76655368617265206973207a65726f0000000000000000604482015260640161023a565b60405133602482015273ffffffffffffffffffffffffffffffffffffffff8781166044830152861660648201526084810185905260a4810184905260c4810183905260009081906104059060e401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3531533200000000000000000000000000000000000000000000000000000000179052516110a7919061190d565b6000604051808303816000865af19150503d80600081146110e4576040519150601f19603f3d011682016040523d82523d6000602084013e6110e9565b606091505b509092509050816110fb573d60208201fd5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f038116623990e7d0fed04a27e35b5dc88000ea942b37360c5898ae750bfa5df689604051610c7391815260200190565b60008073ffffffffffffffffffffffffffffffffffffffff84166111f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e41206973207a65726f20616464726573730000000000604482015260640161023a565b73ffffffffffffffffffffffffffffffffffffffff831661126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e42206973207a65726f20616464726573730000000000604482015260640161023a565b60405173ffffffffffffffffffffffffffffffffffffffff858116602483015284166044820152600090819061040590606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff4f31ede0000000000000000000000000000000000000000000000000000000017905251611322919061190d565b600060405180830381855afa9150503d806000811461135d576040519150601f19603f3d011682016040523d82523d6000602084013e611362565b606091505b50909250905081611374573d60208201fd5b80806020019051810190611388919061199c565b9350935050509250929050565b600073ffffffffffffffffffffffffffffffffffffffff8316611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e41206973207a65726f20616464726573730000000000604482015260640161023a565b73ffffffffffffffffffffffffffffffffffffffff8216611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4445583a20746f6b656e42206973207a65726f20616464726573730000000000604482015260640161023a565b60405173ffffffffffffffffffffffffffffffffffffffff848116602483015283166044820152600090819061040590606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffd73c4a0000000000000000000000000000000000000000000000000000000017905251611545919061190d565b600060405180830381855afa9150503d8060008114611580576040519150601f19603f3d011682016040523d82523d6000602084013e611585565b606091505b50909250905081611597573d60208201fd5b8080602001905181019061068891906119c0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146115fc57600080fd5b50565b803561160a816115da565b919050565b600082601f83011261162057600080fd5b8135602067ffffffffffffffff8083111561163d5761163d6115ab565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715611680576116806115ab565b60405293845285810183019383810192508785111561169e57600080fd5b83870191505b848210156116c4576116b5826115ff565b835291830191908301906116a4565b979650505050505050565b6000806000606084860312156116e457600080fd5b833567ffffffffffffffff8111156116fb57600080fd5b6117078682870161160f565b9660208601359650604090950135949350505050565b6000806040838503121561173057600080fd5b823567ffffffffffffffff81111561174757600080fd5b6117538582860161160f565b95602094909401359450505050565b600080600080600060a0868803121561177a57600080fd5b8535611785816115da565b94506020860135611795816115da565b94979496505050506040830135926060810135926080909101359150565b600080604083850312156117c657600080fd5b82356117d1816115da565b915060208301356117e1816115da565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611873577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b600081518084526020808501945080840160005b838110156118c057815173ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161188e565b509495945050505050565b73ffffffffffffffffffffffffffffffffffffffff851681526080602082015260006118fa608083018661187a565b6040830194909452506060015292915050565b6000825160005b8181101561192e5760208186018101518583015201611914565b506000920191825250919050565b60006020828403121561194e57600080fd5b5051919050565b606081526000611968606083018661187a565b60208301949094525060400152919050565b60408152600061198d604083018561187a565b90508260208301529392505050565b600080604083850312156119af57600080fd5b505080516020909101519092909150565b6000602082840312156119d257600080fd5b81516119dd816115da565b939250505056fea26469706673582212203571b085ba38af00af94c1024e11fe466dc0cf2492619dd503ef2e797a627b5464736f6c63430008120033",
"linkReferences": {},
"deployedLinkReferences": {}
}