UNPKG

secretstore-contracts

Version:

Secret Store permissioning and service contracts collection and toolkit.

453 lines 1.38 MB
{ "contractName": "OwnedKeyServerSetWithMigration", "abi": [ { "constant": false, "inputs": [], "name": "renounceOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "isOwner", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "payable": true, "stateMutability": "payable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "keyServer", "type": "address" } ], "name": "KeyServerAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "keyServer", "type": "address" } ], "name": "KeyServerRemoved", "type": "event" }, { "anonymous": false, "inputs": [], "name": "MigrationStarted", "type": "event" }, { "anonymous": false, "inputs": [], "name": "MigrationCompleted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "constant": true, "inputs": [], "name": "getCurrentLastChange", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "keyServer", "type": "address" } ], "name": "getCurrentKeyServerIndex", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getCurrentKeyServersCount", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "index", "type": "uint8" } ], "name": "getCurrentKeyServer", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getCurrentKeyServers", "outputs": [ { "name": "", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "keyServer", "type": "address" } ], "name": "getCurrentKeyServerPublic", "outputs": [ { "name": "", "type": "bytes" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "keyServer", "type": "address" } ], "name": "getCurrentKeyServerAddress", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getMigrationKeyServers", "outputs": [ { "name": "", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "keyServer", "type": "address" } ], "name": "getMigrationKeyServerPublic", "outputs": [ { "name": "", "type": "bytes" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "keyServer", "type": "address" } ], "name": "getMigrationKeyServerAddress", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getNewKeyServers", "outputs": [ { "name": "", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "keyServer", "type": "address" } ], "name": "getNewKeyServerPublic", "outputs": [ { "name": "", "type": "bytes" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "keyServer", "type": "address" } ], "name": "getNewKeyServerAddress", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getMigrationId", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "id", "type": "bytes32" } ], "name": "startMigration", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "id", "type": "bytes32" } ], "name": "confirmMigration", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "getMigrationMaster", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "keyServer", "type": "address" } ], "name": "isMigrationConfirmed", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "completeInitialization", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "keyServerPublic", "type": "bytes" }, { "name": "keyServerIp", "type": "string" } ], "name": "addKeyServer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "keyServer", "type": "address" } ], "name": "removeKeyServer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6080604081905260008054600160a060020a0319163317808255600160a060020a0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3612a6f806100576000396000f3006080604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630ec71f8281146101be5780631455eb9a146101ef5780631d7f767314610285578063287fb40c1461029f5780632ac4ecd8146102d65780632b73af52146102f7578063362b282d1461031e5780633a3f720114610383578063447f5b181461039b578063529377d0146103b05780635560c965146103e55780635827b250146103fa5780635e9f171d1461040f5780636452e82114610424578063715018a61461043957806375de2a061461044e5780638416e7c21461046f5780638da5cb5b146104905780638f32d59b146104a5578063a86560be146104ba578063ab55cb48146104db578063c66198dc146104fc578063eaffb96514610517578063f2a2a90014610538578063f2fde38b146105cf575b6040805160e560020a62461bcd02815260206004820152602a60248201527f436f6e747261637420646f6573206e6f7420737570706f72742064697265637460448201527f207061796d656e74732e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b3480156101ca57600080fd5b506101d36105f0565b60408051600160a060020a039092168252519081900360200190f35b3480156101fb57600080fd5b50610210600160a060020a0360043516610600565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024a578181015183820152602001610232565b50505050905090810190601f1680156102775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029157600080fd5b5061029d6004356107cc565b005b3480156102ab57600080fd5b506102c0600160a060020a0360043516610b66565b6040805160ff9092168252519081900360200190f35b3480156102e257600080fd5b50610210600160a060020a0360043516610c65565b34801561030357600080fd5b5061030c610df8565b60408051918252519081900360200190f35b34801561032a57600080fd5b50610333610e5f565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561036f578181015183820152602001610357565b505050509050019250505060405180910390f35b34801561038f57600080fd5b5061029d600435610ec4565b3480156103a757600080fd5b5061033361124a565b3480156103bc57600080fd5b506103d1600160a060020a03600435166112ad565b604080519115158252519081900360200190f35b3480156103f157600080fd5b506102c061148f565b34801561040657600080fd5b5061029d611495565b34801561041b57600080fd5b50610333611552565b34801561043057600080fd5b5061030c6115b5565b34801561044557600080fd5b5061029d6115bb565b34801561045a57600080fd5b50610210600160a060020a0360043516611618565b34801561047b57600080fd5b50610210600160a060020a03600435166117ad565b34801561049c57600080fd5b506101d361191b565b3480156104b157600080fd5b506103d161192a565b3480156104c657600080fd5b50610210600160a060020a036004351661193b565b3480156104e757600080fd5b50610210600160a060020a0360043516611acf565b34801561050857600080fd5b506101d360ff60043516611c3e565b34801561052357600080fd5b5061029d600160a060020a0360043516611cc9565b34801561054457600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261029d94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750611e4c9650505050505050565b3480156105db57600080fd5b5061029d600160a060020a03600435166120a1565b600854600160a060020a03165b90565b60408051600160a060020a0383166000908152600560205291909120600290810180546060938593600080516020612a24833981519152939282918491610100600182161502600019011604801561068f5780601f1061066d57610100808354040283529182019161068f565b820191906000526020600020905b81548152906001019060200180831161067b575b50509150506040518091039020600019161415151561071d576040805160e560020a62461bcd028152602060048201526024808201527f536572766572206973206e6f7420696e20746865206d6967726174696f6e732060448201527f7365742e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316600090815260056020908152604091829020600190810180548451600293821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b820191906000526020600020905b8154815290600101906020018083116107a257829003601f168201915b5050505050915050919050565b600854600160a060020a03161561082d576040805160e560020a62461bcd02815260206004820152601d60248201527f546865726520697320616e20616374697665206d6967726174696f6e2e000000604482015290519081900360640190fd5b80801515610885576040805160e560020a62461bcd02815260206004820152601a60248201527f4d6967726174696f6e206964206973206e6f742076616c69642e000000000000604482015290519081900360640190fd5b610891600260066120c0565b156108e6576040805160e560020a62461bcd02815260206004820152601a60248201527f4d6967726174696f6e206973206e6f742072657175697265642e000000000000604482015290519081900360640190fd5b6040805133600090815260036020529190912060029081018054600080516020612a24833981519152939192829184916101006001831615026000190190911604801561096a5780601f1061094857610100808354040283529182019161096a565b820191906000526020600020905b815481529060010190602001808311610956575b5050915050604051809103902060001916141580610a1b57506040805133600090815260076020529190912060029081018054600080516020612a248339815191529391928291849161010060018316150260001901909116048015610a075780601f106109e5576101008083540402835291820191610a07565b820191906000526020600020905b8154815290600101906020018083116109f3575b505091505060405180910390206000191614155b1515610a97576040805160e560020a62461bcd02815260206004820152603060248201527f53656e646572206973206e6f74206120706f74656e7469616c206d696772617460448201527f696f6e207061727469636970616e742e00000000000000000000000000000000606482015290519081900360840190fd5b6006541515610b16576040805160e560020a62461bcd02815260206004820152602560248201527f4d6967726174696f6e20746f20656d7074792073657420697320696d706f737360448201527f69626c652e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60088054600160a060020a031916331790556009829055610b39600460066122bf565b6040517f882ea0955bd5561a49a52ef27eb0a7b8263561bd890de2ccfbc107df7724f18890600090a15050565b600160a060020a038116600090815260036020526040808220905160028281018054600080516020612a248339815191529391928291849161010060018316150260001901909116048015610bf25780601f10610bd0576101008083540402835291820191610bf2565b820191906000526020600020905b815481529060010190602001808311610bde575b505091505060405180910390206000191614151515610c5b576040805160e560020a62461bcd02815260206004820152601560248201527f456e74727920646f6573206e6f742065786973742e0000000000000000000000604482015290519081900360640190fd5b5460ff1692915050565b60408051600160a060020a0383166000908152600560205291909120600290810180546060938593600080516020612a248339815191529392829184916101006001821615026000190116048015610cf45780601f10610cd2576101008083540402835291820191610cf4565b820191906000526020600020905b815481529060010190602001808311610ce0575b505091505060405180910390206000191614151515610d82576040805160e560020a62461bcd028152602060048201526024808201527f536572766572206973206e6f7420696e20746865206d6967726174696f6e732060448201527f7365742e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0383166000908152600560209081526040918290206002908101805484516001821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b600954600090801515610e55576040805160e560020a62461bcd02815260206004820152601a60248201527f4d6967726174696f6e206964206973206e6f742076616c69642e000000000000604482015290519081900360640190fd5b60095491505b5090565b60606006600001805480602002602001604051908101604052809291908181526020018280548015610eba57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e9c575b5050505050905090565b60008082801515610f1f576040805160e560020a62461bcd02815260206004820152601a60248201527f4d6967726174696f6e206964206973206e6f742076616c69642e000000000000604482015290519081900360640190fd5b60095484908114610fa0576040805160e560020a62461bcd02815260206004820152602660248201527f4d6967726174696f6e207769746820676976656e206964206973206e6f74206160448201527f63746976652e0000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6040805133600081815260056020529290922060029081018054600080516020612a2483398151915293919282918491610100600183161502600019019091160480156110245780601f10611002576101008083540402835291820191611024565b820191906000526020600020905b815481529060010190602001808311611010575b5050915050604051809103902060001916141515156110b2576040805160e560020a62461bcd028152602060048201526024808201527f536572766572206973206e6f7420696e20746865206d6967726174696f6e732060448201527f7365742e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152600a602052604090205460ff161561111a576040805160e560020a62461bcd02815260206004820152601f60248201527f4d6967726174696f6e20697320616c726561647920636f6e6669726d65642e00604482015290519081900360640190fd5b336000908152600a60205260408120805460ff1916600117905594505b6004548510156111935760048054600a916000918890811061115557fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16151561118857611242565b846001019450611137565b600093505b6004548410156111ee5760048054600a91600091879081106111b657fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020805460ff1916905560019390930192611198565b60088054600160a060020a031916905561120a600260046122bf565b6112146004612438565b6040517fd54b6ad1fb1b396d056c6d670ae90d40d49ad3253a6387dc5120c45bfc51453490600090a1436001555b505050505050565b60606004600001805480602002602001604051908101604052809291908181526020018280548015610eba57602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610e9c575050505050905090565b60408051600160a060020a03831660009081526003602052918220600290810180548593600080516020612a248339815191529390918291849161010060018216150260001901160480156113395780601f10611317576101008083540402835291820191611339565b820191906000526020600020905b815481529060010190602001808311611325575b50509150506040518091039020600019161415806113f3575060408051600160a060020a038316600090815260056020529190912060029081018054600080516020612a2483398151915293919282918491610100600183161502600019019091160480156113df5780601f106113bd5761010080835404028352918201916113df565b820191906000526020600020905b8154815290600101906020018083116113cb575b505091505060405180910390206000191614155b151561146f576040805160e560020a62461bcd02815260206004820152602660248201527f536572766572206973206e6f742061206d6967726174696f6e2070617274696360448201527f6970616e742e0000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5050600160a060020a03166000908152600a602052604090205460ff1690565b60025490565b61149d61192a565b15156114a857600080fd5b60005474010000000000000000000000000000000000000000900460ff161561151b576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f7420696e697469616c697a65642100000000000000000000000000000000604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b60606002600001805480602002602001604051908101604052809291908181526020018280548015610eba57602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610e9c575050505050905090565b60015490565b6115c361192a565b15156115ce57600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360008054600160a060020a0319169055565b60408051600160a060020a0383166000908152600360205291909120600290810180546060938593600080516020612a2483398151915293928291849161010060018216150260001901160480156116a75780601f106116855761010080835404028352918201916116a7565b820191906000526020600020905b815481529060010190602001808311611693575b505091505060405180910390206000191614151515611736576040805160e560020a62461bcd02815260206004820152602160248201527f536572766572206973206e6f7420696e207468652063757272656e742073657460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316600090815260036020908152604091829020600190810180548451600293821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b60408051600160a060020a0383166000908152600760205291909120600290810180546060938593600080516020612a24833981519152939282918491610100600182161502600019011604801561183c5780601f1061181a57610100808354040283529182019161183c565b820191906000526020600020905b815481529060010190602001808311611828575b5050915050604051809103902060001916141515156118a5576040805160e560020a62461bcd02815260206004820152601d60248201527f536572766572206973206e6f7420696e20746865206e6577207365742e000000604482015290519081900360640190fd5b600160a060020a0383166000908152600760209081526040918290206002908101805484516001821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b600054600160a060020a031690565b600054600160a060020a0316331490565b60408051600160a060020a0383166000908152600360205291909120600290810180546060938593600080516020612a2483398151915293928291849161010060018216150260001901160480156119ca5780601f106119a85761010080835404028352918201916119ca565b820191906000526020600020905b8154815290600101906020018083116119b6575b505091505060405180910390206000191614151515611a59576040805160e560020a62461bcd02815260206004820152602160248201527f536572766572206973206e6f7420696e207468652063757272656e742073657460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0383166000908152600360209081526040918290206002908101805484516001821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b60408051600160a060020a0383166000908152600760205291909120600290810180546060938593600080516020612a248339815191529392829184916101006001821615026000190116048015611b5e5780601f10611b3c576101008083540402835291820191611b5e565b820191906000526020600020905b815481529060010190602001808311611b4a575b505091505060405180910390206000191614151515611bc7576040805160e560020a62461bcd02815260206004820152601d60248201527f536572766572206973206e6f7420696e20746865206e6577207365742e000000604482015290519081900360640190fd5b600160a060020a038316600090815260076020908152604091829020600190810180548451600293821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b60025460009060ff831610611c9d576040805160e560020a62461bcd02815260206004820152601760248201527f496e646578206973206f7574206f6620626f756e64732e000000000000000000604482015290519081900360640190fd5b6002805460ff8416908110611cae57fe5b600091825260209091200154600160a060020a031692915050565b611cd161192a565b1515611cdc57600080fd5b60408051600160a060020a0383166000908152600760205291909120600290810180548493600080516020612a24833981519152939091829184916101006001821615026000190116048015611d695780601f10611d47576101008083540402835291820191611d69565b820191906000526020600020905b815481529060010190602001808311611d55575b505091505060405180910390206000191614151515611dd2576040805160e560020a62461bcd02815260206004820152601d60248201527f536572766572206973206e6f7420696e20746865206e6577207365742e000000604482015290519081900360640190fd5b611ddd6006836124f6565b60005474010000000000000000000000000000000000000000900460ff161515611e0c57611e0c6002836124f6565b60408051600160a060020a038416815290517f7af0e7a6072f80f6e718184ff67a09d85fb6855266e2317eccbafa9a7fd15b939181900360200190a15050565b6000611e5661192a565b1515611e6157600080fd5b8151829081901515611ebd576040805160e560020a62461bcd02815260206004820152601060248201527f537472696e6720697320656d7074792e00000000000000000000000000000000604482015290519081900360640190fd5b84611ec78161261c565b1515611f1d576040805160e560020a62461bcd02815260206004820152601860248201527f5075626c6963206b6579206973206e6f742076616c69642e0000000000000000604482015290519081900360640190fd5b611f2686612623565b60408051600160a060020a038316600090815260076020529190912060029081018054600080516020612a248339815191529391928291849161010060018316150260001901909116048015611fb35780601f10611f91576101008083540402835291820191611fb3565b820191906000526020600020905b815481529060010190602001808311611f9f575b505091505060405180910390206000191614151561201b576040805160e560020a62461bcd02815260206004820152601960248201527f53657276657220697320696e20746865206e6577207365742e00000000000000604482015290519081900360640190fd5b61202760068888612690565b60005490955074010000000000000000000000000000000000000000900460ff16151561205c5761205a60028888612690565b505b60408051600160a060020a038716815290517ff7513afac0a2e66c205ba63d0a611b6ba60fbbc861693aa8c5e197aba23eb3e99181900360200190a150505050505050565b6120a961192a565b15156120b457600080fd5b6120bd816127cd565b50565b600080805b84548210156121bb578454600080516020612a248339815191529060018601906000908890869081106120f457fe5b9060005260206000200160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060020160405180828054600181600116156101000203166002900480156121905780601f1061216e576101008083540402835291820191612190565b820191906000526020600020905b81548152906001019060200180831161217c575b505091505060405180910390206000191614156121b057600092506122b7565b8160010191506120c5565b5060005b83548110156122b2578354600080516020612a248339815191529060018701906000908790859081106121ee57fe5b9060005260206000200160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600201604051808280546001816001161561010002031660029004801561228a5780601f1061226857610100808354040283529182019161228a565b820191906000526020600020905b815481529060010190602001808311612276575b505091505060405180910390206000191614156122aa57600092506122b7565b6001016121bf565b600192505b505092915050565b6000805b83548210156123385783600101600085600001848154811015156122e357fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120805460ff191681559061231d600183018261283d565b61232b60028301600061283d565b50508160010191506122c3565b82546123479085908590612881565b50600090505b835481101561243257826001016000856000018381548110151561236d57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400181208554909160018701918790859081106123a657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190208154815460ff191660ff90911617815560018281018054612402928481019291600260001992821615610100029290920116046128cd565b50600282810180546124279284810192916000196101006001831615020116046128cd565b50505060010161234d565b50505050565b60005b8154600010156124f25781548290600019810190811061245757fe5b6000918252602090912001548254600160a060020a0390911691508290600019810190811061248257fe5b60009182526020909120018054600160a060020a03191690558154600019016124ab838261294e565b50600160a060020a0381166000908152600180840160205260408220805460ff1916815591906124dd9083018261283d565b6124eb60028301600061283d565b505061243b565b5050565b600160a060020a0381166000908152600183016020526040812054835460ff9182169260001982019290918691841690811061252e57fe5b6000918252602090912001548554600160a060020a0390911691508190869060ff861690811061255a57fe5b60009182526020808320919091018054600160a060020a031916600160a060020a0394851617905591831681526001870190915260409020805460ff191660ff858116919091179091558554869184169081106125b357fe5b600091825260208083209091018054600160a060020a0319169055600160a060020a0386168252600187810190915260408220805460ff1916815591906125fc9083018261283d565b61260a60028301600061283d565b5050845461124286600019830161294e565b5160401490565b6000816040518082805190602001908083835b602083106126555780518252601f199092019160209182019101612636565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600160a060020a031695945050505050565b8254600090819061010011612715576040805160e560020a62461bcd02815260206004820152602b60248201527f4e756d626572206f662073657276657273206d75737420626520736d616c6c6560448201527f72207468616e203235362e000000000000000000000000000000000000000000606482015290519081900360840190fd5b61271e84612623565b8554600160a060020a0382166000908152600180890160209081526040909220805460ff191660ff90941693909317835587519394506127649392019190870190612977565b50600160a060020a03811660009081526001860160209081526040909120845161279692600290920191860190612977565b508454600181018655600086815260209020018054600160a060020a038316600160a060020a031990911617905590509392505050565b600160a060020a03811615156127e257600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600160a060020a031916600160a060020a0392909216919091179055565b50805460018160011615610100020316600290046000825580601f1061286357506120bd565b601f0160209004906000526020600020908101906120bd91906129e5565b8280548282559060005260206000209081019282156128c15760005260206000209182015b828111156128c15782548255916001019190600101906128a6565b50610e5b9291506129ff565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106129065780548555612942565b8280016001018555821561294257600052602060002091601f016020900482015b82811115612942578254825591600101919060010190612927565b50610e5b9291506129e5565b815481835581811115612972576000838152602090206129729181019083016129e5565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106129b857805160ff1916838001178555612942565b82800160010185558215612942579182015b828111156129425782518255916020019190600101906129ca565b6105fd91905b80821115610e5b57600081556001016129eb565b6105fd91905b80821115610e5b578054600160a060020a0319168155600101612a055600c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470a165627a7a72305820c0311e899293013c9ca1d3c7374189a7296b7f868d1f27518c01d2b328fb4d9f0029", "deployedBytecode": "0x6080604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630ec71f8281146101be5780631455eb9a146101ef5780631d7f767314610285578063287fb40c1461029f5780632ac4ecd8146102d65780632b73af52146102f7578063362b282d1461031e5780633a3f720114610383578063447f5b181461039b578063529377d0146103b05780635560c965146103e55780635827b250146103fa5780635e9f171d1461040f5780636452e82114610424578063715018a61461043957806375de2a061461044e5780638416e7c21461046f5780638da5cb5b146104905780638f32d59b146104a5578063a86560be146104ba578063ab55cb48146104db578063c66198dc146104fc578063eaffb96514610517578063f2a2a90014610538578063f2fde38b146105cf575b6040805160e560020a62461bcd02815260206004820152602a60248201527f436f6e747261637420646f6573206e6f7420737570706f72742064697265637460448201527f207061796d656e74732e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b3480156101ca57600080fd5b506101d36105f0565b60408051600160a060020a039092168252519081900360200190f35b3480156101fb57600080fd5b50610210600160a060020a0360043516610600565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024a578181015183820152602001610232565b50505050905090810190601f1680156102775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029157600080fd5b5061029d6004356107cc565b005b3480156102ab57600080fd5b506102c0600160a060020a0360043516610b66565b6040805160ff9092168252519081900360200190f35b3480156102e257600080fd5b50610210600160a060020a0360043516610c65565b34801561030357600080fd5b5061030c610df8565b60408051918252519081900360200190f35b34801561032a57600080fd5b50610333610e5f565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561036f578181015183820152602001610357565b505050509050019250505060405180910390f35b34801561038f57600080fd5b5061029d600435610ec4565b3480156103a757600080fd5b5061033361124a565b3480156103bc57600080fd5b506103d1600160a060020a03600435166112ad565b604080519115158252519081900360200190f35b3480156103f157600080fd5b506102c061148f565b34801561040657600080fd5b5061029d611495565b34801561041b57600080fd5b50610333611552565b34801561043057600080fd5b5061030c6115b5565b34801561044557600080fd5b5061029d6115bb565b34801561045a57600080fd5b50610210600160a060020a0360043516611618565b34801561047b57600080fd5b50610210600160a060020a03600435166117ad565b34801561049c57600080fd5b506101d361191b565b3480156104b157600080fd5b506103d161192a565b3480156104c657600080fd5b50610210600160a060020a036004351661193b565b3480156104e757600080fd5b50610210600160a060020a0360043516611acf565b34801561050857600080fd5b506101d360ff60043516611c3e565b34801561052357600080fd5b5061029d600160a060020a0360043516611cc9565b34801561054457600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261029d94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750611e4c9650505050505050565b3480156105db57600080fd5b5061029d600160a060020a03600435166120a1565b600854600160a060020a03165b90565b60408051600160a060020a0383166000908152600560205291909120600290810180546060938593600080516020612a24833981519152939282918491610100600182161502600019011604801561068f5780601f1061066d57610100808354040283529182019161068f565b820191906000526020600020905b81548152906001019060200180831161067b575b50509150506040518091039020600019161415151561071d576040805160e560020a62461bcd028152602060048201526024808201527f536572766572206973206e6f7420696e20746865206d6967726174696f6e732060448201527f7365742e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316600090815260056020908152604091829020600190810180548451600293821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b820191906000526020600020905b8154815290600101906020018083116107a257829003601f168201915b5050505050915050919050565b600854600160a060020a03161561082d576040805160e560020a62461bcd02815260206004820152601d60248201527f546865726520697320616e20616374697665206d6967726174696f6e2e000000604482015290519081900360640190fd5b80801515610885576040805160e560020a62461bcd02815260206004820152601a60248201527f4d6967726174696f6e206964206973206e6f742076616c69642e000000000000604482015290519081900360640190fd5b610891600260066120c0565b156108e6576040805160e560020a62461bcd02815260206004820152601a60248201527f4d6967726174696f6e206973206e6f742072657175697265642e000000000000604482015290519081900360640190fd5b6040805133600090815260036020529190912060029081018054600080516020612a24833981519152939192829184916101006001831615026000190190911604801561096a5780601f1061094857610100808354040283529182019161096a565b820191906000526020600020905b815481529060010190602001808311610956575b5050915050604051809103902060001916141580610a1b57506040805133600090815260076020529190912060029081018054600080516020612a248339815191529391928291849161010060018316150260001901909116048015610a075780601f106109e5576101008083540402835291820191610a07565b820191906000526020600020905b8154815290600101906020018083116109f3575b505091505060405180910390206000191614155b1515610a97576040805160e560020a62461bcd02815260206004820152603060248201527f53656e646572206973206e6f74206120706f74656e7469616c206d696772617460448201527f696f6e207061727469636970616e742e00000000000000000000000000000000606482015290519081900360840190fd5b6006541515610b16576040805160e560020a62461bcd02815260206004820152602560248201527f4d6967726174696f6e20746f20656d7074792073657420697320696d706f737360448201527f69626c652e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60088054600160a060020a031916331790556009829055610b39600460066122bf565b6040517f882ea0955bd5561a49a52ef27eb0a7b8263561bd890de2ccfbc107df7724f18890600090a15050565b600160a060020a038116600090815260036020526040808220905160028281018054600080516020612a248339815191529391928291849161010060018316150260001901909116048015610bf25780601f10610bd0576101008083540402835291820191610bf2565b820191906000526020600020905b815481529060010190602001808311610bde575b505091505060405180910390206000191614151515610c5b576040805160e560020a62461bcd02815260206004820152601560248201527f456e74727920646f6573206e6f742065786973742e0000000000000000000000604482015290519081900360640190fd5b5460ff1692915050565b60408051600160a060020a0383166000908152600560205291909120600290810180546060938593600080516020612a248339815191529392829184916101006001821615026000190116048015610cf45780601f10610cd2576101008083540402835291820191610cf4565b820191906000526020600020905b815481529060010190602001808311610ce0575b505091505060405180910390206000191614151515610d82576040805160e560020a62461bcd028152602060048201526024808201527f536572766572206973206e6f7420696e20746865206d6967726174696f6e732060448201527f7365742e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0383166000908152600560209081526040918290206002908101805484516001821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b600954600090801515610e55576040805160e560020a62461bcd02815260206004820152601a60248201527f4d6967726174696f6e206964206973206e6f742076616c69642e000000000000604482015290519081900360640190fd5b60095491505b5090565b60606006600001805480602002602001604051908101604052809291908181526020018280548015610eba57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e9c575b5050505050905090565b60008082801515610f1f576040805160e560020a62461bcd02815260206004820152601a60248201527f4d6967726174696f6e206964206973206e6f742076616c69642e000000000000604482015290519081900360640190fd5b60095484908114610fa0576040805160e560020a62461bcd02815260206004820152602660248201527f4d6967726174696f6e207769746820676976656e206964206973206e6f74206160448201527f63746976652e0000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6040805133600081815260056020529290922060029081018054600080516020612a2483398151915293919282918491610100600183161502600019019091160480156110245780601f10611002576101008083540402835291820191611024565b820191906000526020600020905b815481529060010190602001808311611010575b5050915050604051809103902060001916141515156110b2576040805160e560020a62461bcd028152602060048201526024808201527f536572766572206973206e6f7420696e20746865206d6967726174696f6e732060448201527f7365742e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152600a602052604090205460ff161561111a576040805160e560020a62461bcd02815260206004820152601f60248201527f4d6967726174696f6e20697320616c726561647920636f6e6669726d65642e00604482015290519081900360640190fd5b336000908152600a60205260408120805460ff1916600117905594505b6004548510156111935760048054600a916000918890811061115557fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16151561118857611242565b846001019450611137565b600093505b6004548410156111ee5760048054600a91600091879081106111b657fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020805460ff1916905560019390930192611198565b60088054600160a060020a031916905561120a600260046122bf565b6112146004612438565b6040517fd54b6ad1fb1b396d056c6d670ae90d40d49ad3253a6387dc5120c45bfc51453490600090a1436001555b505050505050565b60606004600001805480602002602001604051908101604052809291908181526020018280548015610eba57602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610e9c575050505050905090565b60408051600160a060020a03831660009081526003602052918220600290810180548593600080516020612a248339815191529390918291849161010060018216150260001901160480156113395780601f10611317576101008083540402835291820191611339565b820191906000526020600020905b815481529060010190602001808311611325575b50509150506040518091039020600019161415806113f3575060408051600160a060020a038316600090815260056020529190912060029081018054600080516020612a2483398151915293919282918491610100600183161502600019019091160480156113df5780601f106113bd5761010080835404028352918201916113df565b820191906000526020600020905b8154815290600101906020018083116113cb575b505091505060405180910390206000191614155b151561146f576040805160e560020a62461bcd02815260206004820152602660248201527f536572766572206973206e6f742061206d6967726174696f6e2070617274696360448201527f6970616e742e0000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5050600160a060020a03166000908152600a602052604090205460ff1690565b60025490565b61149d61192a565b15156114a857600080fd5b60005474010000000000000000000000000000000000000000900460ff161561151b576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f7420696e697469616c697a65642100000000000000000000000000000000604482015290519081900360640190fd5b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b60606002600001805480602002602001604051908101604052809291908181526020018280548015610eba57602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610e9c575050505050905090565b60015490565b6115c361192a565b15156115ce57600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360008054600160a060020a0319169055565b60408051600160a060020a0383166000908152600360205291909120600290810180546060938593600080516020612a2483398151915293928291849161010060018216150260001901160480156116a75780601f106116855761010080835404028352918201916116a7565b820191906000526020600020905b815481529060010190602001808311611693575b505091505060405180910390206000191614151515611736576040805160e560020a62461bcd02815260206004820152602160248201527f536572766572206973206e6f7420696e207468652063757272656e742073657460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316600090815260036020908152604091829020600190810180548451600293821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b60408051600160a060020a0383166000908152600760205291909120600290810180546060938593600080516020612a24833981519152939282918491610100600182161502600019011604801561183c5780601f1061181a57610100808354040283529182019161183c565b820191906000526020600020905b815481529060010190602001808311611828575b5050915050604051809103902060001916141515156118a5576040805160e560020a62461bcd02815260206004820152601d60248201527f536572766572206973206e6f7420696e20746865206e6577207365742e000000604482015290519081900360640190fd5b600160a060020a0383166000908152600760209081526040918290206002908101805484516001821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b600054600160a060020a031690565b600054600160a060020a0316331490565b60408051600160a060020a0383166000908152600360205291909120600290810180546060938593600080516020612a2483398151915293928291849161010060018216150260001901160480156119ca5780601f106119a85761010080835404028352918201916119ca565b820191906000526020600020905b8154815290600101906020018083116119b6575b505091505060405180910390206000191614151515611a59576040805160e560020a62461bcd02815260206004820152602160248201527f536572766572206973206e6f7420696e207468652063757272656e742073657460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0383166000908152600360209081526040918290206002908101805484516001821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b60408051600160a060020a0383166000908152600760205291909120600290810180546060938593600080516020612a248339815191529392829184916101006001821615026000190116048015611b5e5780601f10611b3c576101008083540402835291820191611b5e565b820191906000526020600020905b815481529060010190602001808311611b4a575b505091505060405180910390206000191614151515611bc7576040805160e560020a62461bcd02815260206004820152601d60248201527f536572766572206973206e6f7420696e20746865206e6577207365742e000000604482015290519081900360640190fd5b600160a060020a038316600090815260076020908152604091829020600190810180548451600293821615610100026000190190911692909204601f8101849004840283018401909452838252909290918301828280156107bf5780601f10610794576101008083540402835291602001916107bf565b60025460009060ff831610611c9d576040805160e560020a62461bcd02815260206004820152601760248201527f496e646578206973206f7574206f6620626f756e64732e000000000000000000604482015290519081900360640190fd5b6002805460ff8416908110611cae57fe5b600091825260209091200154600160a060020a031692915050565b611cd161192a565b1515611cdc57600080fd5b60408051600160a060020a0383166000908152600760205291909120600290810180548493600080516020612a24833981519152939091829184916101006001821615026000190116048015611d695780601f10611d47576101008083540402835291820191611d69565b820191906000526020600020905b815481529060010190602001808311611d55575b505091505060405180910390206000191614151515611dd2576040805160e560020a62461bcd02815260206004820152601d60248201527f536572766572206973206e6f7420696e20746865206e6577207365742e000000604482015290519081900360640190fd5b611ddd6006836124f6565b60005474010000000000000000000000000000000000000000900460ff161515611e0c57611e0c6002836124f6565b60408051600160a060020a038416815290517f7af0e7a6072f80f6e718184ff67a09d85fb6855266e2317eccbafa9a7fd15b939181900360200190a15050565b6000611e5661192a565b1515611e6157600080fd5b8151829081901515611ebd576040805160e560020a62461bcd02815260206004820152601060248201527f537472696e6720697320656d7074792e00000000000000000000000000000000604482015290519081900360640190fd5b84611ec78161261c565b1515611f1d576040805160e560020a62461bcd02815260206004820152601860248201527f5075626c6963206b6579206973206e6f742076616c69642e0000000000000000604482015290519081900360640190fd5b611f2686612623565b60408051600160a060020a038316600090815260076020529190912060029081018054600080516020612a248339815191529391928291849161010060018316150260001901909116048015611fb35780601f10611f91576101008083540402835291820191611fb3565b820191906000526020600020905b815481529060010190602001808311611f9f575b505091505060405180910390206000191614151561201b576040805160e560020a62461bcd02815260206004820152601960248201527f53657276657220697320696e20746865206e6577207365742e00000000000000604482015290519081900360640190fd5b61202760068888612690565b60005490955074010000000000000000000000000000000000000000900460ff16151561205c5761205a60028888612690565b505b60408051600160a060020a038716815290517ff7513afac0a2e66c205ba63d0a611b6ba60fbbc861693aa8c5e197aba23eb3e99181900360200190a150505050505050565b6120a961192a565b15156120b457600080fd5b6120bd816127cd565b50565b600080805b84548210156121bb578454600080516020612a248339815191529060018601906000908890869081106120f457fe5b9060005260206000200160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060020160405180828054600181600116156101000203166002900480156121905780601f1061216e576101008083540402835291820191612190565b820191906000526020600020905b81548152906001019060200180831161217c575b505091505060405180910390206000191614156121b057600092506122b7565b8160010191506120c5565b5060005b83548110156122b2578354600080516020612a248339815191529060018701906000908790859081106121ee57fe5b9060005260206000200160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001908152602001600020600201604051808280546001816001161561010002031660029004801561228a5780601f1061226857610100808354040283529182019161228a565b820191906000526020600020905b815481529060010190602001808311612276575b505091505060405180910390206000191614156122aa57600092506122b7565b6001016121bf565b600192505b505092915050565b6000805b83548210156123385783600101600085600001848154811015156122e357fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120805460ff191681559061231d600183018261283d565b61232b60028301600061283d565b50508160010191506122c3565b82546123479085908590612881565b50600090505b835481101561243257826001016000856000018381548110151561236d57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400181208554909160018701918790859081106123a657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190208154815460ff191660ff90911617815560018281018054612402928481019291600260001992821615610100029290920116046128cd565b50600282810180546124279284810192916000196101006001831615020116046128cd565b50505060010161234d565b50505050565b60005b8154600010156124f25781548290600019810190811061245757fe5b6000918252602090912001548254600160a060020a0390911691508290600019810190811061248257fe5b60009182526020909120018054600160a060020a03191690558154600019016124ab838261294e565b50600160a060020a0381166000908152600180840160205260408220805460ff1916815591906124dd9083018261283d565b6124eb60028301600061283d565b505061243b565b5050565b600160a060020a0381166000908152600183016020526040812054835460ff9182169260001982019290918691841690811061252e57fe5b6000918252602090912001548554600160a060020a0390911691508190869060ff861690811061255a57fe5b60009182526020808320919091018054600160a060020a031916600160a060020a0394851617905591831681526001870190915260409020805460ff1