@safe-global/safe-contracts
Version:
Ethereum multisig contract
469 lines • 70.1 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "MockContract",
"sourceName": "@gnosis.pm/mock-contract/contracts/MockContract.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "DEFAULT_FALLBACK_VALUE",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MOCKS_LIST_END",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MOCKS_LIST_END_HASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MOCKS_LIST_START",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SENTINEL_ANY_MOCKS",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "response",
"type": "bytes"
}
],
"name": "givenAnyReturn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "response",
"type": "address"
}
],
"name": "givenAnyReturnAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "response",
"type": "bool"
}
],
"name": "givenAnyReturnBool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "response",
"type": "uint256"
}
],
"name": "givenAnyReturnUint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "givenAnyRevert",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "message",
"type": "string"
}
],
"name": "givenAnyRevertWithMessage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "givenAnyRunOutOfGas",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "response",
"type": "bytes"
}
],
"name": "givenCalldataReturn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
},
{
"internalType": "address",
"name": "response",
"type": "address"
}
],
"name": "givenCalldataReturnAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
},
{
"internalType": "bool",
"name": "response",
"type": "bool"
}
],
"name": "givenCalldataReturnBool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "response",
"type": "uint256"
}
],
"name": "givenCalldataReturnUint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
}
],
"name": "givenCalldataRevert",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
},
{
"internalType": "string",
"name": "message",
"type": "string"
}
],
"name": "givenCalldataRevertWithMessage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
}
],
"name": "givenCalldataRunOutOfGas",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "response",
"type": "bytes"
}
],
"name": "givenMethodReturn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
},
{
"internalType": "address",
"name": "response",
"type": "address"
}
],
"name": "givenMethodReturnAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
},
{
"internalType": "bool",
"name": "response",
"type": "bool"
}
],
"name": "givenMethodReturnBool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "response",
"type": "uint256"
}
],
"name": "givenMethodReturnUint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
}
],
"name": "givenMethodRevert",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
},
{
"internalType": "string",
"name": "message",
"type": "string"
}
],
"name": "givenMethodRevertWithMessage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
}
],
"name": "givenMethodRunOutOfGas",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "invocationCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
}
],
"name": "invocationCountForCalldata",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "call",
"type": "bytes"
}
],
"name": "invocationCountForMethod",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "reset",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "methodId",
"type": "bytes4"
},
{
"internalType": "bytes",
"name": "originalMsgData",
"type": "bytes"
}
],
"name": "updateInvocationCount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60806040526000604051602001808215158152602001915050604051602081830303815290604052600b90805190602001906200003e9291906200017e565b503480156200004c57600080fd5b506040518060400160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f010000000000000000000000000000000000000000000000000000000000000081526020019081526020016000209080519060200190620000ca9291906200017e565b507f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c021790555062000224565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001c157805160ff1916838001178555620001f2565b82800160010185558215620001f2579182015b82811115620001f1578251825591602001919060010190620001d4565b5b50905062000201919062000205565b5090565b5b808211156200022057600081600090555060010162000206565b5090565b6139b180620002346000396000f3fe6080604052600436106101dc5760003560e01c80637cd96ee411610102578063cf11ff5d11610095578063e211b8a511610064578063e211b8a51461188a578063eb861f69146118a1578063f07da22914611927578063f5afa9c114611971576101dd565b8063cf11ff5d146116b7578063d6fe97781461175d578063d73ca0ac146117e3578063d826f88f14611873576101dd565b8063aa788c55116100d1578063aa788c5514611475578063af21ac78146114fb578063b3901f2914611536578063c6ee167f146115dc576101dd565b80637cd96ee4146111a957806387abab65146112395780639a1dc86b146112bf5780639eaeed751461139a576101dd565b8063586984a41161017a57806367aad04a1161014957806367aad04a14611015578063682b47971461104057806368ab6f2f146110915780636f40075614611117576101dd565b8063586984a414610d1d57806358cbc02514610db75780635a3855ab14610ea85780636193659414610f3a576101dd565b80632ed238dc116101b65780632ed238dc14610c0457806336ff0ee514610c2f5780633956dc6b14610c6c5780634937c4f614610c83576101dd565b80630a20119f14610ac3578063122aea8114610aee57806321fed4d614610b7e576101dd565b5b600080359050600160028111156101f057fe5b6001600036604051808383808284378083019250505092505050908152602001604051809103902060009054906101000a900460ff16600281111561023157fe5b141561031d57600360003660405180838380828437808301925050509250505090815260200160405180910390206040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561030e5780601f106102e35761010080835404028352916020019161030e565b820191906000526020600020905b8154815290600101906020018083116102f157829003601f168201915b50509250505060405180910390fd5b60028081111561032957fe5b6001600036604051808383808284378083019250505092505050908152602001604051809103902060009054906101000a900460ff16600281111561036a57fe5b141561037957610378611a01565b5b6060600260003660405180838380828437808301925050509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104375780601f1061040c57610100808354040283529160200191610437565b820191906000526020600020905b81548152906001019060200180831161041a57829003601f168201915b50505050509050600081511415610746576001600281111561045557fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156104bf57fe5b14156105d45760086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b50509250505060405180910390fd5b6002808111156105e057fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561064a57fe5b141561065957610658611a01565b5b60076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561073e5780601f106107135761010080835404028352916020019161073e565b820191906000526020600020905b81548152906001019060200180831161072157829003601f168201915b505050505090505b600081511415610912576001600281111561075d57fe5b600a60009054906101000a900460ff16600281111561077857fe5b141561083e57600c6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561082f5780601f106108045761010080835404028352916020019161082f565b820191906000526020600020905b81548152906001019060200180831161081257829003601f168201915b50509250505060405180910390fd5b60028081111561084a57fe5b600a60009054906101000a900460ff16600281111561086557fe5b141561087457610873611a01565b5b600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090a5780601f106108df5761010080835404028352916020019161090a565b820191906000526020600020905b8154815290600101906020018083116108ed57829003601f168201915b505050505090505b60603073ffffffffffffffffffffffffffffffffffffffff16620186a08460003660405160240180847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509450505050506040516020818303038152906040527f58cbc025000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610a445780518252602082019150602081019050602083039250610a21565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114610aa7576040519150601f19603f3d011682016040523d82523d6000602084013e610aac565b606091505b509150506000815114610abb57fe5b815182602001f35b348015610acf57600080fd5b50610ad8611a26565b6040518082815260200191505060405180910390f35b348015610afa57600080fd5b50610b03611a30565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b43578082015181840152602081019050610b28565b50505050905090810190601f168015610b705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b8a57600080fd5b50610c0260048036036020811015610ba157600080fd5b8101908080359060200190640100000000811115610bbe57600080fd5b820183602082011115610bd057600080fd5b80359060200191846001830284011164010000000083111715610bf257600080fd5b9091929391929390505050611a56565b005b348015610c1057600080fd5b50610c19611af0565b6040518082815260200191505060405180910390f35b348015610c3b57600080fd5b50610c6a60048036036020811015610c5257600080fd5b81019080803515159060200190929190505050611b30565b005b348015610c7857600080fd5b50610c81611b5b565b005b348015610c8f57600080fd5b50610d0760048036036020811015610ca657600080fd5b8101908080359060200190640100000000811115610cc357600080fd5b820183602082011115610cd557600080fd5b80359060200191846001830284011164010000000083111715610cf757600080fd5b9091929391929390505050611b81565b6040518082815260200191505060405180910390f35b348015610d2957600080fd5b50610da160048036036020811015610d4057600080fd5b8101908080359060200190640100000000811115610d5d57600080fd5b820183602082011115610d6f57600080fd5b80359060200191846001830284011164010000000083111715610d9157600080fd5b9091929391929390505050611c3f565b6040518082815260200191505060405180910390f35b348015610dc357600080fd5b50610ea660048036036040811015610dda57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919080359060200190640100000000811115610e2057600080fd5b820183602082011115610e3257600080fd5b80359060200191846001830284011164010000000083111715610e5457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611c96565b005b348015610eb457600080fd5b50610f3860048036036040811015610ecb57600080fd5b8101908080359060200190640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846001830284011164010000000083111715610f1c57600080fd5b9091929391929390803515159060200190929190505050611e3d565b005b348015610f4657600080fd5b5061101360048036036040811015610f5d57600080fd5b8101908080359060200190640100000000811115610f7a57600080fd5b820183602082011115610f8c57600080fd5b80359060200191846001830284011164010000000083111715610fae57600080fd5b909192939192939080359060200190640100000000811115610fcf57600080fd5b820183602082011115610fe157600080fd5b8035906020019184600183028401116401000000008311171561100357600080fd5b9091929391929390505050611eaf565b005b34801561102157600080fd5b5061102a611f47565b6040518082815260200191505060405180910390f35b34801561104c57600080fd5b5061108f6004803603602081101561106357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f6b565b005b34801561109d57600080fd5b50611115600480360360208110156110b457600080fd5b81019080803590602001906401000000008111156110d157600080fd5b8201836020820111156110e357600080fd5b8035906020019184600183028401116401000000008311171561110557600080fd5b9091929391929390505050611f95565b005b34801561112357600080fd5b506111a76004803603604081101561113a57600080fd5b810190808035906020019064010000000081111561115757600080fd5b82018360208201111561116957600080fd5b8035906020019184600183028401116401000000008311171561118b57600080fd5b9091929391929390803515159060200190929190505050612067565b005b3480156111b557600080fd5b506111be6120d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156111fe5780820151818401526020810190506111e3565b50505050905090810190601f16801561122b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561124557600080fd5b506112bd6004803603602081101561125c57600080fd5b810190808035906020019064010000000081111561127957600080fd5b82018360208201111561128b57600080fd5b803590602001918460018302840111640100000000831117156112ad57600080fd5b9091929391929390505050612112565b005b3480156112cb57600080fd5b50611398600480360360408110156112e257600080fd5b81019080803590602001906401000000008111156112ff57600080fd5b82018360208201111561131157600080fd5b8035906020019184600183028401116401000000008311171561133357600080fd5b90919293919293908035906020019064010000000081111561135457600080fd5b82018360208201111561136657600080fd5b8035906020019184600183028401116401000000008311171561138857600080fd5b909192939192939050505061214c565b005b3480156113a657600080fd5b50611473600480360360408110156113bd57600080fd5b81019080803590602001906401000000008111156113da57600080fd5b8201836020820111156113ec57600080fd5b8035906020019184600183028401116401000000008311171561140e57600080fd5b90919293919293908035906020019064010000000081111561142f57600080fd5b82018360208201111561144157600080fd5b8035906020019184600183028401116401000000008311171561146357600080fd5b9091929391929390505050612281565b005b34801561148157600080fd5b506114f96004803603602081101561149857600080fd5b81019080803590602001906401000000008111156114b557600080fd5b8201836020820111156114c757600080fd5b803590602001918460018302840111640100000000831117156114e957600080fd5b9091929391929390505050612353565b005b34801561150757600080fd5b506115346004803603602081101561151e57600080fd5b8101908080359060200190929190505050612425565b005b34801561154257600080fd5b506115da6004803603604081101561155957600080fd5b810190808035906020019064010000000081111561157657600080fd5b82018360208201111561158857600080fd5b803590602001918460018302840111640100000000831117156115aa57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612439565b005b3480156115e857600080fd5b506116b5600480360360408110156115ff57600080fd5b810190808035906020019064010000000081111561161c57600080fd5b82018360208201111561162e57600080fd5b8035906020019184600183028401116401000000008311171561165057600080fd5b90919293919293908035906020019064010000000081111561167157600080fd5b82018360208201111561168357600080fd5b803590602001918460018302840111640100000000831117156116a557600080fd5b90919293919293905050506124aa565b005b3480156116c357600080fd5b5061175b600480360360408110156116da57600080fd5b81019080803590602001906401000000008111156116f757600080fd5b82018360208201111561170957600080fd5b8035906020019184600183028401116401000000008311171561172b57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612542565b005b34801561176957600080fd5b506117e16004803603602081101561178057600080fd5b810190808035906020019064010000000081111561179d57600080fd5b8201836020820111156117af57600080fd5b803590602001918460018302840111640100000000831117156117d157600080fd5b90919293919293905050506125b3565b005b3480156117ef57600080fd5b506118716004803603604081101561180657600080fd5b810190808035906020019064010000000081111561182357600080fd5b82018360208201111561183557600080fd5b8035906020019184600183028401116401000000008311171561185757600080fd5b909192939192939080359060200190929190505050612604565b005b34801561187f57600080fd5b5061188861265f565b005b34801561189657600080fd5b5061189f612edc565b005b3480156118ad57600080fd5b50611925600480360360208110156118c457600080fd5b81019080803590602001906401000000008111156118e157600080fd5b8201836020820111156118f357600080fd5b8035906020019184600183028401116401000000008311171561191557600080fd5b9091929391929390505050612f28565b005b34801561193357600080fd5b5061193c61300c565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561197d57600080fd5b506119ff6004803603604081101561199457600080fd5b81019080803590602001906401000000008111156119b157600080fd5b8201836020820111156119c357600080fd5b803590602001918460018302840111640100000000831117156119e557600080fd5b909192939192939080359060200190929190505050613030565b005b5b600115611a245760006060600060c060008060066107d05a03f1905050611a02565b565b6000600d54905090565b600060405160200180821515815260200191505060405160208183030381529060405281565b600260018383604051808383808284378083019250505092505050908152602001604051809103902060006101000a81548160ff02191690836002811115611a9a57fe5b0217905550611aec82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061308b565b5050565b6040518060400160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152508051906020012081565b600081611b3e576000611b41565b60015b60ff169050611b57611b5282613176565b6131d1565b5050565b6002600a60006101000a81548160ff02191690836002811115611b7a57fe5b0217905550565b600080611bd184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061320f565b905060096000600e548360405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040528051906020012081526020019081526020016000205491505092915050565b600060046000600e5485856040516020018084815260200183838082843780830192505050935050505060405160208183030381529060405280519060200120815260200190815260200160002054905092915050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613951602b913960400191505060405180910390fd5b6001600d60008282540192505081905550600160096000600e548560405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004019250505060405160208183030381529060405280519060200120815260200190815260200160002060008282540192505081905550600160046000600e54846040516020018083815260200182805190602001908083835b60208310611de25780518252602082019150602081019050602083039250611dbf565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052805190602001208152602001908152602001600020600082825401925050819055505050565b600081611e4b576000611e4e565b60015b60ff169050611ea984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611ea483613176565b61329d565b50505050565b611f4184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061329d565b50505050565b7f010000000000000000000000000000000000000000000000000000000000000081565b611f92611f8d8273ffffffffffffffffffffffffffffffffffffffff16613176565b6131d1565b50565b6000611fe483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061320f565b9050600260066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561205457fe5b0217905550612062816133b3565b505050565b600081612075576000612078565b60015b60ff1690506120d384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506120ce83613176565b6135b8565b50505050565b6040518060400160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b6001600a60006101000a81548160ff0219169083600281111561213157fe5b02179055508181600c91906121479291906136ac565b505050565b600061219b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061320f565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561220b57fe5b0217905550828260086000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002091906122709291906136ac565b5061227a816133b3565b5050505050565b6001808585604051808383808284378083019250505092505050908152602001604051809103902060006101000a81548160ff021916908360028111156122c457fe5b0217905550818160038686604051808383808284378083019250505092505050908152602001604051809103902091906122ff9291906136ac565b5061234d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061308b565b50505050565b60006123a283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061320f565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561241257fe5b0217905550612420816133b3565b505050565b61243661243182613176565b6131d1565b50565b6124a583838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506124a08373ffffffffffffffffffffffffffffffffffffffff16613176565b61329d565b505050565b61253c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506135b8565b50505050565b6125ae83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125a98373ffffffffffffffffffffffffffffffffffffffff16613176565b6135b8565b505050565b61260082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506131d1565b5050565b61265a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061265583613176565b61329d565b505050565b60606000807f010000000000000000000000000000000000000000000000000000000000000081526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127275780601f106126fc57610100808354040283529160200191612727565b820191906000526020600020905b81548152906001019060200180831161270a57829003601f168201915b505050505090506000818051906020012090505b6040518060400160405280600481526020017f3078666600000000000000000000000000000000000000000000000000000000815250805190602001208114612a155760006001836040518082805190602001908083835b602083106127b65780518252602082019150602081019050602083039250612793565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561280457fe5b0217905550604051806020016040528060008152506002836040518082805190602001908083835b6020831061284f578051825260208201915060208101905060208303925061282c565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061289592919061372c565b50604051806020016040528060008152506003836040518082805190602001908083835b602083106128dc57805182526020820191506020810190506020830392506128b9565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906129229291906137ac565b506000808281526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129c95780601f1061299e576101008083540402835291602001916129c9565b820191906000526020600020905b8154815290600101906020018083116129ac57829003601f168201915b50505050509150604051806020016040528060008152506000808381526020019081526020016000209080519060200190612a0592919061372c565b508180519060200120905061273b565b6040518060400160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f010000000000000000000000000000000000000000000000000000000000000081526020019081526020016000209080519060200190612a9092919061382c565b506000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b90505b7f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612db4576000819050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115612bed57fe5b02179055506040518060200160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190612c6692919061372c565b506040518060200160405280600081525060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190612cdb9291906137ac565b5060056000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b9150600060e01b60056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c021790555050612b15565b7f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c02179055506000604051602001808215158152602001915050604051602081830303815290604052600b9080519060200190612e9992919061382c565b506000600a60006101000a81548160ff02191690836002811115612eb957fe5b02179055506000600d819055506001600e60008282540192505081905550505050565b6001600a60006101000a81548160ff02191690836002811115612efb57fe5b021790555060405180602001604052806000815250600c9080519060200190612f259291906137ac565b50565b6001808383604051808383808284378083019250505092505050908152602001604051809103902060006101000a81548160ff02191690836002811115612f6b57fe5b0217905550604051806020016040528060008152506003838360405180838380828437808301925050509250505090815260200160405180910390209080519060200190612fba9291906137ac565b5061300882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061308b565b5050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61308683838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061308183613176565b6135b8565b505050565b60008180519060200120905060008060008381526020019081526020016000208054600181600116156101000203166002900490501415613172576000807f0100000000000000000000000000000000000000000000000000000000000000815260200190815260200160002060008083815260200190815260200160002090805460018160011615610100020316600290046131299291906138ac565b50816000807f01000000000000000000000000000000000000000000000000000000000000008152602001908152602001600020908051906020019061317092919061382c565b505b5050565b6060602067ffffffffffffffff8111801561319057600080fd5b506040519080825280601f01601f1916602001820160405280156131c35781602001600182028036833780820191505090505b509050816020820152919050565b6000600a60006101000a81548160ff021916908360028111156131f057fe5b021790555080600b908051906020019061320b92919061382c565b5050565b60008060005b6004811015613293576008810260ff60f81b85838151811061323357fe5b602001015160f81c60f81b167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c821791508080600101915050613215565b5080915050919050565b60006001836040518082805190602001908083835b602083106132d557805182526020820191506020810190506020830392506132b2565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561332357fe5b0217905550806002836040518082805190602001908083835b6020831061335f578051825260208201915060208101905060208303925061333c565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906133a592919061382c565b506133af8261308b565b5050565b600060e01b60056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156135b557600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b60056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c021790555080600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c02179055505b50565b60006135c38361320f565b9050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561363357fe5b02179055508160076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020908051906020019061369d92919061382c565b506136a7816133b3565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106136ed57803560ff191683800117855561371b565b8280016001018555821561371b579182015b8281111561371a5782358255916020019190600101906136ff565b5b5090506137289190613933565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061376d57805160ff191683800117855561379b565b8280016001018555821561379b579182015b8281111561379a57825182559160200191906001019061377f565b5b5090506137a89190613933565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106137ed57805160ff191683800117855561381b565b8280016001018555821561381b579182015b8281111561381a5782518255916020019190600101906137ff565b5b5090506138289190613933565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061386d57805160ff191683800117855561389b565b8280016001018555821561389b579182015b8281111561389a57825182559160200191906001019061387f565b5b5090506138a89190613933565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106138e55780548555613922565b8280016001018555821561392257600052602060002091601f016020900482015b82811115613921578254825591600101919060010190613906565b5b50905061392f9190613933565b5090565b5b8082111561394c576000816000905550600101613934565b509056fe43616e206f6e6c792062652063616c6c65642066726f6d2074686520636f6e747261637420697473656c66a2646970667358221220e7ce62dd68bc079c6c25c9e19ce1eb76908279a9374332735ab13f2f2d33101764736f6c634300060c0033",
"deployedBytecode": "0x6080604052600436106101dc5760003560e01c80637cd96ee411610102578063cf11ff5d11610095578063e211b8a511610064578063e211b8a51461188a578063eb861f69146118a1578063f07da22914611927578063f5afa9c114611971576101dd565b8063cf11ff5d146116b7578063d6fe97781461175d578063d73ca0ac146117e3578063d826f88f14611873576101dd565b8063aa788c55116100d1578063aa788c5514611475578063af21ac78146114fb578063b3901f2914611536578063c6ee167f146115dc576101dd565b80637cd96ee4146111a957806387abab65146112395780639a1dc86b146112bf5780639eaeed751461139a576101dd565b8063586984a41161017a57806367aad04a1161014957806367aad04a14611015578063682b47971461104057806368ab6f2f146110915780636f40075614611117576101dd565b8063586984a414610d1d57806358cbc02514610db75780635a3855ab14610ea85780636193659414610f3a576101dd565b80632ed238dc116101b65780632ed238dc14610c0457806336ff0ee514610c2f5780633956dc6b14610c6c5780634937c4f614610c83576101dd565b80630a20119f14610ac3578063122aea8114610aee57806321fed4d614610b7e576101dd565b5b600080359050600160028111156101f057fe5b6001600036604051808383808284378083019250505092505050908152602001604051809103902060009054906101000a900460ff16600281111561023157fe5b141561031d57600360003660405180838380828437808301925050509250505090815260200160405180910390206040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561030e5780601f106102e35761010080835404028352916020019161030e565b820191906000526020600020905b8154815290600101906020018083116102f157829003601f168201915b50509250505060405180910390fd5b60028081111561032957fe5b6001600036604051808383808284378083019250505092505050908152602001604051809103902060009054906101000a900460ff16600281111561036a57fe5b141561037957610378611a01565b5b6060600260003660405180838380828437808301925050509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104375780601f1061040c57610100808354040283529160200191610437565b820191906000526020600020905b81548152906001019060200180831161041a57829003601f168201915b50505050509050600081511415610746576001600281111561045557fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156104bf57fe5b14156105d45760086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b50509250505060405180910390fd5b6002808111156105e057fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561064a57fe5b141561065957610658611a01565b5b60076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561073e5780601f106107135761010080835404028352916020019161073e565b820191906000526020600020905b81548152906001019060200180831161072157829003601f168201915b505050505090505b600081511415610912576001600281111561075d57fe5b600a60009054906101000a900460ff16600281111561077857fe5b141561083e57600c6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561082f5780601f106108045761010080835404028352916020019161082f565b820191906000526020600020905b81548152906001019060200180831161081257829003601f168201915b50509250505060405180910390fd5b60028081111561084a57fe5b600a60009054906101000a900460ff16600281111561086557fe5b141561087457610873611a01565b5b600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090a5780601f106108df5761010080835404028352916020019161090a565b820191906000526020600020905b8154815290600101906020018083116108ed57829003601f168201915b505050505090505b60603073ffffffffffffffffffffffffffffffffffffffff16620186a08460003660405160240180847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509450505050506040516020818303038152906040527f58cbc025000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310610a445780518252602082019150602081019050602083039250610a21565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114610aa7576040519150601f19603f3d011682016040523d82523d6000602084013e610aac565b606091505b509150506000815114610abb57fe5b815182602001f35b348015610acf57600080fd5b50610ad8611a26565b6040518082815260200191505060405180910390f35b348015610afa57600080fd5b50610b03611a30565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b43578082015181840152602081019050610b28565b50505050905090810190601f168015610b705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b8a57600080fd5b50610c0260048036036020811015610ba157600080fd5b8101908080359060200190640100000000811115610bbe57600080fd5b820183602082011115610bd057600080fd5b80359060200191846001830284011164010000000083111715610bf257600080fd5b9091929391929390505050611a56565b005b348015610c1057600080fd5b50610c19611af0565b6040518082815260200191505060405180910390f35b348015610c3b57600080fd5b50610c6a60048036036020811015610c5257600080fd5b81019080803515159060200190929190505050611b30565b005b348015610c7857600080fd5b50610c81611b5b565b005b348015610c8f57600080fd5b50610d0760048036036020811015610ca657600080fd5b8101908080359060200190640100000000811115610cc357600080fd5b820183602082011115610cd557600080fd5b80359060200191846001830284011164010000000083111715610cf757600080fd5b9091929391929390505050611b81565b6040518082815260200191505060405180910390f35b348015610d2957600080fd5b50610da160048036036020811015610d4057600080fd5b8101908080359060200190640100000000811115610d5d57600080fd5b820183602082011115610d6f57600080fd5b80359060200191846001830284011164010000000083111715610d9157600080fd5b9091929391929390505050611c3f565b6040518082815260200191505060405180910390f35b348015610dc357600080fd5b50610ea660048036036040811015610dda57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919080359060200190640100000000811115610e2057600080fd5b820183602082011115610e3257600080fd5b80359060200191846001830284011164010000000083111715610e5457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611c96565b005b348015610eb457600080fd5b50610f3860048036036040811015610ecb57600080fd5b8101908080359060200190640100000000811115610ee857600080fd5b820183602082011115610efa57600080fd5b80359060200191846001830284011164010000000083111715610f1c57600080fd5b9091929391929390803515159060200190929190505050611e3d565b005b348015610f4657600080fd5b5061101360048036036040811015610f5d57600080fd5b8101908080359060200190640100000000811115610f7a57600080fd5b820183602082011115610f8c57600080fd5b80359060200191846001830284011164010000000083111715610fae57600080fd5b909192939192939080359060200190640100000000811115610fcf57600080fd5b820183602082011115610fe157600080fd5b8035906020019184600183028401116401000000008311171561100357600080fd5b9091929391929390505050611eaf565b005b34801561102157600080fd5b5061102a611f47565b6040518082815260200191505060405180910390f35b34801561104c57600080fd5b5061108f6004803603602081101561106357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f6b565b005b34801561109d57600080fd5b50611115600480360360208110156110b457600080fd5b81019080803590602001906401000000008111156110d157600080fd5b8201836020820111156110e357600080fd5b8035906020019184600183028401116401000000008311171561110557600080fd5b9091929391929390505050611f95565b005b34801561112357600080fd5b506111a76004803603604081101561113a57600080fd5b810190808035906020019064010000000081111561115757600080fd5b82018360208201111561116957600080fd5b8035906020019184600183028401116401000000008311171561118b57600080fd5b9091929391929390803515159060200190929190505050612067565b005b3480156111b557600080fd5b506111be6120d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156111fe5780820151818401526020810190506111e3565b50505050905090810190601f16801561122b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561124557600080fd5b506112bd6004803603602081101561125c57600080fd5b8101908080359060200190640100000000811115611279576000