@aragon/apps-payroll
Version:
_**Code in Github:**_ [aragon-apps/apps/payroll](https://github.com/aragon/aragon-apps/tree/master/future-apps/payroll)
111 lines • 1.12 MB
JSON
{
"contractName": "PayrollKit",
"abi": [
{
"constant": true,
"inputs": [],
"name": "ens",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "fac",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "appId",
"type": "bytes32"
}
],
"name": "latestVersionAppBase",
"outputs": [
{
"name": "base",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "ens",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "dao",
"type": "address"
}
],
"name": "DeployInstance",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "appProxy",
"type": "address"
},
{
"indexed": false,
"name": "appId",
"type": "bytes32"
}
],
"name": "InstalledApp",
"type": "event"
},
{
"constant": false,
"inputs": [],
"name": "newInstance",
"outputs": [
{
"name": "dao",
"type": "address"
},
{
"name": "payroll",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b506040516020806200543b833981016040525160008054600160a060020a038316600160a060020a0319909116178155818160408051808201909152600881527f626172652d6b697400000000000000000000000000000000000000000000000060208201526200008b9064010000000062000197810204565b9050620000a1816401000000006200029d810204565b600160a060020a031663c3b314726040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620000f857600080fd5b505af11580156200010d573d6000803e3d6000fd5b505050506040513d60208110156200012457600080fd5b505160018054600160a060020a031916600160a060020a0390921691909117905550505062000152620004c7565b604051809103906000f0801580156200016f573d6000803e3d6000fd5b5060028054600160a060020a031916600160a060020a039290921691909117905550620004d8565b60007f9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba600102826040518082805190602001908083835b60208310620001ef5780518252601f199092019160209182019101620001ce565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208282019790975281840196909652825180820384018152606090910192839052805190959294508493509185019190508083835b602083106200026b5780518252601f1990920191602091820191016200024a565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b60008054604080517f0178b8bf0000000000000000000000000000000000000000000000000000000081526004810185905290518392600160a060020a031691630178b8bf91602480830192602092919082900301818787803b1580156200030457600080fd5b505af115801562000319573d6000803e3d6000fd5b505050506040513d60208110156200033057600080fd5b5051604080517f3b3b57de000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a0390921691633b3b57de916024808201926020929091908290030181600087803b1580156200039757600080fd5b505af1158015620003ac573d6000803e3d6000fd5b505050506040513d6020811015620003c357600080fd5b5051604080517fc36af4600000000000000000000000000000000000000000000000000000000081529051919250600160a060020a0383169163c36af4609160048082019260009290919082900301818387803b1580156200042457600080fd5b505af115801562000439573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260a08110156200046357600080fd5b606082015160808301805191928401918491906401000000008111156200048957600080fd5b820160208101848111156200049d57600080fd5b8151640100000000811182820187101715620004b857600080fd5b50949998505050505050505050565b60405161227380620031c883390190565b612ce080620004e86000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633f15457f81146100665780635219cfa5146100a4578063c3b31472146100ec578063c6d2c71714610101575b600080fd5b34801561007257600080fd5b5061007b610119565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100b057600080fd5b506100b9610135565b6040805173ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015281519081900390910190f35b3480156100f857600080fd5b5061007b610919565b34801561010d57600080fd5b5061007b600435610935565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600154604080517f216874440000000000000000000000000000000000000000000000000000000081523060048201529051600092839233928492839283928392839283928392839273ffffffffffffffffffffffffffffffffffffffff9091169163216874449160248082019260209290919082900301818787803b1580156101be57600080fd5b505af11580156101d2573d6000803e3d6000fd5b505050506040513d60208110156101e857600080fd5b5051604080517fde2873590000000000000000000000000000000000000000000000000000000081529051919c5073ffffffffffffffffffffffffffffffffffffffff8d169163de287359916004808201926020929091908290030181600087803b15801561025657600080fd5b505af115801561026a573d6000803e3d6000fd5b505050506040513d602081101561028057600080fd5b5051975061028c612b66565b604051809103906000f0801580156102a8573d6000803e3d6000fd5b50965061031f6040805190810160405280600a81526020017f55534420446f6c6c6172000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f5553440000000000000000000000000000000000000000000000000000000000815250610b98565b95508773ffffffffffffffffffffffffffffffffffffffff1663be038478308d8e73ffffffffffffffffffffffffffffffffffffffff16638ea8dc9d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156103a357600080fd5b505af11580156103b7573d6000803e3d6000fd5b505050506040513d60208110156103cd57600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292909316602483015260448201523060648201529051608480830192600092919082900301818387803b15801561044e57600080fd5b505af1158015610462573d6000803e3d6000fd5b505050506104718b898b610d34565b90955093506104848b898b878a8c611256565b99506104fe8b898b876040805190810160405280600781526020017f546f6b656e2031000000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f544b31000000000000000000000000000000000000000000000000000000000081525061197e565b604080517f8aaa228400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8084166004830152600160248301529151929550908c1691638aaa22849160448082019260009290919082900301818387803b15801561057957600080fd5b505af115801561058d573d6000803e3d6000fd5b505050506106098b898b876040805190810160405280600781526020017f546f6b656e2032000000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f544b32000000000000000000000000000000000000000000000000000000000081525061197e565b604080517f8aaa228400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8084166004830152600160248301529151929450908c1691638aaa22849160448082019260009290919082900301818387803b15801561068457600080fd5b505af1158015610698573d6000803e3d6000fd5b505050506107148b898b876040805190810160405280600781526020017f546f6b656e2033000000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f544b33000000000000000000000000000000000000000000000000000000000081525061197e565b604080517f8aaa228400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8084166004830152600160248301529151929350908c1691638aaa22849160448082019260009290919082900301818387803b15801561078f57600080fd5b505af11580156107a3573d6000803e3d6000fd5b505050506107b38a8a8585611ff6565b6107be8b898b612747565b610859888a8c8d73ffffffffffffffffffffffffffffffffffffffff16631bb440b16040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561082857600080fd5b505af115801561083c573d6000803e3d6000fd5b505050506040513d602081101561085257600080fd5b5051612820565b6108c3888a8c8d73ffffffffffffffffffffffffffffffffffffffff1663bf510ff46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561082857600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8d16815290517f8f42a14c9fe9e09f4fe8eeee69ae878731c838b6497425d4c30e1d09336cf34b9181900360200190a15050505050505050509091565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000008152600481018590529051839273ffffffffffffffffffffffffffffffffffffffff1691630178b8bf91602480830192602092919082900301818787803b1580156109a857600080fd5b505af11580156109bc573d6000803e3d6000fd5b505050506040513d60208110156109d257600080fd5b5051604080517f3b3b57de00000000000000000000000000000000000000000000000000000000815260048101869052905173ffffffffffffffffffffffffffffffffffffffff90921691633b3b57de916024808201926020929091908290030181600087803b158015610a4557600080fd5b505af1158015610a59573d6000803e3d6000fd5b505050506040513d6020811015610a6f57600080fd5b5051604080517fc36af460000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff83169163c36af4609160048082019260009290919082900301818387803b158015610adc57600080fd5b505af1158015610af0573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260a0811015610b3757600080fd5b60608201516080830180519192840191849190640100000000811115610b5c57600080fd5b82016020810184811115610b6f57600080fd5b8151640100000000811182820187101715610b8957600080fd5b50949998505050505050505050565b6002546040517f5b7b72c100000000000000000000000000000000000000000000000000000000815260006004820181815260248301829052601260648401819052600160a4850181905260c060448601908152885160c48701528851949673ffffffffffffffffffffffffffffffffffffffff1695635b7b72c195889586958c9590948c9491939091608481019160e49091019060208901908083838d5b83811015610c4f578181015183820152602001610c37565b50505050905090810190601f168015610c7c5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610caf578181015183820152602001610c97565b50505050905090810190601f168015610cdc5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015610d0157600080fd5b505af1158015610d15573d6000803e3d6000fd5b505050506040513d6020811015610d2b57600080fd5b50519392505050565b600080600080600080610d7b6040805190810160405280600581526020017f7661756c740000000000000000000000000000000000000000000000000000008152506129ec565b9350610dbb6040805190810160405280600781526020017f66696e616e6365000000000000000000000000000000000000000000000000008152506129ec565b92508873ffffffffffffffffffffffffffffffffffffffff166380cd5ac385610de387610935565b604080517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600481019390935273ffffffffffffffffffffffffffffffffffffffff90911660248301525160448083019260209291908290030181600087803b158015610e5657600080fd5b505af1158015610e6a573d6000803e3d6000fd5b505050506040513d6020811015610e8057600080fd5b50516040805173ffffffffffffffffffffffffffffffffffffffff831681526020810187905281519294507f2b183a501d4b1bbd30e6611ebac40ab18a00390e6c6bed324bf92a265c9ce6e3929081900390910190a18873ffffffffffffffffffffffffffffffffffffffff166380cd5ac384610efc86610935565b604080517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600481019390935273ffffffffffffffffffffffffffffffffffffffff90911660248301525160448083019260209291908290030181600087803b158015610f6f57600080fd5b505af1158015610f83573d6000803e3d6000fd5b505050506040513d6020811015610f9957600080fd5b50516040805173ffffffffffffffffffffffffffffffffffffffff831681526020810186905281519293507f2b183a501d4b1bbd30e6611ebac40ab18a00390e6c6bed324bf92a265c9ce6e3929081900390910190a18173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561105357600080fd5b505af1158015611067573d6000803e3d6000fd5b5050604080517f1798de8100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301526301e187e0602483015291519185169350631798de81925060448082019260009290919082900301818387803b1580156110e657600080fd5b505af11580156110fa573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff1663be03847882848573ffffffffffffffffffffffffffffffffffffffff1663206b60f96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561118057600080fd5b505af1158015611194573d6000803e3d6000fd5b505050506040513d60208110156111aa57600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292841660248401526044830191909152918b1660648201529051608480830192600092919082900301818387803b15801561122f57600080fd5b505af1158015611243573d6000803e3d6000fd5b50939b929a509198505050505050505050565b60008060006112996040805190810160405280600781526020017f706179726f6c6c000000000000000000000000000000000000000000000000008152506129ec565b91508873ffffffffffffffffffffffffffffffffffffffff166380cd5ac3836112c185610935565b604080517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600481019390935273ffffffffffffffffffffffffffffffffffffffff90911660248301525160448083019260209291908290030181600087803b15801561133457600080fd5b505af1158015611348573d6000803e3d6000fd5b505050506040513d602081101561135e57600080fd5b50516040805173ffffffffffffffffffffffffffffffffffffffff831681526020810185905281519293507f2b183a501d4b1bbd30e6611ebac40ab18a00390e6c6bed324bf92a265c9ce6e3929081900390910190a1604080517f3fe3f1cf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152878116602483015286811660448301526103e86064830152915191831691633fe3f1cf9160848082019260009290919082900301818387803b15801561143d57600080fd5b505af1158015611451573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff1663be03847882888973ffffffffffffffffffffffffffffffffffffffff16630842ace46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114d757600080fd5b505af11580156114eb573d6000803e3d6000fd5b505050506040513d602081101561150157600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292841660248401526044830191909152918b1660648201529051608480830192600092919082900301818387803b15801561158657600080fd5b505af115801561159a573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff1663be03847888838473ffffffffffffffffffffffffffffffffffffffff16637100650e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561162057600080fd5b505af1158015611634573d6000803e3d6000fd5b505050506040513d602081101561164a57600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292841660248401526044830191909152918b1660648201529051608480830192600092919082900301818387803b1580156116cf57600080fd5b505af11580156116e3573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff1663be03847830838473ffffffffffffffffffffffffffffffffffffffff16631bb440b16040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561176957600080fd5b505af115801561177d573d6000803e3d6000fd5b505050506040513d602081101561179357600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292909316602483015260448201523060648201529051608480830192600092919082900301818387803b15801561181457600080fd5b505af1158015611828573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff1663be03847830838473ffffffffffffffffffffffffffffffffffffffff1663bf510ff46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156118ae57600080fd5b505af11580156118c2573d6000803e3d6000fd5b505050506040513d60208110156118d857600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292909316602483015260448201523060648201529051608480830192600092919082900301818387803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b50929b9a5050505050505050505050565b6000806000806119c26040805190810160405280600d81526020017f746f6b656e2d6d616e61676572000000000000000000000000000000000000008152506129ec565b92506119ce8686610b98565b91508973ffffffffffffffffffffffffffffffffffffffff166380cd5ac3846119f686610935565b604080517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600481019390935273ffffffffffffffffffffffffffffffffffffffff90911660248301525160448083019260209291908290030181600087803b158015611a6957600080fd5b505af1158015611a7d573d6000803e3d6000fd5b505050506040513d6020811015611a9357600080fd5b50516040805173ffffffffffffffffffffffffffffffffffffffff831681526020810186905281519293507f2b183a501d4b1bbd30e6611ebac40ab18a00390e6c6bed324bf92a265c9ce6e3929081900390910190a18173ffffffffffffffffffffffffffffffffffffffff16633cebb823826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611b8457600080fd5b505af1158015611b98573d6000803e3d6000fd5b5050604080517fe37ff29f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152600160248301526000604483018190529251908616945063e37ff29f93506064808301939282900301818387803b158015611c1857600080fd5b505af1158015611c2c573d6000803e3d6000fd5b505050508873ffffffffffffffffffffffffffffffffffffffff1663be03847830838473ffffffffffffffffffffffffffffffffffffffff1663e9a9c8506040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cb257600080fd5b505af1158015611cc6573d6000803e3d6000fd5b505050506040513d6020811015611cdc57600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292909316602483015260448201523060648201529051608480830192600092919082900301818387803b158015611d5d57600080fd5b505af1158015611d71573d6000803e3d6000fd5b5050604080517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015267ffffffffffffffff6024820152905173ffffffffffffffffffffffffffffffffffffffff851693506340c10f199250604480830192600092919082900301818387803b158015611df057600080fd5b505af1158015611e04573d6000803e3d6000fd5b5050604080517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b8116600483015267ffffffffffffffff60248301529151918616935063095ea7b392506044808201926020929091908290030181600087803b158015611e8857600080fd5b505af1158015611e9c573d6000803e3d6000fd5b505050506040513d6020811015611eb257600080fd5b5050604080517fbfe07da600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015267ffffffffffffffff602483015260606044830152600f60648301527f496e697469616c206465706f7369740000000000000000000000000000000000608483015291519189169163bfe07da69160a48082019260009290919082900301818387803b158015611f6757600080fd5b505af1158015611f7b573d6000803e3d6000fd5b50505050611fe98989838473ffffffffffffffffffffffffffffffffffffffff1663e9a9c8506040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561082857600080fd5b5098975050505050505050565b604080517fea199a830000000000000000000000000000000000000000000000000000000081523060048201526609019ca16bdc0c6024820181905267ffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeae80420116604483015260806064830152600360848301527f43454f000000000000000000000000000000000000000000000000000000000060a48301529151738401eb5ff34cc943f096a32ef3d5113febe8d4eb9273306469457266cbbe7c0505e8aad358622235e7689273d873f6dc68e3057e4b7da74c6b304d0ef0b484c792660a21d03599578d91660b4203c9c6d30f916607e1690d3e608a91606091829173ffffffffffffffffffffffffffffffffffffffff8f169163ea199a839160c48082019260009290919082900301818387803b15801561213b57600080fd5b505af115801561214f573d6000803e3d6000fd5b505060408051600280825260608201835290935091506020830190803883390190505091508a82600081518110151561218457fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029091019091015281518a90839060019081106121b957fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302909101909101526040805160028082526060820190925290816020016020820280388339019050509050602d81600081518110151561221157fe5b6020908102909101015280516037908290600190811061222d57fe5b90602001906020020181815250508c73ffffffffffffffffffffffffffffffffffffffff1663fe2fdf0b83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156122c85781810151838201526020016122b0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156123075781810151838201526020016122ef565b50505050905001945050505050600060405180830381600087803b15801561232e57600080fd5b505af1158015612342573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff16631216906b8d6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156123e157600080fd5b505af11580156123f5573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff1663ea199a838a876201518042036040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018267ffffffffffffffff1667ffffffffffffffff168152602001806020018281038252600f8152602001807f50726f6a656374204d616e616765720000000000000000000000000000000000815250602001945050505050600060405180830381600087803b1580156124f657600080fd5b505af115801561250a573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff1663ea199a8389866202a30042036040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018267ffffffffffffffff1667ffffffffffffffff16815260200180602001828103825260098152602001807f446576656c6f7065720000000000000000000000000000000000000000000000815250602001945050505050600060405180830381600087803b15801561260b57600080fd5b505af115801561261f573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff1663ea199a8388856202a30042036040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018267ffffffffffffffff1667ffffffffffffffff16815260200180602001828103825260098152602001807f446576656c6f7065720000000000000000000000000000000000000000000000815250602001945050505050600060405180830381600087803b15801561272057600080fd5b505af1158015612734573d6000803e3d6000fd5b5050505050505050505050505050505050565b6127b18282858673ffffffffffffffffffffffffffffffffffffffff16638ea8dc9d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561082857600080fd5b61281b8282848573ffffffffffffffffffffffffffffffffffffffff16633d6ab68f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561082857600080fd5b505050565b604080517f0a8ed3db00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152848116602483015260448201849052915191861691630a8ed3db9160648082019260009290919082900301818387803b1580156128a057600080fd5b505af11580156128b4573d6000803e3d6000fd5b5050604080517f9d0effdb00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff86811660248301526044820186905291519188169350639d0effdb925060648082019260009290919082900301818387803b15801561293657600080fd5b505af115801561294a573d6000803e3d6000fd5b5050604080517fafd925df00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301528681166024830152604482018690529151918816935063afd925df925060648082019260009290919082900301818387803b1580156129ce57600080fd5b505af11580156129e2573d6000803e3d6000fd5b5050505050505050565b60007f9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba600102826040518082805190602001908083835b60208310612a6057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612a23565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208282019790975281840196909652825180820384018152606090910192839052805190959294508493509185019190508083835b60208310612b1657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612ad9565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900390912095945050505050565b60405161013e80612b77833901905600608060405234801561001057600080fd5b5061011e806100206000396000f30060806040526004361060485763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d81e84238114604d578063f40a04481460b3575b600080fd5b348015605857600080fd5b50607e73ffffffffffffffffffffffffffffffffffffffff6004358116906024351660d7565b604080516fffffffffffffffffffffffffffffffff909316835267ffffffffffffffff90911660208301528051918290030190f35b34801560be57600080fd5b5060c560e6565b60408051918252519081900360200190f35b50661aa535d3d0c00091429150565b670de0b6b3a7640000905600a165627a7a7230582083b752132a2edd9448fab0bf4ded4b1f9461f74d50166b1be8d23e9bcde5fcb90029a165627a7a72305820b5ca83a9fed98fa4a51b5947860b281ce85d37a15394c4df28aa7a3ece440f300029608060405234801561001057600080fd5b50612253806100206000396000f3006080604052600436106100405763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635b7b72c18114610045575b600080fd5b34801561005157600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261010694823573ffffffffffffffffffffffffffffffffffffffff1694602480359536959460649492019190819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989b60ff8b35169b909a90999401975091955091820193509150819084018382808284375094975050505091351515925061012f915050565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6000803088888888888861014161030b565b73ffffffffffffffffffffffffffffffffffffffff808916825287166020808301919091526040820187905260ff8516608083015282151560c083015260e0606083018181528751918401919091528651909160a084019161010085019189019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610220578181015183820152602001610208565b50505050905090810190601f16801561024d5780820380516001836020036101000a031916815260200191505b509950505050505050505050604051809103906000f080158015610275573d6000803e3d6000fd5b50604080517f3cebb823000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff831691633cebb8239160248082019260009290919082900301818387803b1580156102e757600080fd5b505af11580156102fb573d6000803e3d6000fd5b50929a9950505050505050505050565b604051611f0c8061031c83390190560060c0604052600760808190527f4d4d545f302e310000000000000000000000000000000000000000000000000060a090815262000040916004919062000147565b503480156200004e57600080fd5b5060405162001f0c38038062001f0c8339810160409081528151602080840151928401516060850151608086015160a087015160c088015160008054600160a060020a03191633179055600b8054600160a060020a0389166101000261010060a860020a031990911617905592880180519698949690959294919091019291620000de9160019187019062000147565b506002805460ff191660ff851617905581516200010390600390602085019062000147565b5060058054600160a060020a031916600160a060020a039790971696909617909555505050600655600b805460ff19169115159190911790555043600755620001ec565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018a57805160ff1916838001178555620001ba565b82800160010185558215620001ba579182015b82811115620001ba5782518255916020019190600101906200019d565b50620001c8929150620001cc565b5090565b620001e991905b80821115620001c85760008155600101620001d3565b90565b611d1080620001fc6000396000f3006080604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610225578063095ea7b3146102af57806317634514146102f457806318160ddd1461031b57806323b872dd14610330578063313ce567146103675780633cebb823146103925780634ee2cd7e146103c057806354fd4d50146103f15780636638c0871461040657806370a08231146104d657806380a5400114610504578063827f32c01461051957806395d89b411461054a578063981b24d01461055f578063a9059cbb14610577578063bef97c87146105a8578063c5bcc4f1146105bd578063cae9ca51146105d2578063d3ce77fe14610648578063dd62ed3e14610679578063df8de3e7146106ad578063e77772fe146106db578063f41e60c5146106f0578063f77c47911461070a575b60005461016a9073ffffffffffffffffffffffffffffffffffffffff1661071f565b151561017557600080fd5b600054604080517ff48c3054000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff9092169163f48c3054913491602480830192602092919082900301818588803b1580156101e857600080fd5b505af11580156101fc573d6000803e3d6000fd5b50505050506040513d602081101561021357600080fd5b5051151560011461022357600080fd5b005b34801561023157600080fd5b5061023a610759565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027457818101518382015260200161025c565b50505050905090810190601f1680156102a15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102bb57600080fd5b506102e073ffffffffffffffffffffffffffffffffffffffff600435166024356107e6565b604080519115158252519081900360200190f35b34801561030057600080fd5b5061030961099b565b60408051918252519081900360200190f35b34801561032757600080fd5b506103096109a1565b34801561033c57600080fd5b506102e073ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356109b2565b34801561037357600080fd5b5061037c610a70565b6040805160ff9092168252519081900360200190f35b34801561039e57600080fd5b5061022373ffffffffffffffffffffffffffffffffffffffff60043516610a79565b3480156103cc57600080fd5b5061030973ffffffffffffffffffffffffffffffffffffffff60043516602435610ae4565b3480156103fd57600080fd5b5061023a610cae565b34801561041257600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526104ad94369492936024939284019190819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989b60ff8b35169b909a909994019750919550918201935091508190840183828082843750949750508435955050505050602001351515610d09565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156104e257600080fd5b5061030973ffffffffffffffffffffffffffffffffffffffff60043516610f96565b34801561051057600080fd5b506104ad610faa565b34801561052557600080fd5b506102e073ffffffffffffffffffffffffffffffffffffffff60043516602435610fc6565b34801561055657600080fd5b5061023a6110b9565b34801561056b57600080fd5b50610309600435611114565b34801561058357600080fd5b506102e073ffffffffffffffffffffffffffffffffffffffff60043516602435611244565b3480156105b457600080fd5b506102e0611263565b3480156105c957600080fd5b5061030961126c565b3480156105de57600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526102e094823573ffffffffffffffffffffffffffffffffffffffff169460248035953695946064949201919081908401838280828437509497506112729650505050505050565b34801561065457600080fd5b506102e073ffffffffffffffffffffffffffffffffffffffff6004351660243561139a565b34801561068557600080fd5b5061030973ffffffffffffffffffffffffffffffffffffffff60043581169060243516611489565b3480156106b957600080fd5b5061022373ffffffffffffffffffffffffffffffffffffffff600435166114c1565b3480156106e757600080fd5b506104ad6116f6565b3480156106fc57600080fd5b506102236004351515611717565b34801561071657600080fd5b506104ad61176c565b60008073ffffffffffffffffffffffffffffffffffffffff831615156107485760009150610753565b823b90506000811191505b50919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107de5780601f106107b3576101008083540402835291602001916107de565b820191906000526020600020905b8154815290600101906020018083116107c157829003601f168201915b505050505081565b600b5460009060ff1615156107fa57600080fd5b811580610835575033600090815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152902054155b151561084057600080fd5b6000546108629073ffffffffffffffffffffffffffffffffffffffff1661071f565b156109265760008054604080517fda682aeb00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8781166024830152604482018790529151919092169263da682aeb92606480820193602093909283900390910190829087803b1580156108ec57600080fd5b505af1158015610900573d6000803e3d6000fd5b505050506040513d602081101561091657600080fd5b5051151560011461092657600080fd5b33600081815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60075481565b60006109ac43611114565b90505b90565b6000805473ffffffffffffffffffffffffffffffffffffffff163314610a5b57600b5460ff1615156109e357600080fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600960209081526040808320338452909152902054821115610a2357506000610a69565b73ffffffffffffffffffffffffffffffffffffffff841660009081526009602090815260408083203384529091529020805483900390555b610a66848484611788565b90505b9392505050565b60025460ff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a9d57600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600860205260408120541580610b63575073ffffffffffffffffffffffffffffffffffffffff8316600090815260086020526040812080548492908110610b4357fe5b6000918252602090912001546fffffffffffffffffffffffffffffffff16115b15610c785760055473ffffffffffffffffffffffffffffffffffffffff1615610c705760055460065473ffffffffffffffffffffffffffffffffffffffff90911690634ee2cd7e908590610bb89086906119e5565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c3d57600080fd5b505af1158015610c51573d6000803e3d6000fd5b505050506040513d6020811015610c6757600080fd5b50519050610995565b506000610995565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600860205260409020610ca790836119fb565b9050610995565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107de5780601f106107b3576101008083540402835291602001916107de565b600080808415610d195784610d1e565b600143035b600b546040517f5b7b72c100000000000000000000000000000000000000000000000000000000815230600482018181526024830185905260ff8c16606484015288151560a484015260c0604484019081528d5160c48501528d5195975061010090940473ffffffffffffffffffffffffffffffffffffffff1694635b7b72c194929388938f938f938f938e9391608482019160e40190602089019080838360005b83811015610dd8578181015183820152602001610dc0565b50505050905090810190601f168015610e055780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610e38578181015183820152602001610e20565b50505050905090810190601f168015610e655780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015610e8a57600080fd5b505af1158015610e9e573d6000803e3d6000fd5b505050506040513d6020811015610eb457600080fd5b5051604080517f3cebb823000000000000000000000000000000000000000000000000000000008152336004820152905191925073ffffffffffffffffffffffffffffffffffffffff831691633cebb8239160248082019260009290919082900301818387803b158015610f2757600080fd5b505af1158015610f3b573d6000803e3d6000fd5b505060408051858152905173ffffffffffffffffffffffffffffffffffffffff851693507f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade92509081900360200190a2979650505050505050565b6000610fa28243610ae4565b90505b919050565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b600080548190819073ffffffffffffffffffffffffffffffffffffffff163314610fef57600080fd5b610ff76109a1565b915083820182111561100857600080fd5b61101185610f96565b905083810181111561102257600080fd5b61102f600a858401611b87565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260086020526040902061106090828601611b87565b60408051858152905173ffffffffffffffffffffffffffffffffffffffff8716916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107de5780601f106107b3576101008083540402835291602001916107de565b600a546000901580611152575081600a600081548110151561113257fe5b6000918252602090912001546fffffffffffffffffffffffffffffffff16115b156112325760055473ffffffffffffffffffffffffffffffffffffffff161561122a5760055460065473ffffffffffffffffffffffffffffffffffffffff9091169063981b24d0906111a59085906119e5565b6040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1580156111f757600080fd5b505af115801561120b573d6000803e3d6000fd5b505050506040513d602081101561122157600080fd5b50519050610fa5565b506000610fa5565b61123d600a836119fb565b9050610fa5565b600b5460009060ff16151561125857600080fd5b610a69338484611788565b600b5460ff1681565b60065481565b600061127e84846107e6565b151561128957600080fd5b6040517f8f4ffcb1000000000000000000000000000000000000000000000000000000008152336004820181815260248301869052306044840181905260806064850190815286516084860152865173ffffffffffffffffffffffffffffffffffffffff8a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015611329578181015183820152602001611311565b50505050905090810190601f1680156113565780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561137857600080fd5b505af115801561138c573d6000803e3d6000fd5b506001979650505050505050565b600080548190819073ffffffffffffffffffffffffffffffffffffffff1633146113c357600080fd5b6113cb6109a1565b9150838210156113da57600080fd5b6113e385610f96565b9050838110156113f257600080fd5b6113ff600a858403611b87565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260086020526040902061143090858303611b87565b60408051858152905160009173ffffffffffffffffffffffffffffffffffffffff8816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260096020908152604080832093909416825291909152205490565b60008054819073ffffffffffffffffffffffffffffffffffffffff1633146114e857600080fd5b73ffffffffffffffffffffffffffffffffffffffff83161515611553576000805460405173ffffffffffffffffffffffffffffffffffffffff90911691303180156108fc02929091818181858888f1935050505015801561154d573d6000803e3d6000fd5b506116f1565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905184935073ffffffffffffffffffffffffffffffffffffffff8416916370a082319160248083019260209291908290030181600087803b1580156115c457600080fd5b505af11580156115d8573d6000803e3d6000fd5b505050506040513d60208110156115ee57600080fd5b505160008054604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b15801561167157600080fd5b505af1158015611685573d6000803e3d6000fd5b505050506040513d602081101561169b57600080fd5b505060005460408051838152905173ffffffffffffffffffffffffffffffffffffffff928316928616917ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c919081900360200190a35b505050565b600b54610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461173b57600080fd5b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6000808083151561179c57600192506119dc565b60065443116117aa57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8516158015906117e5575073ffffffffffffffffffffffffffffffffffffffff85163014155b15156117f057600080fd5b6117fa8643610ae4565b91508382101561180d57600092506119dc565b60005461182f9073ffffffffffffffffffffffffffffffffffffffff1661071f565b156118f55760008054604080517f4a39314900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a8116600483015289811660248301526044820189905291519190921692634a39314992606480820193602093909283900390910190829087803b1580156118bb57600080fd5b505af11580156118cf573d6000803e3d6000fd5b505050506040513d60208110156118e557600080fd5b505115156001146118f557600080fd5b73ffffffffffffffffffffffffffffffffffffffff8616600090815260086020526040902061192690858403611b87565b6119308543610ae4565b905083810181111561194157600080fd5b73ffffffffffffffffffffffffffffffffffffffff8516600090815260086020526040902061197290828601611b87565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600192505b50509392505050565b60008183106119f45781610a69565b5090919050565b600080600080858054905060001415611a175760009350611b7e565b855486906000198101908110611a2957fe5b6000918252602090912001546fffffffffffffffffffffffffffffffff168510611a9857855486906000198101908110611a5f57fe5b60009182526020909120015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff169350611b7e565b856000815481101515611aa757fe5b6000918252602090912001546fffffffffffffffffffffffffffffffff16851015611ad55760009350611b7e565b8554600093506000190191505b82821115611b3b576002600183850101049050848682815481101515611b0457fe5b6000918252602090912001546fffffffffffffffffffffffffffffffff1611611b2f57809250611b36565b6001810391505b611ae2565b8583815481101515611b4957fe5b60009182526020909120015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1693505b50505092915050565b815460009081901580611bc957508354439085906000198101908110611ba957fe5b6000918252602090912001546fffffffffffffffffffffffffffffffff16105b15611c535783548490611bdf8260018301611ca7565b81548110611be957fe5b600091825260209091200180546fffffffffffffffffffffffffffffffff858116700100000000000000000000000000000000024382167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090931692909217161781559150611ca1565b835484906000198101908110611c6557fe5b600091825260209091200180546fffffffffffffffffffffffffffffffff80861670010000000000000000000000000000000002911617815590505b50505050565b8154818355818111156116f1576000838152602090206116f19181019083016109af91905b80821115611ce05760008155600101611ccc565b50905600a165627a7a723058205a44c4b66ea238cd7a06e7714f5b8c9ceea8c41953f9c86ff6a9900ab440c1430029a165627a7a7230582096e657436ba90f82e4a7b45a6ddf64877dc29430ee03b5b6eaedc0e0d0cd8d880029",
"deployedBytecode": "0x6080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633f15457f81146100665780635219cfa5146100a4578063c3b31472146100ec578063c6d2c71714610101575b600080fd5b34801561007257600080fd5b5061007b610119565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100b057600080fd5b506100b9610135565b6040805173ffffffffffffffffffffffffffffffffffffffff938416815291909216602082015281519081900390910190f35b3480156100f857600080fd5b5061007b610919565b34801561010d57600080fd5b5061007b600435610935565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600154604080517f216874440000000000000000000000000000000000000000000000000000000081523060048201529051600092839233928492839283928392839283928392839273ffffffffffffffffffffffffffffffffffffffff9091169163216874449160248082019260209290919082900301818787803b1580156101be57600080fd5b505af11580156101d2573d6000803e3d6000fd5b505050506040513d60208110156101e857600080fd5b5051604080517fde2873590000000000000000000000000000000000000000000000000000000081529051919c5073ffffffffffffffffffffffffffffffffffffffff8d169163de287359916004808201926020929091908290030181600087803b15801561025657600080fd5b505af115801561026a573d6000803e3d6000fd5b505050506040513d602081101561028057600080fd5b5051975061028c612b66565b604051809103906000f0801580156102a8573d6000803e3d6000fd5b50965061031f6040805190810160405280600a81526020017f55534420446f6c6c6172000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f5553440000000000000000000000000000000000000000000000000000000000815250610b98565b95508773ffffffffffffffffffffffffffffffffffffffff1663be038478308d8e73ffffffffffffffffffffffffffffffffffffffff16638ea8dc9d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156103a357600080fd5b505af11580156103b7573d6000803e3d6000fd5b505050506040513d60208110156103cd57600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff948516600482015292909316602483015260448201523060648201529051608480830192600092919082900301818387803b15801561044e57600080fd5b505af1158015610462573d6000803e3d6000fd5b505050506104718b898b610d34565b90955093506104848b898b878a8c611256565b99506104fe8b898b876040805190810160405280600781526020017f546f6b656e2031000000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f544b31000000000000000000000000000000000000000000000000000000000081525061197e565b604080517f8aaa228400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8084166004830152600160248301529151929550908c1691638aaa22849160448082019260009290919082900301818387803b15801561057957600080fd5b505af115801561058d573d6000803e3d6000fd5b505050506106098b898b876040805190810160405280600781526020017f546f6b656e2032000000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f544b32000000000000000000000000000000000000000000000000000000000081525061197e565b604080517f8aaa228400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8084166004830152600160248301529151929450908c1691638aaa22849160448082019260009290919082900301818387803b15801561068457600080fd5b505af1158015610698573d6000803e3d6000fd5b505050506107148b898b876040805190810160405280600781526020017f546f6b656e2033000000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f544b33000000000000000000000000000000000000000000000000000000000081525061197e565b604080517f8aaa228400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8084166004830152600160248301529151929350908c1691638aaa22849160448082019260009290919082900301818387803b15801561078f57600080fd5b505af11580156107a3573d6000803e3d6000fd5b505050506107b38a8a8585611ff6565b6107be8b898b612747565b610859888a8c8d73ffffffffffffffffffffffffffffffffffffffff16631bb440b16040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561082857600080fd5b505af115801561083c573d6000803e3d6000fd5b505050506040513d602081101561085257600080fd5b5051612820565b6108c3888a8c8d73ffffffffffffffffffffffffffffffffffffffff1663bf510ff46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561082857600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8d16815290517f8f42a14c9fe9e09f4fe8eeee69ae878731c838b6497425d4c30e1d09336cf34b9181900360200190a15050505050505050509091565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60008054604080517f0178b8bf000000000000000000000000000000000000000000000000000000