diff --git a/pkg/bindings/AVSDirectory/binding.go b/pkg/bindings/AVSDirectory/binding.go index fab1efabcf..e7df3c4e7a 100644 --- a/pkg/bindings/AVSDirectory/binding.go +++ b/pkg/bindings/AVSDirectory/binding.go @@ -39,7 +39,7 @@ type ISignatureUtilsMixinTypesSignatureWithSaltAndExpiry struct { // AVSDirectoryMetaData contains all meta data concerning the AVSDirectory contract. var AVSDirectoryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_delegation\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"OPERATOR_AVS_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPERATOR_SET_FORCE_DEREGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPERATOR_SET_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsOperatorStatus\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIAVSDirectoryTypes.OperatorAVSRegistrationStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateOperatorAVSRegistrationDigestHash\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"cancelSalt\",\"inputs\":[{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorSaltIsSpent\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"isSpent\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtilsMixinTypes.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAVSRegistrationStatusUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIAVSDirectoryTypes.OperatorAVSRegistrationStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorAlreadyRegisteredToAVS\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegisteredToAVS\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegisteredToEigenLayer\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaltSpent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]}]", - Bin: "0x60e060405234801561000f575f5ffd5b5060405161185938038061185983398101604081905261002e916101b3565b808084846001600160a01b038116610059576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b039081166080521660a0526100748161008a565b60c0525061008290506100d0565b5050506102e4565b5f5f829050601f815111156100bd578260405163305a27a960e01b81526004016100b49190610289565b60405180910390fd5b80516100c8826102be565b179392505050565b5f54610100900460ff16156101375760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100b4565b5f5460ff90811614610186575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461019c575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101c5575f5ffd5b83516101d081610188565b60208501519093506101e181610188565b60408501519092506001600160401b038111156101fc575f5ffd5b8401601f8101861361020c575f5ffd5b80516001600160401b038111156102255761022561019f565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102535761025361019f565b60405281815282820160200188101561026a575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102de575f198160200360031b1b821691505b50919050565b60805160a05160c05161152f61032a5f395f81816104240152610d4d01525f8181610360015261053901525f818161023c01528181610ac90152610dbc015261152f5ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c8063a1060c88116100bf578063dce974b911610079578063dce974b914610334578063df5cf7231461035b578063ec76f44214610382578063f2fde38b146103b5578063f698da25146103c8578063fabc1cbc146103d0575f5ffd5b8063a1060c881461029a578063a364f4da146102ad578063a98fb355146102c0578063c825fe68146102d3578063cd6dc687146102fa578063d79aceab1461030d575f5ffd5b80635ac86ab7116101105780635ac86ab7146101fa5780635c975abb1461021d578063715018a61461022f578063886f1195146102375780638da5cb5b146102765780639926ee7d14610287575f5ffd5b8063136439dd1461014c578063374823b51461016157806349075da3146101a357806354fd4d50146101dd578063595c6a67146101f2575b5f5ffd5b61015f61015a3660046110dc565b6103e3565b005b61018e61016f366004611107565b609960209081525f928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b6101d06101b1366004611131565b609860209081525f928352604080842090915290825290205460ff1681565b60405161019a919061117c565b6101e561041d565b60405161019a91906111d0565b61015f61044d565b61018e6102083660046111e9565b606654600160ff9092169190911b9081161490565b6066545b60405190815260200161019a565b61015f610461565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161019a565b6033546001600160a01b031661025e565b61015f610295366004611277565b610472565b6102216102a8366004611364565b610673565b61015f6102bb3660046113a7565b6106f2565b61015f6102ce3660046113c2565b6107b9565b6102217f809c5ac049c45b7a7f050a20f00c16cf63797efbf8b1eb8d749fdfa39ff8f92981565b61015f610308366004611107565b610800565b6102217fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102217f4ee65f64218c67b68da66fd0db16560040a6b973290b9e71912d661ee53fe49581565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b61015f6103903660046110dc565b335f90815260996020908152604080832093835292905220805460ff19166001179055565b61015f6103c33660046113a7565b61091c565b610221610995565b61015f6103de3660046110dc565b610a4e565b6103eb610ab4565b60665481811681146104105760405163c61dca5d60e01b815260040160405180910390fd5b61041982610b57565b5050565b60606104487f0000000000000000000000000000000000000000000000000000000000000000610b94565b905090565b610455610ab4565b61045f5f19610b57565b565b610469610bd1565b61045f5f610c2b565b5f61047c81610c7c565b6001335f9081526098602090815260408083206001600160a01b038816845290915290205460ff1660018111156104b5576104b5611168565b036104d357604051631aa528bb60e11b815260040160405180910390fd5b6001600160a01b0383165f90815260996020908152604080832085830151845290915290205460ff161561051a57604051630d4c4c9160e21b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa15801561057e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a29190611430565b6105bf57604051639f88c8af60e01b815260040160405180910390fd5b6105e3836105d7853386602001518760400151610673565b84516040860151610ca7565b6001600160a01b0383165f81815260996020908152604080832086830151845282528083208054600160ff19918216811790925533808652609885528386208787529094529382902080549094168117909355519092917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610666919061117c565b60405180910390a3505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd60208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906106e99060c00160405160208183030381529060405280519060200120610cff565b95945050505050565b5f6106fc81610c7c565b6001335f9081526098602090815260408083206001600160a01b038716845290915290205460ff16600181111561073557610735611168565b14610753576040516352df45c960e01b815260040160405180910390fd5b335f8181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b41916107ad919061117c565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c94371383836040516107f492919061144f565b60405180910390a25050565b5f54610100900460ff161580801561081e57505f54600160ff909116105b806108375750303b15801561083757505f5460ff166001145b61089f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156108c0575f805461ff0019166101001790555b6108c982610b57565b6108d283610c2b565b8015610917575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610924610bd1565b6001600160a01b0381166109895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610896565b61099281610c2b565b50565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea610a02610d45565b805160209182012060408051928301949094529281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b610a56610dba565b60665480198219811614610a7d5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016107f4565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610b16573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3a9190611430565b61045f57604051631d77d47760e21b815260040160405180910390fd5b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b60605f610ba083610e6b565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6033546001600160a01b0316331461045f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610896565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606654600160ff83161b908116036109925760405163840a48d560e01b815260040160405180910390fd5b42811015610cc857604051630819bdcd60e01b815260040160405180910390fd5b610cdc6001600160a01b0385168484610e98565b610cf957604051638baa579f60e01b815260040160405180910390fd5b50505050565b5f610d08610995565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b60605f610d717f0000000000000000000000000000000000000000000000000000000000000000610b94565b9050805f81518110610d8557610d8561147d565b016020908101516040516001600160f81b03199091169181019190915260210160405160208183030381529060405291505090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e16573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3a9190611491565b6001600160a01b0316336001600160a01b03161461045f5760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f811115610e9257604051632cd44ac360e21b815260040160405180910390fd5b92915050565b5f5f5f610ea58585610ef6565b90925090505f816004811115610ebd57610ebd611168565b148015610edb5750856001600160a01b0316826001600160a01b0316145b80610eec5750610eec868686610f38565b9695505050505050565b5f5f8251604103610f2a576020830151604084015160608501515f1a610f1e8782858561101f565b94509450505050610f31565b505f905060025b9250929050565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401610f609291906114ac565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f9e91906114cc565b5f60405180830381855afa9150503d805f8114610fd6576040519150601f19603f3d011682016040523d82523d5f602084013e610fdb565b606091505b5091509150818015610fef57506020815110155b8015610eec57508051630b135d3f60e11b9061101490830160209081019084016114e2565b149695505050505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561105457505f905060036110d3565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156110a5573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166110cd575f600192509250506110d3565b91505f90505b94509492505050565b5f602082840312156110ec575f5ffd5b5035919050565b6001600160a01b0381168114610992575f5ffd5b5f5f60408385031215611118575f5ffd5b8235611123816110f3565b946020939093013593505050565b5f5f60408385031215611142575f5ffd5b823561114d816110f3565b9150602083013561115d816110f3565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b602081016002831061119c57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6111e260208301846111a2565b9392505050565b5f602082840312156111f9575f5ffd5b813560ff811681146111e2575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561124057611240611209565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561126f5761126f611209565b604052919050565b5f5f60408385031215611288575f5ffd5b8235611293816110f3565b9150602083013567ffffffffffffffff8111156112ae575f5ffd5b8301606081860312156112bf575f5ffd5b6112c761121d565b813567ffffffffffffffff8111156112dd575f5ffd5b8201601f810187136112ed575f5ffd5b803567ffffffffffffffff81111561130757611307611209565b61131a601f8201601f1916602001611246565b81815288602083850101111561132e575f5ffd5b816020840160208301375f6020928201830152835283810135908301525060409182013591810191909152919491935090915050565b5f5f5f5f60808587031215611377575f5ffd5b8435611382816110f3565b93506020850135611392816110f3565b93969395505050506040820135916060013590565b5f602082840312156113b7575f5ffd5b81356111e2816110f3565b5f5f602083850312156113d3575f5ffd5b823567ffffffffffffffff8111156113e9575f5ffd5b8301601f810185136113f9575f5ffd5b803567ffffffffffffffff81111561140f575f5ffd5b856020828401011115611420575f5ffd5b6020919091019590945092505050565b5f60208284031215611440575f5ffd5b815180151581146111e2575f5ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156114a1575f5ffd5b81516111e2816110f3565b828152604060208201525f6114c460408301846111a2565b949350505050565b5f82518060208501845e5f920191825250919050565b5f602082840312156114f2575f5ffd5b505191905056fea26469706673582212200a13d71b74bc920200d4bd3dfb896d7969a93db2d44da6d97a35ee2a35419c2864736f6c634300081b0033", + Bin: "0x60e060405234801561000f575f5ffd5b5060405161185938038061185983398101604081905261002e916101b3565b808084846001600160a01b038116610059576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b039081166080521660a0526100748161008a565b60c0525061008290506100d0565b5050506102e4565b5f5f829050601f815111156100bd578260405163305a27a960e01b81526004016100b49190610289565b60405180910390fd5b80516100c8826102be565b179392505050565b5f54610100900460ff16156101375760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100b4565b5f5460ff90811614610186575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461019c575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101c5575f5ffd5b83516101d081610188565b60208501519093506101e181610188565b60408501519092506001600160401b038111156101fc575f5ffd5b8401601f8101861361020c575f5ffd5b80516001600160401b038111156102255761022561019f565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102535761025361019f565b60405281815282820160200188101561026a575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102de575f198160200360031b1b821691505b50919050565b60805160a05160c05161152f61032a5f395f81816104240152610d4d01525f8181610360015261053901525f818161023c01528181610ac90152610dbc015261152f5ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c8063a1060c88116100bf578063dce974b911610079578063dce974b914610334578063df5cf7231461035b578063ec76f44214610382578063f2fde38b146103b5578063f698da25146103c8578063fabc1cbc146103d0575f5ffd5b8063a1060c881461029a578063a364f4da146102ad578063a98fb355146102c0578063c825fe68146102d3578063cd6dc687146102fa578063d79aceab1461030d575f5ffd5b80635ac86ab7116101105780635ac86ab7146101fa5780635c975abb1461021d578063715018a61461022f578063886f1195146102375780638da5cb5b146102765780639926ee7d14610287575f5ffd5b8063136439dd1461014c578063374823b51461016157806349075da3146101a357806354fd4d50146101dd578063595c6a67146101f2575b5f5ffd5b61015f61015a3660046110dc565b6103e3565b005b61018e61016f366004611107565b609960209081525f928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b6101d06101b1366004611131565b609860209081525f928352604080842090915290825290205460ff1681565b60405161019a919061117c565b6101e561041d565b60405161019a91906111d0565b61015f61044d565b61018e6102083660046111e9565b606654600160ff9092169190911b9081161490565b6066545b60405190815260200161019a565b61015f610461565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161019a565b6033546001600160a01b031661025e565b61015f610295366004611277565b610472565b6102216102a8366004611364565b610673565b61015f6102bb3660046113a7565b6106f2565b61015f6102ce3660046113c2565b6107b9565b6102217f809c5ac049c45b7a7f050a20f00c16cf63797efbf8b1eb8d749fdfa39ff8f92981565b61015f610308366004611107565b610800565b6102217fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102217f4ee65f64218c67b68da66fd0db16560040a6b973290b9e71912d661ee53fe49581565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b61015f6103903660046110dc565b335f90815260996020908152604080832093835292905220805460ff19166001179055565b61015f6103c33660046113a7565b61091c565b610221610995565b61015f6103de3660046110dc565b610a4e565b6103eb610ab4565b60665481811681146104105760405163c61dca5d60e01b815260040160405180910390fd5b61041982610b57565b5050565b60606104487f0000000000000000000000000000000000000000000000000000000000000000610b94565b905090565b610455610ab4565b61045f5f19610b57565b565b610469610bd1565b61045f5f610c2b565b5f61047c81610c7c565b6001335f9081526098602090815260408083206001600160a01b038816845290915290205460ff1660018111156104b5576104b5611168565b036104d357604051631aa528bb60e11b815260040160405180910390fd5b6001600160a01b0383165f90815260996020908152604080832085830151845290915290205460ff161561051a57604051630d4c4c9160e21b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa15801561057e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a29190611430565b6105bf57604051639f88c8af60e01b815260040160405180910390fd5b6105e3836105d7853386602001518760400151610673565b84516040860151610ca7565b6001600160a01b0383165f81815260996020908152604080832086830151845282528083208054600160ff19918216811790925533808652609885528386208787529094529382902080549094168117909355519092917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610666919061117c565b60405180910390a3505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd60208201526001600160a01b038087169282019290925290841660608201526080810183905260a081018290525f906106e99060c00160405160208183030381529060405280519060200120610cff565b95945050505050565b5f6106fc81610c7c565b6001335f9081526098602090815260408083206001600160a01b038716845290915290205460ff16600181111561073557610735611168565b14610753576040516352df45c960e01b815260040160405180910390fd5b335f8181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b41916107ad919061117c565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c94371383836040516107f492919061144f565b60405180910390a25050565b5f54610100900460ff161580801561081e57505f54600160ff909116105b806108375750303b15801561083757505f5460ff166001145b61089f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156108c0575f805461ff0019166101001790555b6108c982610b57565b6108d283610c2b565b8015610917575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610924610bd1565b6001600160a01b0381166109895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610896565b61099281610c2b565b50565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea610a02610d45565b805160209182012060408051928301949094529281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b610a56610dba565b60665480198219811614610a7d5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016107f4565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610b16573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3a9190611430565b61045f57604051631d77d47760e21b815260040160405180910390fd5b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b60605f610ba083610e6b565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6033546001600160a01b0316331461045f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610896565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606654600160ff83161b908116036109925760405163840a48d560e01b815260040160405180910390fd5b42811015610cc857604051630819bdcd60e01b815260040160405180910390fd5b610cdc6001600160a01b0385168484610e98565b610cf957604051638baa579f60e01b815260040160405180910390fd5b50505050565b5f610d08610995565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b60605f610d717f0000000000000000000000000000000000000000000000000000000000000000610b94565b9050805f81518110610d8557610d8561147d565b016020908101516040516001600160f81b03199091169181019190915260210160405160208183030381529060405291505090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e16573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3a9190611491565b6001600160a01b0316336001600160a01b03161461045f5760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f811115610e9257604051632cd44ac360e21b815260040160405180910390fd5b92915050565b5f5f5f610ea58585610ef6565b90925090505f816004811115610ebd57610ebd611168565b148015610edb5750856001600160a01b0316826001600160a01b0316145b80610eec5750610eec868686610f38565b9695505050505050565b5f5f8251604103610f2a576020830151604084015160608501515f1a610f1e8782858561101f565b94509450505050610f31565b505f905060025b9250929050565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401610f609291906114ac565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610f9e91906114cc565b5f60405180830381855afa9150503d805f8114610fd6576040519150601f19603f3d011682016040523d82523d5f602084013e610fdb565b606091505b5091509150818015610fef57506020815110155b8015610eec57508051630b135d3f60e11b9061101490830160209081019084016114e2565b149695505050505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561105457505f905060036110d3565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156110a5573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166110cd575f600192509250506110d3565b91505f90505b94509492505050565b5f602082840312156110ec575f5ffd5b5035919050565b6001600160a01b0381168114610992575f5ffd5b5f5f60408385031215611118575f5ffd5b8235611123816110f3565b946020939093013593505050565b5f5f60408385031215611142575f5ffd5b823561114d816110f3565b9150602083013561115d816110f3565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b602081016002831061119c57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6111e260208301846111a2565b9392505050565b5f602082840312156111f9575f5ffd5b813560ff811681146111e2575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561124057611240611209565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561126f5761126f611209565b604052919050565b5f5f60408385031215611288575f5ffd5b8235611293816110f3565b9150602083013567ffffffffffffffff8111156112ae575f5ffd5b8301606081860312156112bf575f5ffd5b6112c761121d565b813567ffffffffffffffff8111156112dd575f5ffd5b8201601f810187136112ed575f5ffd5b803567ffffffffffffffff81111561130757611307611209565b61131a601f8201601f1916602001611246565b81815288602083850101111561132e575f5ffd5b816020840160208301375f6020928201830152835283810135908301525060409182013591810191909152919491935090915050565b5f5f5f5f60808587031215611377575f5ffd5b8435611382816110f3565b93506020850135611392816110f3565b93969395505050506040820135916060013590565b5f602082840312156113b7575f5ffd5b81356111e2816110f3565b5f5f602083850312156113d3575f5ffd5b823567ffffffffffffffff8111156113e9575f5ffd5b8301601f810185136113f9575f5ffd5b803567ffffffffffffffff81111561140f575f5ffd5b856020828401011115611420575f5ffd5b6020919091019590945092505050565b5f60208284031215611440575f5ffd5b815180151581146111e2575f5ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156114a1575f5ffd5b81516111e2816110f3565b828152604060208201525f6114c460408301846111a2565b949350505050565b5f82518060208501845e5f920191825250919050565b5f602082840312156114f2575f5ffd5b505191905056fea26469706673582212205d1a7fe2f701906564102d19d8626dd6ccc14ab32da1b7f72df6cb714b9674e464736f6c634300081b0033", } // AVSDirectoryABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/AllocationManager/binding.go b/pkg/bindings/AllocationManager/binding.go index 4661fce1e0..d82bb135db 100644 --- a/pkg/bindings/AllocationManager/binding.go +++ b/pkg/bindings/AllocationManager/binding.go @@ -81,7 +81,7 @@ type OperatorSet struct { // AllocationManagerMetaData contains all meta data concerning the AllocationManager contract. var AllocationManagerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_delegation\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"_eigenStrategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"_DEALLOCATION_DELAY\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_ALLOCATION_CONFIGURATION_DELAY\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ALLOCATION_CONFIGURATION_DELAY\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEALLOCATION_DELAY\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addStrategiesToOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"clearDeallocationQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"numToClear\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorSets\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.CreateSetParams[]\",\"components\":[{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createRedistributingOperatorSets\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.CreateSetParams[]\",\"components\":[{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}]},{\"name\":\"redistributionRecipients\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deregisterFromOperatorSets\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.DeregisterParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"eigenStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatableMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedStake\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocatedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocation\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.Allocation\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllocations\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getEncumberedMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitude\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudes\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMaxMagnitudesAtBlock\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"blockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMemberCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMembers\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMinimumSlashableStake\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"futureBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"slashableStake\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetCount\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRedistributionRecipient\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRegisteredSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSlashCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategiesInOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.Allocation[]\",\"components\":[{\"name\":\"currentMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"pendingDiff\",\"type\":\"int128\",\"internalType\":\"int128\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isMemberOfOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorRedistributable\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorSlashable\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isRedistributingOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyAllocations\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIAllocationManagerTypes.AllocateParams[]\",\"components\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"newMagnitudes\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerForOperatorSets\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.RegisterParams\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetIds\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromOperatorSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAVSRegistrar\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"internalType\":\"contractIAVSRegistrar\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllocationDelay\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"slashOperator\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIAllocationManagerTypes.SlashingParams\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadsToSlash\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"AVSMetadataURIUpdated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AVSRegistrarSet\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"registrar\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIAVSRegistrar\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationDelaySet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"delay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllocationUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"magnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"effectBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EncumberedMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"encumberedMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxMagnitudeUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"maxMagnitude\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAddedToOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetCreated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSlashed\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategies\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"contractIStrategy[]\"},{\"name\":\"wadSlashed\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"description\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RedistributionAddressSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"redistributionRecipient\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Empty\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidAVSRegistrar\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCaller\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidRedistributionRecipient\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSnapshotOrdering\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidStrategy\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidWadToSlash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ModificationAlreadyPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NonexistentAVSMetadata\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotMemberOfSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotSlashable\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OutOfBounds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SameMagnitude\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategiesMustBeInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyAlreadyInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotInOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"UninitializedAllocationDelay\",\"inputs\":[]}]", - Bin: "0x610160604052348015610010575f5ffd5b506040516161d63803806161d683398101604081905261002f916101ef565b8084888886868a6001600160a01b03811661005d576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805293841660a05291831660c05263ffffffff90811660e05216610100521661012052610095816100ae565b61014052506100a26100f4565b50505050505050610367565b5f5f829050601f815111156100e1578260405163305a27a960e01b81526004016100d8919061030c565b60405180910390fd5b80516100ec82610341565b179392505050565b5f54610100900460ff161561015b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100d8565b5f5460ff908116146101aa575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101c0575f5ffd5b50565b805163ffffffff811681146101d6575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f5f5f60e0888a031215610205575f5ffd5b8751610210816101ac565b6020890151909750610221816101ac565b6040890151909650610232816101ac565b6060890151909550610243816101ac565b9350610251608089016101c3565b925061025f60a089016101c3565b60c08901519092506001600160401b0381111561027a575f5ffd5b8801601f81018a1361028a575f5ffd5b80516001600160401b038111156102a3576102a36101db565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102d1576102d16101db565b6040528181528282016020018c10156102e8575f5ffd5b8160208401602083015e5f6020838301015280935050505092959891949750929550565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610361575f198160200360031b1b821691505b50919050565b60805160a05160c05160e051610100516101205161014051615dca61040c5f395f61136d01525f81816104cd0152612c9101525f81816106400152613be001525f81816103d6015281816117660152611e3901525f818161079b0152613a4c01525f81816107d5015281816113a10152818161140b0152818161211901528181612f0501526137a201525f818161066701528181612b5d01526141f80152615dca5ff3fe608060405234801561000f575f5ffd5b50600436106102ff575f3560e01c8063670d3ba211610195578063b2447af7116100e4578063db4df7611161009e578063f231bd0811610079578063f231bd08146107f7578063f605ce081461080a578063fabc1cbc1461081d578063fe4b84df14610830575f5ffd5b8063db4df76114610796578063dc2af692146107bd578063df5cf723146107d0575f5ffd5b8063b2447af714610708578063b66bd9891461071b578063b9fbaed11461072e578063ba1a84e51461075d578063c221d8ae14610770578063d3d96ff414610783575f5ffd5b8063886f11951161014f578063952899ee1161012a578063952899ee146106bc578063a9333ec8146106cf578063a9821821146106e2578063adc2e3d9146106f5575f5ffd5b8063886f1195146106625780638ce648541461068957806394d7d00c146106a9575f5ffd5b8063670d3ba2146105c45780636cfb4481146105d75780636e3492b5146106025780636e875dba1461061557806379ae50cd146106285780637bc1ef611461063b575f5ffd5b806340120dab1161025157806350feea201161020b57806356c483e6116101e657806356c483e61461057e578063595c6a67146105915780635ac86ab7146105995780635c975abb146105bc575f5ffd5b806350feea2014610543578063547afb871461055657806354fd4d5014610569575f5ffd5b806340120dab146104875780634177a87c146104a85780634657e26a146104c85780634a10ffe5146104ef5780634b5046ef1461050f5780634cfd293914610522575f5ffd5b8063261f84e0116102bc5780632bab2c4a116102975780632bab2c4a1461042d578063304c10cd1461044057806332a879e4146104535780633635205714610466575f5ffd5b8063261f84e0146103be5780632981eb77146103d15780632b453a9a1461040d575f5ffd5b80630f3df50e1461030357806310e1b9b8146103335780631352c3e614610353578063136439dd1461037657806315fe50281461038b578063260dc758146103ab575b5f5ffd5b610316610311366004614bf0565b610843565b6040516001600160a01b0390911681526020015b60405180910390f35b610346610341366004614c0a565b610884565b60405161032a9190614c51565b610366610361366004614c84565b6108bd565b604051901515815260200161032a565b610389610384366004614cb8565b610938565b005b61039e610399366004614ccf565b610972565b60405161032a9190614d4d565b6103666103b9366004614bf0565b610a89565b6103896103cc366004614d9f565b610aba565b6103f87f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161032a565b61042061041b366004614e84565b610b63565b60405161032a9190614f27565b61042061043b366004614f8a565b610b79565b61031661044e366004614ccf565b610c18565b61038961046136600461500e565b610c47565b61047961047436600461508e565b610d8e565b60405161032a9291906150e0565b61049a6104953660046150f8565b610ed1565b60405161032a929190615185565b6104bb6104b6366004614bf0565b61104c565b60405161032a91906151e2565b6103167f000000000000000000000000000000000000000000000000000000000000000081565b6105026104fd3660046151f4565b611070565b60405161032a9190615237565b61038961051d36600461500e565b611118565b610535610530366004614bf0565b6111ab565b60405190815260200161032a565b610389610551366004615282565b6111cd565b6105026105643660046152e0565b6112be565b610571611366565b60405161032a9190615322565b61038961058c366004615357565b611396565b61038961149b565b6103666105a7366004615381565b606654600160ff9092169190911b9081161490565b606654610535565b6103666105d2366004614c84565b6114af565b6105ea6105e53660046150f8565b6114db565b6040516001600160401b03909116815260200161032a565b6103896106103660046153b7565b6114f0565b6104bb610623366004614bf0565b6118b3565b61039e610636366004614ccf565b6118c4565b6103f87f000000000000000000000000000000000000000000000000000000000000000081565b6103167f000000000000000000000000000000000000000000000000000000000000000081565b61069c6106973660046153e8565b61199e565b60405161032a919061542b565b6105026106b736600461543d565b611a5a565b6103896106ca366004615498565b611b46565b6105ea6106dd3660046150f8565b611fe7565b6103896106f0366004615641565b612016565b6103896107033660046156bf565b6120c8565b610535610716366004614bf0565b612411565b610389610729366004615282565b612433565b61074161073c366004614ccf565b61258d565b60408051921515835263ffffffff90911660208301520161032a565b61053561076b366004614ccf565b612627565b6104bb61077e366004614c84565b612647565b6103896107913660046150f8565b612670565b6103167f000000000000000000000000000000000000000000000000000000000000000081565b6103666107cb366004614ccf565b61279d565b6103167f000000000000000000000000000000000000000000000000000000000000000081565b610366610805366004614bf0565b6127d0565b6105ea6108183660046150f8565b6127ef565b61038961082b366004614cb8565b6127fb565b61038961083e366004614cb8565b612868565b5f5f60a65f61085185612979565b815260208101919091526040015f20546001600160a01b031690508015610878578061087d565b620e16e45b9392505050565b604080516060810182525f80825260208201819052918101829052906108b3856108ad86612979565b856129dc565b9695505050505050565b6001600160a01b0382165f908152609e602052604081208190816108e085612979565b815260208082019290925260409081015f2081518083019092525460ff8116151580835261010090910463ffffffff169282019290925291508061092e5750806020015163ffffffff164311155b9150505b92915050565b610940612b48565b60665481811681146109655760405163c61dca5d60e01b815260040160405180910390fd5b61096e82612beb565b5050565b6001600160a01b0381165f908152609d602052604081206060919061099690612c28565b90505f816001600160401b038111156109b1576109b1614b00565b6040519080825280602002602001820160405280156109f557816020015b604080518082019091525f80825260208201528152602001906001900390816109cf5790505b5090505f5b82811015610a81576001600160a01b0385165f908152609d60205260409020610a5c90610a279083612c31565b604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b828281518110610a6e57610a6e615701565b60209081029190910101526001016109fa565b509392505050565b60208082015182516001600160a01b03165f9081526098909252604082206109329163ffffffff90811690612c3c16565b82610ac481612c53565b610ae15760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff16610b19576040516348f7dbb960e01b815260040160405180910390fd5b5f5b82811015610b5c57610b5485858584818110610b3957610b39615701565b9050602002810190610b4b9190615715565b620e16e4612cfd565b600101610b1b565b5050505050565b6060610b7184848443612eb1565b949350505050565b6060610b8785858585612eb1565b90505f5b8451811015610c0f57610bb7858281518110610ba957610ba9615701565b6020026020010151876108bd565b610c07575f5b8451811015610c05575f838381518110610bd957610bd9615701565b60200260200101518281518110610bf257610bf2615701565b6020908102919091010152600101610bbd565b505b600101610b8b565b50949350505050565b6001600160a01b038082165f908152609760205260408120549091168015610c40578061087d565b5090919050565b84610c5181612c53565b610c6e5760405163932d94f760e01b815260040160405180910390fd5b838214610c8e576040516343714afd60e01b815260040160405180910390fd5b6001600160a01b0386165f90815260a4602052604090205460ff16610cc6576040516348f7dbb960e01b815260040160405180910390fd5b5f5b84811015610d85575f848483818110610ce357610ce3615701565b9050602002016020810190610cf89190614ccf565b90506001600160a01b038116610d21576040516339b190bb60e11b815260040160405180910390fd5b620e16e3196001600160a01b03821601610d4e576040516364be1a3f60e11b815260040160405180910390fd5b610d7c88888885818110610d6457610d64615701565b9050602002810190610d769190615715565b83612cfd565b50600101610cc8565b50505050505050565b5f60606001610d9c8161319e565b84610da681612c53565b610dc35760405163932d94f760e01b815260040160405180910390fd5b5f6040518060400160405280886001600160a01b03168152602001876020016020810190610df19190615733565b63ffffffff1690529050610e08606087018761574c565b9050610e17604088018861574c565b905014610e37576040516343714afd60e01b815260040160405180910390fd5b60208082015182516001600160a01b03165f90815260989092526040909120610e699163ffffffff90811690612c3c16565b610e8657604051631fb1705560e21b815260040160405180910390fd5b610e9c610e966020880188614ccf565b826108bd565b610eb95760405163ebbff49760e01b815260040160405180910390fd5b610ec386826131cc565b945094505050509250929050565b6001600160a01b0382165f908152609d602052604081206060918291610ef690612c28565b90505f816001600160401b03811115610f1157610f11614b00565b604051908082528060200260200182016040528015610f5557816020015b604080518082019091525f8082526020820152815260200190600190039081610f2f5790505b5090505f826001600160401b03811115610f7157610f71614b00565b604051908082528060200260200182016040528015610fba57816020015b604080516060810182525f80825260208083018290529282015282525f19909201910181610f8f5790505b5090505f5b8381101561103d576001600160a01b0388165f908152609d60205260408120610fec90610a279084612c31565b90508084838151811061100157611001615701565b602002602001018190525061101789828a610884565b83838151811061102957611029615701565b602090810291909101015250600101610fbf565b509093509150505b9250929050565b60605f61087d60995f61105e86612979565b81526020019081526020015f2061390c565b60605f83516001600160401b0381111561108c5761108c614b00565b6040519080825280602002602001820160405280156110b5578160200160208202803683370190505b5090505f5b8451811015610a81576110e68582815181106110d8576110d8615701565b602002602001015185611fe7565b8282815181106110f8576110f8615701565b6001600160401b03909216602092830291909101909101526001016110ba565b5f6111228161319e565b838214611142576040516343714afd60e01b815260040160405180910390fd5b5f5b84811015610d85576111a38787878481811061116257611162615701565b90506020020160208101906111779190614ccf565b86868581811061118957611189615701565b905060200201602081019061119e9190615791565b613918565b600101611144565b5f60a55f6111b884612979565b81526020019081526020015f20549050919050565b836111d781612c53565b6111f45760405163932d94f760e01b815260040160405180910390fd5b6040805180820182526001600160a01b03871680825263ffffffff80881660208085018290525f938452609890529390912091926112339291612c3c16565b61125057604051631fb1705560e21b815260040160405180910390fd5b5f5b83811015610d85576112b68286868481811061127057611270615701565b90506020020160208101906112859190614ccf565b6112b160405180604001604052808c6001600160a01b031681526020018b63ffffffff168152506127d0565b613a1c565b600101611252565b60605f82516001600160401b038111156112da576112da614b00565b604051908082528060200260200182016040528015611303578160200160208202803683370190505b5090505f5b8351811015610a81576113348585838151811061132757611327615701565b6020026020010151611fe7565b82828151811061134657611346615701565b6001600160401b0390921660209283029190910190910152600101611308565b60606113917f0000000000000000000000000000000000000000000000000000000000000000613afc565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611491576113cf82612c53565b6113ec576040516348f5c3ed60e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015611450573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147491906157b2565b6114915760405163ccea9e6f60e01b815260040160405180910390fd5b61096e8282613b39565b6114a3612b48565b6114ad5f19612beb565b565b5f61087d83609a5f6114c086612979565b81526020019081526020015f20613ce590919063ffffffff16565b5f5f6114e78484613d06565b95945050505050565b60026114fb8161319e565b61151061150b6020840184614ccf565b612c53565b80611529575061152961150b6040840160208501614ccf565b611546576040516348f5c3ed60e01b815260040160405180910390fd5b5f5b611555604084018461574c565b9050811015611817575f604051806040016040528085602001602081019061157d9190614ccf565b6001600160a01b03168152602001611598604087018761574c565b858181106115a8576115a8615701565b90506020020160208101906115bd9190615733565b63ffffffff16815250905061160a816020015163ffffffff1660985f8760200160208101906115ec9190614ccf565b6001600160a01b0316815260208101919091526040015f2090612c3c565b61162757604051631fb1705560e21b815260040160405180910390fd5b609e5f6116376020870187614ccf565b6001600160a01b03166001600160a01b031681526020019081526020015f205f61166083612979565b815260208101919091526040015f205460ff16611690576040516325131d4f60e01b815260040160405180910390fd5b6116ca61169c82612979565b609c5f6116ac6020890189614ccf565b6001600160a01b0316815260208101919091526040015f2090613e75565b506117026116db6020860186614ccf565b609a5f6116e785612979565b81526020019081526020015f20613e8090919063ffffffff16565b506117106020850185614ccf565b6001600160a01b03167fad34c3070be1dffbcaa499d000ba2b8d9848aefcac3059df245dd95c4ece14fe8260405161174891906157d1565b60405180910390a2604080518082019091525f81526020810161178b7f0000000000000000000000000000000000000000000000000000000000000000436157f3565b63ffffffff169052609e5f6117a36020880188614ccf565b6001600160a01b03166001600160a01b031681526020019081526020015f205f6117cc84612979565b81526020808201929092526040015f2082518154939092015163ffffffff166101000264ffffffff00199215159290921664ffffffffff199093169290921717905550600101611548565b5061182b61044e6040840160208501614ccf565b6001600160a01b031663303ca9566118466020850185614ccf565b6118566040860160208701614ccf565b611863604087018761574c565b6040518563ffffffff1660e01b81526004016118829493929190615848565b5f604051808303815f87803b158015611899575f5ffd5b505af11580156118ab573d5f5f3e3d5ffd5b505050505050565b6060610932609a5f61105e85612979565b6001600160a01b0381165f908152609c60205260408120606091906118e890612c28565b90505f816001600160401b0381111561190357611903614b00565b60405190808252806020026020018201604052801561194757816020015b604080518082019091525f80825260208201528152602001906001900390816119215790505b5090505f5b82811015610a81576001600160a01b0385165f908152609c6020526040902061197990610a279083612c31565b82828151811061198b5761198b615701565b602090810291909101015260010161194c565b60605f84516001600160401b038111156119ba576119ba614b00565b604051908082528060200260200182016040528015611a0357816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816119d85790505b5090505f5b8551811015610c0f57611a35868281518110611a2657611a26615701565b60200260200101518686610884565b828281518110611a4757611a47615701565b6020908102919091010152600101611a08565b60605f83516001600160401b03811115611a7657611a76614b00565b604051908082528060200260200182016040528015611a9f578160200160208202803683370190505b5090505f5b8451811015610c0f576001600160a01b0386165f90815260a1602052604081208651611b1492879291899086908110611adf57611adf615701565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20613e9490919063ffffffff16565b828281518110611b2657611b26615701565b6001600160401b0390921660209283029190910190910152600101611aa4565b5f611b508161319e565b611b5983612c53565b611b76576040516348f5c3ed60e01b815260040160405180910390fd5b5f5f5f611b828661258d565b9150915081611ba45760405163fa55fc8160e01b815260040160405180910390fd5b91505f90505b8351811015610b5c57838181518110611bc557611bc5615701565b60200260200101516040015151848281518110611be457611be4615701565b6020026020010151602001515114611c0f576040516343714afd60e01b815260040160405180910390fd5b5f848281518110611c2257611c22615701565b602090810291909101810151518082015181516001600160a01b03165f90815260989093526040909220909250611c629163ffffffff90811690612c3c16565b611c7f57604051631fb1705560e21b815260040160405180910390fd5b5f611c8a87836108bd565b90505f5b868481518110611ca057611ca0615701565b60200260200101516020015151811015611fdc575f878581518110611cc757611cc7615701565b6020026020010151602001518281518110611ce457611ce4615701565b60200260200101519050611cfb898261ffff613918565b5f5f611d0a8b6108ad88612979565b91509150806040015163ffffffff165f14611d3857604051630d8fcbe360e41b815260040160405180910390fd5b5f611d4587858489613ea8565b9050611d8a825f01518c8a81518110611d6057611d60615701565b6020026020010151604001518781518110611d7d57611d7d615701565b6020026020010151613ede565b600f0b602083018190525f03611db357604051634606179360e11b815260040160405180910390fd5b5f8260200151600f0b1215611ef7578015611e7957611e34611dd488612979565b6001600160a01b03808f165f90815260a360209081526040808320938a16835292905220908154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b611e5e7f0000000000000000000000000000000000000000000000000000000000000000436157f3565b611e699060016157f3565b63ffffffff166040830152611f64565b611e8b83602001518360200151613ef5565b6001600160401b031660208401528a518b9089908110611ead57611ead615701565b6020026020010151604001518581518110611eca57611eca615701565b6020908102919091018101516001600160401b031683525f9083015263ffffffff43166040830152611f64565b5f8260200151600f0b1315611f6457611f1883602001518360200151613ef5565b6001600160401b039081166020850181905284519091161015611f4e57604051636c9be0bf60e01b815260040160405180910390fd5b611f5889436157f3565b63ffffffff1660408301525b611f798c611f7189612979565b868686613f14565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd8c8886611fae865f01518760200151613ef5565b8660400151604051611fc4959493929190615874565b60405180910390a1505060019092019150611c8e9050565b505050600101611baa565b6001600160a01b038083165f90815260a160209081526040808320938516835292905290812061087d9061414c565b8261202081612c53565b61203d5760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff1661207f576001600160a01b0384165f90815260a460205260409020805460ff191660011790555b836001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c94371384846040516120ba9291906158ed565b60405180910390a250505050565b60026120d38161319e565b826120dd81612c53565b6120fa5760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0385811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa15801561215e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061218291906157b2565b61219f5760405163ccea9e6f60e01b815260040160405180910390fd5b5f5b6121ae602085018561574c565b905081101561237657604080518082019091525f90806121d16020880188614ccf565b6001600160a01b031681526020018680602001906121ef919061574c565b858181106121ff576121ff615701565b90506020020160208101906122149190615733565b63ffffffff90811690915260208083015183516001600160a01b03165f90815260989092526040909120929350612250929190811690612c3c16565b61226d57604051631fb1705560e21b815260040160405180910390fd5b61227786826108bd565b1561229557604051636c6c6e2760e11b815260040160405180910390fd5b6122be6122a182612979565b6001600160a01b0388165f908152609c602052604090209061415f565b506122ea86609a5f6122cf85612979565b81526020019081526020015f2061416a90919063ffffffff16565b50856001600160a01b03167f43232edf9071753d2321e5fa7e018363ee248e5f2142e6c08edd3265bfb4895e8260405161232491906157d1565b60405180910390a26001600160a01b0386165f908152609e6020526040812060019161234f84612979565b815260208101919091526040015f20805460ff1916911515919091179055506001016121a1565b5061238761044e6020850185614ccf565b6001600160a01b031663c63fd502856123a36020870187614ccf565b6123b0602088018861574c565b6123bd60408a018a615900565b6040518763ffffffff1660e01b81526004016123de96959493929190615942565b5f604051808303815f87803b1580156123f5575f5ffd5b505af1158015612407573d5f5f3e3d5ffd5b5050505050505050565b5f610932609a5f61242185612979565b81526020019081526020015f20612c28565b8361243d81612c53565b61245a5760405163932d94f760e01b815260040160405180910390fd5b6040805180820182526001600160a01b03871680825263ffffffff80881660208085018290525f938452609890529390912091926124999291612c3c16565b6124b657604051631fb1705560e21b815260040160405180910390fd5b5f6124c082612979565b90505f5b84811015612407576125098686838181106124e1576124e1615701565b90506020020160208101906124f69190614ccf565b5f84815260996020526040902090613e80565b612526576040516331bc342760e11b815260040160405180910390fd5b7f7b4b073d80dcac55a11177d8459ad9f664ceeb91f71f27167bb14f8152a7eeee8387878481811061255a5761255a615701565b905060200201602081019061256f9190614ccf565b60405161257d92919061598e565b60405180910390a16001016124c4565b6001600160a01b0381165f908152609b602090815260408083208151608081018352905463ffffffff80821680845260ff600160201b8404161515958401869052650100000000008304821694840194909452600160481b90910416606082018190528493919291901580159061260e5750826060015163ffffffff164310155b1561261d575050604081015160015b9590945092505050565b6001600160a01b0381165f90815260986020526040812061093290612c28565b6001600160a01b0382165f908152609f602052604081206060919061092e908261105e86612979565b8161267a81612c53565b6126975760405163932d94f760e01b815260040160405180910390fd5b60405163b526578760e01b81526001600160a01b03848116600483015283169063b526578790602401602060405180830381865afa1580156126db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126ff91906157b2565b61271c57604051631d0b13c160e31b815260040160405180910390fd5b6001600160a01b038381165f90815260976020526040902080546001600160a01b0319169184169190911790557f2ae945c40c44dc0ec263f95609c3fdc6952e0aefa22d6374e44f2c997acedf858361277481610c18565b604080516001600160a01b039384168152929091166020830152015b60405180910390a1505050565b5f5f6127a8836118c4565b90505f6127b484610972565b90506127c0848361417e565b80610b715750610b71848261417e565b5f620e16e46127de83610843565b6001600160a01b0316141592915050565b5f5f610c0f8484613d06565b6128036141f6565b6066548019821981161461282a5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f54610100900460ff161580801561288657505f54600160ff909116105b8061289f5750303b15801561289f57505f5460ff166001145b6129075760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015612928575f805461ff0019166101001790555b61293182612beb565b801561096e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b5f815f0151826020015163ffffffff166040516020016129c492919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b604051602081830303815290604052610932906159b4565b6040805180820182525f80825260208083018290528351606081018552828152808201839052808501839052845180860186526001600160a01b03898116855260a1845286852090881685529092529382209293928190612a3c9061414c565b6001600160401b0390811682526001600160a01b038981165f81815260a260209081526040808320948c168084529482528083205486169682019690965291815260a082528481208b8252825284812092815291815290839020835160608101855290549283168152600160401b8304600f0b91810191909152600160c01b90910463ffffffff16918101829052919250431015612ade579092509050612b40565b612aef815f01518260200151613ef5565b6001600160401b0316815260208101515f600f9190910b1215612b2d57612b1e82602001518260200151613ef5565b6001600160401b031660208301525b5f60408201819052602082015290925090505b935093915050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015612baa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bce91906157b2565b6114ad57604051631d77d47760e21b815260040160405180910390fd5b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f610932825490565b5f61087d83836142a7565b5f818152600183016020526040812054151561087d565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af1158015612cd9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093291906157b2565b5f6040518060400160405280856001600160a01b03168152602001845f016020810190612d2a9190615733565b63ffffffff168152509050612d74816020015163ffffffff1660985f876001600160a01b03166001600160a01b031681526020019081526020015f2061415f90919063ffffffff16565b612d9157604051631fb1705560e21b815260040160405180910390fd5b7f31629285ead2335ae0933f86ed2ae63321f7af77b4e6eaabc42c057880977e6c81604051612dc091906157d1565b60405180910390a16001600160a01b038216620e16e414801590612e55578260a65f612deb85612979565b81526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f90a6fa2a9b79b910872ebca540cf3bd8be827f586e6420c30d8836e30012907e8284604051612e4c92919061598e565b60405180910390a15b5f5b612e64602086018661574c565b90508110156118ab57612ea983612e7e602088018861574c565b84818110612e8e57612e8e615701565b9050602002016020810190612ea39190614ccf565b84613a1c565b600101612e57565b606083516001600160401b03811115612ecc57612ecc614b00565b604051908082528060200260200182016040528015612eff57816020015b6060815260200190600190039081612eea5790505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f0e0e67686866040518363ffffffff1660e01b8152600401612f519291906159d7565b5f60405180830381865afa158015612f6b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f9291908101906159fb565b90505f5b8551811015613194575f868281518110612fb257612fb2615701565b6020026020010151905085516001600160401b03811115612fd557612fd5614b00565b604051908082528060200260200182016040528015612ffe578160200160208202803683370190505b5084838151811061301157613011615701565b60209081029190910101525f5b865181101561318a575f87828151811061303a5761303a615701565b6020908102919091018101516001600160a01b038086165f90815260a18452604080822092841682529190935282209092506130759061414c565b9050806001600160401b03165f0361308e575050613182565b5f61309a858d85610884565b90508863ffffffff16816040015163ffffffff16111580156130c257505f8160200151600f0b125b156130e4576130d8815f01518260200151613ef5565b6001600160401b031681525b80515f906130ff906001600160401b039081169085166142cd565b90506131468189898151811061311757613117615701565b6020026020010151878151811061313057613130615701565b60200260200101516142e190919063ffffffff16565b89888151811061315857613158615701565b6020026020010151868151811061317157613171615701565b602002602001018181525050505050505b60010161301e565b5050600101612f96565b5050949350505050565b606654600160ff83161b908116036131c95760405163840a48d560e01b815260040160405180910390fd5b50565b5f6060816131dd604086018661574c565b90506001600160401b038111156131f6576131f6614b00565b60405190808252806020026020018201604052801561321f578160200160208202803683370190505b50905061322f604086018661574c565b90506001600160401b0381111561324857613248614b00565b604051908082528060200260200182016040528015613271578160200160208202803683370190505b50915060a55f61328086612979565b81526020019081526020015f205f815461329990615b07565b918290555092505f5b6132af604087018761574c565b905081101561389e5780158061334257506132cd604087018761574c565b6132d8600184615b1f565b8181106132e7576132e7615701565b90506020020160208101906132fc9190614ccf565b6001600160a01b0316613312604088018861574c565b8381811061332257613322615701565b90506020020160208101906133379190614ccf565b6001600160a01b0316115b61335f57604051639f1c805360e01b815260040160405180910390fd5b61336c606087018761574c565b8281811061337c5761337c615701565b905060200201355f1080156133bc5750670de0b6b3a76400006133a2606088018861574c565b838181106133b2576133b2615701565b9050602002013511155b6133d957604051631353603160e01b815260040160405180910390fd5b61341a6133e9604088018861574c565b838181106133f9576133f9615701565b905060200201602081019061340e9190614ccf565b60995f6114c089612979565b613437576040516331bc342760e11b815260040160405180910390fd5b5f8061348961344960208a018a614ccf565b61345289612979565b61345f60408c018c61574c565b8781811061346f5761346f615701565b90506020020160208101906134849190614ccf565b6129dc565b805191935091506001600160401b03165f036134a6575050613896565b5f6134e16134b760608b018b61574c565b868181106134c7576134c7615701565b85516001600160401b0316926020909102013590506142f5565b83519091506134fc6001600160401b038084169083166142cd565b86868151811061350e5761350e615701565b60200260200101818152505081835f0181815161352b9190615b32565b6001600160401b0316905250835182908590613548908390615b32565b6001600160401b0316905250602084018051839190613568908390615b32565b6001600160401b031690525060208301515f600f9190910b1215613680575f6135cb61359760608d018d61574c565b888181106135a7576135a7615701565b9050602002013585602001516135bc90615b51565b6001600160801b0316906142f5565b9050806001600160401b0316846020018181516135e89190615b75565b600f0b9052507f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61361c60208d018d614ccf565b8b61362a60408f018f61574c565b8a81811061363a5761363a615701565b905060200201602081019061364f9190614ccf565b613660885f01518960200151613ef5565b8860400151604051613676959493929190615874565b60405180910390a1505b6136d261369060208c018c614ccf565b6136998b612979565b6136a660408e018e61574c565b898181106136b6576136b6615701565b90506020020160208101906136cb9190614ccf565b8787613f14565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61370060208c018c614ccf565b8a61370e60408e018e61574c565b8981811061371e5761371e615701565b90506020020160208101906137339190614ccf565b865160405161374794939291904390615874565b60405180910390a161379861375f60208c018c614ccf565b61376c60408d018d61574c565b8881811061377c5761377c615701565b90506020020160208101906137919190614ccf565b865161430b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635ae679a76137d460208d018d614ccf565b8b8b8e80604001906137e6919061574c565b8b8181106137f6576137f6615701565b905060200201602081019061380b9190614ccf565b89516040516001600160e01b031960e088901b16815261383395949392918991600401615ba2565b6020604051808303815f875af115801561384f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138739190615bf5565b87868151811061388557613885615701565b602002602001018181525050505050505b6001016132a2565b507f80969ad29428d6797ee7aad084f9e4a42a82fc506dcd2ca3b6fb431f85ccebe56138cd6020870187614ccf565b856138db604089018961574c565b856138e960808c018c615900565b6040516138fc9796959493929190615c0c565b60405180910390a1509250929050565b60605f61087d8361438d565b6001600160a01b038381165f90815260a360209081526040808320938616835292905290812054600f81810b600160801b909204900b035b5f8111801561396257508261ffff1682105b15610b5c576001600160a01b038086165f90815260a3602090815260408083209388168352929052908120613996906143e6565b90505f5f6139a58884896129dc565b91509150806040015163ffffffff164310156139c357505050610b5c565b6139d08884898585613f14565b6001600160a01b038089165f90815260a360209081526040808320938b168352929052206139fd90614438565b50613a0785615b07565b9450613a1284615ca2565b9350505050613950565b8015613a9e576001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014801590613a8157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b613a9e57604051632711b74d60e11b815260040160405180910390fd5b613aae8260995f6122cf87612979565b613acb5760405163585cfb2f60e01b815260040160405180910390fd5b7f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b838360405161279092919061598e565b60605f613b08836144b5565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b0382165f908152609b60209081526040918290208251608081018452905463ffffffff808216835260ff600160201b830416151593830193909352650100000000008104831693820193909352600160481b909204166060820181905215801590613bb55750806060015163ffffffff164310155b15613bcf57604081015163ffffffff168152600160208201525b63ffffffff82166040820152613c057f0000000000000000000000000000000000000000000000000000000000000000436157f3565b613c109060016157f3565b63ffffffff90811660608381019182526001600160a01b0386165f818152609b602090815260409182902087518154838a0151858b01519851928a1664ffffffffff1990921691909117600160201b91151591909102176cffffffffffffffff0000000000191665010000000000978916979097026cffffffff000000000000000000191696909617600160481b968816968702179055815192835294871694820194909452928301919091527f4e85751d6331506c6c62335f207eb31f12a61e570f34f5c17640308785c6d4db9101612790565b6001600160a01b0381165f908152600183016020526040812054151561087d565b6001600160a01b038281165f81815260a2602090815260408083209486168084529482528083205493835260a38252808320948352939052918220546001600160401b039091169190600f81810b600160801b909204900b03815b81811015613e31576001600160a01b038087165f90815260a3602090815260408083209389168352929052908120613d9990836144dc565b6001600160a01b038881165f90815260a0602090815260408083208584528252808320938b16835292815290829020825160608101845290546001600160401b0381168252600160401b8104600f0b92820192909252600160c01b90910463ffffffff16918101829052919250431015613e14575050613e31565b613e22868260200151613ef5565b95505050806001019050613d61565b506001600160a01b038086165f90815260a1602090815260408083209388168352929052208390613e619061414c565b613e6b9190615b32565b9150509250929050565b5f61087d838361454b565b5f61087d836001600160a01b03841661454b565b5f61087d8383670de0b6b3a764000061462e565b5f613eb98460995f6114c089612979565b8015613ec25750815b80156114e757505090516001600160401b031615159392505050565b5f61087d6001600160401b03808516908416615cb7565b5f61087d613f0c836001600160401b038616615b75565b600f0b614683565b6020808301516001600160a01b038088165f90815260a284526040808220928816825291909352909120546001600160401b03908116911614613fda57602082810180516001600160a01b038881165f81815260a286526040808220938a1680835293875290819020805467ffffffffffffffff19166001600160401b0395861617905593518451918252948101919091529216908201527facf9095feb3a370c9cf692421c69ef320d4db5c66e6a7d29c7694eb02364fc559060600160405180910390a15b6001600160a01b038086165f90815260a060209081526040808320888452825280832093871683529281529082902083518154928501519385015163ffffffff16600160c01b0263ffffffff60c01b196001600160801b038616600160401b026001600160c01b03199095166001600160401b03909316929092179390931716919091179055600f0b156140bc576001600160a01b0385165f908152609f602090815260408083208784529091529020614094908461416a565b506001600160a01b0385165f908152609d602052604090206140b6908561415f565b50610b5c565b80516001600160401b03165f03610b5c576001600160a01b0385165f908152609f6020908152604080832087845290915290206140f99084613e80565b506001600160a01b0385165f908152609f60209081526040808320878452909152902061412590612c28565b5f03610b5c576001600160a01b0385165f908152609d602052604090206118ab9085613e75565b5f61093282670de0b6b3a76400006146ee565b5f61087d8383614725565b5f61087d836001600160a01b038416614725565b5f805b82518110156141ed576141ad848483815181106141a0576141a0615701565b60200260200101516108bd565b80156141d657506141d68382815181106141c9576141c9615701565b60200260200101516127d0565b156141e5576001915050610932565b600101614181565b505f9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614252573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142769190615ce4565b6001600160a01b0316336001600160a01b0316146114ad5760405163794821ff60e01b815260040160405180910390fd5b5f825f0182815481106142bc576142bc615701565b905f5260205f200154905092915050565b5f61087d83670de0b6b3a764000084614771565b5f61087d8383670de0b6b3a7640000614771565b5f61087d8383670de0b6b3a76400006001614856565b6001600160a01b038084165f90815260a16020908152604080832093861683529290522061433a9043836148a5565b604080516001600160a01b038086168252841660208201526001600160401b038316918101919091527f1c6458079a41077d003c11faf9bf097e693bd67979e4e6500bac7b29db779b5c90606001612790565b6060815f018054806020026020016040519081016040528092919081815260200182805480156143da57602002820191905f5260205f20905b8154815260200190600101908083116143c6575b50505050509050919050565b5f6144008254600f81810b600160801b909204900b131590565b1561441e57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f9081526001909101602052604090205490565b5f6144528254600f81810b600160801b909204900b131590565b1561447057604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b5f60ff8216601f81111561093257604051632cd44ac360e21b815260040160405180910390fd5b5f5f6144fe6144ea846148be565b85546144f99190600f0b615cff565b614927565b8454909150600160801b9004600f90810b9082900b1261453157604051632d0483c560e21b815260040160405180910390fd5b600f0b5f9081526001939093016020525050604090205490565b5f8181526001830160205260408120548015614625575f61456d600183615b1f565b85549091505f9061458090600190615b1f565b90508181146145df575f865f01828154811061459e5761459e615701565b905f5260205f200154905080875f0184815481106145be576145be615701565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806145f0576145f0615d26565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610932565b5f915050610932565b82545f908161463f86868385614990565b905080156146795761466386614656600184615b1f565b5f91825260209091200190565b54600160201b90046001600160e01b03166108b3565b5091949350505050565b5f6001600160401b038211156146ea5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016128fe565b5090565b81545f90801561471d5761470784614656600184615b1f565b54600160201b90046001600160e01b031661092e565b509092915050565b5f81815260018301602052604081205461476a57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610932565b505f610932565b5f80805f19858709858702925082811083820303915050805f036147a85783828161479e5761479e615d3a565b049250505061087d565b8084116147ef5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016128fe565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f5f614863868686614771565b9050600183600281111561487957614879615d4e565b14801561489557505f848061489057614890615d3a565b868809115b156114e7576108b3600182615d62565b6148b983836001600160401b0384166149e3565b505050565b5f6001600160ff1b038211156146ea5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016128fe565b80600f81900b811461498b5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016128fe565b919050565b5f5b81831015610a81575f6149a58484614ae6565b5f8781526020902090915063ffffffff86169082015463ffffffff1611156149cf578092506149dd565b6149da816001615d62565b93505b50614992565b82548015614a99575f6149fb85614656600185615b1f565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b031660208401529192509085161015614a4d5760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff808616911603614a975782614a6e86614656600186615b1f565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216600160201b029190921617910155565b5f614af46002848418615d75565b61087d90848416615d62565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715614b3657614b36614b00565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b6457614b64614b00565b604052919050565b6001600160a01b03811681146131c9575f5ffd5b803563ffffffff8116811461498b575f5ffd5b5f60408284031215614ba3575f5ffd5b604080519081016001600160401b0381118282101715614bc557614bc5614b00565b6040529050808235614bd681614b6c565b8152614be460208401614b80565b60208201525092915050565b5f60408284031215614c00575f5ffd5b61087d8383614b93565b5f5f5f60808486031215614c1c575f5ffd5b8335614c2781614b6c565b9250614c368560208601614b93565b91506060840135614c4681614b6c565b809150509250925092565b81516001600160401b03168152602080830151600f0b9082015260408083015163ffffffff169082015260608101610932565b5f5f60608385031215614c95575f5ffd5b8235614ca081614b6c565b9150614caf8460208501614b93565b90509250929050565b5f60208284031215614cc8575f5ffd5b5035919050565b5f60208284031215614cdf575f5ffd5b813561087d81614b6c565b80516001600160a01b0316825260209081015163ffffffff16910152565b5f8151808452602084019350602083015f5b82811015614d4357614d2d868351614cea565b6040959095019460209190910190600101614d1a565b5093949350505050565b602081525f61087d6020830184614d08565b5f5f83601f840112614d6f575f5ffd5b5081356001600160401b03811115614d85575f5ffd5b6020830191508360208260051b8501011115611045575f5ffd5b5f5f5f60408486031215614db1575f5ffd5b8335614dbc81614b6c565b925060208401356001600160401b03811115614dd6575f5ffd5b614de286828701614d5f565b9497909650939450505050565b5f6001600160401b03821115614e0757614e07614b00565b5060051b60200190565b5f82601f830112614e20575f5ffd5b8135614e33614e2e82614def565b614b3c565b8082825260208201915060208360051b860101925085831115614e54575f5ffd5b602085015b83811015614e7a578035614e6c81614b6c565b835260209283019201614e59565b5095945050505050565b5f5f5f60808486031215614e96575f5ffd5b614ea08585614b93565b925060408401356001600160401b03811115614eba575f5ffd5b614ec686828701614e11565b92505060608401356001600160401b03811115614ee1575f5ffd5b614eed86828701614e11565b9150509250925092565b5f8151808452602084019350602083015f5b82811015614d43578151865260209586019590910190600101614f09565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015614f7e57603f19878603018452614f69858351614ef7565b94506020938401939190910190600101614f4d565b50929695505050505050565b5f5f5f5f60a08587031215614f9d575f5ffd5b614fa78686614b93565b935060408501356001600160401b03811115614fc1575f5ffd5b614fcd87828801614e11565b93505060608501356001600160401b03811115614fe8575f5ffd5b614ff487828801614e11565b92505061500360808601614b80565b905092959194509250565b5f5f5f5f5f60608688031215615022575f5ffd5b853561502d81614b6c565b945060208601356001600160401b03811115615047575f5ffd5b61505388828901614d5f565b90955093505060408601356001600160401b03811115615071575f5ffd5b61507d88828901614d5f565b969995985093965092949392505050565b5f5f6040838503121561509f575f5ffd5b82356150aa81614b6c565b915060208301356001600160401b038111156150c4575f5ffd5b830160a081860312156150d5575f5ffd5b809150509250929050565b828152604060208201525f610b716040830184614ef7565b5f5f60408385031215615109575f5ffd5b823561511481614b6c565b915060208301356150d581614b6c565b5f8151808452602084019350602083015f5b82811015614d435761516f86835180516001600160401b03168252602080820151600f0b9083015260409081015163ffffffff16910152565b6060959095019460209190910190600101615136565b604081525f6151976040830185614d08565b82810360208401526114e78185615124565b5f8151808452602084019350602083015f5b82811015614d435781516001600160a01b03168652602095860195909101906001016151bb565b602081525f61087d60208301846151a9565b5f5f60408385031215615205575f5ffd5b82356001600160401b0381111561521a575f5ffd5b61522685828601614e11565b92505060208301356150d581614b6c565b602080825282518282018190525f918401906040840190835b818110156152775783516001600160401b0316835260209384019390920191600101615250565b509095945050505050565b5f5f5f5f60608587031215615295575f5ffd5b84356152a081614b6c565b93506152ae60208601614b80565b925060408501356001600160401b038111156152c8575f5ffd5b6152d487828801614d5f565b95989497509550505050565b5f5f604083850312156152f1575f5ffd5b82356152fc81614b6c565b915060208301356001600160401b03811115615316575f5ffd5b613e6b85828601614e11565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f60408385031215615368575f5ffd5b823561537381614b6c565b9150614caf60208401614b80565b5f60208284031215615391575f5ffd5b813560ff8116811461087d575f5ffd5b5f606082840312156153b1575f5ffd5b50919050565b5f602082840312156153c7575f5ffd5b81356001600160401b038111156153dc575f5ffd5b61092e848285016153a1565b5f5f5f608084860312156153fa575f5ffd5b83356001600160401b0381111561540f575f5ffd5b61541b86828701614e11565b935050614c368560208601614b93565b602081525f61087d6020830184615124565b5f5f5f6060848603121561544f575f5ffd5b833561545a81614b6c565b925060208401356001600160401b03811115615474575f5ffd5b61548086828701614e11565b92505061548f60408501614b80565b90509250925092565b5f5f604083850312156154a9575f5ffd5b82356154b481614b6c565b915060208301356001600160401b038111156154ce575f5ffd5b8301601f810185136154de575f5ffd5b80356154ec614e2e82614def565b8082825260208201915060208360051b85010192508783111561550d575f5ffd5b602084015b838110156156325780356001600160401b0381111561552f575f5ffd5b85016080818b03601f19011215615544575f5ffd5b61554c614b14565b6155598b60208401614b93565b815260608201356001600160401b03811115615573575f5ffd5b6155828c602083860101614e11565b60208301525060808201356001600160401b038111156155a0575f5ffd5b6020818401019250508a601f8301126155b7575f5ffd5b81356155c5614e2e82614def565b8082825260208201915060208360051b86010192508d8311156155e6575f5ffd5b6020850194505b8285101561561c5784356001600160401b038116811461560b575f5ffd5b8252602094850194909101906155ed565b6040840152505084525060209283019201615512565b50809450505050509250929050565b5f5f5f60408486031215615653575f5ffd5b833561565e81614b6c565b925060208401356001600160401b03811115615678575f5ffd5b8401601f81018613615688575f5ffd5b80356001600160401b0381111561569d575f5ffd5b8660208284010111156156ae575f5ffd5b939660209190910195509293505050565b5f5f604083850312156156d0575f5ffd5b82356156db81614b6c565b915060208301356001600160401b038111156156f5575f5ffd5b613e6b858286016153a1565b634e487b7160e01b5f52603260045260245ffd5b5f8235603e19833603018112615729575f5ffd5b9190910192915050565b5f60208284031215615743575f5ffd5b61087d82614b80565b5f5f8335601e19843603018112615761575f5ffd5b8301803591506001600160401b0382111561577a575f5ffd5b6020019150600581901b3603821315611045575f5ffd5b5f602082840312156157a1575f5ffd5b813561ffff8116811461087d575f5ffd5b5f602082840312156157c2575f5ffd5b8151801515811461087d575f5ffd5b604081016109328284614cea565b634e487b7160e01b5f52601160045260245ffd5b63ffffffff8181168382160190811115610932576109326157df565b8183526020830192505f815f5b84811015614d435763ffffffff61583283614b80565b168652602095860195919091019060010161581c565b6001600160a01b038581168252841660208201526060604082018190525f906108b3908301848661580f565b6001600160a01b038616815260c081016158916020830187614cea565b6001600160a01b039490941660608201526001600160401b0392909216608083015263ffffffff1660a09091015292915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f610b716020830184866158c5565b5f5f8335601e19843603018112615915575f5ffd5b8301803591506001600160401b0382111561592e575f5ffd5b602001915036819003821315611045575f5ffd5b6001600160a01b038781168252861660208201526080604082018190525f9061596e908301868861580f565b82810360608401526159818185876158c5565b9998505050505050505050565b6060810161599c8285614cea565b6001600160a01b039290921660409190910152919050565b805160208083015191908110156153b1575f1960209190910360031b1b16919050565b604081525f6159e960408301856151a9565b82810360208401526114e781856151a9565b5f60208284031215615a0b575f5ffd5b81516001600160401b03811115615a20575f5ffd5b8201601f81018413615a30575f5ffd5b8051615a3e614e2e82614def565b8082825260208201915060208360051b850101925086831115615a5f575f5ffd5b602084015b83811015615afc5780516001600160401b03811115615a81575f5ffd5b8501603f81018913615a91575f5ffd5b6020810151615aa2614e2e82614def565b808282526020820191506020808460051b8601010192508b831115615ac5575f5ffd5b6040840193505b82841015615ae7578351825260209384019390910190615acc565b86525050602093840193919091019050615a64565b509695505050505050565b5f60018201615b1857615b186157df565b5060010190565b81810381811115610932576109326157df565b6001600160401b038281168282160390811115610932576109326157df565b5f81600f0b60016001607f1b03198103615b6d57615b6d6157df565b5f0392915050565b600f81810b9083900b0160016001607f1b03811360016001607f1b031982121715610932576109326157df565b6001600160a01b038716815260e08101615bbf6020830188614cea565b60608201959095526001600160a01b039390931660808401526001600160401b0391821660a08401521660c09091015292915050565b5f60208284031215615c05575f5ffd5b5051919050565b6001600160a01b03881681525f60c08201615c2a602084018a614cea565b60c060608401528690528660e083015f5b88811015615c6b578235615c4e81614b6c565b6001600160a01b0316825260209283019290910190600101615c3b565b508381036080850152615c7e8188614ef7565b91505082810360a0840152615c948185876158c5565b9a9950505050505050505050565b5f81615cb057615cb06157df565b505f190190565b600f82810b9082900b0360016001607f1b0319811260016001607f1b0382131715610932576109326157df565b5f60208284031215615cf4575f5ffd5b815161087d81614b6c565b8082018281125f831280158216821582161715615d1e57615d1e6157df565b505092915050565b634e487b7160e01b5f52603160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b80820180821115610932576109326157df565b5f82615d8f57634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212206c212802d6401b3283571e35264e36f39aa04efef7514506d7406a0cc55d6a0264736f6c634300081b0033", + Bin: "0x610160604052348015610010575f5ffd5b506040516161d63803806161d683398101604081905261002f916101ef565b8084888886868a6001600160a01b03811661005d576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805293841660a05291831660c05263ffffffff90811660e05216610100521661012052610095816100ae565b61014052506100a26100f4565b50505050505050610367565b5f5f829050601f815111156100e1578260405163305a27a960e01b81526004016100d8919061030c565b60405180910390fd5b80516100ec82610341565b179392505050565b5f54610100900460ff161561015b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100d8565b5f5460ff908116146101aa575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101c0575f5ffd5b50565b805163ffffffff811681146101d6575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f5f5f60e0888a031215610205575f5ffd5b8751610210816101ac565b6020890151909750610221816101ac565b6040890151909650610232816101ac565b6060890151909550610243816101ac565b9350610251608089016101c3565b925061025f60a089016101c3565b60c08901519092506001600160401b0381111561027a575f5ffd5b8801601f81018a1361028a575f5ffd5b80516001600160401b038111156102a3576102a36101db565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102d1576102d16101db565b6040528181528282016020018c10156102e8575f5ffd5b8160208401602083015e5f6020838301015280935050505092959891949750929550565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610361575f198160200360031b1b821691505b50919050565b60805160a05160c05160e051610100516101205161014051615dca61040c5f395f61136d01525f81816104cd0152612c9101525f81816106400152613be001525f81816103d6015281816117660152611e3901525f818161079b0152613a4c01525f81816107d5015281816113a10152818161140b0152818161211901528181612f0501526137a201525f818161066701528181612b5d01526141f80152615dca5ff3fe608060405234801561000f575f5ffd5b50600436106102ff575f3560e01c8063670d3ba211610195578063b2447af7116100e4578063db4df7611161009e578063f231bd0811610079578063f231bd08146107f7578063f605ce081461080a578063fabc1cbc1461081d578063fe4b84df14610830575f5ffd5b8063db4df76114610796578063dc2af692146107bd578063df5cf723146107d0575f5ffd5b8063b2447af714610708578063b66bd9891461071b578063b9fbaed11461072e578063ba1a84e51461075d578063c221d8ae14610770578063d3d96ff414610783575f5ffd5b8063886f11951161014f578063952899ee1161012a578063952899ee146106bc578063a9333ec8146106cf578063a9821821146106e2578063adc2e3d9146106f5575f5ffd5b8063886f1195146106625780638ce648541461068957806394d7d00c146106a9575f5ffd5b8063670d3ba2146105c45780636cfb4481146105d75780636e3492b5146106025780636e875dba1461061557806379ae50cd146106285780637bc1ef611461063b575f5ffd5b806340120dab1161025157806350feea201161020b57806356c483e6116101e657806356c483e61461057e578063595c6a67146105915780635ac86ab7146105995780635c975abb146105bc575f5ffd5b806350feea2014610543578063547afb871461055657806354fd4d5014610569575f5ffd5b806340120dab146104875780634177a87c146104a85780634657e26a146104c85780634a10ffe5146104ef5780634b5046ef1461050f5780634cfd293914610522575f5ffd5b8063261f84e0116102bc5780632bab2c4a116102975780632bab2c4a1461042d578063304c10cd1461044057806332a879e4146104535780633635205714610466575f5ffd5b8063261f84e0146103be5780632981eb77146103d15780632b453a9a1461040d575f5ffd5b80630f3df50e1461030357806310e1b9b8146103335780631352c3e614610353578063136439dd1461037657806315fe50281461038b578063260dc758146103ab575b5f5ffd5b610316610311366004614bf0565b610843565b6040516001600160a01b0390911681526020015b60405180910390f35b610346610341366004614c0a565b610884565b60405161032a9190614c51565b610366610361366004614c84565b6108bd565b604051901515815260200161032a565b610389610384366004614cb8565b610938565b005b61039e610399366004614ccf565b610972565b60405161032a9190614d4d565b6103666103b9366004614bf0565b610a89565b6103896103cc366004614d9f565b610aba565b6103f87f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161032a565b61042061041b366004614e84565b610b63565b60405161032a9190614f27565b61042061043b366004614f8a565b610b79565b61031661044e366004614ccf565b610c18565b61038961046136600461500e565b610c47565b61047961047436600461508e565b610d8e565b60405161032a9291906150e0565b61049a6104953660046150f8565b610ed1565b60405161032a929190615185565b6104bb6104b6366004614bf0565b61104c565b60405161032a91906151e2565b6103167f000000000000000000000000000000000000000000000000000000000000000081565b6105026104fd3660046151f4565b611070565b60405161032a9190615237565b61038961051d36600461500e565b611118565b610535610530366004614bf0565b6111ab565b60405190815260200161032a565b610389610551366004615282565b6111cd565b6105026105643660046152e0565b6112be565b610571611366565b60405161032a9190615322565b61038961058c366004615357565b611396565b61038961149b565b6103666105a7366004615381565b606654600160ff9092169190911b9081161490565b606654610535565b6103666105d2366004614c84565b6114af565b6105ea6105e53660046150f8565b6114db565b6040516001600160401b03909116815260200161032a565b6103896106103660046153b7565b6114f0565b6104bb610623366004614bf0565b6118b3565b61039e610636366004614ccf565b6118c4565b6103f87f000000000000000000000000000000000000000000000000000000000000000081565b6103167f000000000000000000000000000000000000000000000000000000000000000081565b61069c6106973660046153e8565b61199e565b60405161032a919061542b565b6105026106b736600461543d565b611a5a565b6103896106ca366004615498565b611b46565b6105ea6106dd3660046150f8565b611fe7565b6103896106f0366004615641565b612016565b6103896107033660046156bf565b6120c8565b610535610716366004614bf0565b612411565b610389610729366004615282565b612433565b61074161073c366004614ccf565b61258d565b60408051921515835263ffffffff90911660208301520161032a565b61053561076b366004614ccf565b612627565b6104bb61077e366004614c84565b612647565b6103896107913660046150f8565b612670565b6103167f000000000000000000000000000000000000000000000000000000000000000081565b6103666107cb366004614ccf565b61279d565b6103167f000000000000000000000000000000000000000000000000000000000000000081565b610366610805366004614bf0565b6127d0565b6105ea6108183660046150f8565b6127ef565b61038961082b366004614cb8565b6127fb565b61038961083e366004614cb8565b612868565b5f5f60a65f61085185612979565b815260208101919091526040015f20546001600160a01b031690508015610878578061087d565b620e16e45b9392505050565b604080516060810182525f80825260208201819052918101829052906108b3856108ad86612979565b856129dc565b9695505050505050565b6001600160a01b0382165f908152609e602052604081208190816108e085612979565b815260208082019290925260409081015f2081518083019092525460ff8116151580835261010090910463ffffffff169282019290925291508061092e5750806020015163ffffffff164311155b9150505b92915050565b610940612b48565b60665481811681146109655760405163c61dca5d60e01b815260040160405180910390fd5b61096e82612beb565b5050565b6001600160a01b0381165f908152609d602052604081206060919061099690612c28565b90505f816001600160401b038111156109b1576109b1614b00565b6040519080825280602002602001820160405280156109f557816020015b604080518082019091525f80825260208201528152602001906001900390816109cf5790505b5090505f5b82811015610a81576001600160a01b0385165f908152609d60205260409020610a5c90610a279083612c31565b604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b828281518110610a6e57610a6e615701565b60209081029190910101526001016109fa565b509392505050565b60208082015182516001600160a01b03165f9081526098909252604082206109329163ffffffff90811690612c3c16565b82610ac481612c53565b610ae15760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff16610b19576040516348f7dbb960e01b815260040160405180910390fd5b5f5b82811015610b5c57610b5485858584818110610b3957610b39615701565b9050602002810190610b4b9190615715565b620e16e4612cfd565b600101610b1b565b5050505050565b6060610b7184848443612eb1565b949350505050565b6060610b8785858585612eb1565b90505f5b8451811015610c0f57610bb7858281518110610ba957610ba9615701565b6020026020010151876108bd565b610c07575f5b8451811015610c05575f838381518110610bd957610bd9615701565b60200260200101518281518110610bf257610bf2615701565b6020908102919091010152600101610bbd565b505b600101610b8b565b50949350505050565b6001600160a01b038082165f908152609760205260408120549091168015610c40578061087d565b5090919050565b84610c5181612c53565b610c6e5760405163932d94f760e01b815260040160405180910390fd5b838214610c8e576040516343714afd60e01b815260040160405180910390fd5b6001600160a01b0386165f90815260a4602052604090205460ff16610cc6576040516348f7dbb960e01b815260040160405180910390fd5b5f5b84811015610d85575f848483818110610ce357610ce3615701565b9050602002016020810190610cf89190614ccf565b90506001600160a01b038116610d21576040516339b190bb60e11b815260040160405180910390fd5b620e16e3196001600160a01b03821601610d4e576040516364be1a3f60e11b815260040160405180910390fd5b610d7c88888885818110610d6457610d64615701565b9050602002810190610d769190615715565b83612cfd565b50600101610cc8565b50505050505050565b5f60606001610d9c8161319e565b84610da681612c53565b610dc35760405163932d94f760e01b815260040160405180910390fd5b5f6040518060400160405280886001600160a01b03168152602001876020016020810190610df19190615733565b63ffffffff1690529050610e08606087018761574c565b9050610e17604088018861574c565b905014610e37576040516343714afd60e01b815260040160405180910390fd5b60208082015182516001600160a01b03165f90815260989092526040909120610e699163ffffffff90811690612c3c16565b610e8657604051631fb1705560e21b815260040160405180910390fd5b610e9c610e966020880188614ccf565b826108bd565b610eb95760405163ebbff49760e01b815260040160405180910390fd5b610ec386826131cc565b945094505050509250929050565b6001600160a01b0382165f908152609d602052604081206060918291610ef690612c28565b90505f816001600160401b03811115610f1157610f11614b00565b604051908082528060200260200182016040528015610f5557816020015b604080518082019091525f8082526020820152815260200190600190039081610f2f5790505b5090505f826001600160401b03811115610f7157610f71614b00565b604051908082528060200260200182016040528015610fba57816020015b604080516060810182525f80825260208083018290529282015282525f19909201910181610f8f5790505b5090505f5b8381101561103d576001600160a01b0388165f908152609d60205260408120610fec90610a279084612c31565b90508084838151811061100157611001615701565b602002602001018190525061101789828a610884565b83838151811061102957611029615701565b602090810291909101015250600101610fbf565b509093509150505b9250929050565b60605f61087d60995f61105e86612979565b81526020019081526020015f2061390c565b60605f83516001600160401b0381111561108c5761108c614b00565b6040519080825280602002602001820160405280156110b5578160200160208202803683370190505b5090505f5b8451811015610a81576110e68582815181106110d8576110d8615701565b602002602001015185611fe7565b8282815181106110f8576110f8615701565b6001600160401b03909216602092830291909101909101526001016110ba565b5f6111228161319e565b838214611142576040516343714afd60e01b815260040160405180910390fd5b5f5b84811015610d85576111a38787878481811061116257611162615701565b90506020020160208101906111779190614ccf565b86868581811061118957611189615701565b905060200201602081019061119e9190615791565b613918565b600101611144565b5f60a55f6111b884612979565b81526020019081526020015f20549050919050565b836111d781612c53565b6111f45760405163932d94f760e01b815260040160405180910390fd5b6040805180820182526001600160a01b03871680825263ffffffff80881660208085018290525f938452609890529390912091926112339291612c3c16565b61125057604051631fb1705560e21b815260040160405180910390fd5b5f5b83811015610d85576112b68286868481811061127057611270615701565b90506020020160208101906112859190614ccf565b6112b160405180604001604052808c6001600160a01b031681526020018b63ffffffff168152506127d0565b613a1c565b600101611252565b60605f82516001600160401b038111156112da576112da614b00565b604051908082528060200260200182016040528015611303578160200160208202803683370190505b5090505f5b8351811015610a81576113348585838151811061132757611327615701565b6020026020010151611fe7565b82828151811061134657611346615701565b6001600160401b0390921660209283029190910190910152600101611308565b60606113917f0000000000000000000000000000000000000000000000000000000000000000613afc565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611491576113cf82612c53565b6113ec576040516348f5c3ed60e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015611450573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147491906157b2565b6114915760405163ccea9e6f60e01b815260040160405180910390fd5b61096e8282613b39565b6114a3612b48565b6114ad5f19612beb565b565b5f61087d83609a5f6114c086612979565b81526020019081526020015f20613ce590919063ffffffff16565b5f5f6114e78484613d06565b95945050505050565b60026114fb8161319e565b61151061150b6020840184614ccf565b612c53565b80611529575061152961150b6040840160208501614ccf565b611546576040516348f5c3ed60e01b815260040160405180910390fd5b5f5b611555604084018461574c565b9050811015611817575f604051806040016040528085602001602081019061157d9190614ccf565b6001600160a01b03168152602001611598604087018761574c565b858181106115a8576115a8615701565b90506020020160208101906115bd9190615733565b63ffffffff16815250905061160a816020015163ffffffff1660985f8760200160208101906115ec9190614ccf565b6001600160a01b0316815260208101919091526040015f2090612c3c565b61162757604051631fb1705560e21b815260040160405180910390fd5b609e5f6116376020870187614ccf565b6001600160a01b03166001600160a01b031681526020019081526020015f205f61166083612979565b815260208101919091526040015f205460ff16611690576040516325131d4f60e01b815260040160405180910390fd5b6116ca61169c82612979565b609c5f6116ac6020890189614ccf565b6001600160a01b0316815260208101919091526040015f2090613e75565b506117026116db6020860186614ccf565b609a5f6116e785612979565b81526020019081526020015f20613e8090919063ffffffff16565b506117106020850185614ccf565b6001600160a01b03167fad34c3070be1dffbcaa499d000ba2b8d9848aefcac3059df245dd95c4ece14fe8260405161174891906157d1565b60405180910390a2604080518082019091525f81526020810161178b7f0000000000000000000000000000000000000000000000000000000000000000436157f3565b63ffffffff169052609e5f6117a36020880188614ccf565b6001600160a01b03166001600160a01b031681526020019081526020015f205f6117cc84612979565b81526020808201929092526040015f2082518154939092015163ffffffff166101000264ffffffff00199215159290921664ffffffffff199093169290921717905550600101611548565b5061182b61044e6040840160208501614ccf565b6001600160a01b031663303ca9566118466020850185614ccf565b6118566040860160208701614ccf565b611863604087018761574c565b6040518563ffffffff1660e01b81526004016118829493929190615848565b5f604051808303815f87803b158015611899575f5ffd5b505af11580156118ab573d5f5f3e3d5ffd5b505050505050565b6060610932609a5f61105e85612979565b6001600160a01b0381165f908152609c60205260408120606091906118e890612c28565b90505f816001600160401b0381111561190357611903614b00565b60405190808252806020026020018201604052801561194757816020015b604080518082019091525f80825260208201528152602001906001900390816119215790505b5090505f5b82811015610a81576001600160a01b0385165f908152609c6020526040902061197990610a279083612c31565b82828151811061198b5761198b615701565b602090810291909101015260010161194c565b60605f84516001600160401b038111156119ba576119ba614b00565b604051908082528060200260200182016040528015611a0357816020015b604080516060810182525f80825260208083018290529282015282525f199092019101816119d85790505b5090505f5b8551811015610c0f57611a35868281518110611a2657611a26615701565b60200260200101518686610884565b828281518110611a4757611a47615701565b6020908102919091010152600101611a08565b60605f83516001600160401b03811115611a7657611a76614b00565b604051908082528060200260200182016040528015611a9f578160200160208202803683370190505b5090505f5b8451811015610c0f576001600160a01b0386165f90815260a1602052604081208651611b1492879291899086908110611adf57611adf615701565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20613e9490919063ffffffff16565b828281518110611b2657611b26615701565b6001600160401b0390921660209283029190910190910152600101611aa4565b5f611b508161319e565b611b5983612c53565b611b76576040516348f5c3ed60e01b815260040160405180910390fd5b5f5f5f611b828661258d565b9150915081611ba45760405163fa55fc8160e01b815260040160405180910390fd5b91505f90505b8351811015610b5c57838181518110611bc557611bc5615701565b60200260200101516040015151848281518110611be457611be4615701565b6020026020010151602001515114611c0f576040516343714afd60e01b815260040160405180910390fd5b5f848281518110611c2257611c22615701565b602090810291909101810151518082015181516001600160a01b03165f90815260989093526040909220909250611c629163ffffffff90811690612c3c16565b611c7f57604051631fb1705560e21b815260040160405180910390fd5b5f611c8a87836108bd565b90505f5b868481518110611ca057611ca0615701565b60200260200101516020015151811015611fdc575f878581518110611cc757611cc7615701565b6020026020010151602001518281518110611ce457611ce4615701565b60200260200101519050611cfb898261ffff613918565b5f5f611d0a8b6108ad88612979565b91509150806040015163ffffffff165f14611d3857604051630d8fcbe360e41b815260040160405180910390fd5b5f611d4587858489613ea8565b9050611d8a825f01518c8a81518110611d6057611d60615701565b6020026020010151604001518781518110611d7d57611d7d615701565b6020026020010151613ede565b600f0b602083018190525f03611db357604051634606179360e11b815260040160405180910390fd5b5f8260200151600f0b1215611ef7578015611e7957611e34611dd488612979565b6001600160a01b03808f165f90815260a360209081526040808320938a16835292905220908154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b611e5e7f0000000000000000000000000000000000000000000000000000000000000000436157f3565b611e699060016157f3565b63ffffffff166040830152611f64565b611e8b83602001518360200151613ef5565b6001600160401b031660208401528a518b9089908110611ead57611ead615701565b6020026020010151604001518581518110611eca57611eca615701565b6020908102919091018101516001600160401b031683525f9083015263ffffffff43166040830152611f64565b5f8260200151600f0b1315611f6457611f1883602001518360200151613ef5565b6001600160401b039081166020850181905284519091161015611f4e57604051636c9be0bf60e01b815260040160405180910390fd5b611f5889436157f3565b63ffffffff1660408301525b611f798c611f7189612979565b868686613f14565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd8c8886611fae865f01518760200151613ef5565b8660400151604051611fc4959493929190615874565b60405180910390a1505060019092019150611c8e9050565b505050600101611baa565b6001600160a01b038083165f90815260a160209081526040808320938516835292905290812061087d9061414c565b8261202081612c53565b61203d5760405163932d94f760e01b815260040160405180910390fd5b6001600160a01b0384165f90815260a4602052604090205460ff1661207f576001600160a01b0384165f90815260a460205260409020805460ff191660011790555b836001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c94371384846040516120ba9291906158ed565b60405180910390a250505050565b60026120d38161319e565b826120dd81612c53565b6120fa5760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0385811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa15801561215e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061218291906157b2565b61219f5760405163ccea9e6f60e01b815260040160405180910390fd5b5f5b6121ae602085018561574c565b905081101561237657604080518082019091525f90806121d16020880188614ccf565b6001600160a01b031681526020018680602001906121ef919061574c565b858181106121ff576121ff615701565b90506020020160208101906122149190615733565b63ffffffff90811690915260208083015183516001600160a01b03165f90815260989092526040909120929350612250929190811690612c3c16565b61226d57604051631fb1705560e21b815260040160405180910390fd5b61227786826108bd565b1561229557604051636c6c6e2760e11b815260040160405180910390fd5b6122be6122a182612979565b6001600160a01b0388165f908152609c602052604090209061415f565b506122ea86609a5f6122cf85612979565b81526020019081526020015f2061416a90919063ffffffff16565b50856001600160a01b03167f43232edf9071753d2321e5fa7e018363ee248e5f2142e6c08edd3265bfb4895e8260405161232491906157d1565b60405180910390a26001600160a01b0386165f908152609e6020526040812060019161234f84612979565b815260208101919091526040015f20805460ff1916911515919091179055506001016121a1565b5061238761044e6020850185614ccf565b6001600160a01b031663c63fd502856123a36020870187614ccf565b6123b0602088018861574c565b6123bd60408a018a615900565b6040518763ffffffff1660e01b81526004016123de96959493929190615942565b5f604051808303815f87803b1580156123f5575f5ffd5b505af1158015612407573d5f5f3e3d5ffd5b5050505050505050565b5f610932609a5f61242185612979565b81526020019081526020015f20612c28565b8361243d81612c53565b61245a5760405163932d94f760e01b815260040160405180910390fd5b6040805180820182526001600160a01b03871680825263ffffffff80881660208085018290525f938452609890529390912091926124999291612c3c16565b6124b657604051631fb1705560e21b815260040160405180910390fd5b5f6124c082612979565b90505f5b84811015612407576125098686838181106124e1576124e1615701565b90506020020160208101906124f69190614ccf565b5f84815260996020526040902090613e80565b612526576040516331bc342760e11b815260040160405180910390fd5b7f7b4b073d80dcac55a11177d8459ad9f664ceeb91f71f27167bb14f8152a7eeee8387878481811061255a5761255a615701565b905060200201602081019061256f9190614ccf565b60405161257d92919061598e565b60405180910390a16001016124c4565b6001600160a01b0381165f908152609b602090815260408083208151608081018352905463ffffffff80821680845260ff600160201b8404161515958401869052650100000000008304821694840194909452600160481b90910416606082018190528493919291901580159061260e5750826060015163ffffffff164310155b1561261d575050604081015160015b9590945092505050565b6001600160a01b0381165f90815260986020526040812061093290612c28565b6001600160a01b0382165f908152609f602052604081206060919061092e908261105e86612979565b8161267a81612c53565b6126975760405163932d94f760e01b815260040160405180910390fd5b60405163b526578760e01b81526001600160a01b03848116600483015283169063b526578790602401602060405180830381865afa1580156126db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126ff91906157b2565b61271c57604051631d0b13c160e31b815260040160405180910390fd5b6001600160a01b038381165f90815260976020526040902080546001600160a01b0319169184169190911790557f2ae945c40c44dc0ec263f95609c3fdc6952e0aefa22d6374e44f2c997acedf858361277481610c18565b604080516001600160a01b039384168152929091166020830152015b60405180910390a1505050565b5f5f6127a8836118c4565b90505f6127b484610972565b90506127c0848361417e565b80610b715750610b71848261417e565b5f620e16e46127de83610843565b6001600160a01b0316141592915050565b5f5f610c0f8484613d06565b6128036141f6565b6066548019821981161461282a5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f54610100900460ff161580801561288657505f54600160ff909116105b8061289f5750303b15801561289f57505f5460ff166001145b6129075760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015612928575f805461ff0019166101001790555b61293182612beb565b801561096e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b5f815f0151826020015163ffffffff166040516020016129c492919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b604051602081830303815290604052610932906159b4565b6040805180820182525f80825260208083018290528351606081018552828152808201839052808501839052845180860186526001600160a01b03898116855260a1845286852090881685529092529382209293928190612a3c9061414c565b6001600160401b0390811682526001600160a01b038981165f81815260a260209081526040808320948c168084529482528083205486169682019690965291815260a082528481208b8252825284812092815291815290839020835160608101855290549283168152600160401b8304600f0b91810191909152600160c01b90910463ffffffff16918101829052919250431015612ade579092509050612b40565b612aef815f01518260200151613ef5565b6001600160401b0316815260208101515f600f9190910b1215612b2d57612b1e82602001518260200151613ef5565b6001600160401b031660208301525b5f60408201819052602082015290925090505b935093915050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015612baa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bce91906157b2565b6114ad57604051631d77d47760e21b815260040160405180910390fd5b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f610932825490565b5f61087d83836142a7565b5f818152600183016020526040812054151561087d565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af1158015612cd9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093291906157b2565b5f6040518060400160405280856001600160a01b03168152602001845f016020810190612d2a9190615733565b63ffffffff168152509050612d74816020015163ffffffff1660985f876001600160a01b03166001600160a01b031681526020019081526020015f2061415f90919063ffffffff16565b612d9157604051631fb1705560e21b815260040160405180910390fd5b7f31629285ead2335ae0933f86ed2ae63321f7af77b4e6eaabc42c057880977e6c81604051612dc091906157d1565b60405180910390a16001600160a01b038216620e16e414801590612e55578260a65f612deb85612979565b81526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f90a6fa2a9b79b910872ebca540cf3bd8be827f586e6420c30d8836e30012907e8284604051612e4c92919061598e565b60405180910390a15b5f5b612e64602086018661574c565b90508110156118ab57612ea983612e7e602088018861574c565b84818110612e8e57612e8e615701565b9050602002016020810190612ea39190614ccf565b84613a1c565b600101612e57565b606083516001600160401b03811115612ecc57612ecc614b00565b604051908082528060200260200182016040528015612eff57816020015b6060815260200190600190039081612eea5790505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f0e0e67686866040518363ffffffff1660e01b8152600401612f519291906159d7565b5f60405180830381865afa158015612f6b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f9291908101906159fb565b90505f5b8551811015613194575f868281518110612fb257612fb2615701565b6020026020010151905085516001600160401b03811115612fd557612fd5614b00565b604051908082528060200260200182016040528015612ffe578160200160208202803683370190505b5084838151811061301157613011615701565b60209081029190910101525f5b865181101561318a575f87828151811061303a5761303a615701565b6020908102919091018101516001600160a01b038086165f90815260a18452604080822092841682529190935282209092506130759061414c565b9050806001600160401b03165f0361308e575050613182565b5f61309a858d85610884565b90508863ffffffff16816040015163ffffffff16111580156130c257505f8160200151600f0b125b156130e4576130d8815f01518260200151613ef5565b6001600160401b031681525b80515f906130ff906001600160401b039081169085166142cd565b90506131468189898151811061311757613117615701565b6020026020010151878151811061313057613130615701565b60200260200101516142e190919063ffffffff16565b89888151811061315857613158615701565b6020026020010151868151811061317157613171615701565b602002602001018181525050505050505b60010161301e565b5050600101612f96565b5050949350505050565b606654600160ff83161b908116036131c95760405163840a48d560e01b815260040160405180910390fd5b50565b5f6060816131dd604086018661574c565b90506001600160401b038111156131f6576131f6614b00565b60405190808252806020026020018201604052801561321f578160200160208202803683370190505b50905061322f604086018661574c565b90506001600160401b0381111561324857613248614b00565b604051908082528060200260200182016040528015613271578160200160208202803683370190505b50915060a55f61328086612979565b81526020019081526020015f205f815461329990615b07565b918290555092505f5b6132af604087018761574c565b905081101561389e5780158061334257506132cd604087018761574c565b6132d8600184615b1f565b8181106132e7576132e7615701565b90506020020160208101906132fc9190614ccf565b6001600160a01b0316613312604088018861574c565b8381811061332257613322615701565b90506020020160208101906133379190614ccf565b6001600160a01b0316115b61335f57604051639f1c805360e01b815260040160405180910390fd5b61336c606087018761574c565b8281811061337c5761337c615701565b905060200201355f1080156133bc5750670de0b6b3a76400006133a2606088018861574c565b838181106133b2576133b2615701565b9050602002013511155b6133d957604051631353603160e01b815260040160405180910390fd5b61341a6133e9604088018861574c565b838181106133f9576133f9615701565b905060200201602081019061340e9190614ccf565b60995f6114c089612979565b613437576040516331bc342760e11b815260040160405180910390fd5b5f8061348961344960208a018a614ccf565b61345289612979565b61345f60408c018c61574c565b8781811061346f5761346f615701565b90506020020160208101906134849190614ccf565b6129dc565b805191935091506001600160401b03165f036134a6575050613896565b5f6134e16134b760608b018b61574c565b868181106134c7576134c7615701565b85516001600160401b0316926020909102013590506142f5565b83519091506134fc6001600160401b038084169083166142cd565b86868151811061350e5761350e615701565b60200260200101818152505081835f0181815161352b9190615b32565b6001600160401b0316905250835182908590613548908390615b32565b6001600160401b0316905250602084018051839190613568908390615b32565b6001600160401b031690525060208301515f600f9190910b1215613680575f6135cb61359760608d018d61574c565b888181106135a7576135a7615701565b9050602002013585602001516135bc90615b51565b6001600160801b0316906142f5565b9050806001600160401b0316846020018181516135e89190615b75565b600f0b9052507f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61361c60208d018d614ccf565b8b61362a60408f018f61574c565b8a81811061363a5761363a615701565b905060200201602081019061364f9190614ccf565b613660885f01518960200151613ef5565b8860400151604051613676959493929190615874565b60405180910390a1505b6136d261369060208c018c614ccf565b6136998b612979565b6136a660408e018e61574c565b898181106136b6576136b6615701565b90506020020160208101906136cb9190614ccf565b8787613f14565b7f1487af5418c47ee5ea45ef4a93398668120890774a9e13487e61e9dc3baf76dd61370060208c018c614ccf565b8a61370e60408e018e61574c565b8981811061371e5761371e615701565b90506020020160208101906137339190614ccf565b865160405161374794939291904390615874565b60405180910390a161379861375f60208c018c614ccf565b61376c60408d018d61574c565b8881811061377c5761377c615701565b90506020020160208101906137919190614ccf565b865161430b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016635ae679a76137d460208d018d614ccf565b8b8b8e80604001906137e6919061574c565b8b8181106137f6576137f6615701565b905060200201602081019061380b9190614ccf565b89516040516001600160e01b031960e088901b16815261383395949392918991600401615ba2565b6020604051808303815f875af115801561384f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138739190615bf5565b87868151811061388557613885615701565b602002602001018181525050505050505b6001016132a2565b507f80969ad29428d6797ee7aad084f9e4a42a82fc506dcd2ca3b6fb431f85ccebe56138cd6020870187614ccf565b856138db604089018961574c565b856138e960808c018c615900565b6040516138fc9796959493929190615c0c565b60405180910390a1509250929050565b60605f61087d8361438d565b6001600160a01b038381165f90815260a360209081526040808320938616835292905290812054600f81810b600160801b909204900b035b5f8111801561396257508261ffff1682105b15610b5c576001600160a01b038086165f90815260a3602090815260408083209388168352929052908120613996906143e6565b90505f5f6139a58884896129dc565b91509150806040015163ffffffff164310156139c357505050610b5c565b6139d08884898585613f14565b6001600160a01b038089165f90815260a360209081526040808320938b168352929052206139fd90614438565b50613a0785615b07565b9450613a1284615ca2565b9350505050613950565b8015613a9e576001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014801590613a8157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b613a9e57604051632711b74d60e11b815260040160405180910390fd5b613aae8260995f6122cf87612979565b613acb5760405163585cfb2f60e01b815260040160405180910390fd5b7f7ab260fe0af193db5f4986770d831bda4ea46099dc817e8b6716dcae8af8e88b838360405161279092919061598e565b60605f613b08836144b5565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b0382165f908152609b60209081526040918290208251608081018452905463ffffffff808216835260ff600160201b830416151593830193909352650100000000008104831693820193909352600160481b909204166060820181905215801590613bb55750806060015163ffffffff164310155b15613bcf57604081015163ffffffff168152600160208201525b63ffffffff82166040820152613c057f0000000000000000000000000000000000000000000000000000000000000000436157f3565b613c109060016157f3565b63ffffffff90811660608381019182526001600160a01b0386165f818152609b602090815260409182902087518154838a0151858b01519851928a1664ffffffffff1990921691909117600160201b91151591909102176cffffffffffffffff0000000000191665010000000000978916979097026cffffffff000000000000000000191696909617600160481b968816968702179055815192835294871694820194909452928301919091527f4e85751d6331506c6c62335f207eb31f12a61e570f34f5c17640308785c6d4db9101612790565b6001600160a01b0381165f908152600183016020526040812054151561087d565b6001600160a01b038281165f81815260a2602090815260408083209486168084529482528083205493835260a38252808320948352939052918220546001600160401b039091169190600f81810b600160801b909204900b03815b81811015613e31576001600160a01b038087165f90815260a3602090815260408083209389168352929052908120613d9990836144dc565b6001600160a01b038881165f90815260a0602090815260408083208584528252808320938b16835292815290829020825160608101845290546001600160401b0381168252600160401b8104600f0b92820192909252600160c01b90910463ffffffff16918101829052919250431015613e14575050613e31565b613e22868260200151613ef5565b95505050806001019050613d61565b506001600160a01b038086165f90815260a1602090815260408083209388168352929052208390613e619061414c565b613e6b9190615b32565b9150509250929050565b5f61087d838361454b565b5f61087d836001600160a01b03841661454b565b5f61087d8383670de0b6b3a764000061462e565b5f613eb98460995f6114c089612979565b8015613ec25750815b80156114e757505090516001600160401b031615159392505050565b5f61087d6001600160401b03808516908416615cb7565b5f61087d613f0c836001600160401b038616615b75565b600f0b614683565b6020808301516001600160a01b038088165f90815260a284526040808220928816825291909352909120546001600160401b03908116911614613fda57602082810180516001600160a01b038881165f81815260a286526040808220938a1680835293875290819020805467ffffffffffffffff19166001600160401b0395861617905593518451918252948101919091529216908201527facf9095feb3a370c9cf692421c69ef320d4db5c66e6a7d29c7694eb02364fc559060600160405180910390a15b6001600160a01b038086165f90815260a060209081526040808320888452825280832093871683529281529082902083518154928501519385015163ffffffff16600160c01b0263ffffffff60c01b196001600160801b038616600160401b026001600160c01b03199095166001600160401b03909316929092179390931716919091179055600f0b156140bc576001600160a01b0385165f908152609f602090815260408083208784529091529020614094908461416a565b506001600160a01b0385165f908152609d602052604090206140b6908561415f565b50610b5c565b80516001600160401b03165f03610b5c576001600160a01b0385165f908152609f6020908152604080832087845290915290206140f99084613e80565b506001600160a01b0385165f908152609f60209081526040808320878452909152902061412590612c28565b5f03610b5c576001600160a01b0385165f908152609d602052604090206118ab9085613e75565b5f61093282670de0b6b3a76400006146ee565b5f61087d8383614725565b5f61087d836001600160a01b038416614725565b5f805b82518110156141ed576141ad848483815181106141a0576141a0615701565b60200260200101516108bd565b80156141d657506141d68382815181106141c9576141c9615701565b60200260200101516127d0565b156141e5576001915050610932565b600101614181565b505f9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614252573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142769190615ce4565b6001600160a01b0316336001600160a01b0316146114ad5760405163794821ff60e01b815260040160405180910390fd5b5f825f0182815481106142bc576142bc615701565b905f5260205f200154905092915050565b5f61087d83670de0b6b3a764000084614771565b5f61087d8383670de0b6b3a7640000614771565b5f61087d8383670de0b6b3a76400006001614856565b6001600160a01b038084165f90815260a16020908152604080832093861683529290522061433a9043836148a5565b604080516001600160a01b038086168252841660208201526001600160401b038316918101919091527f1c6458079a41077d003c11faf9bf097e693bd67979e4e6500bac7b29db779b5c90606001612790565b6060815f018054806020026020016040519081016040528092919081815260200182805480156143da57602002820191905f5260205f20905b8154815260200190600101908083116143c6575b50505050509050919050565b5f6144008254600f81810b600160801b909204900b131590565b1561441e57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f9081526001909101602052604090205490565b5f6144528254600f81810b600160801b909204900b131590565b1561447057604051631ed9509560e11b815260040160405180910390fd5b508054600f0b5f818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b5f60ff8216601f81111561093257604051632cd44ac360e21b815260040160405180910390fd5b5f5f6144fe6144ea846148be565b85546144f99190600f0b615cff565b614927565b8454909150600160801b9004600f90810b9082900b1261453157604051632d0483c560e21b815260040160405180910390fd5b600f0b5f9081526001939093016020525050604090205490565b5f8181526001830160205260408120548015614625575f61456d600183615b1f565b85549091505f9061458090600190615b1f565b90508181146145df575f865f01828154811061459e5761459e615701565b905f5260205f200154905080875f0184815481106145be576145be615701565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806145f0576145f0615d26565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610932565b5f915050610932565b82545f908161463f86868385614990565b905080156146795761466386614656600184615b1f565b5f91825260209091200190565b54600160201b90046001600160e01b03166108b3565b5091949350505050565b5f6001600160401b038211156146ea5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016128fe565b5090565b81545f90801561471d5761470784614656600184615b1f565b54600160201b90046001600160e01b031661092e565b509092915050565b5f81815260018301602052604081205461476a57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610932565b505f610932565b5f80805f19858709858702925082811083820303915050805f036147a85783828161479e5761479e615d3a565b049250505061087d565b8084116147ef5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016128fe565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f5f614863868686614771565b9050600183600281111561487957614879615d4e565b14801561489557505f848061489057614890615d3a565b868809115b156114e7576108b3600182615d62565b6148b983836001600160401b0384166149e3565b505050565b5f6001600160ff1b038211156146ea5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016128fe565b80600f81900b811461498b5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016128fe565b919050565b5f5b81831015610a81575f6149a58484614ae6565b5f8781526020902090915063ffffffff86169082015463ffffffff1611156149cf578092506149dd565b6149da816001615d62565b93505b50614992565b82548015614a99575f6149fb85614656600185615b1f565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b031660208401529192509085161015614a4d5760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff808616911603614a975782614a6e86614656600186615b1f565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216600160201b029190921617910155565b5f614af46002848418615d75565b61087d90848416615d62565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715614b3657614b36614b00565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b6457614b64614b00565b604052919050565b6001600160a01b03811681146131c9575f5ffd5b803563ffffffff8116811461498b575f5ffd5b5f60408284031215614ba3575f5ffd5b604080519081016001600160401b0381118282101715614bc557614bc5614b00565b6040529050808235614bd681614b6c565b8152614be460208401614b80565b60208201525092915050565b5f60408284031215614c00575f5ffd5b61087d8383614b93565b5f5f5f60808486031215614c1c575f5ffd5b8335614c2781614b6c565b9250614c368560208601614b93565b91506060840135614c4681614b6c565b809150509250925092565b81516001600160401b03168152602080830151600f0b9082015260408083015163ffffffff169082015260608101610932565b5f5f60608385031215614c95575f5ffd5b8235614ca081614b6c565b9150614caf8460208501614b93565b90509250929050565b5f60208284031215614cc8575f5ffd5b5035919050565b5f60208284031215614cdf575f5ffd5b813561087d81614b6c565b80516001600160a01b0316825260209081015163ffffffff16910152565b5f8151808452602084019350602083015f5b82811015614d4357614d2d868351614cea565b6040959095019460209190910190600101614d1a565b5093949350505050565b602081525f61087d6020830184614d08565b5f5f83601f840112614d6f575f5ffd5b5081356001600160401b03811115614d85575f5ffd5b6020830191508360208260051b8501011115611045575f5ffd5b5f5f5f60408486031215614db1575f5ffd5b8335614dbc81614b6c565b925060208401356001600160401b03811115614dd6575f5ffd5b614de286828701614d5f565b9497909650939450505050565b5f6001600160401b03821115614e0757614e07614b00565b5060051b60200190565b5f82601f830112614e20575f5ffd5b8135614e33614e2e82614def565b614b3c565b8082825260208201915060208360051b860101925085831115614e54575f5ffd5b602085015b83811015614e7a578035614e6c81614b6c565b835260209283019201614e59565b5095945050505050565b5f5f5f60808486031215614e96575f5ffd5b614ea08585614b93565b925060408401356001600160401b03811115614eba575f5ffd5b614ec686828701614e11565b92505060608401356001600160401b03811115614ee1575f5ffd5b614eed86828701614e11565b9150509250925092565b5f8151808452602084019350602083015f5b82811015614d43578151865260209586019590910190600101614f09565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015614f7e57603f19878603018452614f69858351614ef7565b94506020938401939190910190600101614f4d565b50929695505050505050565b5f5f5f5f60a08587031215614f9d575f5ffd5b614fa78686614b93565b935060408501356001600160401b03811115614fc1575f5ffd5b614fcd87828801614e11565b93505060608501356001600160401b03811115614fe8575f5ffd5b614ff487828801614e11565b92505061500360808601614b80565b905092959194509250565b5f5f5f5f5f60608688031215615022575f5ffd5b853561502d81614b6c565b945060208601356001600160401b03811115615047575f5ffd5b61505388828901614d5f565b90955093505060408601356001600160401b03811115615071575f5ffd5b61507d88828901614d5f565b969995985093965092949392505050565b5f5f6040838503121561509f575f5ffd5b82356150aa81614b6c565b915060208301356001600160401b038111156150c4575f5ffd5b830160a081860312156150d5575f5ffd5b809150509250929050565b828152604060208201525f610b716040830184614ef7565b5f5f60408385031215615109575f5ffd5b823561511481614b6c565b915060208301356150d581614b6c565b5f8151808452602084019350602083015f5b82811015614d435761516f86835180516001600160401b03168252602080820151600f0b9083015260409081015163ffffffff16910152565b6060959095019460209190910190600101615136565b604081525f6151976040830185614d08565b82810360208401526114e78185615124565b5f8151808452602084019350602083015f5b82811015614d435781516001600160a01b03168652602095860195909101906001016151bb565b602081525f61087d60208301846151a9565b5f5f60408385031215615205575f5ffd5b82356001600160401b0381111561521a575f5ffd5b61522685828601614e11565b92505060208301356150d581614b6c565b602080825282518282018190525f918401906040840190835b818110156152775783516001600160401b0316835260209384019390920191600101615250565b509095945050505050565b5f5f5f5f60608587031215615295575f5ffd5b84356152a081614b6c565b93506152ae60208601614b80565b925060408501356001600160401b038111156152c8575f5ffd5b6152d487828801614d5f565b95989497509550505050565b5f5f604083850312156152f1575f5ffd5b82356152fc81614b6c565b915060208301356001600160401b03811115615316575f5ffd5b613e6b85828601614e11565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f60408385031215615368575f5ffd5b823561537381614b6c565b9150614caf60208401614b80565b5f60208284031215615391575f5ffd5b813560ff8116811461087d575f5ffd5b5f606082840312156153b1575f5ffd5b50919050565b5f602082840312156153c7575f5ffd5b81356001600160401b038111156153dc575f5ffd5b61092e848285016153a1565b5f5f5f608084860312156153fa575f5ffd5b83356001600160401b0381111561540f575f5ffd5b61541b86828701614e11565b935050614c368560208601614b93565b602081525f61087d6020830184615124565b5f5f5f6060848603121561544f575f5ffd5b833561545a81614b6c565b925060208401356001600160401b03811115615474575f5ffd5b61548086828701614e11565b92505061548f60408501614b80565b90509250925092565b5f5f604083850312156154a9575f5ffd5b82356154b481614b6c565b915060208301356001600160401b038111156154ce575f5ffd5b8301601f810185136154de575f5ffd5b80356154ec614e2e82614def565b8082825260208201915060208360051b85010192508783111561550d575f5ffd5b602084015b838110156156325780356001600160401b0381111561552f575f5ffd5b85016080818b03601f19011215615544575f5ffd5b61554c614b14565b6155598b60208401614b93565b815260608201356001600160401b03811115615573575f5ffd5b6155828c602083860101614e11565b60208301525060808201356001600160401b038111156155a0575f5ffd5b6020818401019250508a601f8301126155b7575f5ffd5b81356155c5614e2e82614def565b8082825260208201915060208360051b86010192508d8311156155e6575f5ffd5b6020850194505b8285101561561c5784356001600160401b038116811461560b575f5ffd5b8252602094850194909101906155ed565b6040840152505084525060209283019201615512565b50809450505050509250929050565b5f5f5f60408486031215615653575f5ffd5b833561565e81614b6c565b925060208401356001600160401b03811115615678575f5ffd5b8401601f81018613615688575f5ffd5b80356001600160401b0381111561569d575f5ffd5b8660208284010111156156ae575f5ffd5b939660209190910195509293505050565b5f5f604083850312156156d0575f5ffd5b82356156db81614b6c565b915060208301356001600160401b038111156156f5575f5ffd5b613e6b858286016153a1565b634e487b7160e01b5f52603260045260245ffd5b5f8235603e19833603018112615729575f5ffd5b9190910192915050565b5f60208284031215615743575f5ffd5b61087d82614b80565b5f5f8335601e19843603018112615761575f5ffd5b8301803591506001600160401b0382111561577a575f5ffd5b6020019150600581901b3603821315611045575f5ffd5b5f602082840312156157a1575f5ffd5b813561ffff8116811461087d575f5ffd5b5f602082840312156157c2575f5ffd5b8151801515811461087d575f5ffd5b604081016109328284614cea565b634e487b7160e01b5f52601160045260245ffd5b63ffffffff8181168382160190811115610932576109326157df565b8183526020830192505f815f5b84811015614d435763ffffffff61583283614b80565b168652602095860195919091019060010161581c565b6001600160a01b038581168252841660208201526060604082018190525f906108b3908301848661580f565b6001600160a01b038616815260c081016158916020830187614cea565b6001600160a01b039490941660608201526001600160401b0392909216608083015263ffffffff1660a09091015292915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f610b716020830184866158c5565b5f5f8335601e19843603018112615915575f5ffd5b8301803591506001600160401b0382111561592e575f5ffd5b602001915036819003821315611045575f5ffd5b6001600160a01b038781168252861660208201526080604082018190525f9061596e908301868861580f565b82810360608401526159818185876158c5565b9998505050505050505050565b6060810161599c8285614cea565b6001600160a01b039290921660409190910152919050565b805160208083015191908110156153b1575f1960209190910360031b1b16919050565b604081525f6159e960408301856151a9565b82810360208401526114e781856151a9565b5f60208284031215615a0b575f5ffd5b81516001600160401b03811115615a20575f5ffd5b8201601f81018413615a30575f5ffd5b8051615a3e614e2e82614def565b8082825260208201915060208360051b850101925086831115615a5f575f5ffd5b602084015b83811015615afc5780516001600160401b03811115615a81575f5ffd5b8501603f81018913615a91575f5ffd5b6020810151615aa2614e2e82614def565b808282526020820191506020808460051b8601010192508b831115615ac5575f5ffd5b6040840193505b82841015615ae7578351825260209384019390910190615acc565b86525050602093840193919091019050615a64565b509695505050505050565b5f60018201615b1857615b186157df565b5060010190565b81810381811115610932576109326157df565b6001600160401b038281168282160390811115610932576109326157df565b5f81600f0b60016001607f1b03198103615b6d57615b6d6157df565b5f0392915050565b600f81810b9083900b0160016001607f1b03811360016001607f1b031982121715610932576109326157df565b6001600160a01b038716815260e08101615bbf6020830188614cea565b60608201959095526001600160a01b039390931660808401526001600160401b0391821660a08401521660c09091015292915050565b5f60208284031215615c05575f5ffd5b5051919050565b6001600160a01b03881681525f60c08201615c2a602084018a614cea565b60c060608401528690528660e083015f5b88811015615c6b578235615c4e81614b6c565b6001600160a01b0316825260209283019290910190600101615c3b565b508381036080850152615c7e8188614ef7565b91505082810360a0840152615c948185876158c5565b9a9950505050505050505050565b5f81615cb057615cb06157df565b505f190190565b600f82810b9082900b0360016001607f1b0319811260016001607f1b0382131715610932576109326157df565b5f60208284031215615cf4575f5ffd5b815161087d81614b6c565b8082018281125f831280158216821582161715615d1e57615d1e6157df565b505092915050565b634e487b7160e01b5f52603160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b80820180821115610932576109326157df565b5f82615d8f57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220e6558cc233ddec01b4f105ba85995f702aa766ccaa81881e2e04ab296beac9d464736f6c634300081b0033", } // AllocationManagerABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/BN254/binding.go b/pkg/bindings/BN254/binding.go index 948e233308..5897b13371 100644 --- a/pkg/bindings/BN254/binding.go +++ b/pkg/bindings/BN254/binding.go @@ -32,7 +32,7 @@ var ( // BN254MetaData contains all meta data concerning the BN254 contract. var BN254MetaData = &bind.MetaData{ ABI: "[{\"type\":\"error\",\"name\":\"ECAddFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECMulFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECPairingFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpModFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ScalarTooLarge\",\"inputs\":[]}]", - Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212205d5cbdf978bc8397dd867db7f831e02fd1840ae85553aaf69b449a540b2ae60a64736f6c634300081b0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220d084bedd451fadde14a6590fa5fb3e40f2250b7f49f9228d15f27cae51d34f7464736f6c634300081b0033", } // BN254ABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/BN254CertificateVerifier/binding.go b/pkg/bindings/BN254CertificateVerifier/binding.go index 0ad1e907bd..8a35759c1f 100644 --- a/pkg/bindings/BN254CertificateVerifier/binding.go +++ b/pkg/bindings/BN254CertificateVerifier/binding.go @@ -85,8 +85,8 @@ type OperatorSet struct { // BN254CertificateVerifierMetaData contains all meta data concerning the BN254CertificateVerifier contract. var BN254CertificateVerifierMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_operatorTableUpdater\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableUpdater\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"OPERATOR_INFO_LEAF_SALT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPERATOR_TABLE_LEAF_SALT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateCertificateDigest\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"calculateOperatorInfoLeaf\",\"inputs\":[{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"calculateOperatorTableLeaf\",\"inputs\":[{\"name\":\"operatorTableBytes\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getNonsignerOperatorInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetOwner\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeWeights\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isNonsignerCached\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isReferenceTimestampSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestReferenceTimestamp\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxOperatorTableStaleness\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"operatorTableUpdater\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableUpdater\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"trySignatureVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"aggPubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"signatureValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateOperatorTable\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"operatorSetConfig\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificate\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"totalSignedStakeWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateNominal\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeNominalThresholds\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateProportion\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeProportionThresholds\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxStalenessPeriodUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetOwnerUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"owner\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TableUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECAddFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECMulFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECPairingFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpModFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyTableUpdater\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReferenceTimestampDoesNotExist\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootDisabled\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TableUpdateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"VerificationFailed\",\"inputs\":[]}]", - Bin: "0x60c060405234801561000f575f5ffd5b50604051612e46380380612e4683398101604081905261002e9161016a565b6001600160a01b0382166080528061004581610058565b60a0525061005161009e565b5050610294565b5f5f829050601f8151111561008b578260405163305a27a960e01b81526004016100829190610239565b60405180910390fd5b80516100968261026e565b179392505050565b5f54610100900460ff16156101055760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610082565b5f5460ff90811614610154575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561017b575f5ffd5b82516001600160a01b0381168114610191575f5ffd5b60208401519092506001600160401b038111156101ac575f5ffd5b8301601f810185136101bc575f5ffd5b80516001600160401b038111156101d5576101d5610156565b604051601f8201601f19908116603f011681016001600160401b038111828210171561020357610203610156565b60405281815282820160200187101561021a575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561028e575f198160200360031b1b821691505b50919050565b60805160a051612b836102c35f395f6106d501525f81816102a6015281816108200152610ff50152612b835ff3fe608060405234801561000f575f5ffd5b5060043610610132575f3560e01c80635ddb9b5b116100b4578063848189201161007957806384818920146102f3578063a2c902f514610306578063a2f2e24d1461030e578063cd83a72b14610321578063dd2ae1b914610334578063eb39e68f14610347575f5ffd5b80635ddb9b5b146102515780636141879e146102795780636738c40b1461028c57806368d6e081146102a15780637d1d1f5b146102e0575f5ffd5b806323c2a3cb116100fa57806323c2a3cb146101e357806326af6a3c146101f6578063538a37901461021657806354fd4d50146102295780635be872741461023e575f5ffd5b8063017d797414610136578063080b71501461015e578063121409ea1461017e57806318467434146101985780631a18746c146101b9575b5f5ffd5b610149610144366004612436565b610367565b60405190151581526020015b60405180910390f35b61017161016c366004612511565b6104f8565b604051610155919061255c565b610186608e81565b60405160ff9091168152602001610155565b6101ab6101a6366004612593565b61050d565b604051908152602001610155565b6101cc6101c73660046125bb565b610570565b604080519215158352901515602083015201610155565b6101ab6101f1366004612609565b610591565b61020961020436600461263b565b6105c7565b60405161015591906126b0565b6101ab6102243660046126dd565b61067f565b6102316106ce565b604051610155919061270e565b61014961024c36600461263b565b6106fe565b61026461025f366004612743565b6107c9565b60405163ffffffff9091168152602001610155565b610264610287366004612743565b6107ef565b61029f61029a366004612773565b610815565b005b6102c87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610155565b6101716102ee366004612609565b6109fb565b6102c8610301366004612743565b610a7b565b610186607581565b6101ab61031c36600461282c565b610aa4565b61014961032f366004612609565b610abb565b610149610342366004612898565b610af1565b61035a610355366004612609565b610b84565b6040516101559190612950565b5f5f6103738585610c49565b90505f61037f86610de6565b5f8181526004602081815260408084208a5163ffffffff16855282528084208151608081018352815481526001820154818501528251808401845260028301548152600383015481860152818401529381018054835181860281018601909452808452969750949593949093606086019383018282801561041d57602002820191905f5260205f20905b815481526020019060010190808311610409575b50505050508152505090505f8160600151905085518451146104525760405163512509d360e11b815260040160405180910390fd5b5f5b84518110156104e7575f61271088838151811061047357610473612962565b602002602001015161ffff1684848151811061049157610491612962565b60200260200101516104a3919061298a565b6104ad91906129b5565b9050808683815181106104c2576104c2612962565b602002602001015110156104de575f96505050505050506104f1565b50600101610454565b5060019450505050505b9392505050565b60606105048383610c49565b90505b92915050565b604080517fd9f77a423768f4b0526fa60a7c732334516a93f1d228dce50ad804ea74ced36e602082015263ffffffff841691810191909152606081018290525f906080015b60405160208183030381529060405280519060200120905092915050565b5f5f61058486848787600162061a80610e49565b9150915094509492505050565b5f5f61059c84610de6565b5f90815260046020908152604080832063ffffffff8716845290915290206001015491505092915050565b6105cf611dcf565b5f6105d985610de6565b5f81815260056020908152604080832063ffffffff89168452825280832087845282529182902082516080810184528154818501908152600183015460608301528152600282018054855181860281018601909652808652959650909491938584019390929083018282801561066c57602002820191905f5260205f20905b815481526020019060010190808311610658575b5050505050815250509150509392505050565b5f60758260405160200161069391906126b0565b60408051601f19818403018152908290526106b192916020016129c8565b604051602081830303815290604052805190602001209050919050565b60606106f97f0000000000000000000000000000000000000000000000000000000000000000610f11565b905090565b5f5f61070985610de6565b5f81815260056020908152604080832063ffffffff8916845282528083208784528252808320815160808101835281548184019081526001830154606083015281526002820180548451818702810187019095528085529697509495909491938581019392919083018282801561079d57602002820191905f5260205f20905b815481526020019060010190808311610789575b50505091909252505081515191925050158015906107bf575080516020015115155b9695505050505050565b5f5f6107d483610de6565b5f9081526003602052604090205463ffffffff169392505050565b5f5f6107fa83610de6565b5f9081526002602052604090205463ffffffff169392505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461085e5760405163030c1b6b60e11b815260040160405180910390fd5b5f61087661087136879003870187612743565b610de6565b5f8181526003602052604090205490915063ffffffff908116908516116108b057604051632f20889f60e01b815260040160405180910390fd5b5f81815260046020818152604080842063ffffffff8916855282529283902086518155818701516001820155928601518051600285015581015160038401556060860151805187949361090893908501920190611df9565b5050505f818152600360209081526040909120805463ffffffff191663ffffffff871617905561093a908301836129f1565b5f8281526001602090815260409182902080546001600160a01b0319166001600160a01b03949094169390931790925561097991908401908401612a0a565b5f828152600260209081526040808320805463ffffffff191663ffffffff958616179055600682528083209388168352929052819020805460ff19166001179055517f93e6bea1c9b5dce4a5c07b00261e956df2a4a253d9ab6ca070ca2037d72ada9e906109ec90879087908790612a23565b60405180910390a15050505050565b60605f610a0784610de6565b5f81815260046020818152604080842063ffffffff891685528252928390209091018054835181840281018401909452808452939450919290830182828015610a6d57602002820191905f5260205f20905b815481526020019060010190808311610a59575b505050505091505092915050565b5f5f610a8683610de6565b5f908152600160205260409020546001600160a01b03169392505050565b5f608e838360405160200161055293929190612a6f565b5f5f610ac684610de6565b5f90815260066020908152604080832063ffffffff8716845290915290205460ff1691505092915050565b5f5f610afd8585610c49565b90508251815114610b215760405163512509d360e11b815260040160405180910390fd5b5f5b8151811015610b7857838181518110610b3e57610b3e612962565b6020026020010151828281518110610b5857610b58612962565b60200260200101511015610b70575f925050506104f1565b600101610b23565b50600195945050505050565b610b8c611e42565b5f610b9684610de6565b5f81815260046020818152604080842063ffffffff8916855282529283902083516080810185528154815260018201548184015284518086018652600283015481526003830154818501528186015292810180548551818502810185019096528086529596509294909360608601939092909190830182828015610c3757602002820191905f5260205f20905b815481526020019060010190808311610c23575b50505050508152505091505092915050565b6060610c53611e74565b610c5c84610de6565b8082528351610c6b9190610f4e565b80515f908152600460208181526040808420875163ffffffff1685528252928390208351608081018552815481526001820154818401528451808601865260028301548152600383015481850152818601529281018054855181850281018501909652808652939491936060860193830182828015610d0757602002820191905f5260205f20905b815481526020019060010190808311610cf3575b505050919092525050506020820181905260600151516001600160401b03811115610d3457610d34611fa2565b604051908082528060200260200182016040528015610d5d578160200160208202803683370190505b5060408201525f5b81602001516060015151811015610dc1578160200151606001518181518110610d9057610d90612962565b602002602001015182604001518281518110610dae57610dae612962565b6020908102919091010152600101610d65565b50610dcc8184611088565b6060820152610ddb81846111b2565b604001519392505050565b5f815f0151826020015163ffffffff16604051602001610e3192919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261050790612a96565b5f5f5f610e5589611231565b90505f610e648a89898c6112bb565b90505f610e7b610e748a8461136f565b8b906113df565b90505f610ebd610eb684610eb06040805180820182525f80825260209182015281518083019092526001825260029082015290565b9061136f565b85906113df565b90508715610ee257610ed982610ed1611453565b838c8b611513565b96509450610f02565b610ef582610eee611453565b838c611727565b95508515610f0257600194505b50505050965096945050505050565b60605f610f1d8361195e565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f8281526002602052604090205463ffffffff16801580610f7e5750610f748183612ab9565b63ffffffff164211155b610f9b5760405163640fcd6b60e11b815260040160405180910390fd5b5f83815260066020908152604080832063ffffffff8616845290915290205460ff16610fda57604051630cad17b760e31b815260040160405180910390fd5b60405163193877e160e21b815263ffffffff831660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906364e1df8490602401602060405180830381865afa158015611042573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110669190612ad5565b61108357604051631b14174b60e01b815260040160405180910390fd5b505050565b6040805180820182525f808252602091820181905282518084019093528083529082018190525b8260800151518110156111ab575f836080015182815181106110d3576110d3612962565b60200260200101519050846020015160200151815f015163ffffffff161061110e576040516301fa53c760e11b815260040160405180910390fd5b845184515f9161111e9184611985565b805190915061112e9085906113df565b93505f5b8160200151518110156111a057866040015151811015611198578160200151818151811061116257611162612962565b60200260200101518760400151828151811061118057611180612962565b602002602001018181516111949190612af4565b9052505b600101611132565b5050506001016110af565b5092915050565b5f6111d26111c38460600151611afc565b602085015160400151906113df565b90505f6111e6835f0151846020015161050d565b90505f5f6111fe838587606001518860400151610570565b9150915081801561120c5750805b6112295760405163439cc0cd60e01b815260040160405180910390fd5b505050505050565b604080518082019091525f80825260208201525f808061125e5f516020612b2e5f395f51905f5286612b07565b90505b61126a81611b92565b90935091505f516020612b2e5f395f51905f5282830983036112a2576040805180820190915290815260208101919091529392505050565b5f516020612b2e5f395f51905f52600182089050611261565b8251602080850151845180519083015186840151805190850151875188870151604080519889018e90528801989098526060870195909552608086019390935260a085019190915260c084015260e08301526101008201526101208101919091525f907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019061014001604051602081830303815290604052805190602001205f1c6113669190612b07565b95945050505050565b604080518082019091525f808252602082015261138a611eb9565b835181526020808501519082015260408082018490525f908360608460076107d05a03fa905080806113b857fe5b50806113d757604051632319df1960e11b815260040160405180910390fd5b505092915050565b604080518082019091525f80825260208201526113fa611ed7565b835181526020808501518183015283516040808401919091529084015160608301525f908360808460066107d05a03fa9050808061143457fe5b50806113d75760405163d4b68fd760e01b815260040160405180910390fd5b61145b611ef5565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528681526020808201869052825180840190935286835282018490525f91829190611544611f15565b5f5b60028110156116fb575f61155b82600661298a565b905084826002811061156f5761156f612962565b60200201515183611580835f612b1a565b600c811061159057611590612962565b60200201528482600281106115a7576115a7612962565b602002015160200151838260016115be9190612b1a565b600c81106115ce576115ce612962565b60200201528382600281106115e5576115e5612962565b60200201515151836115f8836002612b1a565b600c811061160857611608612962565b602002015283826002811061161f5761161f612962565b6020020151516001602002015183611638836003612b1a565b600c811061164857611648612962565b602002015283826002811061165f5761165f612962565b6020020151602001515f6002811061167957611679612962565b60200201518361168a836004612b1a565b600c811061169a5761169a612962565b60200201528382600281106116b1576116b1612962565b6020020151602001516001600281106116cc576116cc612962565b6020020151836116dd836005612b1a565b600c81106116ed576116ed612962565b602002015250600101611546565b50611704611f34565b5f6020826101808560088cfa9151919c9115159b50909950505050505050505050565b6040805180820182528581526020808201859052825180840190935285835282018390525f91611755611f15565b5f5b600281101561190c575f61176c82600661298a565b905084826002811061178057611780612962565b60200201515183611791835f612b1a565b600c81106117a1576117a1612962565b60200201528482600281106117b8576117b8612962565b602002015160200151838260016117cf9190612b1a565b600c81106117df576117df612962565b60200201528382600281106117f6576117f6612962565b6020020151515183611809836002612b1a565b600c811061181957611819612962565b602002015283826002811061183057611830612962565b6020020151516001602002015183611849836003612b1a565b600c811061185957611859612962565b602002015283826002811061187057611870612962565b6020020151602001515f6002811061188a5761188a612962565b60200201518361189b836004612b1a565b600c81106118ab576118ab612962565b60200201528382600281106118c2576118c2612962565b6020020151602001516001600281106118dd576118dd612962565b6020020151836118ee836005612b1a565b600c81106118fe576118fe612962565b602002015250600101611757565b50611915611f34565b5f6020826101808560086107d05a03fa9050808061192f57fe5b508061194e576040516324ccc79360e21b815260040160405180910390fd5b5051151598975050505050505050565b5f60ff8216601f81111561050757604051632cd44ac360e21b815260040160405180910390fd5b61198d611dcf565b5f84815260056020908152604080832063ffffffff8088168552908352818420865190911684528252808320815160808101835281548184019081526001830154606083015281526002820180548451818702810187019095528085529194929385840193909290830182828015611a2257602002820191905f5260205f20905b815481526020019060010190808311611a0e575b5050509190925250508151519192505f911515905080611a46575081516020015115155b905080611aef575f611a668787875f015188604001518960200151611c0e565b905080611a865760405163439cc0cd60e01b815260040160405180910390fd5b6040808601515f8981526005602090815283822063ffffffff808c1684529082528483208a5190911683528152929020815180518255830151600182015582820151805192939192611ade9260028501920190611df9565b509050508460400151935050611af3565b8192505b50509392505050565b604080518082019091525f80825260208201528151158015611b2057506020820151155b15611b3d575050604080518082019091525f808252602082015290565b6040518060400160405280835f015181526020015f516020612b2e5f395f51905f528460200151611b6e9190612b07565b611b85905f516020612b2e5f395f51905f52612af4565b905292915050565b919050565b5f80805f516020612b2e5f395f51905f5260035f516020612b2e5f395f51905f52865f516020612b2e5f395f51905f52888909090890505f611c02827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f525f516020612b2e5f395f51905f52611c5c565b91959194509092505050565b5f5f611c198461067f565b5f88815260046020908152604080832063ffffffff808c168552925290912054919250611c50908590839085908a811690611cd516565b98975050505050505050565b5f5f611c66611f34565b611c6e611f52565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280611cab57fe5b5082611cca5760405163d51edae360e01b815260040160405180910390fd5b505195945050505050565b5f83611cf4576040516329e7276760e11b815260040160405180910390fd5b83611d00868585611d0a565b1495945050505050565b5f83515f03611d1a5750816104f1565b60208451611d289190612b07565b15611d46576040516313717da960e21b815260040160405180910390fd5b8260205b85518111611da757611d5d600285612b07565b5f03611d7e57815f528086015160205260405f209150600284049350611d95565b808601515f528160205260405f2091506002840493505b611da0602082612b1a565b9050611d4a565b508215611dc7576040516363df817160e01b815260040160405180910390fd5b949350505050565b604080516080810182525f91810182815260608201929092529081905b8152602001606081525090565b828054828255905f5260205f20908101928215611e32579160200282015b82811115611e32578251825591602001919060010190611e17565b50611e3e929150611f70565b5090565b60405180608001604052805f81526020015f8152602001611dec60405180604001604052805f81526020015f81525090565b60405180608001604052805f8152602001611e8d611e42565b815260200160608152602001611eb460405180604001604052805f81526020015f81525090565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280611f08611f84565b8152602001611eb4611f84565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b5b80821115611e3e575f8155600101611f71565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715611fd857611fd8611fa2565b60405290565b60405160a081016001600160401b0381118282101715611fd857611fd8611fa2565b604051606081016001600160401b0381118282101715611fd857611fd8611fa2565b604051608081016001600160401b0381118282101715611fd857611fd8611fa2565b604051601f8201601f191681016001600160401b038111828210171561206c5761206c611fa2565b604052919050565b80356001600160a01b0381168114611b8d575f5ffd5b803563ffffffff81168114611b8d575f5ffd5b5f604082840312156120ad575f5ffd5b6120b5611fb6565b90506120c082612074565b81526120ce6020830161208a565b602082015292915050565b5f604082840312156120e9575f5ffd5b6120f1611fb6565b823581526020928301359281019290925250919050565b5f82601f830112612117575f5ffd5b61211f611fb6565b806040840185811115612130575f5ffd5b845b8181101561214a578035845260209384019301612132565b509095945050505050565b5f60808284031215612165575f5ffd5b61216d611fb6565b90506121798383612108565b81526120ce8360408401612108565b5f6001600160401b038211156121a0576121a0611fa2565b5060051b60200190565b5f82601f8301126121b9575f5ffd5b81356121cc6121c782612188565b612044565b8082825260208201915060208360051b8601019250858311156121ed575f5ffd5b602085015b8381101561220a5780358352602092830192016121f2565b5095945050505050565b5f60608284031215612224575f5ffd5b61222c611fb6565b905061223883836120d9565b815260408201356001600160401b03811115612252575f5ffd5b61225e848285016121aa565b60208301525092915050565b5f610120828403121561227b575f5ffd5b612283611fde565b905061228e8261208a565b8152602082810135908201526122a783604084016120d9565b60408201526122b98360808401612155565b60608201526101008201356001600160401b038111156122d7575f5ffd5b8201601f810184136122e7575f5ffd5b80356122f56121c782612188565b8082825260208201915060208360051b850101925086831115612316575f5ffd5b602084015b838110156124265780356001600160401b03811115612338575f5ffd5b85016060818a03601f1901121561234d575f5ffd5b612355612000565b6123616020830161208a565b815260408201356001600160401b0381111561237b575f5ffd5b82016020810190603f018b1361238f575f5ffd5b80356001600160401b038111156123a8576123a8611fa2565b6123bb601f8201601f1916602001612044565b8181528c60208385010111156123cf575f5ffd5b816020840160208301375f6020838301015280602085015250505060608201356001600160401b03811115612402575f5ffd5b6124118b602083860101612214565b6040830152508452506020928301920161231b565b5060808501525091949350505050565b5f5f5f60808486031215612448575f5ffd5b612452858561209d565b925060408401356001600160401b0381111561246c575f5ffd5b6124788682870161226a565b92505060608401356001600160401b03811115612493575f5ffd5b8401601f810186136124a3575f5ffd5b80356124b16121c782612188565b8082825260208201915060208360051b8501019250888311156124d2575f5ffd5b6020840193505b8284101561250357833561ffff811681146124f2575f5ffd5b8252602093840193909101906124d9565b809450505050509250925092565b5f5f60608385031215612522575f5ffd5b61252c848461209d565b915060408301356001600160401b03811115612546575f5ffd5b6125528582860161226a565b9150509250929050565b602080825282518282018190525f918401906040840190835b8181101561214a578351835260209384019390920191600101612575565b5f5f604083850312156125a4575f5ffd5b6125ad8361208a565b946020939093013593505050565b5f5f5f5f61012085870312156125cf575f5ffd5b843593506125e086602087016120d9565b92506125ef8660608701612155565b91506125fe8660e087016120d9565b905092959194509250565b5f5f6060838503121561261a575f5ffd5b612624848461209d565b91506126326040840161208a565b90509250929050565b5f5f5f6080848603121561264d575f5ffd5b612657858561209d565b92506126656040850161208a565b929592945050506060919091013590565b5f8151808452602084019350602083015f5b828110156126a6578151865260209586019590910190600101612688565b5093949350505050565b60208082528251805183830152015160408201525f6020830151606080840152611dc76080840182612676565b5f602082840312156126ed575f5ffd5b81356001600160401b03811115612702575f5ffd5b611dc784828501612214565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60408284031215612753575f5ffd5b610504838361209d565b5f6040828403121561276d575f5ffd5b50919050565b5f5f5f5f60c08587031215612786575f5ffd5b612790868661275d565b935061279e6040860161208a565b925060608501356001600160401b038111156127b8575f5ffd5b850160a081880312156127c9575f5ffd5b6127d1612022565b81358152602080830135908201526127ec88604084016120d9565b604082015260808201356001600160401b03811115612809575f5ffd5b612815898285016121aa565b60608301525092506125fe9050866080870161275d565b5f5f6020838503121561283d575f5ffd5b82356001600160401b03811115612852575f5ffd5b8301601f81018513612862575f5ffd5b80356001600160401b03811115612877575f5ffd5b856020828401011115612888575f5ffd5b6020919091019590945092505050565b5f5f5f608084860312156128aa575f5ffd5b6128b4858561209d565b925060408401356001600160401b038111156128ce575f5ffd5b6128da8682870161226a565b92505060608401356001600160401b038111156128f5575f5ffd5b612901868287016121aa565b9150509250925092565b80518252602081015160208301525f6040820151612936604085018280518252602090810151910152565b50606082015160a06080850152611dc760a0850182612676565b602081525f610504602083018461290b565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761050757610507612976565b634e487b7160e01b5f52601260045260245ffd5b5f826129c3576129c36129a1565b500490565b60ff60f81b8360f81b1681525f82518060208501600185015e5f92016001019182525092915050565b5f60208284031215612a01575f5ffd5b61050482612074565b5f60208284031215612a1a575f5ffd5b6105048261208a565b6001600160a01b03612a3485612074565b16815263ffffffff612a486020860161208a565b16602082015263ffffffff83166040820152608060608201525f611366608083018461290b565b60f884901b6001600160f81b0319168152818360018301375f910160010190815292915050565b8051602080830151919081101561276d575f1960209190910360031b1b16919050565b63ffffffff818116838216019081111561050757610507612976565b5f60208284031215612ae5575f5ffd5b815180151581146104f1575f5ffd5b8181038181111561050757610507612976565b5f82612b1557612b156129a1565b500690565b808201808211156105075761050761297656fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220075fa6347f66d21bf4aa4f5cf38f73c23e359fc006be59418ea05087335cec0164736f6c634300081b0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_operatorTableUpdater\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableUpdater\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"OPERATOR_INFO_LEAF_SALT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPERATOR_TABLE_LEAF_SALT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateCertificateDigest\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"calculateOperatorInfoLeaf\",\"inputs\":[{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"calculateOperatorTableLeaf\",\"inputs\":[{\"name\":\"operatorTableBytes\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getNonsignerOperatorInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetOwner\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeWeights\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isNonsignerCached\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isReferenceTimestampSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestReferenceTimestamp\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxOperatorTableStaleness\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"operatorTableUpdater\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableUpdater\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"trySignatureVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"aggPubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"signatureValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateOperatorTable\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"operatorSetConfig\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificate\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"totalSignedStakeWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateNominal\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeNominalThresholds\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateProportion\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeProportionThresholds\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxStalenessPeriodUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetOwnerUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"owner\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TableUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECAddFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECMulFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECPairingFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpModFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NonSignerIndicesNotSorted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyTableUpdater\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReferenceTimestampDoesNotExist\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootDisabled\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TableUpdateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"VerificationFailed\",\"inputs\":[]}]", + Bin: "0x60c060405234801561000f575f5ffd5b50604051612e71380380612e7183398101604081905261002e9161016a565b6001600160a01b0382166080528061004581610058565b60a0525061005161009e565b5050610294565b5f5f829050601f8151111561008b578260405163305a27a960e01b81526004016100829190610239565b60405180910390fd5b80516100968261026e565b179392505050565b5f54610100900460ff16156101055760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610082565b5f5460ff90811614610154575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561017b575f5ffd5b82516001600160a01b0381168114610191575f5ffd5b60208401519092506001600160401b038111156101ac575f5ffd5b8301601f810185136101bc575f5ffd5b80516001600160401b038111156101d5576101d5610156565b604051601f8201601f19908116603f011681016001600160401b038111828210171561020357610203610156565b60405281815282820160200187101561021a575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561028e575f198160200360031b1b821691505b50919050565b60805160a051612bae6102c35f395f6106d501525f81816102a6015281816108200152610ff50152612bae5ff3fe608060405234801561000f575f5ffd5b5060043610610132575f3560e01c80635ddb9b5b116100b4578063848189201161007957806384818920146102f3578063a2c902f514610306578063a2f2e24d1461030e578063cd83a72b14610321578063dd2ae1b914610334578063eb39e68f14610347575f5ffd5b80635ddb9b5b146102515780636141879e146102795780636738c40b1461028c57806368d6e081146102a15780637d1d1f5b146102e0575f5ffd5b806323c2a3cb116100fa57806323c2a3cb146101e357806326af6a3c146101f6578063538a37901461021657806354fd4d50146102295780635be872741461023e575f5ffd5b8063017d797414610136578063080b71501461015e578063121409ea1461017e57806318467434146101985780631a18746c146101b9575b5f5ffd5b610149610144366004612461565b610367565b60405190151581526020015b60405180910390f35b61017161016c36600461253c565b6104f8565b6040516101559190612587565b610186608e81565b60405160ff9091168152602001610155565b6101ab6101a63660046125be565b61050d565b604051908152602001610155565b6101cc6101c73660046125e6565b610570565b604080519215158352901515602083015201610155565b6101ab6101f1366004612634565b610591565b610209610204366004612666565b6105c7565b60405161015591906126db565b6101ab610224366004612708565b61067f565b6102316106ce565b6040516101559190612739565b61014961024c366004612666565b6106fe565b61026461025f36600461276e565b6107c9565b60405163ffffffff9091168152602001610155565b61026461028736600461276e565b6107ef565b61029f61029a36600461279e565b610815565b005b6102c87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610155565b6101716102ee366004612634565b6109fb565b6102c861030136600461276e565b610a7b565b610186607581565b6101ab61031c366004612857565b610aa4565b61014961032f366004612634565b610abb565b6101496103423660046128c3565b610af1565b61035a610355366004612634565b610b84565b604051610155919061297b565b5f5f6103738585610c49565b90505f61037f86610de6565b5f8181526004602081815260408084208a5163ffffffff16855282528084208151608081018352815481526001820154818501528251808401845260028301548152600383015481860152818401529381018054835181860281018601909452808452969750949593949093606086019383018282801561041d57602002820191905f5260205f20905b815481526020019060010190808311610409575b50505050508152505090505f8160600151905085518451146104525760405163512509d360e11b815260040160405180910390fd5b5f5b84518110156104e7575f6127108883815181106104735761047361298d565b602002602001015161ffff168484815181106104915761049161298d565b60200260200101516104a391906129b5565b6104ad91906129e0565b9050808683815181106104c2576104c261298d565b602002602001015110156104de575f96505050505050506104f1565b50600101610454565b5060019450505050505b9392505050565b60606105048383610c49565b90505b92915050565b604080517fd9f77a423768f4b0526fa60a7c732334516a93f1d228dce50ad804ea74ced36e602082015263ffffffff841691810191909152606081018290525f906080015b60405160208183030381529060405280519060200120905092915050565b5f5f61058486848787600162061a80610e49565b9150915094509492505050565b5f5f61059c84610de6565b5f90815260046020908152604080832063ffffffff8716845290915290206001015491505092915050565b6105cf611dfa565b5f6105d985610de6565b5f81815260056020908152604080832063ffffffff89168452825280832087845282529182902082516080810184528154818501908152600183015460608301528152600282018054855181860281018601909652808652959650909491938584019390929083018282801561066c57602002820191905f5260205f20905b815481526020019060010190808311610658575b5050505050815250509150509392505050565b5f60758260405160200161069391906126db565b60408051601f19818403018152908290526106b192916020016129f3565b604051602081830303815290604052805190602001209050919050565b60606106f97f0000000000000000000000000000000000000000000000000000000000000000610f11565b905090565b5f5f61070985610de6565b5f81815260056020908152604080832063ffffffff8916845282528083208784528252808320815160808101835281548184019081526001830154606083015281526002820180548451818702810187019095528085529697509495909491938581019392919083018282801561079d57602002820191905f5260205f20905b815481526020019060010190808311610789575b50505091909252505081515191925050158015906107bf575080516020015115155b9695505050505050565b5f5f6107d483610de6565b5f9081526003602052604090205463ffffffff169392505050565b5f5f6107fa83610de6565b5f9081526002602052604090205463ffffffff169392505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461085e5760405163030c1b6b60e11b815260040160405180910390fd5b5f6108766108713687900387018761276e565b610de6565b5f8181526003602052604090205490915063ffffffff908116908516116108b057604051632f20889f60e01b815260040160405180910390fd5b5f81815260046020818152604080842063ffffffff8916855282529283902086518155818701516001820155928601518051600285015581015160038401556060860151805187949361090893908501920190611e24565b5050505f818152600360209081526040909120805463ffffffff191663ffffffff871617905561093a90830183612a1c565b5f8281526001602090815260409182902080546001600160a01b0319166001600160a01b03949094169390931790925561097991908401908401612a35565b5f828152600260209081526040808320805463ffffffff191663ffffffff958616179055600682528083209388168352929052819020805460ff19166001179055517f93e6bea1c9b5dce4a5c07b00261e956df2a4a253d9ab6ca070ca2037d72ada9e906109ec90879087908790612a4e565b60405180910390a15050505050565b60605f610a0784610de6565b5f81815260046020818152604080842063ffffffff891685528252928390209091018054835181840281018401909452808452939450919290830182828015610a6d57602002820191905f5260205f20905b815481526020019060010190808311610a59575b505050505091505092915050565b5f5f610a8683610de6565b5f908152600160205260409020546001600160a01b03169392505050565b5f608e838360405160200161055293929190612a9a565b5f5f610ac684610de6565b5f90815260066020908152604080832063ffffffff8716845290915290205460ff1691505092915050565b5f5f610afd8585610c49565b90508251815114610b215760405163512509d360e11b815260040160405180910390fd5b5f5b8151811015610b7857838181518110610b3e57610b3e61298d565b6020026020010151828281518110610b5857610b5861298d565b60200260200101511015610b70575f925050506104f1565b600101610b23565b50600195945050505050565b610b8c611e6d565b5f610b9684610de6565b5f81815260046020818152604080842063ffffffff8916855282529283902083516080810185528154815260018201548184015284518086018652600283015481526003830154818501528186015292810180548551818502810185019096528086529596509294909360608601939092909190830182828015610c3757602002820191905f5260205f20905b815481526020019060010190808311610c23575b50505050508152505091505092915050565b6060610c53611e9f565b610c5c84610de6565b8082528351610c6b9190610f4e565b80515f908152600460208181526040808420875163ffffffff1685528252928390208351608081018552815481526001820154818401528451808601865260028301548152600383015481850152818601529281018054855181850281018501909652808652939491936060860193830182828015610d0757602002820191905f5260205f20905b815481526020019060010190808311610cf3575b505050919092525050506020820181905260600151516001600160401b03811115610d3457610d34611fcd565b604051908082528060200260200182016040528015610d5d578160200160208202803683370190505b5060408201525f5b81602001516060015151811015610dc1578160200151606001518181518110610d9057610d9061298d565b602002602001015182604001518281518110610dae57610dae61298d565b6020908102919091010152600101610d65565b50610dcc8184611088565b6060820152610ddb81846111e5565b604001519392505050565b5f815f0151826020015163ffffffff16604051602001610e3192919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261050790612ac1565b5f5f5f610e5589611264565b90505f610e648a89898c6112ee565b90505f610e7b610e748a846113a2565b8b9061140a565b90505f610ebd610eb684610eb06040805180820182525f80825260209182015281518083019092526001825260029082015290565b906113a2565b859061140a565b90508715610ee257610ed982610ed161147e565b838c8b61153e565b96509450610f02565b610ef582610eee61147e565b838c611752565b95508515610f0257600194505b50505050965096945050505050565b60605f610f1d83611989565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f8281526002602052604090205463ffffffff16801580610f7e5750610f748183612ae4565b63ffffffff164211155b610f9b5760405163640fcd6b60e11b815260040160405180910390fd5b5f83815260066020908152604080832063ffffffff8616845290915290205460ff16610fda57604051630cad17b760e31b815260040160405180910390fd5b60405163193877e160e21b815263ffffffff831660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906364e1df8490602401602060405180830381865afa158015611042573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110669190612b00565b61108357604051631b14174b60e01b815260040160405180910390fd5b505050565b6040805180820182525f80825260209182018190528251808401909352808352908201819052805b8360800151518110156111dd575f846080015182815181106110d4576110d461298d565b602002602001015190505f82111561111057805163ffffffff80851691161161111057604051631d8c4d1760e31b815260040160405180910390fd5b6020808701510151815163ffffffff161061113e576040516301fa53c760e11b815260040160405180910390fd5b855185515f9161114e91846119b0565b805190915061115e90869061140a565b94505f5b8160200151518110156111d0578760400151518110156111c857816020015181815181106111925761119261298d565b6020026020010151886040015182815181106111b0576111b061298d565b602002602001018181516111c49190612b1f565b9052505b600101611162565b50505191506001016110b0565b505092915050565b5f6112056111f68460600151611b27565b6020850151604001519061140a565b90505f611219835f0151846020015161050d565b90505f5f611231838587606001518860400151610570565b9150915081801561123f5750805b61125c5760405163439cc0cd60e01b815260040160405180910390fd5b505050505050565b604080518082019091525f80825260208201525f80806112915f516020612b595f395f51905f5286612b32565b90505b61129d81611bbd565b90935091505f516020612b595f395f51905f5282830983036112d5576040805180820190915290815260208101919091529392505050565b5f516020612b595f395f51905f52600182089050611294565b8251602080850151845180519083015186840151805190850151875188870151604080519889018e90528801989098526060870195909552608086019390935260a085019190915260c084015260e08301526101008201526101208101919091525f907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019061014001604051602081830303815290604052805190602001205f1c6113999190612b32565b95945050505050565b604080518082019091525f80825260208201526113bd611ee4565b835181526020808501519082015260408082018490525f908360608460076107d05a03fa905080806113eb57fe5b50806111dd57604051632319df1960e11b815260040160405180910390fd5b604080518082019091525f8082526020820152611425611f02565b835181526020808501518183015283516040808401919091529084015160608301525f908360808460066107d05a03fa9050808061145f57fe5b50806111dd5760405163d4b68fd760e01b815260040160405180910390fd5b611486611f20565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528681526020808201869052825180840190935286835282018490525f9182919061156f611f40565b5f5b6002811015611726575f6115868260066129b5565b905084826002811061159a5761159a61298d565b602002015151836115ab835f612b45565b600c81106115bb576115bb61298d565b60200201528482600281106115d2576115d261298d565b602002015160200151838260016115e99190612b45565b600c81106115f9576115f961298d565b60200201528382600281106116105761161061298d565b6020020151515183611623836002612b45565b600c81106116335761163361298d565b602002015283826002811061164a5761164a61298d565b6020020151516001602002015183611663836003612b45565b600c81106116735761167361298d565b602002015283826002811061168a5761168a61298d565b6020020151602001515f600281106116a4576116a461298d565b6020020151836116b5836004612b45565b600c81106116c5576116c561298d565b60200201528382600281106116dc576116dc61298d565b6020020151602001516001600281106116f7576116f761298d565b602002015183611708836005612b45565b600c81106117185761171861298d565b602002015250600101611571565b5061172f611f5f565b5f6020826101808560088cfa9151919c9115159b50909950505050505050505050565b6040805180820182528581526020808201859052825180840190935285835282018390525f91611780611f40565b5f5b6002811015611937575f6117978260066129b5565b90508482600281106117ab576117ab61298d565b602002015151836117bc835f612b45565b600c81106117cc576117cc61298d565b60200201528482600281106117e3576117e361298d565b602002015160200151838260016117fa9190612b45565b600c811061180a5761180a61298d565b60200201528382600281106118215761182161298d565b6020020151515183611834836002612b45565b600c81106118445761184461298d565b602002015283826002811061185b5761185b61298d565b6020020151516001602002015183611874836003612b45565b600c81106118845761188461298d565b602002015283826002811061189b5761189b61298d565b6020020151602001515f600281106118b5576118b561298d565b6020020151836118c6836004612b45565b600c81106118d6576118d661298d565b60200201528382600281106118ed576118ed61298d565b6020020151602001516001600281106119085761190861298d565b602002015183611919836005612b45565b600c81106119295761192961298d565b602002015250600101611782565b50611940611f5f565b5f6020826101808560086107d05a03fa9050808061195a57fe5b5080611979576040516324ccc79360e21b815260040160405180910390fd5b5051151598975050505050505050565b5f60ff8216601f81111561050757604051632cd44ac360e21b815260040160405180910390fd5b6119b8611dfa565b5f84815260056020908152604080832063ffffffff8088168552908352818420865190911684528252808320815160808101835281548184019081526001830154606083015281526002820180548451818702810187019095528085529194929385840193909290830182828015611a4d57602002820191905f5260205f20905b815481526020019060010190808311611a39575b5050509190925250508151519192505f911515905080611a71575081516020015115155b905080611b1a575f611a918787875f015188604001518960200151611c39565b905080611ab15760405163439cc0cd60e01b815260040160405180910390fd5b6040808601515f8981526005602090815283822063ffffffff808c1684529082528483208a5190911683528152929020815180518255830151600182015582820151805192939192611b099260028501920190611e24565b509050508460400151935050611b1e565b8192505b50509392505050565b604080518082019091525f80825260208201528151158015611b4b57506020820151155b15611b68575050604080518082019091525f808252602082015290565b6040518060400160405280835f015181526020015f516020612b595f395f51905f528460200151611b999190612b32565b611bb0905f516020612b595f395f51905f52612b1f565b905292915050565b919050565b5f80805f516020612b595f395f51905f5260035f516020612b595f395f51905f52865f516020612b595f395f51905f52888909090890505f611c2d827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f525f516020612b595f395f51905f52611c87565b91959194509092505050565b5f5f611c448461067f565b5f88815260046020908152604080832063ffffffff808c168552925290912054919250611c7b908590839085908a811690611d0016565b98975050505050505050565b5f5f611c91611f5f565b611c99611f7d565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280611cd657fe5b5082611cf55760405163d51edae360e01b815260040160405180910390fd5b505195945050505050565b5f83611d1f576040516329e7276760e11b815260040160405180910390fd5b83611d2b868585611d35565b1495945050505050565b5f83515f03611d455750816104f1565b60208451611d539190612b32565b15611d71576040516313717da960e21b815260040160405180910390fd5b8260205b85518111611dd257611d88600285612b32565b5f03611da957815f528086015160205260405f209150600284049350611dc0565b808601515f528160205260405f2091506002840493505b611dcb602082612b45565b9050611d75565b508215611df2576040516363df817160e01b815260040160405180910390fd5b949350505050565b604080516080810182525f91810182815260608201929092529081905b8152602001606081525090565b828054828255905f5260205f20908101928215611e5d579160200282015b82811115611e5d578251825591602001919060010190611e42565b50611e69929150611f9b565b5090565b60405180608001604052805f81526020015f8152602001611e1760405180604001604052805f81526020015f81525090565b60405180608001604052805f8152602001611eb8611e6d565b815260200160608152602001611edf60405180604001604052805f81526020015f81525090565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280611f33611faf565b8152602001611edf611faf565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b5b80821115611e69575f8155600101611f9c565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561200357612003611fcd565b60405290565b60405160a081016001600160401b038111828210171561200357612003611fcd565b604051606081016001600160401b038111828210171561200357612003611fcd565b604051608081016001600160401b038111828210171561200357612003611fcd565b604051601f8201601f191681016001600160401b038111828210171561209757612097611fcd565b604052919050565b80356001600160a01b0381168114611bb8575f5ffd5b803563ffffffff81168114611bb8575f5ffd5b5f604082840312156120d8575f5ffd5b6120e0611fe1565b90506120eb8261209f565b81526120f9602083016120b5565b602082015292915050565b5f60408284031215612114575f5ffd5b61211c611fe1565b823581526020928301359281019290925250919050565b5f82601f830112612142575f5ffd5b61214a611fe1565b80604084018581111561215b575f5ffd5b845b8181101561217557803584526020938401930161215d565b509095945050505050565b5f60808284031215612190575f5ffd5b612198611fe1565b90506121a48383612133565b81526120f98360408401612133565b5f6001600160401b038211156121cb576121cb611fcd565b5060051b60200190565b5f82601f8301126121e4575f5ffd5b81356121f76121f2826121b3565b61206f565b8082825260208201915060208360051b860101925085831115612218575f5ffd5b602085015b8381101561223557803583526020928301920161221d565b5095945050505050565b5f6060828403121561224f575f5ffd5b612257611fe1565b90506122638383612104565b815260408201356001600160401b0381111561227d575f5ffd5b612289848285016121d5565b60208301525092915050565b5f61012082840312156122a6575f5ffd5b6122ae612009565b90506122b9826120b5565b8152602082810135908201526122d28360408401612104565b60408201526122e48360808401612180565b60608201526101008201356001600160401b03811115612302575f5ffd5b8201601f81018413612312575f5ffd5b80356123206121f2826121b3565b8082825260208201915060208360051b850101925086831115612341575f5ffd5b602084015b838110156124515780356001600160401b03811115612363575f5ffd5b85016060818a03601f19011215612378575f5ffd5b61238061202b565b61238c602083016120b5565b815260408201356001600160401b038111156123a6575f5ffd5b82016020810190603f018b136123ba575f5ffd5b80356001600160401b038111156123d3576123d3611fcd565b6123e6601f8201601f191660200161206f565b8181528c60208385010111156123fa575f5ffd5b816020840160208301375f6020838301015280602085015250505060608201356001600160401b0381111561242d575f5ffd5b61243c8b60208386010161223f565b60408301525084525060209283019201612346565b5060808501525091949350505050565b5f5f5f60808486031215612473575f5ffd5b61247d85856120c8565b925060408401356001600160401b03811115612497575f5ffd5b6124a386828701612295565b92505060608401356001600160401b038111156124be575f5ffd5b8401601f810186136124ce575f5ffd5b80356124dc6121f2826121b3565b8082825260208201915060208360051b8501019250888311156124fd575f5ffd5b6020840193505b8284101561252e57833561ffff8116811461251d575f5ffd5b825260209384019390910190612504565b809450505050509250925092565b5f5f6060838503121561254d575f5ffd5b61255784846120c8565b915060408301356001600160401b03811115612571575f5ffd5b61257d85828601612295565b9150509250929050565b602080825282518282018190525f918401906040840190835b818110156121755783518352602093840193909201916001016125a0565b5f5f604083850312156125cf575f5ffd5b6125d8836120b5565b946020939093013593505050565b5f5f5f5f61012085870312156125fa575f5ffd5b8435935061260b8660208701612104565b925061261a8660608701612180565b91506126298660e08701612104565b905092959194509250565b5f5f60608385031215612645575f5ffd5b61264f84846120c8565b915061265d604084016120b5565b90509250929050565b5f5f5f60808486031215612678575f5ffd5b61268285856120c8565b9250612690604085016120b5565b929592945050506060919091013590565b5f8151808452602084019350602083015f5b828110156126d15781518652602095860195909101906001016126b3565b5093949350505050565b60208082528251805183830152015160408201525f6020830151606080840152611df260808401826126a1565b5f60208284031215612718575f5ffd5b81356001600160401b0381111561272d575f5ffd5b611df28482850161223f565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6040828403121561277e575f5ffd5b61050483836120c8565b5f60408284031215612798575f5ffd5b50919050565b5f5f5f5f60c085870312156127b1575f5ffd5b6127bb8686612788565b93506127c9604086016120b5565b925060608501356001600160401b038111156127e3575f5ffd5b850160a081880312156127f4575f5ffd5b6127fc61204d565b81358152602080830135908201526128178860408401612104565b604082015260808201356001600160401b03811115612834575f5ffd5b612840898285016121d5565b606083015250925061262990508660808701612788565b5f5f60208385031215612868575f5ffd5b82356001600160401b0381111561287d575f5ffd5b8301601f8101851361288d575f5ffd5b80356001600160401b038111156128a2575f5ffd5b8560208284010111156128b3575f5ffd5b6020919091019590945092505050565b5f5f5f608084860312156128d5575f5ffd5b6128df85856120c8565b925060408401356001600160401b038111156128f9575f5ffd5b61290586828701612295565b92505060608401356001600160401b03811115612920575f5ffd5b61292c868287016121d5565b9150509250925092565b80518252602081015160208301525f6040820151612961604085018280518252602090810151910152565b50606082015160a06080850152611df260a08501826126a1565b602081525f6105046020830184612936565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610507576105076129a1565b634e487b7160e01b5f52601260045260245ffd5b5f826129ee576129ee6129cc565b500490565b60ff60f81b8360f81b1681525f82518060208501600185015e5f92016001019182525092915050565b5f60208284031215612a2c575f5ffd5b6105048261209f565b5f60208284031215612a45575f5ffd5b610504826120b5565b6001600160a01b03612a5f8561209f565b16815263ffffffff612a73602086016120b5565b16602082015263ffffffff83166040820152608060608201525f6113996080830184612936565b60f884901b6001600160f81b0319168152818360018301375f910160010190815292915050565b80516020808301519190811015612798575f1960209190910360031b1b16919050565b63ffffffff8181168382160190811115610507576105076129a1565b5f60208284031215612b10575f5ffd5b815180151581146104f1575f5ffd5b81810381811115610507576105076129a1565b5f82612b4057612b406129cc565b500690565b80820180821115610507576105076129a156fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212207db5218ea602fe4055ee92b6fa3a433a57d363164f08f843d254f0ebb2345ab464736f6c634300081b0033", } // BN254CertificateVerifierABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/BN254CertificateVerifierStorage/binding.go b/pkg/bindings/BN254CertificateVerifierStorage/binding.go index 050365e1e1..932fa6e115 100644 --- a/pkg/bindings/BN254CertificateVerifierStorage/binding.go +++ b/pkg/bindings/BN254CertificateVerifierStorage/binding.go @@ -85,7 +85,7 @@ type OperatorSet struct { // BN254CertificateVerifierStorageMetaData contains all meta data concerning the BN254CertificateVerifierStorage contract. var BN254CertificateVerifierStorageMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"calculateCertificateDigest\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getNonsignerOperatorInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetOwner\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeWeights\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isNonsignerCached\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isReferenceTimestampSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestReferenceTimestamp\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxOperatorTableStaleness\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"operatorTableUpdater\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableUpdater\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"trySignatureVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"aggPubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"signatureValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateOperatorTable\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"operatorSetConfig\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificate\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"totalSignedStakeWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateNominal\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeNominalThresholds\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateProportion\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeProportionThresholds\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"MaxStalenessPeriodUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetOwnerUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"owner\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TableUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyTableUpdater\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReferenceTimestampDoesNotExist\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootDisabled\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TableUpdateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"VerificationFailed\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"calculateCertificateDigest\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getNonsignerOperatorInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetOwner\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeWeights\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isNonsignerCached\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isReferenceTimestampSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestReferenceTimestamp\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxOperatorTableStaleness\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"operatorTableUpdater\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableUpdater\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"trySignatureVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"aggPubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"signatureValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateOperatorTable\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"operatorSetConfig\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificate\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"totalSignedStakeWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateNominal\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeNominalThresholds\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateProportion\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeProportionThresholds\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"MaxStalenessPeriodUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetOwnerUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"owner\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TableUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NonSignerIndicesNotSorted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyTableUpdater\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReferenceTimestampDoesNotExist\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootDisabled\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TableUpdateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"VerificationFailed\",\"inputs\":[]}]", } // BN254CertificateVerifierStorageABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/BN254SignatureVerifier/binding.go b/pkg/bindings/BN254SignatureVerifier/binding.go index 66839737d5..8556b1c6e7 100644 --- a/pkg/bindings/BN254SignatureVerifier/binding.go +++ b/pkg/bindings/BN254SignatureVerifier/binding.go @@ -32,7 +32,7 @@ var ( // BN254SignatureVerifierMetaData contains all meta data concerning the BN254SignatureVerifier contract. var BN254SignatureVerifierMetaData = &bind.MetaData{ ABI: "[]", - Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212203fee8d90549925547f51d191ba75b10f6bc8e652d680d16331907acf5fc0f15b64736f6c634300081b0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122099890b68aab0bf243dce6fa1d9c78bbdb3bbd47fb6b3dbc51c4b9691de9707ef64736f6c634300081b0033", } // BN254SignatureVerifierABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/BackingEigen/binding.go b/pkg/bindings/BackingEigen/binding.go index 773e13f221..27a90463bf 100644 --- a/pkg/bindings/BackingEigen/binding.go +++ b/pkg/bindings/BackingEigen/binding.go @@ -38,7 +38,7 @@ type ERC20VotesUpgradeableCheckpoint struct { // BackingEigenMetaData contains all meta data concerning the BackingEigen contract. var BackingEigenMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_EIGEN\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"CLOCK_MODE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"EIGEN\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allowedFrom\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allowedTo\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"checkpoints\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"pos\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structERC20VotesUpgradeable.Checkpoint\",\"components\":[{\"name\":\"fromBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"votes\",\"type\":\"uint224\",\"internalType\":\"uint224\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"clock\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint48\",\"internalType\":\"uint48\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegate\",\"inputs\":[{\"name\":\"delegatee\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateBySig\",\"inputs\":[{\"name\":\"delegatee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegates\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"disableTransferRestrictions\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"eip712Domain\",\"inputs\":[],\"outputs\":[{\"name\":\"fields\",\"type\":\"bytes1\",\"internalType\":\"bytes1\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"version\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"extensions\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPastTotalSupply\",\"inputs\":[{\"name\":\"timepoint\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPastVotes\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"timepoint\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getVotes\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isMinter\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"nonces\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"numCheckpoints\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permit\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"deadline\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllowedFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"isAllowedFrom\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllowedTo\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"isAllowedTo\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setIsMinter\",\"inputs\":[{\"name\":\"minterAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newStatus\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferRestrictionsDisabledAfter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Backed\",\"inputs\":[],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegateChanged\",\"inputs\":[{\"name\":\"delegator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"fromDelegate\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"toDelegate\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegateVotesChanged\",\"inputs\":[{\"name\":\"delegate\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"previousBalance\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newBalance\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EIP712DomainChanged\",\"inputs\":[],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"IsMinterModified\",\"inputs\":[{\"name\":\"minterAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newStatus\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetAllowedFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"isAllowedFrom\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetAllowedTo\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"isAllowedTo\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TransferRestrictionsDisabled\",\"inputs\":[],\"anonymous\":false}]", - Bin: "0x60a060405234801561000f575f5ffd5b50604051612d11380380612d1183398101604081905261002e91610105565b6001600160a01b038116608052610043610049565b50610132565b5f54610100900460ff16156100b45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610103575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f60208284031215610115575f5ffd5b81516001600160a01b038116811461012b575f5ffd5b9392505050565b608051612bb261015f5f395f81816105e901528181610dae01528181610dd90152610e040152612bb25ff3fe608060405234801561000f575f5ffd5b506004361061023f575f3560e01c80637ecebe0011610135578063aa271e1a116100b4578063dd62ed3e11610079578063dd62ed3e14610579578063eb415f451461058c578063f1127ed814610594578063f2fde38b146105d1578063fdc371ce146105e4575f5ffd5b8063aa271e1a1461050a578063b8c255941461052d578063c3cda52014610540578063c4d66de814610553578063d505accf14610566575f5ffd5b806395d89b41116100fa57806395d89b41146104bf5780639ab24eb0146104c75780639aec4bae146104da578063a457c2d7146104e4578063a9059cbb146104f7575f5ffd5b80637ecebe001461044e57806384b0196e146104615780638da5cb5b1461047c5780638e539e8c1461048d57806391ddadf4146104a0575f5ffd5b806340c10f19116101c157806366eb399f1161018657806366eb399f146103c05780636fcfff45146103d357806370a08231146103fb578063715018a61461042357806378aa33ba1461042b575f5ffd5b806340c10f191461031a57806342966c681461032d5780634bf5d7e914610340578063587cde1e1461036a5780635c19a95c146103ad575f5ffd5b806323b872dd1161020757806323b872dd146102ca578063313ce567146102dd5780633644e515146102ec57806339509351146102f45780633a46b1a814610307575f5ffd5b80630455e6941461024357806306fdde031461027b578063095ea7b31461029057806318160ddd146102a35780631ffacdef146102b5575b5f5ffd5b610266610251366004612682565b6101316020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61028361060b565b60405161027291906126c9565b61026661029e3660046126db565b61069b565b6067545b604051908152602001610272565b6102c86102c3366004612703565b6106b4565b005b6102666102d836600461273c565b6106ca565b60405160128152602001610272565b6102a76106ed565b6102666103023660046126db565b6106fb565b6102a76103153660046126db565b61071c565b6102c86103283660046126db565b6107a4565b6102c861033b366004612776565b61081f565b60408051808201909152600e81526d06d6f64653d74696d657374616d760941b6020820152610283565b610395610378366004612682565b6001600160a01b039081165f90815260fe60205260409020541690565b6040516001600160a01b039091168152602001610272565b6102c86103bb366004612682565b61082c565b6102c86103ce366004612703565b610836565b6103e66103e1366004612682565b6108ae565b60405163ffffffff9091168152602001610272565b6102a7610409366004612682565b6001600160a01b03165f9081526065602052604090205490565b6102c86108cf565b610266610439366004612682565b6101326020525f908152604090205460ff1681565b6102a761045c366004612682565b6108e2565b6104696108ff565b604051610272979695949392919061278d565b6033546001600160a01b0316610395565b6102a761049b366004612776565b610998565b6104a86109ff565b60405165ffffffffffff9091168152602001610272565b610283610a09565b6102a76104d5366004612682565b610a18565b6102a76101305481565b6102666104f23660046126db565b610a95565b6102666105053660046126db565b610b0f565b610266610518366004612682565b6101336020525f908152604090205460ff1681565b6102c861053b366004612703565b610b1c565b6102c861054e366004612833565b610b2e565b6102c8610561366004612682565b610c63565b6102c8610574366004612887565b610ea5565b6102a76105873660046128ed565b611006565b6102c8611030565b6105a76105a236600461291e565b6110fe565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610272565b6102c86105df366004612682565b61117f565b6103957f000000000000000000000000000000000000000000000000000000000000000081565b60606068805461061a90612950565b80601f016020809104026020016040519081016040528092919081815260200182805461064690612950565b80156106915780601f1061066857610100808354040283529160200191610691565b820191905f5260205f20905b81548152906001019060200180831161067457829003601f168201915b5050505050905090565b5f336106a88185856111f5565b60019150505b92915050565b6106bc611318565b6106c68282611372565b5050565b5f336106d78582856113d2565b6106e285858561144a565b506001949350505050565b5f6106f6611604565b905090565b5f336106a881858561070d8383611006565b6107179190612996565b6111f5565b5f6107256109ff565b65ffffffffffff16821061077c5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b60448201526064015b60405180910390fd5b6001600160a01b0383165f90815260ff6020526040902061079d908361160d565b9392505050565b335f908152610133602052604090205460ff166108155760405162461bcd60e51b815260206004820152602960248201527f4261636b696e67456967656e2e6d696e743a2063616c6c6572206973206e6f7460448201526810309036b4b73a32b960b91b6064820152608401610773565b6106c682826116ee565b6108293382611779565b50565b6108293382611792565b61083e611318565b816001600160a01b03167f0124b12503bddc2616c0f3f54fd23ed283f5ef0c1483a75409e42612176b8bde8260405161087b911515815260200190565b60405180910390a26001600160a01b03919091165f90815261013360205260409020805460ff1916911515919091179055565b6001600160a01b0381165f90815260ff60205260408120546106ae9061180b565b6108d7611318565b6108e05f611873565b565b6001600160a01b0381165f90815260cb60205260408120546106ae565b5f6060805f5f5f60606097545f5f1b14801561091b5750609854155b61095f5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610773565b6109676118c4565b61096f6118d3565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f6109a16109ff565b65ffffffffffff1682106109f35760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610773565b6106ae6101008361160d565b5f6106f6426118e2565b60606069805461061a90612950565b6001600160a01b0381165f90815260ff60205260408120548015610a83576001600160a01b0383165f90815260ff6020526040902080545f198301908110610a6257610a626129bd565b5f9182526020909120015464010000000090046001600160e01b0316610a85565b5f5b6001600160e01b03169392505050565b5f3381610aa28286611006565b905083811015610b025760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610773565b6106e282868684036111f5565b5f336106a881858561144a565b610b24611318565b6106c68282611948565b83421115610b7e5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610773565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f90610bf790610bef9060a001604051602081830303815290604052805190602001206119a0565b8585856119cc565b9050610c02816119f2565b8614610c505760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610773565b610c5a8188611792565b50505050505050565b5f54610100900460ff1615808015610c8157505f54600160ff909116105b80610c9a5750303b158015610c9a57505f5460ff166001145b610cfd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610773565b5f805460ff191660011790558015610d1e575f805461ff0019166101001790555b610d26611a19565b610d736040518060400160405280600d81526020016c2130b1b5b4b7339022b4b3b2b760991b815250604051806040016040528060068152602001653122a4a3a2a760d11b815250611a47565b610d7c82611873565b610da3604051806040016040528060068152602001653122a4a3a2a760d11b815250611a77565b5f1961013055610dd47f00000000000000000000000000000000000000000000000000000000000000006001611372565b610dff7f00000000000000000000000000000000000000000000000000000000000000006001611948565b610e357f00000000000000000000000000000000000000000000000000000000000000006b05686877afb5cbccbf7340006116ee565b6040517fb7c23c1e2e36f298e9879a88ecfcd07e28fbb439bcfa9c78ca1363ca14370d26905f90a180156106c6575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b83421115610ef55760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610773565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610f238c6119f2565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610f7d826119a0565b90505f610f8c828787876119cc565b9050896001600160a01b0316816001600160a01b031614610fef5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610773565b610ffa8a8a8a6111f5565b50505050505050505050565b6001600160a01b039182165f90815260666020908152604080832093909416825291909152205490565b611038611318565b5f1961013054146110ce5760405162461bcd60e51b815260206004820152605460248201527f4261636b696e67456967656e2e64697361626c655472616e736665725265737460448201527f72696374696f6e733a207472616e73666572207265737472696374696f6e7320606482015273185c9948185b1c9958591e48191a5cd8589b195960621b608482015260a401610773565b5f6101308190556040517f2b18986d3ba809db2f13a5d7bf17f60d357b37d9cbb55dd71cbbac8dc4060f649190a1565b604080518082019091525f80825260208201526001600160a01b0383165f90815260ff60205260409020805463ffffffff8416908110611140576111406129bd565b5f9182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b611187611318565b6001600160a01b0381166111ec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610773565b61082981611873565b6001600160a01b0383166112575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610773565b6001600160a01b0382166112b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610773565b6001600160a01b038381165f8181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6033546001600160a01b031633146108e05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610773565b6001600160a01b0382165f8181526101316020908152604091829020805460ff191685151590811790915591519182527fcf20b1ecb604b0e8888d579c64e8a3b10e590d45c1c2dddb393bed284362227191015b60405180910390a25050565b5f6113dd8484611006565b90505f19811461144457818110156114375760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610773565b61144484848484036111f5565b50505050565b6001600160a01b0383166114ae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610773565b6001600160a01b0382166115105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610773565b61151b838383611ac0565b6001600160a01b0383165f90815260656020526040902054818110156115925760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610773565b6001600160a01b038085165f8181526065602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115f19086815260200190565b60405180910390a3611444848484611b9c565b5f6106f6611bcd565b81545f9081816005811115611664575f61162684611c40565b61163090856129d1565b5f88815260209020909150869082015463ffffffff16111561165457809150611662565b61165f816001612996565b92505b505b808210156116af575f6116778383611d24565b5f88815260209020909150869082015463ffffffff16111561169b578091506116a9565b6116a6816001612996565b92505b50611664565b80156116d9575f8681526020902081015f19015464010000000090046001600160e01b03166116db565b5f5b6001600160e01b03169695505050505050565b6116f88282611d3e565b6067546001600160e01b03101561176a5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610773565b611444610100611e0f83611e1a565b6117838282611f86565b6114446101006120c983611e1a565b6001600160a01b038281165f81815260fe6020818152604080842080546065845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46114448284836120d4565b5f63ffffffff82111561186f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610773565b5090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60606099805461061a90612950565b6060609a805461061a90612950565b5f65ffffffffffff82111561186f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610773565b6001600160a01b0382165f8181526101326020908152604091829020805460ff191685151590811790915591519182527f72a561d1af7409467dae4f1e9fc52590a9335a1dda17727e2b6aa8c4db35109b91016113c6565b5f6106ae6119ac611604565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f6119db8787878761220e565b915091506119e8816122cb565b5095945050505050565b6001600160a01b0381165f90815260cb602052604090208054600181018255905b50919050565b5f54610100900460ff16611a3f5760405162461bcd60e51b8152600401610773906129e4565b6108e0612414565b5f54610100900460ff16611a6d5760405162461bcd60e51b8152600401610773906129e4565b6106c68282612443565b5f54610100900460ff16611a9d5760405162461bcd60e51b8152600401610773906129e4565b61082981604051806040016040528060018152602001603160f81b815250612482565b610130544211611b97576001600160a01b0383165f908152610131602052604090205460ff1680611b0957506001600160a01b0382165f908152610132602052604090205460ff165b80611b1b57506001600160a01b038316155b611b975760405162461bcd60e51b815260206004820152604160248201527f4261636b696e67456967656e2e5f6265666f7265546f6b656e5472616e73666560448201527f723a2066726f6d206f7220746f206d7573742062652077686974656c697374656064820152601960fa1b608482015260a401610773565b505050565b6001600160a01b038381165f90815260fe6020526040808220548584168352912054611b97929182169116836120d4565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611bf76124cf565b611bff612527565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f815f03611c4f57505f919050565b5f6001611c5b84612557565b901c6001901b90506001818481611c7457611c74612a2f565b048201901c90506001818481611c8c57611c8c612a2f565b048201901c90506001818481611ca457611ca4612a2f565b048201901c90506001818481611cbc57611cbc612a2f565b048201901c90506001818481611cd457611cd4612a2f565b048201901c90506001818481611cec57611cec612a2f565b048201901c90506001818481611d0457611d04612a2f565b048201901c905061079d81828581611d1e57611d1e612a2f565b046125ea565b5f611d326002848418612a43565b61079d90848416612996565b6001600160a01b038216611d945760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610773565b611d9f5f8383611ac0565b8060675f828254611db09190612996565b90915550506001600160a01b0382165f818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36106c65f8383611b9c565b5f61079d8284612996565b82545f908190818115611e64575f8781526020902082015f190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611e78565b604080518082019091525f80825260208201525b905080602001516001600160e01b03169350611e9884868863ffffffff16565b92505f82118015611ec05750611eac6109ff565b65ffffffffffff16815f015163ffffffff16145b15611f0357611ece836125ff565b5f8881526020902083015f190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611f7c565b866040518060400160405280611f27611f1a6109ff565b65ffffffffffff1661180b565b63ffffffff168152602001611f3b866125ff565b6001600160e01b0390811690915282546001810184555f938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6001600160a01b038216611fe65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610773565b611ff1825f83611ac0565b6001600160a01b0382165f90815260656020526040902054818110156120645760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610773565b6001600160a01b0383165f8181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611b97835f84611b9c565b5f61079d82846129d1565b816001600160a01b0316836001600160a01b0316141580156120f557505f81115b15611b97576001600160a01b03831615612182576001600160a01b0383165f90815260ff60205260408120819061212f906120c985611e1a565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612177929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611b97576001600160a01b0382165f90815260ff6020526040812081906121b790611e0f85611e1a565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516121ff929190918252602082015260400190565b60405180910390a25050505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561224357505f905060036122c2565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612294573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166122bc575f600192509250506122c2565b91505f90505b94509492505050565b5f8160048111156122de576122de612a62565b036122e65750565b60018160048111156122fa576122fa612a62565b036123475760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610773565b600281600481111561235b5761235b612a62565b036123a85760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610773565b60038160048111156123bc576123bc612a62565b036108295760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610773565b5f54610100900460ff1661243a5760405162461bcd60e51b8152600401610773906129e4565b6108e033611873565b5f54610100900460ff166124695760405162461bcd60e51b8152600401610773906129e4565b60686124758382612ac1565b506069611b978282612ac1565b5f54610100900460ff166124a85760405162461bcd60e51b8152600401610773906129e4565b60996124b48382612ac1565b50609a6124c18282612ac1565b50505f609781905560985550565b5f5f6124d96118c4565b8051909150156124f0578051602090910120919050565b60975480156124ff5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f5f6125316118d3565b805190915015612548578051602090910120919050565b60985480156124ff5792915050565b5f80608083901c1561256b57608092831c92015b604083901c1561257d57604092831c92015b602083901c1561258f57602092831c92015b601083901c156125a157601092831c92015b600883901c156125b357600892831c92015b600483901c156125c557600492831c92015b600283901c156125d757600292831c92015b600183901c156106ae5760010192915050565b5f8183106125f8578161079d565b5090919050565b5f6001600160e01b0382111561186f5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610773565b80356001600160a01b038116811461267d575f5ffd5b919050565b5f60208284031215612692575f5ffd5b61079d82612667565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61079d602083018461269b565b5f5f604083850312156126ec575f5ffd5b6126f583612667565b946020939093013593505050565b5f5f60408385031215612714575f5ffd5b61271d83612667565b915060208301358015158114612731575f5ffd5b809150509250929050565b5f5f5f6060848603121561274e575f5ffd5b61275784612667565b925061276560208501612667565b929592945050506040919091013590565b5f60208284031215612786575f5ffd5b5035919050565b60ff60f81b8816815260e060208201525f6127ab60e083018961269b565b82810360408401526127bd818961269b565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b818110156128125783518352602093840193909201916001016127f4565b50909b9a5050505050505050505050565b803560ff8116811461267d575f5ffd5b5f5f5f5f5f5f60c08789031215612848575f5ffd5b61285187612667565b9550602087013594506040870135935061286d60608801612823565b9598949750929560808101359460a0909101359350915050565b5f5f5f5f5f5f5f60e0888a03121561289d575f5ffd5b6128a688612667565b96506128b460208901612667565b955060408801359450606088013593506128d060808901612823565b9699959850939692959460a0840135945060c09093013592915050565b5f5f604083850312156128fe575f5ffd5b61290783612667565b915061291560208401612667565b90509250929050565b5f5f6040838503121561292f575f5ffd5b61293883612667565b9150602083013563ffffffff81168114612731575f5ffd5b600181811c9082168061296457607f821691505b602082108103611a1357634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156106ae576106ae612982565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b818103818111156106ae576106ae612982565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b5f52601260045260245ffd5b5f82612a5d57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52602160045260245ffd5b601f821115611b9757805f5260205f20601f840160051c81016020851015612a9b5750805b601f840160051c820191505b81811015612aba575f8155600101612aa7565b5050505050565b815167ffffffffffffffff811115612adb57612adb6129a9565b612aef81612ae98454612950565b84612a76565b6020601f821160018114612b21575f8315612b0a5750848201515b5f19600385901b1c1916600184901b178455612aba565b5f84815260208120601f198516915b82811015612b505787850151825560209485019460019092019101612b30565b5084821015612b6d57868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea2646970667358221220e867b134dc261d7025b320d04b24d156f209a884537e24f3f733872669a3444264736f6c634300081b0033", + Bin: "0x60a060405234801561000f575f5ffd5b50604051612d11380380612d1183398101604081905261002e91610105565b6001600160a01b038116608052610043610049565b50610132565b5f54610100900460ff16156100b45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614610103575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f60208284031215610115575f5ffd5b81516001600160a01b038116811461012b575f5ffd5b9392505050565b608051612bb261015f5f395f81816105e901528181610dae01528181610dd90152610e040152612bb25ff3fe608060405234801561000f575f5ffd5b506004361061023f575f3560e01c80637ecebe0011610135578063aa271e1a116100b4578063dd62ed3e11610079578063dd62ed3e14610579578063eb415f451461058c578063f1127ed814610594578063f2fde38b146105d1578063fdc371ce146105e4575f5ffd5b8063aa271e1a1461050a578063b8c255941461052d578063c3cda52014610540578063c4d66de814610553578063d505accf14610566575f5ffd5b806395d89b41116100fa57806395d89b41146104bf5780639ab24eb0146104c75780639aec4bae146104da578063a457c2d7146104e4578063a9059cbb146104f7575f5ffd5b80637ecebe001461044e57806384b0196e146104615780638da5cb5b1461047c5780638e539e8c1461048d57806391ddadf4146104a0575f5ffd5b806340c10f19116101c157806366eb399f1161018657806366eb399f146103c05780636fcfff45146103d357806370a08231146103fb578063715018a61461042357806378aa33ba1461042b575f5ffd5b806340c10f191461031a57806342966c681461032d5780634bf5d7e914610340578063587cde1e1461036a5780635c19a95c146103ad575f5ffd5b806323b872dd1161020757806323b872dd146102ca578063313ce567146102dd5780633644e515146102ec57806339509351146102f45780633a46b1a814610307575f5ffd5b80630455e6941461024357806306fdde031461027b578063095ea7b31461029057806318160ddd146102a35780631ffacdef146102b5575b5f5ffd5b610266610251366004612682565b6101316020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61028361060b565b60405161027291906126c9565b61026661029e3660046126db565b61069b565b6067545b604051908152602001610272565b6102c86102c3366004612703565b6106b4565b005b6102666102d836600461273c565b6106ca565b60405160128152602001610272565b6102a76106ed565b6102666103023660046126db565b6106fb565b6102a76103153660046126db565b61071c565b6102c86103283660046126db565b6107a4565b6102c861033b366004612776565b61081f565b60408051808201909152600e81526d06d6f64653d74696d657374616d760941b6020820152610283565b610395610378366004612682565b6001600160a01b039081165f90815260fe60205260409020541690565b6040516001600160a01b039091168152602001610272565b6102c86103bb366004612682565b61082c565b6102c86103ce366004612703565b610836565b6103e66103e1366004612682565b6108ae565b60405163ffffffff9091168152602001610272565b6102a7610409366004612682565b6001600160a01b03165f9081526065602052604090205490565b6102c86108cf565b610266610439366004612682565b6101326020525f908152604090205460ff1681565b6102a761045c366004612682565b6108e2565b6104696108ff565b604051610272979695949392919061278d565b6033546001600160a01b0316610395565b6102a761049b366004612776565b610998565b6104a86109ff565b60405165ffffffffffff9091168152602001610272565b610283610a09565b6102a76104d5366004612682565b610a18565b6102a76101305481565b6102666104f23660046126db565b610a95565b6102666105053660046126db565b610b0f565b610266610518366004612682565b6101336020525f908152604090205460ff1681565b6102c861053b366004612703565b610b1c565b6102c861054e366004612833565b610b2e565b6102c8610561366004612682565b610c63565b6102c8610574366004612887565b610ea5565b6102a76105873660046128ed565b611006565b6102c8611030565b6105a76105a236600461291e565b6110fe565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610272565b6102c86105df366004612682565b61117f565b6103957f000000000000000000000000000000000000000000000000000000000000000081565b60606068805461061a90612950565b80601f016020809104026020016040519081016040528092919081815260200182805461064690612950565b80156106915780601f1061066857610100808354040283529160200191610691565b820191905f5260205f20905b81548152906001019060200180831161067457829003601f168201915b5050505050905090565b5f336106a88185856111f5565b60019150505b92915050565b6106bc611318565b6106c68282611372565b5050565b5f336106d78582856113d2565b6106e285858561144a565b506001949350505050565b5f6106f6611604565b905090565b5f336106a881858561070d8383611006565b6107179190612996565b6111f5565b5f6107256109ff565b65ffffffffffff16821061077c5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b60448201526064015b60405180910390fd5b6001600160a01b0383165f90815260ff6020526040902061079d908361160d565b9392505050565b335f908152610133602052604090205460ff166108155760405162461bcd60e51b815260206004820152602960248201527f4261636b696e67456967656e2e6d696e743a2063616c6c6572206973206e6f7460448201526810309036b4b73a32b960b91b6064820152608401610773565b6106c682826116ee565b6108293382611779565b50565b6108293382611792565b61083e611318565b816001600160a01b03167f0124b12503bddc2616c0f3f54fd23ed283f5ef0c1483a75409e42612176b8bde8260405161087b911515815260200190565b60405180910390a26001600160a01b03919091165f90815261013360205260409020805460ff1916911515919091179055565b6001600160a01b0381165f90815260ff60205260408120546106ae9061180b565b6108d7611318565b6108e05f611873565b565b6001600160a01b0381165f90815260cb60205260408120546106ae565b5f6060805f5f5f60606097545f5f1b14801561091b5750609854155b61095f5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610773565b6109676118c4565b61096f6118d3565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f6109a16109ff565b65ffffffffffff1682106109f35760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610773565b6106ae6101008361160d565b5f6106f6426118e2565b60606069805461061a90612950565b6001600160a01b0381165f90815260ff60205260408120548015610a83576001600160a01b0383165f90815260ff6020526040902080545f198301908110610a6257610a626129bd565b5f9182526020909120015464010000000090046001600160e01b0316610a85565b5f5b6001600160e01b03169392505050565b5f3381610aa28286611006565b905083811015610b025760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610773565b6106e282868684036111f5565b5f336106a881858561144a565b610b24611318565b6106c68282611948565b83421115610b7e5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610773565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f90610bf790610bef9060a001604051602081830303815290604052805190602001206119a0565b8585856119cc565b9050610c02816119f2565b8614610c505760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610773565b610c5a8188611792565b50505050505050565b5f54610100900460ff1615808015610c8157505f54600160ff909116105b80610c9a5750303b158015610c9a57505f5460ff166001145b610cfd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610773565b5f805460ff191660011790558015610d1e575f805461ff0019166101001790555b610d26611a19565b610d736040518060400160405280600d81526020016c2130b1b5b4b7339022b4b3b2b760991b815250604051806040016040528060068152602001653122a4a3a2a760d11b815250611a47565b610d7c82611873565b610da3604051806040016040528060068152602001653122a4a3a2a760d11b815250611a77565b5f1961013055610dd47f00000000000000000000000000000000000000000000000000000000000000006001611372565b610dff7f00000000000000000000000000000000000000000000000000000000000000006001611948565b610e357f00000000000000000000000000000000000000000000000000000000000000006b05686877afb5cbccbf7340006116ee565b6040517fb7c23c1e2e36f298e9879a88ecfcd07e28fbb439bcfa9c78ca1363ca14370d26905f90a180156106c6575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b83421115610ef55760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610773565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610f238c6119f2565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610f7d826119a0565b90505f610f8c828787876119cc565b9050896001600160a01b0316816001600160a01b031614610fef5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610773565b610ffa8a8a8a6111f5565b50505050505050505050565b6001600160a01b039182165f90815260666020908152604080832093909416825291909152205490565b611038611318565b5f1961013054146110ce5760405162461bcd60e51b815260206004820152605460248201527f4261636b696e67456967656e2e64697361626c655472616e736665725265737460448201527f72696374696f6e733a207472616e73666572207265737472696374696f6e7320606482015273185c9948185b1c9958591e48191a5cd8589b195960621b608482015260a401610773565b5f6101308190556040517f2b18986d3ba809db2f13a5d7bf17f60d357b37d9cbb55dd71cbbac8dc4060f649190a1565b604080518082019091525f80825260208201526001600160a01b0383165f90815260ff60205260409020805463ffffffff8416908110611140576111406129bd565b5f9182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b611187611318565b6001600160a01b0381166111ec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610773565b61082981611873565b6001600160a01b0383166112575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610773565b6001600160a01b0382166112b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610773565b6001600160a01b038381165f8181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6033546001600160a01b031633146108e05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610773565b6001600160a01b0382165f8181526101316020908152604091829020805460ff191685151590811790915591519182527fcf20b1ecb604b0e8888d579c64e8a3b10e590d45c1c2dddb393bed284362227191015b60405180910390a25050565b5f6113dd8484611006565b90505f19811461144457818110156114375760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610773565b61144484848484036111f5565b50505050565b6001600160a01b0383166114ae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610773565b6001600160a01b0382166115105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610773565b61151b838383611ac0565b6001600160a01b0383165f90815260656020526040902054818110156115925760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610773565b6001600160a01b038085165f8181526065602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115f19086815260200190565b60405180910390a3611444848484611b9c565b5f6106f6611bcd565b81545f9081816005811115611664575f61162684611c40565b61163090856129d1565b5f88815260209020909150869082015463ffffffff16111561165457809150611662565b61165f816001612996565b92505b505b808210156116af575f6116778383611d24565b5f88815260209020909150869082015463ffffffff16111561169b578091506116a9565b6116a6816001612996565b92505b50611664565b80156116d9575f8681526020902081015f19015464010000000090046001600160e01b03166116db565b5f5b6001600160e01b03169695505050505050565b6116f88282611d3e565b6067546001600160e01b03101561176a5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610773565b611444610100611e0f83611e1a565b6117838282611f86565b6114446101006120c983611e1a565b6001600160a01b038281165f81815260fe6020818152604080842080546065845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46114448284836120d4565b5f63ffffffff82111561186f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610773565b5090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60606099805461061a90612950565b6060609a805461061a90612950565b5f65ffffffffffff82111561186f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610773565b6001600160a01b0382165f8181526101326020908152604091829020805460ff191685151590811790915591519182527f72a561d1af7409467dae4f1e9fc52590a9335a1dda17727e2b6aa8c4db35109b91016113c6565b5f6106ae6119ac611604565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f6119db8787878761220e565b915091506119e8816122cb565b5095945050505050565b6001600160a01b0381165f90815260cb602052604090208054600181018255905b50919050565b5f54610100900460ff16611a3f5760405162461bcd60e51b8152600401610773906129e4565b6108e0612414565b5f54610100900460ff16611a6d5760405162461bcd60e51b8152600401610773906129e4565b6106c68282612443565b5f54610100900460ff16611a9d5760405162461bcd60e51b8152600401610773906129e4565b61082981604051806040016040528060018152602001603160f81b815250612482565b610130544211611b97576001600160a01b0383165f908152610131602052604090205460ff1680611b0957506001600160a01b0382165f908152610132602052604090205460ff165b80611b1b57506001600160a01b038316155b611b975760405162461bcd60e51b815260206004820152604160248201527f4261636b696e67456967656e2e5f6265666f7265546f6b656e5472616e73666560448201527f723a2066726f6d206f7220746f206d7573742062652077686974656c697374656064820152601960fa1b608482015260a401610773565b505050565b6001600160a01b038381165f90815260fe6020526040808220548584168352912054611b97929182169116836120d4565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611bf76124cf565b611bff612527565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f815f03611c4f57505f919050565b5f6001611c5b84612557565b901c6001901b90506001818481611c7457611c74612a2f565b048201901c90506001818481611c8c57611c8c612a2f565b048201901c90506001818481611ca457611ca4612a2f565b048201901c90506001818481611cbc57611cbc612a2f565b048201901c90506001818481611cd457611cd4612a2f565b048201901c90506001818481611cec57611cec612a2f565b048201901c90506001818481611d0457611d04612a2f565b048201901c905061079d81828581611d1e57611d1e612a2f565b046125ea565b5f611d326002848418612a43565b61079d90848416612996565b6001600160a01b038216611d945760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610773565b611d9f5f8383611ac0565b8060675f828254611db09190612996565b90915550506001600160a01b0382165f818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36106c65f8383611b9c565b5f61079d8284612996565b82545f908190818115611e64575f8781526020902082015f190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611e78565b604080518082019091525f80825260208201525b905080602001516001600160e01b03169350611e9884868863ffffffff16565b92505f82118015611ec05750611eac6109ff565b65ffffffffffff16815f015163ffffffff16145b15611f0357611ece836125ff565b5f8881526020902083015f190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611f7c565b866040518060400160405280611f27611f1a6109ff565b65ffffffffffff1661180b565b63ffffffff168152602001611f3b866125ff565b6001600160e01b0390811690915282546001810184555f938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6001600160a01b038216611fe65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610773565b611ff1825f83611ac0565b6001600160a01b0382165f90815260656020526040902054818110156120645760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610773565b6001600160a01b0383165f8181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611b97835f84611b9c565b5f61079d82846129d1565b816001600160a01b0316836001600160a01b0316141580156120f557505f81115b15611b97576001600160a01b03831615612182576001600160a01b0383165f90815260ff60205260408120819061212f906120c985611e1a565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612177929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611b97576001600160a01b0382165f90815260ff6020526040812081906121b790611e0f85611e1a565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516121ff929190918252602082015260400190565b60405180910390a25050505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561224357505f905060036122c2565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612294573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166122bc575f600192509250506122c2565b91505f90505b94509492505050565b5f8160048111156122de576122de612a62565b036122e65750565b60018160048111156122fa576122fa612a62565b036123475760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610773565b600281600481111561235b5761235b612a62565b036123a85760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610773565b60038160048111156123bc576123bc612a62565b036108295760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610773565b5f54610100900460ff1661243a5760405162461bcd60e51b8152600401610773906129e4565b6108e033611873565b5f54610100900460ff166124695760405162461bcd60e51b8152600401610773906129e4565b60686124758382612ac1565b506069611b978282612ac1565b5f54610100900460ff166124a85760405162461bcd60e51b8152600401610773906129e4565b60996124b48382612ac1565b50609a6124c18282612ac1565b50505f609781905560985550565b5f5f6124d96118c4565b8051909150156124f0578051602090910120919050565b60975480156124ff5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f5f6125316118d3565b805190915015612548578051602090910120919050565b60985480156124ff5792915050565b5f80608083901c1561256b57608092831c92015b604083901c1561257d57604092831c92015b602083901c1561258f57602092831c92015b601083901c156125a157601092831c92015b600883901c156125b357600892831c92015b600483901c156125c557600492831c92015b600283901c156125d757600292831c92015b600183901c156106ae5760010192915050565b5f8183106125f8578161079d565b5090919050565b5f6001600160e01b0382111561186f5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610773565b80356001600160a01b038116811461267d575f5ffd5b919050565b5f60208284031215612692575f5ffd5b61079d82612667565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61079d602083018461269b565b5f5f604083850312156126ec575f5ffd5b6126f583612667565b946020939093013593505050565b5f5f60408385031215612714575f5ffd5b61271d83612667565b915060208301358015158114612731575f5ffd5b809150509250929050565b5f5f5f6060848603121561274e575f5ffd5b61275784612667565b925061276560208501612667565b929592945050506040919091013590565b5f60208284031215612786575f5ffd5b5035919050565b60ff60f81b8816815260e060208201525f6127ab60e083018961269b565b82810360408401526127bd818961269b565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b818110156128125783518352602093840193909201916001016127f4565b50909b9a5050505050505050505050565b803560ff8116811461267d575f5ffd5b5f5f5f5f5f5f60c08789031215612848575f5ffd5b61285187612667565b9550602087013594506040870135935061286d60608801612823565b9598949750929560808101359460a0909101359350915050565b5f5f5f5f5f5f5f60e0888a03121561289d575f5ffd5b6128a688612667565b96506128b460208901612667565b955060408801359450606088013593506128d060808901612823565b9699959850939692959460a0840135945060c09093013592915050565b5f5f604083850312156128fe575f5ffd5b61290783612667565b915061291560208401612667565b90509250929050565b5f5f6040838503121561292f575f5ffd5b61293883612667565b9150602083013563ffffffff81168114612731575f5ffd5b600181811c9082168061296457607f821691505b602082108103611a1357634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156106ae576106ae612982565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b818103818111156106ae576106ae612982565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b5f52601260045260245ffd5b5f82612a5d57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52602160045260245ffd5b601f821115611b9757805f5260205f20601f840160051c81016020851015612a9b5750805b601f840160051c820191505b81811015612aba575f8155600101612aa7565b5050505050565b815167ffffffffffffffff811115612adb57612adb6129a9565b612aef81612ae98454612950565b84612a76565b6020601f821160018114612b21575f8315612b0a5750848201515b5f19600385901b1c1916600184901b178455612aba565b5f84815260208120601f198516915b82811015612b505787850151825560209485019460019092019101612b30565b5084821015612b6d57868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea2646970667358221220e63487e41f434068c326685f38f3b42cae05dc5f424d3b54b53460214543d28764736f6c634300081b0033", } // BackingEigenABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/BeaconChainProofs/binding.go b/pkg/bindings/BeaconChainProofs/binding.go index 631fc23cfe..22805f8d05 100644 --- a/pkg/bindings/BeaconChainProofs/binding.go +++ b/pkg/bindings/BeaconChainProofs/binding.go @@ -32,7 +32,7 @@ var ( // BeaconChainProofsMetaData contains all meta data concerning the BeaconChainProofs contract. var BeaconChainProofsMetaData = &bind.MetaData{ ABI: "[{\"type\":\"error\",\"name\":\"InvalidProof\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidValidatorFieldsLength\",\"inputs\":[]}]", - Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122020d83e13753370dac5055c3c667f28c3e7ddce873fa372108cef3df984fec73664736f6c634300081b0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220cfd005b54745fb0d52f5e3c6372cc0e327e7723423384b9d650e2e00dfe5f5cc64736f6c634300081b0033", } // BeaconChainProofsABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/CrossChainRegistry/binding.go b/pkg/bindings/CrossChainRegistry/binding.go index 839bae196a..8723e01821 100644 --- a/pkg/bindings/CrossChainRegistry/binding.go +++ b/pkg/bindings/CrossChainRegistry/binding.go @@ -44,7 +44,7 @@ type OperatorSet struct { // CrossChainRegistryMetaData contains all meta data concerning the CrossChainRegistry contract. var CrossChainRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_allocationManager\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"},{\"name\":\"_keyRegistrar\",\"type\":\"address\",\"internalType\":\"contractIKeyRegistrar\"},{\"name\":\"_permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"addChainIDsToWhitelist\",\"inputs\":[{\"name\":\"chainIDs\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"operatorTableUpdaters\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"allocationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateOperatorTableBytes\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createGenerationReservation\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operatorTableCalculator\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableCalculator\"},{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getActiveGenerationReservationCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getActiveGenerationReservations\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getActiveGenerationReservationsByRange\",\"inputs\":[{\"name\":\"startIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"endIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorTableCalculator\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableCalculator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSupportedChains\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTableUpdateCadence\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"hasActiveGenerationReservation\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialTableUpdateCadence\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"keyRegistrar\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIKeyRegistrar\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeChainIDsFromWhitelist\",\"inputs\":[{\"name\":\"chainIDs\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeGenerationReservation\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorSetConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorTableCalculator\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operatorTableCalculator\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableCalculator\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setTableUpdateCadence\",\"inputs\":[{\"name\":\"tableUpdateCadence\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"ChainIDAddedToWhitelist\",\"inputs\":[{\"name\":\"chainID\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"operatorTableUpdater\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ChainIDRemovedFromWhitelist\",\"inputs\":[{\"name\":\"chainID\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"GenerationReservationCreated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"GenerationReservationRemoved\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetConfigRemoved\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetConfigSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"config\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorTableCalculatorRemoved\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorTableCalculatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operatorTableCalculator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIOperatorTableCalculator\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TableUpdateCadenceSet\",\"inputs\":[{\"name\":\"tableUpdateCadence\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ChainIDAlreadyWhitelisted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ChainIDNotWhitelisted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyChainIDsArray\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GenerationReservationAlreadyExists\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GenerationReservationDoesNotExist\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidChainId\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEndIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidRange\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidStalenessPeriod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTableUpdateCadence\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"KeyTypeNotSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]}]", - Bin: "0x610120604052348015610010575f5ffd5b5060405161281438038061281483398101604081905261002f916101c1565b80838686856001600160a01b03811661005b576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805291821660a052811660c0521660e05261008181610098565b610100525061008e6100de565b5050505050610319565b5f5f829050601f815111156100cb578260405163305a27a960e01b81526004016100c291906102be565b60405180910390fd5b80516100d6826102f3565b179392505050565b5f54610100900460ff16156101455760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100c2565b5f5460ff90811614610194575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101aa575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f60a086880312156101d5575f5ffd5b85516101e081610196565b60208701519095506101f181610196565b604087015190945061020281610196565b606087015190935061021381610196565b60808701519092506001600160401b0381111561022e575f5ffd5b8601601f8101881361023e575f5ffd5b80516001600160401b03811115610257576102576101ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610285576102856101ad565b6040528181528282016020018a101561029c575f5ffd5b8160208401602083015e5f602083830101528093505050509295509295909350565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610313575f198160200360031b1b821691505b50919050565b60805160a05160c05160e0516101005161247f6103955f395f610b7201525f81816102e601526117d701525f818161028701528181610a29015261112201525f81816103ee015281816107920152818161092201528181610c05015261107901525f81816103800152818161170b0152611a9b015261247f5ff3fe608060405234801561000f575f5ffd5b50600436106101d1575f3560e01c8063715018a6116100fe578063ca8aa7c71161009e578063d9a6729e1161006e578063d9a6729e1461044b578063dfbd9dfd1461045e578063f2fde38b14610471578063fabc1cbc14610484575f5ffd5b8063ca8aa7c7146103e9578063d09b978b14610410578063d504491114610425578063d6db9e2514610438575f5ffd5b80638da5cb5b116100d95780638da5cb5b146103a2578063ac505f4b146103b3578063b186a60e146103cb578063c4bffe2b146103d3575f5ffd5b8063715018a61461036057806375e4b53914610368578063886f11951461037b575f5ffd5b80633ec45c7e11610174578063595c6a6711610144578063595c6a67146103105780635ac86ab7146103185780635c975abb1461033b5780636c55a37f1461034d575f5ffd5b80633ec45c7e1461028257806341ee6d0e146102c15780634657e26a146102e157806354fd4d5014610308575f5ffd5b80631ca9142a116101af5780631ca9142a1461021057806321fa7fdc14610223578063277e1e621461024c57806336b200de1461025f575f5ffd5b806304e98be3146101d55780630f19aaef146101ea578063136439dd146101fd575b5f5ffd5b6101e86101e3366004611d72565b610497565b005b6101e86101f8366004611e0a565b6105db565b6101e861020b366004611e46565b610701565b6101e861021e366004611e73565b61073b565b610236610231366004611f4c565b61086b565b6040516102439190611f84565b60405180910390f35b6101e861025a366004611f92565b6108cb565b61027261026d366004611f4c565b610a09565b6040519015158152602001610243565b6102a97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610243565b6102d46102cf366004611fc5565b610a24565b604051610243919061200d565b6102a97f000000000000000000000000000000000000000000000000000000000000000081565b6102d4610b6b565b6101e8610b9b565b61027261032636600461201f565b606654600160ff9092169190911b9081161490565b6066545b604051908152602001610243565b6101e861035b366004611fc5565b610baf565b6101e8610dd2565b6102a9610376366004611f4c565b610de3565b6102a97f000000000000000000000000000000000000000000000000000000000000000081565b6033546001600160a01b03166102a9565b609e5460405163ffffffff9091168152602001610243565b61033f610e0f565b6103db610e1a565b60405161024392919061203f565b6102a97f000000000000000000000000000000000000000000000000000000000000000081565b610418610f30565b60405161024391906120c8565b6101e8610433366004612115565b611023565b6101e8610446366004612159565b611269565b610418610459366004612172565b61127d565b6101e861046c366004612192565b6113c7565b6101e861047f3660046121d1565b61146d565b6101e8610492366004611e46565b6114e3565b61049f611550565b60036104aa816115aa565b8382146104ca5760405163512509d360e11b815260040160405180910390fd5b5f5b848110156105d3575f8686838181106104e7576104e76121ec565b905060200201359050805f0361051057604051633d23e4d160e11b815260040160405180910390fd5b61054481868685818110610526576105266121ec565b905060200201602081019061053b91906121d1565b609b91906115d5565b610561576040516324bf631b60e11b815260040160405180910390fd5b7f7a0a76d85b582b17996dd7371a407aa7a79b870db8539247fba315c7b6beff6281868685818110610595576105956121ec565b90506020020160208101906105aa91906121d1565b604080519283526001600160a01b0390911660208301520160405180910390a1506001016104cc565b505050505050565b5f54610100900460ff16158080156105f957505f54600160ff909116105b806106125750303b15801561061257505f5460ff166001145b61067a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561069b575f805461ff0019166101001790555b6106a4846115f4565b6106ad83611645565b6106b6826116b9565b80156106fb575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6107096116f6565b606654818116811461072e5760405163c61dca5d60e01b815260040160405180910390fd5b610737826116b9565b5050565b6001610746816115aa565b61075360208401846121d1565b61075c81611799565b6107795760405163932d94f760e01b815260040160405180910390fd5b6040516304c1b8eb60e31b815284906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc758906107c7908490600401612231565b602060405180830381865afa1580156107e2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610806919061223f565b61082357604051631fb1705560e21b815260040160405180910390fd5b8461083661026d36839003830183611f4c565b61085357604051634d2baea960e11b815260040160405180910390fd5b6105d361086536889003880188611f4c565b86611843565b604080518082019091525f8082526020820152609a5f61088a846118bd565b815260208082019290925260409081015f208151808301909252546001600160a01b0381168252600160a01b900463ffffffff169181019190915292915050565b60026108d6816115aa565b6108e360208401846121d1565b6108ec81611799565b6109095760405163932d94f760e01b815260040160405180910390fd5b6040516304c1b8eb60e31b815284906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc75890610957908490600401612231565b602060405180830381865afa158015610972573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610996919061223f565b6109b357604051631fb1705560e21b815260040160405180910390fd5b846109c661026d36839003830183611f4c565b6109e357604051634d2baea960e11b815260040160405180910390fd5b6105d36109f536889003880188611f4c565b610a0436889003880188611f4c565b611920565b5f610a1e610a16836118bd565b6097906119e9565b92915050565b6060817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637cffe48c846040518263ffffffff1660e01b8152600401610a739190612231565b602060405180830381865afa158015610a8e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab2919061225e565b610ac461023136869003860186611f4c565b610ad661037636879003870187611f4c565b6001600160a01b03166341ee6d0e866040518263ffffffff1660e01b8152600401610b019190612231565b5f60405180830381865afa158015610b1b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b42919081019061227c565b604051602001610b559493929190612324565b6040516020818303038152906040529050919050565b6060610b967f0000000000000000000000000000000000000000000000000000000000000000611a00565b905090565b610ba36116f6565b610bad5f196116b9565b565b5f610bb9816115aa565b610bc660208301836121d1565b610bcf81611799565b610bec5760405163932d94f760e01b815260040160405180910390fd5b6040516304c1b8eb60e31b815283906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc75890610c3a908490600401612231565b602060405180830381865afa158015610c55573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c79919061223f565b610c9657604051631fb1705560e21b815260040160405180910390fd5b83610ca961026d36839003830183611f4c565b610cc657604051634d2baea960e11b815260040160405180910390fd5b5f610cde610cd936889003880188611f4c565b6118bd565b5f818152609960205260409081902080546001600160a01b0319169055519091507fd7811913efd5d98fc7ea0d1fdd022b3d31987815360842d05b1d1cf55578d16a90610d2c908890612231565b60405180910390a15f818152609a60205260409081902080546001600160c01b0319169055517f210a1118a869246162804e2a7f21ef808ebd93f4be7ed512014fe29a7a8be02e90610d7f908890612231565b60405180910390a1610d92609782611a3d565b507f4ffdfdd59e9e1e3c301608788f78dd458e61cb8c045ca92b62a7b484c80824fb86604051610dc29190612231565b60405180910390a1505050505050565b610dda611550565b610bad5f6115f4565b5f60995f610df0846118bd565b815260208101919091526040015f20546001600160a01b031692915050565b5f610b966097611a48565b6060805f610e28609b611a51565b90505f8167ffffffffffffffff811115610e4457610e44611ea9565b604051908082528060200260200182016040528015610e6d578160200160208202803683370190505b5090505f8267ffffffffffffffff811115610e8a57610e8a611ea9565b604051908082528060200260200182016040528015610eb3578160200160208202803683370190505b5090505f5b83811015610f25575f80610ecd609b84611a5b565b9150915081858481518110610ee457610ee46121ec565b60200260200101818152505080848481518110610f0357610f036121ec565b6001600160a01b03909216602092830291909101909101525050600101610eb8565b509094909350915050565b60605f610f3d6097611a48565b90505f8167ffffffffffffffff811115610f5957610f59611ea9565b604051908082528060200260200182016040528015610f9d57816020015b604080518082019091525f8082526020820152815260200190600190039081610f775790505b5090505f5b8281101561101c575f610fb6609783611a78565b90505f610ff282604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b905080848481518110611007576110076121ec565b60209081029190910101525050600101610fa2565b5092915050565b5f61102d816115aa565b61103a60208501856121d1565b61104381611799565b6110605760405163932d94f760e01b815260040160405180910390fd5b6040516304c1b8eb60e31b815285906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc758906110ae908490600401612231565b602060405180830381865afa1580156110c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ed919061223f565b61110a57604051631fb1705560e21b815260040160405180910390fd5b5f604051631f3ff92360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cffe48c90611157908a90600401612231565b602060405180830381865afa158015611172573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611196919061225e565b60028111156111a7576111a7612310565b036111c55760405163e57cacbd60e01b815260040160405180910390fd5b6111e26111da610cd936899003890189611f4c565b609790611a83565b6111ff57604051631883461560e01b815260040160405180910390fd5b7f4fb6efec7dd60036ce3a7af8d5c48425019daa0fb61eb471a966a7ac2c6fa6a68660405161122e9190612231565b60405180910390a161124861086536889003880188611f4c565b6105d361125a36889003880188611f4c565b610a0436879003870187611f4c565b611271611550565b61127a81611645565b50565b6060818311156112a05760405163561ce9bb60e01b815260040160405180910390fd5b6112aa6097611a48565b8211156112ca576040516302da361360e61b815260040160405180910390fd5b5f6112d58484612390565b90505f8167ffffffffffffffff8111156112f1576112f1611ea9565b60405190808252806020026020018201604052801561133557816020015b604080518082019091525f808252602082015281526020019060019003908161130f5790505b5090505f5b828110156113be575f61135861135083896123a3565b609790611a78565b90505f61139482604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b9050808484815181106113a9576113a96121ec565b6020908102919091010152505060010161133a565b50949350505050565b6113cf611550565b60036113da816115aa565b5f5b828110156106fb575f8484838181106113f7576113f76121ec565b90506020020135905061141481609b611a8e90919063ffffffff16565b6114315760405163b3f92ba160e01b815260040160405180910390fd5b6040518181527f6824d36084ecf2cd819b137cb5d837cc6e73afce1e0e348c9fdecaa81d0341e59060200160405180910390a1506001016113dc565b611475611550565b6001600160a01b0381166114da5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610671565b61127a816115f4565b6114eb611a99565b606654801982198116146115125760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b6033546001600160a01b03163314610bad5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610671565b606654600160ff83161b9081160361127a5760405163840a48d560e01b815260040160405180910390fd5b5f6115ea84846001600160a01b038516611b4a565b90505b9392505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8163ffffffff161161166b576040516316d98e1b60e31b815260040160405180910390fd5b609e805463ffffffff191663ffffffff83169081179091556040519081527f4fbcd0cca70015b33db8af4aa4f2bd6fd6c1efa9460b8e2333f252c1467a63279060200160405180910390a150565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611758573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061177c919061223f565b610bad57604051631d77d47760e21b815260040160405180910390fd5b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af115801561181f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1e919061223f565b8060995f611850856118bd565b81526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f7f7ccafd92d20fdb39dee184a0dce002a9da420ed0def461f2a027abc9b3f6df82826040516118b19291906123b6565b60405180910390a15050565b5f815f0151826020015163ffffffff1660405160200161190892919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b604051602081830303815290604052610a1e906123dc565b602081015163ffffffff1615806119475750609e54602082015163ffffffff918216911610155b61196457604051632e46483160e11b815260040160405180910390fd5b80609a5f611971856118bd565b815260208082019290925260409081015f2083518154949093015163ffffffff16600160a01b026001600160c01b03199094166001600160a01b0390931692909217929092179055517f3147846ee526009000671c20380b856a633345691300f82585f90034715cf0e2906118b190849084906123ff565b5f81815260018301602052604081205415156115ed565b60605f611a0c83611b66565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f6115ed8383611b8d565b5f610a1e825490565b5f610a1e82611c70565b5f808080611a698686611c7a565b909450925050505b9250929050565b5f6115ed8383611ca3565b5f6115ed8383611cc9565b5f6115ed8383611d15565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b19919061241a565b6001600160a01b0316336001600160a01b031614610bad5760405163794821ff60e01b815260040160405180910390fd5b5f82815260028401602052604081208290556115ea8484611a83565b5f60ff8216601f811115610a1e57604051632cd44ac360e21b815260040160405180910390fd5b5f8181526001830160205260408120548015611c67575f611baf600183612390565b85549091505f90611bc290600190612390565b9050818114611c21575f865f018281548110611be057611be06121ec565b905f5260205f200154905080875f018481548110611c0057611c006121ec565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080611c3257611c32612435565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610a1e565b5f915050610a1e565b5f610a1e82611a48565b5f8080611c878585611a78565b5f81815260029690960160205260409095205494959350505050565b5f825f018281548110611cb857611cb86121ec565b905f5260205f200154905092915050565b5f818152600183016020526040812054611d0e57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610a1e565b505f610a1e565b5f81815260028301602052604081208190556115ed8383611a3d565b5f5f83601f840112611d41575f5ffd5b50813567ffffffffffffffff811115611d58575f5ffd5b6020830191508360208260051b8501011115611a71575f5ffd5b5f5f5f5f60408587031215611d85575f5ffd5b843567ffffffffffffffff811115611d9b575f5ffd5b611da787828801611d31565b909550935050602085013567ffffffffffffffff811115611dc6575f5ffd5b611dd287828801611d31565b95989497509550505050565b6001600160a01b038116811461127a575f5ffd5b803563ffffffff81168114611e05575f5ffd5b919050565b5f5f5f60608486031215611e1c575f5ffd5b8335611e2781611dde565b9250611e3560208501611df2565b929592945050506040919091013590565b5f60208284031215611e56575f5ffd5b5035919050565b5f60408284031215611e6d575f5ffd5b50919050565b5f5f60608385031215611e84575f5ffd5b611e8e8484611e5d565b91506040830135611e9e81611dde565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611ee657611ee6611ea9565b604052919050565b5f60408284031215611efe575f5ffd5b6040805190810167ffffffffffffffff81118282101715611f2157611f21611ea9565b6040529050808235611f3281611dde565b8152611f4060208401611df2565b60208201525092915050565b5f60408284031215611f5c575f5ffd5b6115ed8383611eee565b80516001600160a01b0316825260209081015163ffffffff16910152565b60408101610a1e8284611f66565b5f5f60808385031215611fa3575f5ffd5b611fad8484611e5d565b9150611fbc8460408501611e5d565b90509250929050565b5f60408284031215611fd5575f5ffd5b6115ed8383611e5d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6115ed6020830184611fdf565b5f6020828403121561202f575f5ffd5b813560ff811681146115ed575f5ffd5b604080825283519082018190525f9060208501906060840190835b8181101561207857835183526020938401939092019160010161205a565b5050838103602080860191909152855180835291810192508501905f5b818110156120bc5782516001600160a01b0316845260209384019390920191600101612095565b50919695505050505050565b602080825282518282018190525f918401906040840190835b8181101561210a576120f4838551611f66565b60209390930192604092909201916001016120e1565b509095945050505050565b5f5f5f60a08486031215612127575f5ffd5b6121318585611e5d565b9250604084013561214181611dde565b91506121508560608601611e5d565b90509250925092565b5f60208284031215612169575f5ffd5b6115ed82611df2565b5f5f60408385031215612183575f5ffd5b50508035926020909101359150565b5f5f602083850312156121a3575f5ffd5b823567ffffffffffffffff8111156121b9575f5ffd5b6121c585828601611d31565b90969095509350505050565b5f602082840312156121e1575f5ffd5b81356115ed81611dde565b634e487b7160e01b5f52603260045260245ffd5b803561220b81611dde565b6001600160a01b0316825263ffffffff61222760208301611df2565b1660208301525050565b60408101610a1e8284612200565b5f6020828403121561224f575f5ffd5b815180151581146115ed575f5ffd5b5f6020828403121561226e575f5ffd5b8151600381106115ed575f5ffd5b5f6020828403121561228c575f5ffd5b815167ffffffffffffffff8111156122a2575f5ffd5b8201601f810184136122b2575f5ffd5b805167ffffffffffffffff8111156122cc576122cc611ea9565b6122df601f8201601f1916602001611ebd565b8181528560208385010111156122f3575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b634e487b7160e01b5f52602160045260245ffd5b61232e8186612200565b5f6003851061234b57634e487b7160e01b5f52602160045260245ffd5b84604083015261235e6060830185611f66565b60c060a083015261237260c0830184611fdf565b9695505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a1e57610a1e61237c565b80820180821115610a1e57610a1e61237c565b606081016123c48285611f66565b6001600160a01b039290921660409190910152919050565b80516020808301519190811015611e6d575f1960209190910360031b1b16919050565b6080810161240d8285611f66565b6115ed6040830184611f66565b5f6020828403121561242a575f5ffd5b81516115ed81611dde565b634e487b7160e01b5f52603160045260245ffdfea264697066735822122045d58b100615017ffcbe230c455a2cbe7927043f819992ed2d0b2151fb3e627764736f6c634300081b0033", + Bin: "0x610120604052348015610010575f5ffd5b5060405161281438038061281483398101604081905261002f916101c1565b80838686856001600160a01b03811661005b576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805291821660a052811660c0521660e05261008181610098565b610100525061008e6100de565b5050505050610319565b5f5f829050601f815111156100cb578260405163305a27a960e01b81526004016100c291906102be565b60405180910390fd5b80516100d6826102f3565b179392505050565b5f54610100900460ff16156101455760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100c2565b5f5460ff90811614610194575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101aa575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f60a086880312156101d5575f5ffd5b85516101e081610196565b60208701519095506101f181610196565b604087015190945061020281610196565b606087015190935061021381610196565b60808701519092506001600160401b0381111561022e575f5ffd5b8601601f8101881361023e575f5ffd5b80516001600160401b03811115610257576102576101ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610285576102856101ad565b6040528181528282016020018a101561029c575f5ffd5b8160208401602083015e5f602083830101528093505050509295509295909350565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610313575f198160200360031b1b821691505b50919050565b60805160a05160c05160e0516101005161247f6103955f395f610b7201525f81816102e601526117d701525f818161028701528181610a29015261112201525f81816103ee015281816107920152818161092201528181610c05015261107901525f81816103800152818161170b0152611a9b015261247f5ff3fe608060405234801561000f575f5ffd5b50600436106101d1575f3560e01c8063715018a6116100fe578063ca8aa7c71161009e578063d9a6729e1161006e578063d9a6729e1461044b578063dfbd9dfd1461045e578063f2fde38b14610471578063fabc1cbc14610484575f5ffd5b8063ca8aa7c7146103e9578063d09b978b14610410578063d504491114610425578063d6db9e2514610438575f5ffd5b80638da5cb5b116100d95780638da5cb5b146103a2578063ac505f4b146103b3578063b186a60e146103cb578063c4bffe2b146103d3575f5ffd5b8063715018a61461036057806375e4b53914610368578063886f11951461037b575f5ffd5b80633ec45c7e11610174578063595c6a6711610144578063595c6a67146103105780635ac86ab7146103185780635c975abb1461033b5780636c55a37f1461034d575f5ffd5b80633ec45c7e1461028257806341ee6d0e146102c15780634657e26a146102e157806354fd4d5014610308575f5ffd5b80631ca9142a116101af5780631ca9142a1461021057806321fa7fdc14610223578063277e1e621461024c57806336b200de1461025f575f5ffd5b806304e98be3146101d55780630f19aaef146101ea578063136439dd146101fd575b5f5ffd5b6101e86101e3366004611d72565b610497565b005b6101e86101f8366004611e0a565b6105db565b6101e861020b366004611e46565b610701565b6101e861021e366004611e73565b61073b565b610236610231366004611f4c565b61086b565b6040516102439190611f84565b60405180910390f35b6101e861025a366004611f92565b6108cb565b61027261026d366004611f4c565b610a09565b6040519015158152602001610243565b6102a97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610243565b6102d46102cf366004611fc5565b610a24565b604051610243919061200d565b6102a97f000000000000000000000000000000000000000000000000000000000000000081565b6102d4610b6b565b6101e8610b9b565b61027261032636600461201f565b606654600160ff9092169190911b9081161490565b6066545b604051908152602001610243565b6101e861035b366004611fc5565b610baf565b6101e8610dd2565b6102a9610376366004611f4c565b610de3565b6102a97f000000000000000000000000000000000000000000000000000000000000000081565b6033546001600160a01b03166102a9565b609e5460405163ffffffff9091168152602001610243565b61033f610e0f565b6103db610e1a565b60405161024392919061203f565b6102a97f000000000000000000000000000000000000000000000000000000000000000081565b610418610f30565b60405161024391906120c8565b6101e8610433366004612115565b611023565b6101e8610446366004612159565b611269565b610418610459366004612172565b61127d565b6101e861046c366004612192565b6113c7565b6101e861047f3660046121d1565b61146d565b6101e8610492366004611e46565b6114e3565b61049f611550565b60036104aa816115aa565b8382146104ca5760405163512509d360e11b815260040160405180910390fd5b5f5b848110156105d3575f8686838181106104e7576104e76121ec565b905060200201359050805f0361051057604051633d23e4d160e11b815260040160405180910390fd5b61054481868685818110610526576105266121ec565b905060200201602081019061053b91906121d1565b609b91906115d5565b610561576040516324bf631b60e11b815260040160405180910390fd5b7f7a0a76d85b582b17996dd7371a407aa7a79b870db8539247fba315c7b6beff6281868685818110610595576105956121ec565b90506020020160208101906105aa91906121d1565b604080519283526001600160a01b0390911660208301520160405180910390a1506001016104cc565b505050505050565b5f54610100900460ff16158080156105f957505f54600160ff909116105b806106125750303b15801561061257505f5460ff166001145b61067a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561069b575f805461ff0019166101001790555b6106a4846115f4565b6106ad83611645565b6106b6826116b9565b80156106fb575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6107096116f6565b606654818116811461072e5760405163c61dca5d60e01b815260040160405180910390fd5b610737826116b9565b5050565b6001610746816115aa565b61075360208401846121d1565b61075c81611799565b6107795760405163932d94f760e01b815260040160405180910390fd5b6040516304c1b8eb60e31b815284906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc758906107c7908490600401612231565b602060405180830381865afa1580156107e2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610806919061223f565b61082357604051631fb1705560e21b815260040160405180910390fd5b8461083661026d36839003830183611f4c565b61085357604051634d2baea960e11b815260040160405180910390fd5b6105d361086536889003880188611f4c565b86611843565b604080518082019091525f8082526020820152609a5f61088a846118bd565b815260208082019290925260409081015f208151808301909252546001600160a01b0381168252600160a01b900463ffffffff169181019190915292915050565b60026108d6816115aa565b6108e360208401846121d1565b6108ec81611799565b6109095760405163932d94f760e01b815260040160405180910390fd5b6040516304c1b8eb60e31b815284906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc75890610957908490600401612231565b602060405180830381865afa158015610972573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610996919061223f565b6109b357604051631fb1705560e21b815260040160405180910390fd5b846109c661026d36839003830183611f4c565b6109e357604051634d2baea960e11b815260040160405180910390fd5b6105d36109f536889003880188611f4c565b610a0436889003880188611f4c565b611920565b5f610a1e610a16836118bd565b6097906119e9565b92915050565b6060817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637cffe48c846040518263ffffffff1660e01b8152600401610a739190612231565b602060405180830381865afa158015610a8e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab2919061225e565b610ac461023136869003860186611f4c565b610ad661037636879003870187611f4c565b6001600160a01b03166341ee6d0e866040518263ffffffff1660e01b8152600401610b019190612231565b5f60405180830381865afa158015610b1b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b42919081019061227c565b604051602001610b559493929190612324565b6040516020818303038152906040529050919050565b6060610b967f0000000000000000000000000000000000000000000000000000000000000000611a00565b905090565b610ba36116f6565b610bad5f196116b9565b565b5f610bb9816115aa565b610bc660208301836121d1565b610bcf81611799565b610bec5760405163932d94f760e01b815260040160405180910390fd5b6040516304c1b8eb60e31b815283906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc75890610c3a908490600401612231565b602060405180830381865afa158015610c55573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c79919061223f565b610c9657604051631fb1705560e21b815260040160405180910390fd5b83610ca961026d36839003830183611f4c565b610cc657604051634d2baea960e11b815260040160405180910390fd5b5f610cde610cd936889003880188611f4c565b6118bd565b5f818152609960205260409081902080546001600160a01b0319169055519091507fd7811913efd5d98fc7ea0d1fdd022b3d31987815360842d05b1d1cf55578d16a90610d2c908890612231565b60405180910390a15f818152609a60205260409081902080546001600160c01b0319169055517f210a1118a869246162804e2a7f21ef808ebd93f4be7ed512014fe29a7a8be02e90610d7f908890612231565b60405180910390a1610d92609782611a3d565b507f4ffdfdd59e9e1e3c301608788f78dd458e61cb8c045ca92b62a7b484c80824fb86604051610dc29190612231565b60405180910390a1505050505050565b610dda611550565b610bad5f6115f4565b5f60995f610df0846118bd565b815260208101919091526040015f20546001600160a01b031692915050565b5f610b966097611a48565b6060805f610e28609b611a51565b90505f8167ffffffffffffffff811115610e4457610e44611ea9565b604051908082528060200260200182016040528015610e6d578160200160208202803683370190505b5090505f8267ffffffffffffffff811115610e8a57610e8a611ea9565b604051908082528060200260200182016040528015610eb3578160200160208202803683370190505b5090505f5b83811015610f25575f80610ecd609b84611a5b565b9150915081858481518110610ee457610ee46121ec565b60200260200101818152505080848481518110610f0357610f036121ec565b6001600160a01b03909216602092830291909101909101525050600101610eb8565b509094909350915050565b60605f610f3d6097611a48565b90505f8167ffffffffffffffff811115610f5957610f59611ea9565b604051908082528060200260200182016040528015610f9d57816020015b604080518082019091525f8082526020820152815260200190600190039081610f775790505b5090505f5b8281101561101c575f610fb6609783611a78565b90505f610ff282604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b905080848481518110611007576110076121ec565b60209081029190910101525050600101610fa2565b5092915050565b5f61102d816115aa565b61103a60208501856121d1565b61104381611799565b6110605760405163932d94f760e01b815260040160405180910390fd5b6040516304c1b8eb60e31b815285906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc758906110ae908490600401612231565b602060405180830381865afa1580156110c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ed919061223f565b61110a57604051631fb1705560e21b815260040160405180910390fd5b5f604051631f3ff92360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cffe48c90611157908a90600401612231565b602060405180830381865afa158015611172573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611196919061225e565b60028111156111a7576111a7612310565b036111c55760405163e57cacbd60e01b815260040160405180910390fd5b6111e26111da610cd936899003890189611f4c565b609790611a83565b6111ff57604051631883461560e01b815260040160405180910390fd5b7f4fb6efec7dd60036ce3a7af8d5c48425019daa0fb61eb471a966a7ac2c6fa6a68660405161122e9190612231565b60405180910390a161124861086536889003880188611f4c565b6105d361125a36889003880188611f4c565b610a0436879003870187611f4c565b611271611550565b61127a81611645565b50565b6060818311156112a05760405163561ce9bb60e01b815260040160405180910390fd5b6112aa6097611a48565b8211156112ca576040516302da361360e61b815260040160405180910390fd5b5f6112d58484612390565b90505f8167ffffffffffffffff8111156112f1576112f1611ea9565b60405190808252806020026020018201604052801561133557816020015b604080518082019091525f808252602082015281526020019060019003908161130f5790505b5090505f5b828110156113be575f61135861135083896123a3565b609790611a78565b90505f61139482604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b9050808484815181106113a9576113a96121ec565b6020908102919091010152505060010161133a565b50949350505050565b6113cf611550565b60036113da816115aa565b5f5b828110156106fb575f8484838181106113f7576113f76121ec565b90506020020135905061141481609b611a8e90919063ffffffff16565b6114315760405163b3f92ba160e01b815260040160405180910390fd5b6040518181527f6824d36084ecf2cd819b137cb5d837cc6e73afce1e0e348c9fdecaa81d0341e59060200160405180910390a1506001016113dc565b611475611550565b6001600160a01b0381166114da5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610671565b61127a816115f4565b6114eb611a99565b606654801982198116146115125760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b6033546001600160a01b03163314610bad5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610671565b606654600160ff83161b9081160361127a5760405163840a48d560e01b815260040160405180910390fd5b5f6115ea84846001600160a01b038516611b4a565b90505b9392505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8163ffffffff161161166b576040516316d98e1b60e31b815260040160405180910390fd5b609e805463ffffffff191663ffffffff83169081179091556040519081527f4fbcd0cca70015b33db8af4aa4f2bd6fd6c1efa9460b8e2333f252c1467a63279060200160405180910390a150565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611758573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061177c919061223f565b610bad57604051631d77d47760e21b815260040160405180910390fd5b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af115801561181f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1e919061223f565b8060995f611850856118bd565b81526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f7f7ccafd92d20fdb39dee184a0dce002a9da420ed0def461f2a027abc9b3f6df82826040516118b19291906123b6565b60405180910390a15050565b5f815f0151826020015163ffffffff1660405160200161190892919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b604051602081830303815290604052610a1e906123dc565b602081015163ffffffff1615806119475750609e54602082015163ffffffff918216911610155b61196457604051632e46483160e11b815260040160405180910390fd5b80609a5f611971856118bd565b815260208082019290925260409081015f2083518154949093015163ffffffff16600160a01b026001600160c01b03199094166001600160a01b0390931692909217929092179055517f3147846ee526009000671c20380b856a633345691300f82585f90034715cf0e2906118b190849084906123ff565b5f81815260018301602052604081205415156115ed565b60605f611a0c83611b66565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f6115ed8383611b8d565b5f610a1e825490565b5f610a1e82611c70565b5f808080611a698686611c7a565b909450925050505b9250929050565b5f6115ed8383611ca3565b5f6115ed8383611cc9565b5f6115ed8383611d15565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b19919061241a565b6001600160a01b0316336001600160a01b031614610bad5760405163794821ff60e01b815260040160405180910390fd5b5f82815260028401602052604081208290556115ea8484611a83565b5f60ff8216601f811115610a1e57604051632cd44ac360e21b815260040160405180910390fd5b5f8181526001830160205260408120548015611c67575f611baf600183612390565b85549091505f90611bc290600190612390565b9050818114611c21575f865f018281548110611be057611be06121ec565b905f5260205f200154905080875f018481548110611c0057611c006121ec565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080611c3257611c32612435565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610a1e565b5f915050610a1e565b5f610a1e82611a48565b5f8080611c878585611a78565b5f81815260029690960160205260409095205494959350505050565b5f825f018281548110611cb857611cb86121ec565b905f5260205f200154905092915050565b5f818152600183016020526040812054611d0e57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610a1e565b505f610a1e565b5f81815260028301602052604081208190556115ed8383611a3d565b5f5f83601f840112611d41575f5ffd5b50813567ffffffffffffffff811115611d58575f5ffd5b6020830191508360208260051b8501011115611a71575f5ffd5b5f5f5f5f60408587031215611d85575f5ffd5b843567ffffffffffffffff811115611d9b575f5ffd5b611da787828801611d31565b909550935050602085013567ffffffffffffffff811115611dc6575f5ffd5b611dd287828801611d31565b95989497509550505050565b6001600160a01b038116811461127a575f5ffd5b803563ffffffff81168114611e05575f5ffd5b919050565b5f5f5f60608486031215611e1c575f5ffd5b8335611e2781611dde565b9250611e3560208501611df2565b929592945050506040919091013590565b5f60208284031215611e56575f5ffd5b5035919050565b5f60408284031215611e6d575f5ffd5b50919050565b5f5f60608385031215611e84575f5ffd5b611e8e8484611e5d565b91506040830135611e9e81611dde565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611ee657611ee6611ea9565b604052919050565b5f60408284031215611efe575f5ffd5b6040805190810167ffffffffffffffff81118282101715611f2157611f21611ea9565b6040529050808235611f3281611dde565b8152611f4060208401611df2565b60208201525092915050565b5f60408284031215611f5c575f5ffd5b6115ed8383611eee565b80516001600160a01b0316825260209081015163ffffffff16910152565b60408101610a1e8284611f66565b5f5f60808385031215611fa3575f5ffd5b611fad8484611e5d565b9150611fbc8460408501611e5d565b90509250929050565b5f60408284031215611fd5575f5ffd5b6115ed8383611e5d565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6115ed6020830184611fdf565b5f6020828403121561202f575f5ffd5b813560ff811681146115ed575f5ffd5b604080825283519082018190525f9060208501906060840190835b8181101561207857835183526020938401939092019160010161205a565b5050838103602080860191909152855180835291810192508501905f5b818110156120bc5782516001600160a01b0316845260209384019390920191600101612095565b50919695505050505050565b602080825282518282018190525f918401906040840190835b8181101561210a576120f4838551611f66565b60209390930192604092909201916001016120e1565b509095945050505050565b5f5f5f60a08486031215612127575f5ffd5b6121318585611e5d565b9250604084013561214181611dde565b91506121508560608601611e5d565b90509250925092565b5f60208284031215612169575f5ffd5b6115ed82611df2565b5f5f60408385031215612183575f5ffd5b50508035926020909101359150565b5f5f602083850312156121a3575f5ffd5b823567ffffffffffffffff8111156121b9575f5ffd5b6121c585828601611d31565b90969095509350505050565b5f602082840312156121e1575f5ffd5b81356115ed81611dde565b634e487b7160e01b5f52603260045260245ffd5b803561220b81611dde565b6001600160a01b0316825263ffffffff61222760208301611df2565b1660208301525050565b60408101610a1e8284612200565b5f6020828403121561224f575f5ffd5b815180151581146115ed575f5ffd5b5f6020828403121561226e575f5ffd5b8151600381106115ed575f5ffd5b5f6020828403121561228c575f5ffd5b815167ffffffffffffffff8111156122a2575f5ffd5b8201601f810184136122b2575f5ffd5b805167ffffffffffffffff8111156122cc576122cc611ea9565b6122df601f8201601f1916602001611ebd565b8181528560208385010111156122f3575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b634e487b7160e01b5f52602160045260245ffd5b61232e8186612200565b5f6003851061234b57634e487b7160e01b5f52602160045260245ffd5b84604083015261235e6060830185611f66565b60c060a083015261237260c0830184611fdf565b9695505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a1e57610a1e61237c565b80820180821115610a1e57610a1e61237c565b606081016123c48285611f66565b6001600160a01b039290921660409190910152919050565b80516020808301519190811015611e6d575f1960209190910360031b1b16919050565b6080810161240d8285611f66565b6115ed6040830184611f66565b5f6020828403121561242a575f5ffd5b81516115ed81611dde565b634e487b7160e01b5f52603160045260245ffdfea26469706673582212209eee65670a0acd546a18377ada41e4f6518f10b5c3d618724117493c69a324be64736f6c634300081b0033", } // CrossChainRegistryABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/DelegationManager/binding.go b/pkg/bindings/DelegationManager/binding.go index 839e3af046..37ca914a57 100644 --- a/pkg/bindings/DelegationManager/binding.go +++ b/pkg/bindings/DelegationManager/binding.go @@ -62,7 +62,7 @@ type OperatorSet struct { // DelegationManagerMetaData contains all meta data concerning the DelegationManager contract. var DelegationManagerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_eigenPodManager\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"},{\"name\":\"_allocationManager\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"_MIN_WITHDRAWAL_DELAY\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allocationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateDelegationApprovalDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateWithdrawalRoot\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawal\",\"inputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeQueuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"tokens\",\"type\":\"address[][]\",\"internalType\":\"contractIERC20[][]\"},{\"name\":\"receiveAsTokens\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"convertToDepositShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"cumulativeWithdrawalsQueued\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"totalQueued\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"curDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"beaconChainSlashingFactorDecrease\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateTo\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtilsMixinTypes.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegatedTo\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApprover\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationApproverSaltIsSpent\",\"inputs\":[{\"name\":\"delegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"spent\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositScalingFactor\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDepositedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorsShares\",\"inputs\":[{\"name\":\"operators\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQueuedWithdrawal\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"shares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQueuedWithdrawalRoots\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getQueuedWithdrawals\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawals\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal[]\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"shares\",\"type\":\"uint256[][]\",\"internalType\":\"uint256[][]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSlashableSharesInQueue\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawableShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[{\"name\":\"withdrawableShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseDelegatedShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevDepositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"addedShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minWithdrawalDelayBlocks\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"modifyOperatorDetails\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"operatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pendingWithdrawals\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"pending\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"queueWithdrawals\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple[]\",\"internalType\":\"structIDelegationManagerTypes.QueuedWithdrawalParams[]\",\"components\":[{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"depositShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"__deprecated_withdrawer\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"queuedWithdrawals\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"withdrawal\",\"type\":\"tuple\",\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"redelegate\",\"inputs\":[{\"name\":\"newOperator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"newOperatorApproverSig\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtilsMixinTypes.SignatureWithExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"approverSalt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerAsOperator\",\"inputs\":[{\"name\":\"initDelegationApprover\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allocationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"slashOperatorShares\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"slashId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"prevMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"newMaxMagnitude\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"totalDepositSharesToSlash\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"withdrawalRoots\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorMetadataURI\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"DelegationApproverUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newDelegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DepositScalingFactorUpdated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"newDepositScalingFactor\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorMetadataURIUpdated\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRegistered\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"delegationApprover\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesDecreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesIncreased\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSharesSlashed\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"totalSlashedShares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalCompleted\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SlashingWithdrawalQueued\",\"inputs\":[{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"withdrawal\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIDelegationManagerTypes.Withdrawal\",\"components\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"delegatedTo\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"strategies\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"scaledShares\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"sharesToWithdraw\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerDelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerForceUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StakerUndelegated\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CallerCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FullySlashed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidDepositScalingFactor\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSnapshotOrdering\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotActivelyDelegated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyAllocationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManagerOrEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorsCannotUndelegate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaltSpent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"WithdrawalDelayNotElapsed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalNotQueued\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawerNotCaller\",\"inputs\":[]}]", - Bin: "0x610160604052348015610010575f5ffd5b5060405161606b38038061606b83398101604081905261002f916101d9565b808084898989878a6001600160a01b03811661005e576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805293841660a05291831660c052821660e05263ffffffff16610100521661012052610095816100b0565b61014052506100a490506100f6565b50505050505050610364565b5f5f829050601f815111156100e3578260405163305a27a960e01b81526004016100da9190610309565b60405180910390fd5b80516100ee8261033e565b179392505050565b5f54610100900460ff161561015d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100da565b5f5460ff908116146101ac575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101c2575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f5f5f60e0888a0312156101ef575f5ffd5b87516101fa816101ae565b602089015190975061020b816101ae565b604089015190965061021c816101ae565b606089015190955061022d816101ae565b608089015190945061023e816101ae565b60a089015190935063ffffffff81168114610257575f5ffd5b60c08901519092506001600160401b03811115610272575f5ffd5b88015f601f82018b13610283575f5ffd5b81516001600160401b0381111561029c5761029c6101c5565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102ca576102ca6101c5565b6040528181528382016020018d10156102e1575f5ffd5b8160208501602083015e5f602083830101528092508094505050505092959891949750929550565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561035e575f198160200360031b1b821691505b50919050565b60805160a05160c05160e051610100516101205161014051615c156104565f395f8181610fde0152613dc701525f8181610412015261317001525f81816107030152818161326f0152818161354101526136fa01525f818161075301528181610cf301528181610eb601528181611056015281816113af0152818161181101528181612480015261414501525f818161043901528181610e340152818161130e0152818161158201528181612d7101528181612f5201526133b501525f818161036f01528181610e02015281816114d6015261338f01525f81816105e201528181612b370152613e360152615c155ff3fe608060405234801561000f575f5ffd5b50600436106102b1575f3560e01c80636d70f7ae1161017b578063bb45fef2116100e4578063e4cc3f901161009e578063f698da2511610079578063f698da25146107ce578063fabc1cbc146107d6578063fd8aa88d146107e9578063fe4b84df146107fc575f5ffd5b8063e4cc3f9014610788578063eea9064b1461079b578063f0e0e676146107ae575f5ffd5b8063bb45fef2146106b9578063bfae3fd2146106e6578063c448feb8146106f9578063c978f7ac1461072d578063ca8aa7c71461074e578063da8be86414610775575f5ffd5b80639104c319116101355780639104c319146106175780639435bb431461063257806399f5371b14610645578063a178848414610665578063a33a343314610684578063b7f06ebe14610697575f5ffd5b80636d70f7ae1461057a5780636e1744481461058d578063778e55f3146105a057806378296ec5146105ca578063886f1195146105dd5780639004134714610604575f5ffd5b806354b7c96c1161021d5780635c975abb116101d75780635c975abb146104d45780635d975e88146104dc5780635dd68579146104fd57806360a0d1ce1461051e57806365da12641461053157806366d5ba9314610559575f5ffd5b806354b7c96c1461045b57806354fd4d501461046e578063595c6a6714610483578063597b36da1461048b5780635ac86ab71461049e5780635ae679a7146104c1575f5ffd5b806339b70e381161026e57806339b70e381461036a5780633c651cf2146103a95780633cdeb5e0146103bc5780633e28391d146103ea5780634657e26a1461040d5780634665bcda14610434575f5ffd5b806304a4f979146102b55780630b9f487a146102ef5780630dd8dd0214610302578063136439dd1461032257806325df922e146103375780632aa6d88814610357575b5f5ffd5b6102dc7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b6040519081526020015b60405180910390f35b6102dc6102fd366004614a7f565b61080f565b610315610310366004614b16565b610897565b6040516102e69190614b54565b610335610330366004614b8b565b610b09565b005b61034a610345366004614d20565b610b43565b6040516102e69190614dce565b610335610365366004614e30565b610ca3565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e6565b6103356103b7366004614e8e565b610df7565b6103916103ca366004614ed1565b6001600160a01b039081165f908152609960205260409020600101541690565b6103fd6103f8366004614ed1565b610f4a565b60405190151581526020016102e6565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b610335610469366004614eec565b610f69565b610476610fd7565b6040516102e69190614f51565b610335611007565b6102dc61049936600461501f565b61101b565b6103fd6104ac366004615050565b606654600160ff9092169190911b9081161490565b6102dc6104cf366004615084565b61104a565b6066546102dc565b6104ef6104ea366004614b8b565b6111bc565b6040516102e69291906151b9565b61051061050b366004614ed1565b6111d9565b6040516102e692919061522b565b61033561052c366004615298565b611303565b61039161053f366004614ed1565b609a6020525f90815260409020546001600160a01b031681565b61056c610567366004614ed1565b6114ae565b6040516102e69291906152d7565b6103fd610588366004614ed1565b6117ae565b6102dc61059b366004614eec565b6117e6565b6102dc6105ae366004614eec565b609860209081525f928352604080842090915290825290205481565b6103356105d83660046152e9565b611890565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b61034a610612366004615339565b611926565b61039173beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b610335610640366004615385565b6119fc565b610658610653366004614b8b565b611ab7565b6040516102e69190615421565b6102dc610673366004614ed1565b609f6020525f908152604090205481565b610315610692366004615433565b611bd3565b6103fd6106a5366004614b8b565b609e6020525f908152604090205460ff1681565b6103fd6106c736600461551a565b609c60209081525f928352604080842090915290825290205460ff1681565b6102dc6106f4366004614eec565b611beb565b60405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016102e6565b61074061073b366004615339565b611c27565b6040516102e6929190615544565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b610315610783366004614ed1565b611eb4565b610335610796366004615563565b611fdd565b6103356107a9366004615433565b612015565b6107c16107bc3660046155e1565b612080565b6040516102e6919061568e565b6102dc612125565b6103356107e4366004614b8b565b6121de565b6103156107f7366004614ed1565b61224c565b61033561080a366004614b8b565b61226f565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad60208201526001600160a01b03808616928201929092528187166060820152908516608082015260a0810183905260c081018290525f9061088d9060e00160405160208183030381529060405280519060200120612380565b9695505050505050565b606060016108a4816123ae565b6108ac6123dc565b5f836001600160401b038111156108c5576108c5614ba2565b6040519080825280602002602001820160405280156108ee578160200160208202803683370190505b50335f908152609a60205260408120549192506001600160a01b03909116905b85811015610afa57868682818110610928576109286156a0565b905060200281019061093a91906156b4565b6109489060208101906156d2565b905087878381811061095c5761095c6156a0565b905060200281019061096e91906156b4565b61097890806156d2565b905014610998576040516343714afd60e01b815260040160405180910390fd5b5f610a0233848a8a868181106109b0576109b06156a0565b90506020028101906109c291906156b4565b6109cc90806156d2565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061243592505050565b9050610ad433848a8a86818110610a1b57610a1b6156a0565b9050602002810190610a2d91906156b4565b610a3790806156d2565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508e92508d9150889050818110610a7c57610a7c6156a0565b9050602002810190610a8e91906156b4565b610a9c9060208101906156d2565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250889250612587915050565b848381518110610ae657610ae66156a0565b60209081029190910101525060010161090e565b5050600160c955949350505050565b610b11612b22565b6066548181168114610b365760405163c61dca5d60e01b815260040160405180910390fd5b610b3f82612bc5565b5050565b6001600160a01b038084165f908152609a60205260408120546060921690610b6c868387612435565b90505f85516001600160401b03811115610b8857610b88614ba2565b604051908082528060200260200182016040528015610bb1578160200160208202803683370190505b5090505f5b8651811015610c96576001600160a01b0388165f90815260a260205260408120885182908a9085908110610bec57610bec6156a0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f820154815250509050610c70878381518110610c3e57610c3e6156a0565b6020026020010151858481518110610c5857610c586156a0565b602002602001015183612c029092919063ffffffff16565b838381518110610c8257610c826156a0565b602090810291909101015250600101610bb6565b50925050505b9392505050565b610cab6123dc565b610cb433610f4a565b15610cd257604051633bf2b50360e11b815260040160405180910390fd5b604051632b6241f360e11b815233600482015263ffffffff841660248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906356c483e6906044015f604051808303815f87803b158015610d3c575f5ffd5b505af1158015610d4e573d5f5f3e3d5ffd5b50505050610d5c3385612c20565b610d663333612c82565b6040516001600160a01b038516815233907fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c19060200160405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051610ddf929190615717565b60405180910390a2610df1600160c955565b50505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e565750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b610e735760405163045206a560e21b815260040160405180910390fd5b610e7b6123dc565b6001600160a01b038481165f908152609a602052604080822054905163152667d960e31b8152908316600482018190528684166024830152927f0000000000000000000000000000000000000000000000000000000000000000169063a9333ec890604401602060405180830381865afa158015610efb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1f9190615745565b90505f610f2d878784612f0b565b9050610f3d838888888886612fed565b505050610df1600160c955565b6001600160a01b039081165f908152609a602052604090205416151590565b81610f7381613132565b610f905760405163932d94f760e01b815260040160405180910390fd5b610f986123dc565b610fa1836117ae565b610fbe576040516325ec6c1f60e01b815260040160405180910390fd5b610fc88383612c20565b610fd2600160c955565b505050565b60606110027f00000000000000000000000000000000000000000000000000000000000000006131dc565b905090565b61100f612b22565b6110195f19612bc5565b565b5f8160405160200161102d9190615421565b604051602081830303815290604052805190602001209050919050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611094576040516323d871a560e01b815260040160405180910390fd5b61109c6123dc565b6001600160a01b038088165f9081526098602090815260408083209388168352929052908120546110da906001600160401b03808716908616613219565b90505f6110e989878787613231565b90506110f58183615774565b9250611103895f88856132ee565b604080516001600160a01b038881168252602082018690528b16917fdd611f4ef63f4385f1756c86ce1f1f389a9013ba6fa07daba8528291bc2d3c30910160405180910390a261115286613368565b6001600160a01b0316633fb99ca5898989876040518563ffffffff1660e01b81526004016111839493929190615787565b5f604051808303815f87803b15801561119a575f5ffd5b505af11580156111ac573d5f5f3e3d5ffd5b50505050505061088d600160c955565b6111c4614940565b60606111cf836133da565b9094909350915050565b6060805f6111e68461224c565b8051909150806001600160401b0381111561120357611203614ba2565b60405190808252806020026020018201604052801561123c57816020015b611229614940565b8152602001906001900390816112215790505b509350806001600160401b0381111561125757611257614ba2565b60405190808252806020026020018201604052801561128a57816020015b60608152602001906001900390816112755790505b5092505f5b818110156112fb576112b98382815181106112ac576112ac6156a0565b60200260200101516133da565b8683815181106112cb576112cb6156a0565b602002602001018684815181106112e4576112e46156a0565b60209081029190910101919091525260010161128f565b505050915091565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461134c57604051633213a66160e21b815260040160405180910390fd5b6113546123dc565b61135d83610f4a565b15610fc8576001600160a01b038381165f908152609a602052604080822054905163152667d960e31b81529083166004820181905273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152927f0000000000000000000000000000000000000000000000000000000000000000169063a9333ec890604401602060405180830381865afa1580156113f4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114189190615745565b6001600160a01b0386165f90815260a26020908152604080832073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac084528252808320815192830190915254815291925061147e866114766001600160401b0380871690891661362d565b849190613641565b90506114a0848873beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0846132ee565b50505050610fd2600160c955565b6040516394f649dd60e01b81526001600160a01b03828116600483015260609182915f9182917f000000000000000000000000000000000000000000000000000000000000000016906394f649dd906024015f60405180830381865afa15801561151a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526115419190810190615837565b60405163fe243a1760e01b81526001600160a01b03888116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac060248301529294509092505f917f0000000000000000000000000000000000000000000000000000000000000000169063fe243a1790604401602060405180830381865afa1580156115c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115eb91906158f2565b9050805f036115ff57509094909350915050565b5f8351600161160e9190615774565b6001600160401b0381111561162557611625614ba2565b60405190808252806020026020018201604052801561164e578160200160208202803683370190505b5090505f845160016116609190615774565b6001600160401b0381111561167757611677614ba2565b6040519080825280602002602001820160405280156116a0578160200160208202803683370190505b50905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0828651815181106116cb576116cb6156a0565b60200260200101906001600160a01b031690816001600160a01b03168152505082818651815181106116ff576116ff6156a0565b60209081029190910101525f5b85518110156117a057858181518110611727576117276156a0565b6020026020010151838281518110611741576117416156a0565b60200260200101906001600160a01b031690816001600160a01b031681525050848181518110611773576117736156a0565b602002602001015182828151811061178d5761178d6156a0565b602090810291909101015260010161170c565b509097909650945050505050565b5f6001600160a01b038216158015906117e057506001600160a01b038083165f818152609a6020526040902054909116145b92915050565b60405163152667d960e31b81526001600160a01b03838116600483015282811660248301525f9182917f0000000000000000000000000000000000000000000000000000000000000000169063a9333ec890604401602060405180830381865afa158015611856573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187a9190615745565b90506118888484835f613231565b949350505050565b8261189a81613132565b6118b75760405163932d94f760e01b815260040160405180910390fd5b6118c0846117ae565b6118dd576040516325ec6c1f60e01b815260040160405180910390fd5b836001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051611918929190615717565b60405180910390a250505050565b60605f82516001600160401b0381111561194257611942614ba2565b60405190808252806020026020018201604052801561196b578160200160208202803683370190505b5090505f5b83518110156119f4576001600160a01b0385165f90815260986020526040812085519091908690849081106119a7576119a76156a0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20548282815181106119e1576119e16156a0565b6020908102919091010152600101611970565b509392505050565b6002611a07816123ae565b611a0f6123dc565b855f5b81811015611aa257611a9a898983818110611a2f57611a2f6156a0565b9050602002810190611a419190615909565b611a4a9061591d565b888884818110611a5c57611a5c6156a0565b9050602002810190611a6e91906156d2565b888886818110611a8057611a806156a0565b9050602002016020810190611a959190615928565b61365f565b600101611a12565b5050611aae600160c955565b50505050505050565b611abf614940565b5f82815260a46020908152604091829020825160e08101845281546001600160a01b03908116825260018301548116828501526002830154168185015260038201546060820152600482015463ffffffff1660808201526005820180548551818602810186019096528086529194929360a08601939290830182828015611b6d57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611b4f575b5050505050815260200160068201805480602002602001604051908101604052809291908181526020018280548015611bc357602002820191905f5260205f20905b815481526020019060010190808311611baf575b5050505050815250509050919050565b6060611bde33611eb4565b9050610c9c848484612015565b6001600160a01b038083165f90815260a260209081526040808320938516835292815282822083519182019093529154825290610c9c90613aa1565b60608082516001600160401b03811115611c4357611c43614ba2565b604051908082528060200260200182016040528015611c6c578160200160208202803683370190505b50915082516001600160401b03811115611c8857611c88614ba2565b604051908082528060200260200182016040528015611cb1578160200160208202803683370190505b506001600160a01b038086165f908152609a6020526040812054929350911690611cdc868387612435565b90505f5b8551811015611ea9575f611d0c878381518110611cff57611cff6156a0565b6020026020010151613368565b9050806001600160a01b031663fe243a1789898581518110611d3057611d306156a0565b60200260200101516040518363ffffffff1660e01b8152600401611d6a9291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015611d85573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611da991906158f2565b858381518110611dbb57611dbb6156a0565b6020026020010181815250505f60a25f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f898581518110611dfe57611dfe6156a0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f820154815250509050611e82868481518110611e5057611e506156a0565b6020026020010151858581518110611e6a57611e6a6156a0565b6020026020010151836136419092919063ffffffff16565b878481518110611e9457611e946156a0565b60209081029190910101525050600101611ce0565b5050505b9250929050565b6060611ebe6123dc565b611ec782610f4a565b611ee45760405163a5c7c44560e01b815260040160405180910390fd5b611eed826117ae565b15611f0b576040516311ca333560e31b815260040160405180910390fd5b336001600160a01b03831614611fc3576001600160a01b038083165f908152609a602052604090205416611f3e81613132565b80611f6457506001600160a01b038181165f908152609960205260409020600101541633145b611f8157604051631e499a2360e11b815260040160405180910390fd5b806001600160a01b0316836001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a3505b611fcc82613ac0565b9050611fd8600160c955565b919050565b6002611fe8816123ae565b611ff06123dc565b612004611ffc8661591d565b85858561365f565b61200e600160c955565b5050505050565b61201d6123dc565b61202633610f4a565b1561204457604051633bf2b50360e11b815260040160405180910390fd5b61204d836117ae565b61206a576040516325ec6c1f60e01b815260040160405180910390fd5b61207633848484613d00565b610fc83384612c82565b60605f83516001600160401b0381111561209c5761209c614ba2565b6040519080825280602002602001820160405280156120cf57816020015b60608152602001906001900390816120ba5790505b5090505f5b84518110156119f4576121008582815181106120f2576120f26156a0565b602002602001015185611926565b828281518110612112576121126156a0565b60209081029190910101526001016120d4565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea612192613dbf565b805160209182012060408051928301949094529281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6121e6613e34565b6066548019821981161461220d5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020015b60405180910390a25050565b6001600160a01b0381165f90815260a3602052604090206060906117e090613ee5565b5f54610100900460ff161580801561228d57505f54600160ff909116105b806122a65750303b1580156122a657505f5460ff166001145b61230e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561232f575f805461ff0019166101001790555b61233882612bc5565b8015610b3f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b5f612389612125565b60405161190160f01b602082015260228101919091526042810183905260620161102d565b606654600160ff83161b908116036123d95760405163840a48d560e01b815260040160405180910390fd5b50565b600260c9540361242e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401612305565b600260c955565b60605f82516001600160401b0381111561245157612451614ba2565b60405190808252806020026020018201604052801561247a578160200160208202803683370190505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663547afb8786866040518363ffffffff1660e01b81526004016124cc929190615943565b5f60405180830381865afa1580156124e6573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261250d9190810190615966565b90505f5b845181101561257c5761255787868381518110612530576125306156a0565b602002602001015184848151811061254a5761254a6156a0565b6020026020010151612f0b565b838281518110612569576125696156a0565b6020908102919091010152600101612511565b509095945050505050565b5f6001600160a01b0386166125af576040516339b190bb60e11b815260040160405180910390fd5b83515f036125d05760405163796cc52560e01b815260040160405180910390fd5b5f84516001600160401b038111156125ea576125ea614ba2565b604051908082528060200260200182016040528015612613578160200160208202803683370190505b5090505f85516001600160401b0381111561263057612630614ba2565b604051908082528060200260200182016040528015612659578160200160208202803683370190505b5090505f5b8651811015612955575f61267d888381518110611cff57611cff6156a0565b90505f60a25f8c6001600160a01b03166001600160a01b031681526020019081526020015f205f8a85815181106126b6576126b66156a0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20905061272f8884815181106126f4576126f46156a0565b602002602001015188858151811061270e5761270e6156a0565b60209081029190910181015160408051928301905284548252909190613641565b848481518110612741576127416156a0565b602002602001018181525050612780888481518110612762576127626156a0565b60209081029190910181015160408051928301905283548252613ef1565b858481518110612792576127926156a0565b60209081029190910101526001600160a01b038a1615612827576127e98a8a85815181106127c2576127c26156a0565b60200260200101518786815181106127dc576127dc6156a0565b6020026020010151613f05565b6128278a8c8b8681518110612800576128006156a0565b602002602001015187878151811061281a5761281a6156a0565b60200260200101516132ee565b5f826001600160a01b031663724af4238d8c878151811061284a5761284a6156a0565b60200260200101518c8881518110612864576128646156a0565b60200260200101516040518463ffffffff1660e01b815260040161288a939291906159f5565b6020604051808303815f875af11580156128a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128ca91906158f2565b9050805f03612947575f82557f8be932bac54561f27260f95463d9b8ab37e06b2842e5ee2404157cc13df6eb8f8c8b868151811061290a5761290a6156a0565b602002602001015161292f856040518060200160405290815f82015481525050613aa1565b60405161293e939291906159f5565b60405180910390a15b50505080600101905061265e565b506001600160a01b0388165f908152609f6020526040812080549182919061297c83615a19565b91905055505f6040518060e001604052808b6001600160a01b031681526020018a6001600160a01b031681526020018b6001600160a01b031681526020018381526020014363ffffffff1681526020018981526020018581525090505f6129e28261101b565b5f818152609e602090815260408083208054600160ff19909116811790915560a4835292819020865181546001600160a01b03199081166001600160a01b039283161783558885015195830180548216968316969096179095559187015160028201805490951692169190911790925560608501516003830155608085015160048301805463ffffffff191663ffffffff90921691909117905560a085015180519394508593612a989260058501920190614999565b5060c08201518051612ab49160068401916020909101906149fc565b5050506001600160a01b038b165f90815260a360205260409020612ad89082613f6f565b507f26b2aae26516e8719ef50ea2f6831a2efbd4e37dccdf0f6936b27bc08e793e30818386604051612b0c93929190615a31565b60405180910390a19a9950505050505050505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015612b84573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ba89190615a5b565b61101957604051631d77d47760e21b815260040160405180910390fd5b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f61188882612c1a612c1387613aa1565b8690613f7a565b90613f7a565b6001600160a01b038281165f8181526099602090815260409182902060010180546001600160a01b0319169486169485179055905192835290917f773b54c04d756fcc5e678111f7d730de3be98192000799eee3d63716055a87c69101612240565b5f612c8c816123ae565b5f5f612c97856114ae565b915091505f612ca75f8685612435565b6001600160a01b038781165f818152609a602052604080822080546001600160a01b031916948b16948517905551939450919290917fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d874330491a35f5b8351811015611aae5773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612d3a57612d3a6156a0565b60200260200101516001600160a01b031603612eaa5760405163a3d75e0960e01b81526001600160a01b0388811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063a3d75e0990602401602060405180830381865afa158015612db8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ddc9190615745565b90505f60a25f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f878581518110612e1557612e156156a0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f820154815250509050612e89858481518110612e6757612e676156a0565b6020026020010151836001600160401b0316836136419092919063ffffffff16565b858481518110612e9b57612e9b6156a0565b60200260200101818152505050505b612f038688868481518110612ec157612ec16156a0565b60200260200101515f878681518110612edc57612edc6156a0565b6020026020010151878781518110612ef657612ef66156a0565b6020026020010151612fed565b600101612d01565b5f73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b03841601612fdd5760405163a3d75e0960e01b81526001600160a01b0385811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063a3d75e0990602401602060405180830381865afa158015612f99573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fbd9190615745565b9050612fd56001600160401b0384811690831661362d565b915050610c9c565b506001600160401b031692915050565b805f0361300d57604051630a33bc6960e21b815260040160405180910390fd5b811561312a576001600160a01b038086165f90815260a26020908152604080832093881683529290522061304381858585613f8e565b6040805160208101909152815481527f8be932bac54561f27260f95463d9b8ab37e06b2842e5ee2404157cc13df6eb8f908790879061308190613aa1565b604051613090939291906159f5565b60405180910390a16130a186610f4a565b15611aae576001600160a01b038088165f908152609860209081526040808320938916835292905290812080548592906130dc908490615774565b92505081905550866001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c878786604051613120939291906159f5565b60405180910390a2505b505050505050565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156131b8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e09190615a5b565b60605f6131e883614024565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f613227848385600161404b565b6118889085615a76565b6001600160a01b038085165f90815260a56020908152604080832093871683529290529081208190613262906140a6565b90505f6132c860016132947f000000000000000000000000000000000000000000000000000000000000000043615a89565b61329e9190615a89565b6001600160a01b03808a165f90815260a560209081526040808320938c16835292905220906140c0565b90505f6132d58284615a76565b90506132e28187876140dc565b98975050505050505050565b6001600160a01b038085165f90815260986020908152604080832093861683529290529081208054839290613324908490615a76565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051611918939291906159f5565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146133b3577f00000000000000000000000000000000000000000000000000000000000000006117e0565b7f000000000000000000000000000000000000000000000000000000000000000092915050565b6133e2614940565b5f82815260a46020908152604091829020825160e08101845281546001600160a01b0390811682526001830154811682850152600283015416818501526003820154606082810191909152600483015463ffffffff1660808301526005830180548651818702810187019097528087529195929460a0860193929083018282801561349457602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311613476575b50505050508152602001600682018054806020026020016040519081016040528092919081815260200182805480156134ea57602002820191905f5260205f20905b8154815260200190600101908083116134d6575b50505050508152505091508160a00151516001600160401b0381111561351257613512614ba2565b60405190808252806020026020018201604052801561353b578160200160208202803683370190505b5090505f7f0000000000000000000000000000000000000000000000000000000000000000836080015161356f9190615aa5565b90505f4363ffffffff168263ffffffff16106135a05761359b845f015185602001518660a00151612435565b6135b7565b6135b7845f015185602001518660a00151856140fa565b90505f5b8460a00151518110156112fb576136088560c0015182815181106135e1576135e16156a0565b60200260200101518383815181106135fb576135fb6156a0565b6020026020010151614228565b84828151811061361a5761361a6156a0565b60209081029190910101526001016135bb565b5f610c9c8383670de0b6b3a7640000614233565b5f6118888261365961365287613aa1565b869061362d565b9061362d565b60a0840151518214613684576040516343714afd60e01b815260040160405180910390fd5b83604001516001600160a01b0316336001600160a01b0316146136ba576040516316110d3560e21b815260040160405180910390fd5b5f6136c48561101b565b5f818152609e602052604090205490915060ff166136f5576040516387c9d21960e01b815260040160405180910390fd5b60605f7f000000000000000000000000000000000000000000000000000000000000000087608001516137289190615aa5565b90508063ffffffff164363ffffffff1611613756576040516378f67ae160e11b815260040160405180910390fd5b61376d875f015188602001518960a00151846140fa565b87516001600160a01b03165f90815260a360205260409020909250613793915083614318565b505f82815260a46020526040812080546001600160a01b031990811682556001820180548216905560028201805490911690556003810182905560048101805463ffffffff19169055906137ea6005830182614a35565b6137f7600683015f614a35565b50505f828152609e602052604090819020805460ff19169055517f1f40400889274ed07b24845e5054a87a0cab969eb1277aafe61ae352e7c32a00906138409084815260200190565b60405180910390a185516001600160a01b039081165f908152609a6020526040812054885160a08a0151919093169261387a918490612435565b90505f5b8860a0015151811015613a96575f6138a58a60a001518381518110611cff57611cff6156a0565b90505f6138db8b60c0015184815181106138c1576138c16156a0565b60200260200101518785815181106135fb576135fb6156a0565b9050805f036138eb575050613a8e565b87156139b957816001600160a01b0316632eae418c8c5f01518d60a00151868151811061391a5761391a6156a0565b60200260200101518d8d88818110613934576139346156a0565b90506020020160208101906139499190614ed1565b60405160e085901b6001600160e01b03191681526001600160a01b03938416600482015291831660248301529091166044820152606481018490526084015f604051808303815f87803b15801561399e575f5ffd5b505af11580156139b0573d5f5f3e3d5ffd5b50505050613a8b565b5f5f836001600160a01b03166350ff72258e5f01518f60a0015188815181106139e4576139e46156a0565b6020026020010151866040518463ffffffff1660e01b8152600401613a0b939291906159f5565b60408051808303815f875af1158015613a26573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a4a9190615ac1565b91509150613a88878e5f01518f60a001518881518110613a6c57613a6c6156a0565b602002602001015185858b8b81518110612ef657612ef66156a0565b50505b50505b60010161387e565b505050505050505050565b80515f9015613ab15781516117e0565b670de0b6b3a764000092915050565b60606001613acd816123ae565b6001600160a01b038084165f818152609a602052604080822080546001600160a01b0319811690915590519316928392917ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467691a35f5f613b2c866114ae565b9150915081515f03613b4057505050613cfa565b81516001600160401b03811115613b5957613b59614ba2565b604051908082528060200260200182016040528015613b82578160200160208202803683370190505b5094505f613b91878585612435565b90505f5b8351811015613cf4576040805160018082528183019092525f916020808301908036833750506040805160018082528183019092529293505f9291506020808301908036833750506040805160018082528183019092529293505f92915060208083019080368337019050509050868481518110613c1557613c156156a0565b6020026020010151835f81518110613c2f57613c2f6156a0565b60200260200101906001600160a01b031690816001600160a01b031681525050858481518110613c6157613c616156a0565b6020026020010151825f81518110613c7b57613c7b6156a0565b602002602001018181525050848481518110613c9957613c996156a0565b6020026020010151815f81518110613cb357613cb36156a0565b602002602001018181525050613ccc8b89858585612587565b8a8581518110613cde57613cde6156a0565b6020908102919091010152505050600101613b95565b50505050505b50919050565b6001600160a01b038084165f908152609960205260409020600101541680613d285750610df1565b6001600160a01b0381165f908152609c6020908152604080832085845290915290205460ff1615613d6c57604051630d4c4c9160e21b815260040160405180910390fd5b6001600160a01b0381165f908152609c602090815260408083208584528252909120805460ff1916600117905583015161200e908290613db390889088908490889061080f565b85516020870151614323565b60605f613deb7f00000000000000000000000000000000000000000000000000000000000000006131dc565b9050805f81518110613dff57613dff6156a0565b016020908101516040516001600160f81b03199091169181019190915260210160405160208183030381529060405291505090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e90573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eb49190615ae3565b6001600160a01b0316336001600160a01b0316146110195760405163794821ff60e01b815260040160405180910390fd5b60605f610c9c83614375565b5f610c9c613efe84613aa1565b839061362d565b6001600160a01b038084165f90815260a5602090815260408083209386168352929052908120613f34906140a6565b9050610df143613f448484615774565b6001600160a01b038088165f90815260a560209081526040808320938a1683529290522091906143ce565b5f610c9c83836143d9565b5f610c9c83670de0b6b3a764000084614233565b825f03613fba57604080516020810190915284548152613fb3908290612c1a90613aa1565b8455610df1565b6040805160208101909152845481525f90613fd6908584613641565b90505f613fe38483615774565b90505f613ffe84612c1a613ff7888a615774565b8590613f7a565b80885590505f819003611aae5760405163172cec7360e31b815260040160405180910390fd5b5f60ff8216601f8111156117e057604051632cd44ac360e21b815260040160405180910390fd5b5f5f614058868686614233565b9050600183600281111561406e5761406e615afe565b14801561408a57505f848061408557614085615b12565b868809115b1561409d5761409a600182615774565b90505b95945050505050565b5f6140b18282614425565b6001600160e01b031692915050565b5f6140cc83838361446a565b6001600160e01b03169392505050565b5f6118886140ea8385615b26565b85906001600160401b031661362d565b60605f83516001600160401b0381111561411657614116614ba2565b60405190808252806020026020018201604052801561413f578160200160208202803683370190505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394d7d00c8787876040518463ffffffff1660e01b815260040161419393929190615b45565b5f60405180830381865afa1580156141ad573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526141d49190810190615966565b90505f5b855181101561421c576141f788878381518110612530576125306156a0565b838281518110614209576142096156a0565b60209081029190910101526001016141d8565b50909695505050505050565b5f610c9c838361362d565b5f80805f19858709858702925082811083820303915050805f0361426a5783828161426057614260615b12565b0492505050610c9c565b8084116142b15760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401612305565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f610c9c83836144b3565b4281101561434457604051630819bdcd60e01b815260040160405180910390fd5b6143586001600160a01b0385168484614596565b610df157604051638baa579f60e01b815260040160405180910390fd5b6060815f018054806020026020016040519081016040528092919081815260200182805480156143c257602002820191905f5260205f20905b8154815260200190600101908083116143ae575b50505050509050919050565b610fd28383836145ea565b5f81815260018301602052604081205461441e57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556117e0565b505f6117e0565b81545f9080156144625761444b8461443e600184615a76565b5f91825260209091200190565b5464010000000090046001600160e01b0316611888565b509092915050565b82545f908161447b868683856146f0565b905080156144a9576144928661443e600184615a76565b5464010000000090046001600160e01b031661088d565b5091949350505050565b5f818152600183016020526040812054801561458d575f6144d5600183615a76565b85549091505f906144e890600190615a76565b9050818114614547575f865f018281548110614506576145066156a0565b905f5260205f200154905080875f018481548110614526576145266156a0565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061455857614558615b7e565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506117e0565b5f9150506117e0565b5f5f5f6145a38585614743565b90925090505f8160048111156145bb576145bb615afe565b1480156145d95750856001600160a01b0316826001600160a01b0316145b8061088d575061088d868686614782565b825480156146a2575f6146028561443e600185615a76565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b0316602084015291925090851610156146555760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff8086169116036146a057826146768661443e600186615a76565b80546001600160e01b03929092166401000000000263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216640100000000029190921617910155565b5f5b818310156119f4575f6147058484614869565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561472f5780925061473d565b61473a816001615774565b93505b506146f2565b5f5f8251604103614777576020830151604084015160608501515f1a61476b87828585614883565b94509450505050611ead565b505f90506002611ead565b5f5f5f856001600160a01b0316631626ba7e60e01b86866040516024016147aa929190615b92565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516147e89190615baa565b5f60405180830381855afa9150503d805f8114614820576040519150601f19603f3d011682016040523d82523d5f602084013e614825565b606091505b509150915081801561483957506020815110155b801561088d57508051630b135d3f60e11b9061485e90830160209081019084016158f2565b149695505050505050565b5f6148776002848418615bc0565b610c9c90848416615774565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156148b857505f90506003614937565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614909573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116614931575f60019250925050614937565b91505f90505b94509492505050565b6040518060e001604052805f6001600160a01b031681526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f63ffffffff16815260200160608152602001606081525090565b828054828255905f5260205f209081019282156149ec579160200282015b828111156149ec57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906149b7565b506149f8929150614a4c565b5090565b828054828255905f5260205f209081019282156149ec579160200282015b828111156149ec578251825591602001919060010190614a1a565b5080545f8255905f5260205f20908101906123d991905b5b808211156149f8575f8155600101614a4d565b6001600160a01b03811681146123d9575f5ffd5b8035611fd881614a60565b5f5f5f5f5f60a08688031215614a93575f5ffd5b8535614a9e81614a60565b94506020860135614aae81614a60565b93506040860135614abe81614a60565b94979396509394606081013594506080013592915050565b5f5f83601f840112614ae6575f5ffd5b5081356001600160401b03811115614afc575f5ffd5b6020830191508360208260051b8501011115611ead575f5ffd5b5f5f60208385031215614b27575f5ffd5b82356001600160401b03811115614b3c575f5ffd5b614b4885828601614ad6565b90969095509350505050565b602080825282518282018190525f918401906040840190835b8181101561257c578351835260209384019390920191600101614b6d565b5f60208284031215614b9b575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715614bd857614bd8614ba2565b60405290565b604080519081016001600160401b0381118282101715614bd857614bd8614ba2565b604051601f8201601f191681016001600160401b0381118282101715614c2857614c28614ba2565b604052919050565b5f6001600160401b03821115614c4857614c48614ba2565b5060051b60200190565b5f82601f830112614c61575f5ffd5b8135614c74614c6f82614c30565b614c00565b8082825260208201915060208360051b860101925085831115614c95575f5ffd5b602085015b83811015614cbb578035614cad81614a60565b835260209283019201614c9a565b5095945050505050565b5f82601f830112614cd4575f5ffd5b8135614ce2614c6f82614c30565b8082825260208201915060208360051b860101925085831115614d03575f5ffd5b602085015b83811015614cbb578035835260209283019201614d08565b5f5f5f60608486031215614d32575f5ffd5b8335614d3d81614a60565b925060208401356001600160401b03811115614d57575f5ffd5b614d6386828701614c52565b92505060408401356001600160401b03811115614d7e575f5ffd5b614d8a86828701614cc5565b9150509250925092565b5f8151808452602084019350602083015f5b82811015614dc4578151865260209586019590910190600101614da6565b5093949350505050565b602081525f610c9c6020830184614d94565b803563ffffffff81168114611fd8575f5ffd5b5f5f83601f840112614e03575f5ffd5b5081356001600160401b03811115614e19575f5ffd5b602083019150836020828501011115611ead575f5ffd5b5f5f5f5f60608587031215614e43575f5ffd5b8435614e4e81614a60565b9350614e5c60208601614de0565b925060408501356001600160401b03811115614e76575f5ffd5b614e8287828801614df3565b95989497509550505050565b5f5f5f5f60808587031215614ea1575f5ffd5b8435614eac81614a60565b93506020850135614ebc81614a60565b93969395505050506040820135916060013590565b5f60208284031215614ee1575f5ffd5b8135610c9c81614a60565b5f5f60408385031215614efd575f5ffd5b8235614f0881614a60565b91506020830135614f1881614a60565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c9c6020830184614f23565b5f60e08284031215614f73575f5ffd5b614f7b614bb6565b9050614f8682614a74565b8152614f9460208301614a74565b6020820152614fa560408301614a74565b604082015260608281013590820152614fc060808301614de0565b608082015260a08201356001600160401b03811115614fdd575f5ffd5b614fe984828501614c52565b60a08301525060c08201356001600160401b03811115615007575f5ffd5b61501384828501614cc5565b60c08301525092915050565b5f6020828403121561502f575f5ffd5b81356001600160401b03811115615044575f5ffd5b61188884828501614f63565b5f60208284031215615060575f5ffd5b813560ff81168114610c9c575f5ffd5b6001600160401b03811681146123d9575f5ffd5b5f5f5f5f5f5f86880360e081121561509a575f5ffd5b87356150a581614a60565b96506040601f19820112156150b8575f5ffd5b506020870194506060870135935060808701356150d481614a60565b925060a08701356150e481615070565b915060c08701356150f481615070565b809150509295509295509295565b5f8151808452602084019350602083015f5b82811015614dc45781516001600160a01b0316865260209586019590910190600101615114565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201515f916151869085018263ffffffff169052565b5060a082015160e060a08501526151a060e0850182615102565b905060c083015184820360c086015261409d8282614d94565b604081525f6151cb604083018561513b565b828103602084015261409d8185614d94565b5f82825180855260208501945060208160051b830101602085015f5b8381101561421c57601f19858403018852615215838351614d94565b60209889019890935091909101906001016151f9565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b8281101561528257605f1987860301845261526d85835161513b565b94506020938401939190910190600101615251565b50505050828103602084015261409d81856151dd565b5f5f5f606084860312156152aa575f5ffd5b83356152b581614a60565b92506020840135915060408401356152cc81615070565b809150509250925092565b604081525f6151cb6040830185615102565b5f5f5f604084860312156152fb575f5ffd5b833561530681614a60565b925060208401356001600160401b03811115615320575f5ffd5b61532c86828701614df3565b9497909650939450505050565b5f5f6040838503121561534a575f5ffd5b823561535581614a60565b915060208301356001600160401b0381111561536f575f5ffd5b61537b85828601614c52565b9150509250929050565b5f5f5f5f5f5f6060878903121561539a575f5ffd5b86356001600160401b038111156153af575f5ffd5b6153bb89828a01614ad6565b90975095505060208701356001600160401b038111156153d9575f5ffd5b6153e589828a01614ad6565b90955093505060408701356001600160401b03811115615403575f5ffd5b61540f89828a01614ad6565b979a9699509497509295939492505050565b602081525f610c9c602083018461513b565b5f5f5f60608486031215615445575f5ffd5b833561545081614a60565b925060208401356001600160401b0381111561546a575f5ffd5b84016040818703121561547b575f5ffd5b615483614bde565b81356001600160401b03811115615498575f5ffd5b8201601f810188136154a8575f5ffd5b80356001600160401b038111156154c1576154c1614ba2565b6154d4601f8201601f1916602001614c00565b8181528960208385010111156154e8575f5ffd5b816020840160208301375f60209282018301528352928301359282019290925293969395505050506040919091013590565b5f5f6040838503121561552b575f5ffd5b823561553681614a60565b946020939093013593505050565b604081525f6151cb6040830185614d94565b80151581146123d9575f5ffd5b5f5f5f5f60608587031215615576575f5ffd5b84356001600160401b0381111561558b575f5ffd5b850160e0818803121561559c575f5ffd5b935060208501356001600160401b038111156155b6575f5ffd5b6155c287828801614ad6565b90945092505060408501356155d681615556565b939692955090935050565b5f5f604083850312156155f2575f5ffd5b82356001600160401b03811115615607575f5ffd5b8301601f81018513615617575f5ffd5b8035615625614c6f82614c30565b8082825260208201915060208360051b850101925087831115615646575f5ffd5b6020840193505b8284101561567157833561566081614a60565b82526020938401939091019061564d565b945050505060208301356001600160401b0381111561536f575f5ffd5b602081525f610c9c60208301846151dd565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126156c8575f5ffd5b9190910192915050565b5f5f8335601e198436030181126156e7575f5ffd5b8301803591506001600160401b03821115615700575f5ffd5b6020019150600581901b3603821315611ead575f5ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b5f60208284031215615755575f5ffd5b8151610c9c81615070565b634e487b7160e01b5f52601160045260245ffd5b808201808211156117e0576117e0615760565b60a08101853561579681614a60565b6001600160a01b0316825263ffffffff6157b260208801614de0565b16602083015260408201949094526001600160a01b03929092166060830152608090910152919050565b5f82601f8301126157eb575f5ffd5b81516157f9614c6f82614c30565b8082825260208201915060208360051b86010192508583111561581a575f5ffd5b602085015b83811015614cbb57805183526020928301920161581f565b5f5f60408385031215615848575f5ffd5b82516001600160401b0381111561585d575f5ffd5b8301601f8101851361586d575f5ffd5b805161587b614c6f82614c30565b8082825260208201915060208360051b85010192508783111561589c575f5ffd5b6020840193505b828410156158c75783516158b681614a60565b8252602093840193909101906158a3565b8095505050505060208301516001600160401b038111156158e6575f5ffd5b61537b858286016157dc565b5f60208284031215615902575f5ffd5b5051919050565b5f823560de198336030181126156c8575f5ffd5b5f6117e03683614f63565b5f60208284031215615938575f5ffd5b8135610c9c81615556565b6001600160a01b03831681526040602082018190525f9061188890830184615102565b5f60208284031215615976575f5ffd5b81516001600160401b0381111561598b575f5ffd5b8201601f8101841361599b575f5ffd5b80516159a9614c6f82614c30565b8082825260208201915060208360051b8501019250868311156159ca575f5ffd5b6020840193505b8284101561088d5783516159e481615070565b8252602093840193909101906159d1565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60018201615a2a57615a2a615760565b5060010190565b838152606060208201525f615a49606083018561513b565b828103604084015261088d8185614d94565b5f60208284031215615a6b575f5ffd5b8151610c9c81615556565b818103818111156117e0576117e0615760565b63ffffffff82811682821603908111156117e0576117e0615760565b63ffffffff81811683821601908111156117e0576117e0615760565b5f5f60408385031215615ad2575f5ffd5b505080516020909101519092909150565b5f60208284031215615af3575f5ffd5b8151610c9c81614a60565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b6001600160401b0382811682821603908111156117e0576117e0615760565b6001600160a01b03841681526060602082018190525f90615b6890830185615102565b905063ffffffff83166040830152949350505050565b634e487b7160e01b5f52603160045260245ffd5b828152604060208201525f6118886040830184614f23565b5f82518060208501845e5f920191825250919050565b5f82615bda57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b29dad8fe081359578cbebf05bd3b66422c08c53d5b2f71396b4067cb687f39564736f6c634300081b0033", + Bin: "0x610160604052348015610010575f5ffd5b5060405161606b38038061606b83398101604081905261002f916101d9565b808084898989878a6001600160a01b03811661005e576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805293841660a05291831660c052821660e05263ffffffff16610100521661012052610095816100b0565b61014052506100a490506100f6565b50505050505050610364565b5f5f829050601f815111156100e3578260405163305a27a960e01b81526004016100da9190610309565b60405180910390fd5b80516100ee8261033e565b179392505050565b5f54610100900460ff161561015d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100da565b5f5460ff908116146101ac575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101c2575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f5f5f60e0888a0312156101ef575f5ffd5b87516101fa816101ae565b602089015190975061020b816101ae565b604089015190965061021c816101ae565b606089015190955061022d816101ae565b608089015190945061023e816101ae565b60a089015190935063ffffffff81168114610257575f5ffd5b60c08901519092506001600160401b03811115610272575f5ffd5b88015f601f82018b13610283575f5ffd5b81516001600160401b0381111561029c5761029c6101c5565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102ca576102ca6101c5565b6040528181528382016020018d10156102e1575f5ffd5b8160208501602083015e5f602083830101528092508094505050505092959891949750929550565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561035e575f198160200360031b1b821691505b50919050565b60805160a05160c05160e051610100516101205161014051615c156104565f395f8181610fde0152613dc701525f8181610412015261317001525f81816107030152818161326f0152818161354101526136fa01525f818161075301528181610cf301528181610eb601528181611056015281816113af0152818161181101528181612480015261414501525f818161043901528181610e340152818161130e0152818161158201528181612d7101528181612f5201526133b501525f818161036f01528181610e02015281816114d6015261338f01525f81816105e201528181612b370152613e360152615c155ff3fe608060405234801561000f575f5ffd5b50600436106102b1575f3560e01c80636d70f7ae1161017b578063bb45fef2116100e4578063e4cc3f901161009e578063f698da2511610079578063f698da25146107ce578063fabc1cbc146107d6578063fd8aa88d146107e9578063fe4b84df146107fc575f5ffd5b8063e4cc3f9014610788578063eea9064b1461079b578063f0e0e676146107ae575f5ffd5b8063bb45fef2146106b9578063bfae3fd2146106e6578063c448feb8146106f9578063c978f7ac1461072d578063ca8aa7c71461074e578063da8be86414610775575f5ffd5b80639104c319116101355780639104c319146106175780639435bb431461063257806399f5371b14610645578063a178848414610665578063a33a343314610684578063b7f06ebe14610697575f5ffd5b80636d70f7ae1461057a5780636e1744481461058d578063778e55f3146105a057806378296ec5146105ca578063886f1195146105dd5780639004134714610604575f5ffd5b806354b7c96c1161021d5780635c975abb116101d75780635c975abb146104d45780635d975e88146104dc5780635dd68579146104fd57806360a0d1ce1461051e57806365da12641461053157806366d5ba9314610559575f5ffd5b806354b7c96c1461045b57806354fd4d501461046e578063595c6a6714610483578063597b36da1461048b5780635ac86ab71461049e5780635ae679a7146104c1575f5ffd5b806339b70e381161026e57806339b70e381461036a5780633c651cf2146103a95780633cdeb5e0146103bc5780633e28391d146103ea5780634657e26a1461040d5780634665bcda14610434575f5ffd5b806304a4f979146102b55780630b9f487a146102ef5780630dd8dd0214610302578063136439dd1461032257806325df922e146103375780632aa6d88814610357575b5f5ffd5b6102dc7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b6040519081526020015b60405180910390f35b6102dc6102fd366004614a7f565b61080f565b610315610310366004614b16565b610897565b6040516102e69190614b54565b610335610330366004614b8b565b610b09565b005b61034a610345366004614d20565b610b43565b6040516102e69190614dce565b610335610365366004614e30565b610ca3565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e6565b6103356103b7366004614e8e565b610df7565b6103916103ca366004614ed1565b6001600160a01b039081165f908152609960205260409020600101541690565b6103fd6103f8366004614ed1565b610f4a565b60405190151581526020016102e6565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b610335610469366004614eec565b610f69565b610476610fd7565b6040516102e69190614f51565b610335611007565b6102dc61049936600461501f565b61101b565b6103fd6104ac366004615050565b606654600160ff9092169190911b9081161490565b6102dc6104cf366004615084565b61104a565b6066546102dc565b6104ef6104ea366004614b8b565b6111bc565b6040516102e69291906151b9565b61051061050b366004614ed1565b6111d9565b6040516102e692919061522b565b61033561052c366004615298565b611303565b61039161053f366004614ed1565b609a6020525f90815260409020546001600160a01b031681565b61056c610567366004614ed1565b6114ae565b6040516102e69291906152d7565b6103fd610588366004614ed1565b6117ae565b6102dc61059b366004614eec565b6117e6565b6102dc6105ae366004614eec565b609860209081525f928352604080842090915290825290205481565b6103356105d83660046152e9565b611890565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b61034a610612366004615339565b611926565b61039173beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b610335610640366004615385565b6119fc565b610658610653366004614b8b565b611ab7565b6040516102e69190615421565b6102dc610673366004614ed1565b609f6020525f908152604090205481565b610315610692366004615433565b611bd3565b6103fd6106a5366004614b8b565b609e6020525f908152604090205460ff1681565b6103fd6106c736600461551a565b609c60209081525f928352604080842090915290825290205460ff1681565b6102dc6106f4366004614eec565b611beb565b60405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020016102e6565b61074061073b366004615339565b611c27565b6040516102e6929190615544565b6103917f000000000000000000000000000000000000000000000000000000000000000081565b610315610783366004614ed1565b611eb4565b610335610796366004615563565b611fdd565b6103356107a9366004615433565b612015565b6107c16107bc3660046155e1565b612080565b6040516102e6919061568e565b6102dc612125565b6103356107e4366004614b8b565b6121de565b6103156107f7366004614ed1565b61224c565b61033561080a366004614b8b565b61226f565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad60208201526001600160a01b03808616928201929092528187166060820152908516608082015260a0810183905260c081018290525f9061088d9060e00160405160208183030381529060405280519060200120612380565b9695505050505050565b606060016108a4816123ae565b6108ac6123dc565b5f836001600160401b038111156108c5576108c5614ba2565b6040519080825280602002602001820160405280156108ee578160200160208202803683370190505b50335f908152609a60205260408120549192506001600160a01b03909116905b85811015610afa57868682818110610928576109286156a0565b905060200281019061093a91906156b4565b6109489060208101906156d2565b905087878381811061095c5761095c6156a0565b905060200281019061096e91906156b4565b61097890806156d2565b905014610998576040516343714afd60e01b815260040160405180910390fd5b5f610a0233848a8a868181106109b0576109b06156a0565b90506020028101906109c291906156b4565b6109cc90806156d2565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061243592505050565b9050610ad433848a8a86818110610a1b57610a1b6156a0565b9050602002810190610a2d91906156b4565b610a3790806156d2565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508e92508d9150889050818110610a7c57610a7c6156a0565b9050602002810190610a8e91906156b4565b610a9c9060208101906156d2565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250889250612587915050565b848381518110610ae657610ae66156a0565b60209081029190910101525060010161090e565b5050600160c955949350505050565b610b11612b22565b6066548181168114610b365760405163c61dca5d60e01b815260040160405180910390fd5b610b3f82612bc5565b5050565b6001600160a01b038084165f908152609a60205260408120546060921690610b6c868387612435565b90505f85516001600160401b03811115610b8857610b88614ba2565b604051908082528060200260200182016040528015610bb1578160200160208202803683370190505b5090505f5b8651811015610c96576001600160a01b0388165f90815260a260205260408120885182908a9085908110610bec57610bec6156a0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f820154815250509050610c70878381518110610c3e57610c3e6156a0565b6020026020010151858481518110610c5857610c586156a0565b602002602001015183612c029092919063ffffffff16565b838381518110610c8257610c826156a0565b602090810291909101015250600101610bb6565b50925050505b9392505050565b610cab6123dc565b610cb433610f4a565b15610cd257604051633bf2b50360e11b815260040160405180910390fd5b604051632b6241f360e11b815233600482015263ffffffff841660248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906356c483e6906044015f604051808303815f87803b158015610d3c575f5ffd5b505af1158015610d4e573d5f5f3e3d5ffd5b50505050610d5c3385612c20565b610d663333612c82565b6040516001600160a01b038516815233907fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c19060200160405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051610ddf929190615717565b60405180910390a2610df1600160c955565b50505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e565750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b610e735760405163045206a560e21b815260040160405180910390fd5b610e7b6123dc565b6001600160a01b038481165f908152609a602052604080822054905163152667d960e31b8152908316600482018190528684166024830152927f0000000000000000000000000000000000000000000000000000000000000000169063a9333ec890604401602060405180830381865afa158015610efb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1f9190615745565b90505f610f2d878784612f0b565b9050610f3d838888888886612fed565b505050610df1600160c955565b6001600160a01b039081165f908152609a602052604090205416151590565b81610f7381613132565b610f905760405163932d94f760e01b815260040160405180910390fd5b610f986123dc565b610fa1836117ae565b610fbe576040516325ec6c1f60e01b815260040160405180910390fd5b610fc88383612c20565b610fd2600160c955565b505050565b60606110027f00000000000000000000000000000000000000000000000000000000000000006131dc565b905090565b61100f612b22565b6110195f19612bc5565b565b5f8160405160200161102d9190615421565b604051602081830303815290604052805190602001209050919050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611094576040516323d871a560e01b815260040160405180910390fd5b61109c6123dc565b6001600160a01b038088165f9081526098602090815260408083209388168352929052908120546110da906001600160401b03808716908616613219565b90505f6110e989878787613231565b90506110f58183615774565b9250611103895f88856132ee565b604080516001600160a01b038881168252602082018690528b16917fdd611f4ef63f4385f1756c86ce1f1f389a9013ba6fa07daba8528291bc2d3c30910160405180910390a261115286613368565b6001600160a01b0316633fb99ca5898989876040518563ffffffff1660e01b81526004016111839493929190615787565b5f604051808303815f87803b15801561119a575f5ffd5b505af11580156111ac573d5f5f3e3d5ffd5b50505050505061088d600160c955565b6111c4614940565b60606111cf836133da565b9094909350915050565b6060805f6111e68461224c565b8051909150806001600160401b0381111561120357611203614ba2565b60405190808252806020026020018201604052801561123c57816020015b611229614940565b8152602001906001900390816112215790505b509350806001600160401b0381111561125757611257614ba2565b60405190808252806020026020018201604052801561128a57816020015b60608152602001906001900390816112755790505b5092505f5b818110156112fb576112b98382815181106112ac576112ac6156a0565b60200260200101516133da565b8683815181106112cb576112cb6156a0565b602002602001018684815181106112e4576112e46156a0565b60209081029190910101919091525260010161128f565b505050915091565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461134c57604051633213a66160e21b815260040160405180910390fd5b6113546123dc565b61135d83610f4a565b15610fc8576001600160a01b038381165f908152609a602052604080822054905163152667d960e31b81529083166004820181905273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152927f0000000000000000000000000000000000000000000000000000000000000000169063a9333ec890604401602060405180830381865afa1580156113f4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114189190615745565b6001600160a01b0386165f90815260a26020908152604080832073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac084528252808320815192830190915254815291925061147e866114766001600160401b0380871690891661362d565b849190613641565b90506114a0848873beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0846132ee565b50505050610fd2600160c955565b6040516394f649dd60e01b81526001600160a01b03828116600483015260609182915f9182917f000000000000000000000000000000000000000000000000000000000000000016906394f649dd906024015f60405180830381865afa15801561151a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526115419190810190615837565b60405163fe243a1760e01b81526001600160a01b03888116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac060248301529294509092505f917f0000000000000000000000000000000000000000000000000000000000000000169063fe243a1790604401602060405180830381865afa1580156115c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115eb91906158f2565b9050805f036115ff57509094909350915050565b5f8351600161160e9190615774565b6001600160401b0381111561162557611625614ba2565b60405190808252806020026020018201604052801561164e578160200160208202803683370190505b5090505f845160016116609190615774565b6001600160401b0381111561167757611677614ba2565b6040519080825280602002602001820160405280156116a0578160200160208202803683370190505b50905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0828651815181106116cb576116cb6156a0565b60200260200101906001600160a01b031690816001600160a01b03168152505082818651815181106116ff576116ff6156a0565b60209081029190910101525f5b85518110156117a057858181518110611727576117276156a0565b6020026020010151838281518110611741576117416156a0565b60200260200101906001600160a01b031690816001600160a01b031681525050848181518110611773576117736156a0565b602002602001015182828151811061178d5761178d6156a0565b602090810291909101015260010161170c565b509097909650945050505050565b5f6001600160a01b038216158015906117e057506001600160a01b038083165f818152609a6020526040902054909116145b92915050565b60405163152667d960e31b81526001600160a01b03838116600483015282811660248301525f9182917f0000000000000000000000000000000000000000000000000000000000000000169063a9333ec890604401602060405180830381865afa158015611856573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187a9190615745565b90506118888484835f613231565b949350505050565b8261189a81613132565b6118b75760405163932d94f760e01b815260040160405180910390fd5b6118c0846117ae565b6118dd576040516325ec6c1f60e01b815260040160405180910390fd5b836001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051611918929190615717565b60405180910390a250505050565b60605f82516001600160401b0381111561194257611942614ba2565b60405190808252806020026020018201604052801561196b578160200160208202803683370190505b5090505f5b83518110156119f4576001600160a01b0385165f90815260986020526040812085519091908690849081106119a7576119a76156a0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20548282815181106119e1576119e16156a0565b6020908102919091010152600101611970565b509392505050565b6002611a07816123ae565b611a0f6123dc565b855f5b81811015611aa257611a9a898983818110611a2f57611a2f6156a0565b9050602002810190611a419190615909565b611a4a9061591d565b888884818110611a5c57611a5c6156a0565b9050602002810190611a6e91906156d2565b888886818110611a8057611a806156a0565b9050602002016020810190611a959190615928565b61365f565b600101611a12565b5050611aae600160c955565b50505050505050565b611abf614940565b5f82815260a46020908152604091829020825160e08101845281546001600160a01b03908116825260018301548116828501526002830154168185015260038201546060820152600482015463ffffffff1660808201526005820180548551818602810186019096528086529194929360a08601939290830182828015611b6d57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611b4f575b5050505050815260200160068201805480602002602001604051908101604052809291908181526020018280548015611bc357602002820191905f5260205f20905b815481526020019060010190808311611baf575b5050505050815250509050919050565b6060611bde33611eb4565b9050610c9c848484612015565b6001600160a01b038083165f90815260a260209081526040808320938516835292815282822083519182019093529154825290610c9c90613aa1565b60608082516001600160401b03811115611c4357611c43614ba2565b604051908082528060200260200182016040528015611c6c578160200160208202803683370190505b50915082516001600160401b03811115611c8857611c88614ba2565b604051908082528060200260200182016040528015611cb1578160200160208202803683370190505b506001600160a01b038086165f908152609a6020526040812054929350911690611cdc868387612435565b90505f5b8551811015611ea9575f611d0c878381518110611cff57611cff6156a0565b6020026020010151613368565b9050806001600160a01b031663fe243a1789898581518110611d3057611d306156a0565b60200260200101516040518363ffffffff1660e01b8152600401611d6a9291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015611d85573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611da991906158f2565b858381518110611dbb57611dbb6156a0565b6020026020010181815250505f60a25f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f898581518110611dfe57611dfe6156a0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f820154815250509050611e82868481518110611e5057611e506156a0565b6020026020010151858581518110611e6a57611e6a6156a0565b6020026020010151836136419092919063ffffffff16565b878481518110611e9457611e946156a0565b60209081029190910101525050600101611ce0565b5050505b9250929050565b6060611ebe6123dc565b611ec782610f4a565b611ee45760405163a5c7c44560e01b815260040160405180910390fd5b611eed826117ae565b15611f0b576040516311ca333560e31b815260040160405180910390fd5b336001600160a01b03831614611fc3576001600160a01b038083165f908152609a602052604090205416611f3e81613132565b80611f6457506001600160a01b038181165f908152609960205260409020600101541633145b611f8157604051631e499a2360e11b815260040160405180910390fd5b806001600160a01b0316836001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a3505b611fcc82613ac0565b9050611fd8600160c955565b919050565b6002611fe8816123ae565b611ff06123dc565b612004611ffc8661591d565b85858561365f565b61200e600160c955565b5050505050565b61201d6123dc565b61202633610f4a565b1561204457604051633bf2b50360e11b815260040160405180910390fd5b61204d836117ae565b61206a576040516325ec6c1f60e01b815260040160405180910390fd5b61207633848484613d00565b610fc83384612c82565b60605f83516001600160401b0381111561209c5761209c614ba2565b6040519080825280602002602001820160405280156120cf57816020015b60608152602001906001900390816120ba5790505b5090505f5b84518110156119f4576121008582815181106120f2576120f26156a0565b602002602001015185611926565b828281518110612112576121126156a0565b60209081029190910101526001016120d4565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea612192613dbf565b805160209182012060408051928301949094529281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6121e6613e34565b6066548019821981161461220d5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020015b60405180910390a25050565b6001600160a01b0381165f90815260a3602052604090206060906117e090613ee5565b5f54610100900460ff161580801561228d57505f54600160ff909116105b806122a65750303b1580156122a657505f5460ff166001145b61230e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561232f575f805461ff0019166101001790555b61233882612bc5565b8015610b3f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b5f612389612125565b60405161190160f01b602082015260228101919091526042810183905260620161102d565b606654600160ff83161b908116036123d95760405163840a48d560e01b815260040160405180910390fd5b50565b600260c9540361242e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401612305565b600260c955565b60605f82516001600160401b0381111561245157612451614ba2565b60405190808252806020026020018201604052801561247a578160200160208202803683370190505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663547afb8786866040518363ffffffff1660e01b81526004016124cc929190615943565b5f60405180830381865afa1580156124e6573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261250d9190810190615966565b90505f5b845181101561257c5761255787868381518110612530576125306156a0565b602002602001015184848151811061254a5761254a6156a0565b6020026020010151612f0b565b838281518110612569576125696156a0565b6020908102919091010152600101612511565b509095945050505050565b5f6001600160a01b0386166125af576040516339b190bb60e11b815260040160405180910390fd5b83515f036125d05760405163796cc52560e01b815260040160405180910390fd5b5f84516001600160401b038111156125ea576125ea614ba2565b604051908082528060200260200182016040528015612613578160200160208202803683370190505b5090505f85516001600160401b0381111561263057612630614ba2565b604051908082528060200260200182016040528015612659578160200160208202803683370190505b5090505f5b8651811015612955575f61267d888381518110611cff57611cff6156a0565b90505f60a25f8c6001600160a01b03166001600160a01b031681526020019081526020015f205f8a85815181106126b6576126b66156a0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20905061272f8884815181106126f4576126f46156a0565b602002602001015188858151811061270e5761270e6156a0565b60209081029190910181015160408051928301905284548252909190613641565b848481518110612741576127416156a0565b602002602001018181525050612780888481518110612762576127626156a0565b60209081029190910181015160408051928301905283548252613ef1565b858481518110612792576127926156a0565b60209081029190910101526001600160a01b038a1615612827576127e98a8a85815181106127c2576127c26156a0565b60200260200101518786815181106127dc576127dc6156a0565b6020026020010151613f05565b6128278a8c8b8681518110612800576128006156a0565b602002602001015187878151811061281a5761281a6156a0565b60200260200101516132ee565b5f826001600160a01b031663724af4238d8c878151811061284a5761284a6156a0565b60200260200101518c8881518110612864576128646156a0565b60200260200101516040518463ffffffff1660e01b815260040161288a939291906159f5565b6020604051808303815f875af11580156128a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128ca91906158f2565b9050805f03612947575f82557f8be932bac54561f27260f95463d9b8ab37e06b2842e5ee2404157cc13df6eb8f8c8b868151811061290a5761290a6156a0565b602002602001015161292f856040518060200160405290815f82015481525050613aa1565b60405161293e939291906159f5565b60405180910390a15b50505080600101905061265e565b506001600160a01b0388165f908152609f6020526040812080549182919061297c83615a19565b91905055505f6040518060e001604052808b6001600160a01b031681526020018a6001600160a01b031681526020018b6001600160a01b031681526020018381526020014363ffffffff1681526020018981526020018581525090505f6129e28261101b565b5f818152609e602090815260408083208054600160ff19909116811790915560a4835292819020865181546001600160a01b03199081166001600160a01b039283161783558885015195830180548216968316969096179095559187015160028201805490951692169190911790925560608501516003830155608085015160048301805463ffffffff191663ffffffff90921691909117905560a085015180519394508593612a989260058501920190614999565b5060c08201518051612ab49160068401916020909101906149fc565b5050506001600160a01b038b165f90815260a360205260409020612ad89082613f6f565b507f26b2aae26516e8719ef50ea2f6831a2efbd4e37dccdf0f6936b27bc08e793e30818386604051612b0c93929190615a31565b60405180910390a19a9950505050505050505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015612b84573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ba89190615a5b565b61101957604051631d77d47760e21b815260040160405180910390fd5b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b5f61188882612c1a612c1387613aa1565b8690613f7a565b90613f7a565b6001600160a01b038281165f8181526099602090815260409182902060010180546001600160a01b0319169486169485179055905192835290917f773b54c04d756fcc5e678111f7d730de3be98192000799eee3d63716055a87c69101612240565b5f612c8c816123ae565b5f5f612c97856114ae565b915091505f612ca75f8685612435565b6001600160a01b038781165f818152609a602052604080822080546001600160a01b031916948b16948517905551939450919290917fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d874330491a35f5b8351811015611aae5773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612d3a57612d3a6156a0565b60200260200101516001600160a01b031603612eaa5760405163a3d75e0960e01b81526001600160a01b0388811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063a3d75e0990602401602060405180830381865afa158015612db8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ddc9190615745565b90505f60a25f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f878581518110612e1557612e156156a0565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206040518060200160405290815f820154815250509050612e89858481518110612e6757612e676156a0565b6020026020010151836001600160401b0316836136419092919063ffffffff16565b858481518110612e9b57612e9b6156a0565b60200260200101818152505050505b612f038688868481518110612ec157612ec16156a0565b60200260200101515f878681518110612edc57612edc6156a0565b6020026020010151878781518110612ef657612ef66156a0565b6020026020010151612fed565b600101612d01565b5f73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b03841601612fdd5760405163a3d75e0960e01b81526001600160a01b0385811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063a3d75e0990602401602060405180830381865afa158015612f99573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fbd9190615745565b9050612fd56001600160401b0384811690831661362d565b915050610c9c565b506001600160401b031692915050565b805f0361300d57604051630a33bc6960e21b815260040160405180910390fd5b811561312a576001600160a01b038086165f90815260a26020908152604080832093881683529290522061304381858585613f8e565b6040805160208101909152815481527f8be932bac54561f27260f95463d9b8ab37e06b2842e5ee2404157cc13df6eb8f908790879061308190613aa1565b604051613090939291906159f5565b60405180910390a16130a186610f4a565b15611aae576001600160a01b038088165f908152609860209081526040808320938916835292905290812080548592906130dc908490615774565b92505081905550866001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c878786604051613120939291906159f5565b60405180910390a2505b505050505050565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156131b8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e09190615a5b565b60605f6131e883614024565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f613227848385600161404b565b6118889085615a76565b6001600160a01b038085165f90815260a56020908152604080832093871683529290529081208190613262906140a6565b90505f6132c860016132947f000000000000000000000000000000000000000000000000000000000000000043615a89565b61329e9190615a89565b6001600160a01b03808a165f90815260a560209081526040808320938c16835292905220906140c0565b90505f6132d58284615a76565b90506132e28187876140dc565b98975050505050505050565b6001600160a01b038085165f90815260986020908152604080832093861683529290529081208054839290613324908490615a76565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051611918939291906159f5565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146133b3577f00000000000000000000000000000000000000000000000000000000000000006117e0565b7f000000000000000000000000000000000000000000000000000000000000000092915050565b6133e2614940565b5f82815260a46020908152604091829020825160e08101845281546001600160a01b0390811682526001830154811682850152600283015416818501526003820154606082810191909152600483015463ffffffff1660808301526005830180548651818702810187019097528087529195929460a0860193929083018282801561349457602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311613476575b50505050508152602001600682018054806020026020016040519081016040528092919081815260200182805480156134ea57602002820191905f5260205f20905b8154815260200190600101908083116134d6575b50505050508152505091508160a00151516001600160401b0381111561351257613512614ba2565b60405190808252806020026020018201604052801561353b578160200160208202803683370190505b5090505f7f0000000000000000000000000000000000000000000000000000000000000000836080015161356f9190615aa5565b90505f4363ffffffff168263ffffffff16106135a05761359b845f015185602001518660a00151612435565b6135b7565b6135b7845f015185602001518660a00151856140fa565b90505f5b8460a00151518110156112fb576136088560c0015182815181106135e1576135e16156a0565b60200260200101518383815181106135fb576135fb6156a0565b6020026020010151614228565b84828151811061361a5761361a6156a0565b60209081029190910101526001016135bb565b5f610c9c8383670de0b6b3a7640000614233565b5f6118888261365961365287613aa1565b869061362d565b9061362d565b60a0840151518214613684576040516343714afd60e01b815260040160405180910390fd5b83604001516001600160a01b0316336001600160a01b0316146136ba576040516316110d3560e21b815260040160405180910390fd5b5f6136c48561101b565b5f818152609e602052604090205490915060ff166136f5576040516387c9d21960e01b815260040160405180910390fd5b60605f7f000000000000000000000000000000000000000000000000000000000000000087608001516137289190615aa5565b90508063ffffffff164363ffffffff1611613756576040516378f67ae160e11b815260040160405180910390fd5b61376d875f015188602001518960a00151846140fa565b87516001600160a01b03165f90815260a360205260409020909250613793915083614318565b505f82815260a46020526040812080546001600160a01b031990811682556001820180548216905560028201805490911690556003810182905560048101805463ffffffff19169055906137ea6005830182614a35565b6137f7600683015f614a35565b50505f828152609e602052604090819020805460ff19169055517f1f40400889274ed07b24845e5054a87a0cab969eb1277aafe61ae352e7c32a00906138409084815260200190565b60405180910390a185516001600160a01b039081165f908152609a6020526040812054885160a08a0151919093169261387a918490612435565b90505f5b8860a0015151811015613a96575f6138a58a60a001518381518110611cff57611cff6156a0565b90505f6138db8b60c0015184815181106138c1576138c16156a0565b60200260200101518785815181106135fb576135fb6156a0565b9050805f036138eb575050613a8e565b87156139b957816001600160a01b0316632eae418c8c5f01518d60a00151868151811061391a5761391a6156a0565b60200260200101518d8d88818110613934576139346156a0565b90506020020160208101906139499190614ed1565b60405160e085901b6001600160e01b03191681526001600160a01b03938416600482015291831660248301529091166044820152606481018490526084015f604051808303815f87803b15801561399e575f5ffd5b505af11580156139b0573d5f5f3e3d5ffd5b50505050613a8b565b5f5f836001600160a01b03166350ff72258e5f01518f60a0015188815181106139e4576139e46156a0565b6020026020010151866040518463ffffffff1660e01b8152600401613a0b939291906159f5565b60408051808303815f875af1158015613a26573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a4a9190615ac1565b91509150613a88878e5f01518f60a001518881518110613a6c57613a6c6156a0565b602002602001015185858b8b81518110612ef657612ef66156a0565b50505b50505b60010161387e565b505050505050505050565b80515f9015613ab15781516117e0565b670de0b6b3a764000092915050565b60606001613acd816123ae565b6001600160a01b038084165f818152609a602052604080822080546001600160a01b0319811690915590519316928392917ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467691a35f5f613b2c866114ae565b9150915081515f03613b4057505050613cfa565b81516001600160401b03811115613b5957613b59614ba2565b604051908082528060200260200182016040528015613b82578160200160208202803683370190505b5094505f613b91878585612435565b90505f5b8351811015613cf4576040805160018082528183019092525f916020808301908036833750506040805160018082528183019092529293505f9291506020808301908036833750506040805160018082528183019092529293505f92915060208083019080368337019050509050868481518110613c1557613c156156a0565b6020026020010151835f81518110613c2f57613c2f6156a0565b60200260200101906001600160a01b031690816001600160a01b031681525050858481518110613c6157613c616156a0565b6020026020010151825f81518110613c7b57613c7b6156a0565b602002602001018181525050848481518110613c9957613c996156a0565b6020026020010151815f81518110613cb357613cb36156a0565b602002602001018181525050613ccc8b89858585612587565b8a8581518110613cde57613cde6156a0565b6020908102919091010152505050600101613b95565b50505050505b50919050565b6001600160a01b038084165f908152609960205260409020600101541680613d285750610df1565b6001600160a01b0381165f908152609c6020908152604080832085845290915290205460ff1615613d6c57604051630d4c4c9160e21b815260040160405180910390fd5b6001600160a01b0381165f908152609c602090815260408083208584528252909120805460ff1916600117905583015161200e908290613db390889088908490889061080f565b85516020870151614323565b60605f613deb7f00000000000000000000000000000000000000000000000000000000000000006131dc565b9050805f81518110613dff57613dff6156a0565b016020908101516040516001600160f81b03199091169181019190915260210160405160208183030381529060405291505090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e90573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eb49190615ae3565b6001600160a01b0316336001600160a01b0316146110195760405163794821ff60e01b815260040160405180910390fd5b60605f610c9c83614375565b5f610c9c613efe84613aa1565b839061362d565b6001600160a01b038084165f90815260a5602090815260408083209386168352929052908120613f34906140a6565b9050610df143613f448484615774565b6001600160a01b038088165f90815260a560209081526040808320938a1683529290522091906143ce565b5f610c9c83836143d9565b5f610c9c83670de0b6b3a764000084614233565b825f03613fba57604080516020810190915284548152613fb3908290612c1a90613aa1565b8455610df1565b6040805160208101909152845481525f90613fd6908584613641565b90505f613fe38483615774565b90505f613ffe84612c1a613ff7888a615774565b8590613f7a565b80885590505f819003611aae5760405163172cec7360e31b815260040160405180910390fd5b5f60ff8216601f8111156117e057604051632cd44ac360e21b815260040160405180910390fd5b5f5f614058868686614233565b9050600183600281111561406e5761406e615afe565b14801561408a57505f848061408557614085615b12565b868809115b1561409d5761409a600182615774565b90505b95945050505050565b5f6140b18282614425565b6001600160e01b031692915050565b5f6140cc83838361446a565b6001600160e01b03169392505050565b5f6118886140ea8385615b26565b85906001600160401b031661362d565b60605f83516001600160401b0381111561411657614116614ba2565b60405190808252806020026020018201604052801561413f578160200160208202803683370190505b5090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394d7d00c8787876040518463ffffffff1660e01b815260040161419393929190615b45565b5f60405180830381865afa1580156141ad573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526141d49190810190615966565b90505f5b855181101561421c576141f788878381518110612530576125306156a0565b838281518110614209576142096156a0565b60209081029190910101526001016141d8565b50909695505050505050565b5f610c9c838361362d565b5f80805f19858709858702925082811083820303915050805f0361426a5783828161426057614260615b12565b0492505050610c9c565b8084116142b15760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401612305565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f610c9c83836144b3565b4281101561434457604051630819bdcd60e01b815260040160405180910390fd5b6143586001600160a01b0385168484614596565b610df157604051638baa579f60e01b815260040160405180910390fd5b6060815f018054806020026020016040519081016040528092919081815260200182805480156143c257602002820191905f5260205f20905b8154815260200190600101908083116143ae575b50505050509050919050565b610fd28383836145ea565b5f81815260018301602052604081205461441e57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556117e0565b505f6117e0565b81545f9080156144625761444b8461443e600184615a76565b5f91825260209091200190565b5464010000000090046001600160e01b0316611888565b509092915050565b82545f908161447b868683856146f0565b905080156144a9576144928661443e600184615a76565b5464010000000090046001600160e01b031661088d565b5091949350505050565b5f818152600183016020526040812054801561458d575f6144d5600183615a76565b85549091505f906144e890600190615a76565b9050818114614547575f865f018281548110614506576145066156a0565b905f5260205f200154905080875f018481548110614526576145266156a0565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061455857614558615b7e565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506117e0565b5f9150506117e0565b5f5f5f6145a38585614743565b90925090505f8160048111156145bb576145bb615afe565b1480156145d95750856001600160a01b0316826001600160a01b0316145b8061088d575061088d868686614782565b825480156146a2575f6146028561443e600185615a76565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b0316602084015291925090851610156146555760405163151b8e3f60e11b815260040160405180910390fd5b805163ffffffff8086169116036146a057826146768661443e600186615a76565b80546001600160e01b03929092166401000000000263ffffffff9092169190911790555050505050565b505b506040805180820190915263ffffffff92831681526001600160e01b03918216602080830191825285546001810187555f968752952091519051909216640100000000029190921617910155565b5f5b818310156119f4575f6147058484614869565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561472f5780925061473d565b61473a816001615774565b93505b506146f2565b5f5f8251604103614777576020830151604084015160608501515f1a61476b87828585614883565b94509450505050611ead565b505f90506002611ead565b5f5f5f856001600160a01b0316631626ba7e60e01b86866040516024016147aa929190615b92565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516147e89190615baa565b5f60405180830381855afa9150503d805f8114614820576040519150601f19603f3d011682016040523d82523d5f602084013e614825565b606091505b509150915081801561483957506020815110155b801561088d57508051630b135d3f60e11b9061485e90830160209081019084016158f2565b149695505050505050565b5f6148776002848418615bc0565b610c9c90848416615774565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156148b857505f90506003614937565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614909573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116614931575f60019250925050614937565b91505f90505b94509492505050565b6040518060e001604052805f6001600160a01b031681526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f63ffffffff16815260200160608152602001606081525090565b828054828255905f5260205f209081019282156149ec579160200282015b828111156149ec57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906149b7565b506149f8929150614a4c565b5090565b828054828255905f5260205f209081019282156149ec579160200282015b828111156149ec578251825591602001919060010190614a1a565b5080545f8255905f5260205f20908101906123d991905b5b808211156149f8575f8155600101614a4d565b6001600160a01b03811681146123d9575f5ffd5b8035611fd881614a60565b5f5f5f5f5f60a08688031215614a93575f5ffd5b8535614a9e81614a60565b94506020860135614aae81614a60565b93506040860135614abe81614a60565b94979396509394606081013594506080013592915050565b5f5f83601f840112614ae6575f5ffd5b5081356001600160401b03811115614afc575f5ffd5b6020830191508360208260051b8501011115611ead575f5ffd5b5f5f60208385031215614b27575f5ffd5b82356001600160401b03811115614b3c575f5ffd5b614b4885828601614ad6565b90969095509350505050565b602080825282518282018190525f918401906040840190835b8181101561257c578351835260209384019390920191600101614b6d565b5f60208284031215614b9b575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715614bd857614bd8614ba2565b60405290565b604080519081016001600160401b0381118282101715614bd857614bd8614ba2565b604051601f8201601f191681016001600160401b0381118282101715614c2857614c28614ba2565b604052919050565b5f6001600160401b03821115614c4857614c48614ba2565b5060051b60200190565b5f82601f830112614c61575f5ffd5b8135614c74614c6f82614c30565b614c00565b8082825260208201915060208360051b860101925085831115614c95575f5ffd5b602085015b83811015614cbb578035614cad81614a60565b835260209283019201614c9a565b5095945050505050565b5f82601f830112614cd4575f5ffd5b8135614ce2614c6f82614c30565b8082825260208201915060208360051b860101925085831115614d03575f5ffd5b602085015b83811015614cbb578035835260209283019201614d08565b5f5f5f60608486031215614d32575f5ffd5b8335614d3d81614a60565b925060208401356001600160401b03811115614d57575f5ffd5b614d6386828701614c52565b92505060408401356001600160401b03811115614d7e575f5ffd5b614d8a86828701614cc5565b9150509250925092565b5f8151808452602084019350602083015f5b82811015614dc4578151865260209586019590910190600101614da6565b5093949350505050565b602081525f610c9c6020830184614d94565b803563ffffffff81168114611fd8575f5ffd5b5f5f83601f840112614e03575f5ffd5b5081356001600160401b03811115614e19575f5ffd5b602083019150836020828501011115611ead575f5ffd5b5f5f5f5f60608587031215614e43575f5ffd5b8435614e4e81614a60565b9350614e5c60208601614de0565b925060408501356001600160401b03811115614e76575f5ffd5b614e8287828801614df3565b95989497509550505050565b5f5f5f5f60808587031215614ea1575f5ffd5b8435614eac81614a60565b93506020850135614ebc81614a60565b93969395505050506040820135916060013590565b5f60208284031215614ee1575f5ffd5b8135610c9c81614a60565b5f5f60408385031215614efd575f5ffd5b8235614f0881614a60565b91506020830135614f1881614a60565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c9c6020830184614f23565b5f60e08284031215614f73575f5ffd5b614f7b614bb6565b9050614f8682614a74565b8152614f9460208301614a74565b6020820152614fa560408301614a74565b604082015260608281013590820152614fc060808301614de0565b608082015260a08201356001600160401b03811115614fdd575f5ffd5b614fe984828501614c52565b60a08301525060c08201356001600160401b03811115615007575f5ffd5b61501384828501614cc5565b60c08301525092915050565b5f6020828403121561502f575f5ffd5b81356001600160401b03811115615044575f5ffd5b61188884828501614f63565b5f60208284031215615060575f5ffd5b813560ff81168114610c9c575f5ffd5b6001600160401b03811681146123d9575f5ffd5b5f5f5f5f5f5f86880360e081121561509a575f5ffd5b87356150a581614a60565b96506040601f19820112156150b8575f5ffd5b506020870194506060870135935060808701356150d481614a60565b925060a08701356150e481615070565b915060c08701356150f481615070565b809150509295509295509295565b5f8151808452602084019350602083015f5b82811015614dc45781516001600160a01b0316865260209586019590910190600101615114565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201515f916151869085018263ffffffff169052565b5060a082015160e060a08501526151a060e0850182615102565b905060c083015184820360c086015261409d8282614d94565b604081525f6151cb604083018561513b565b828103602084015261409d8185614d94565b5f82825180855260208501945060208160051b830101602085015f5b8381101561421c57601f19858403018852615215838351614d94565b60209889019890935091909101906001016151f9565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b8281101561528257605f1987860301845261526d85835161513b565b94506020938401939190910190600101615251565b50505050828103602084015261409d81856151dd565b5f5f5f606084860312156152aa575f5ffd5b83356152b581614a60565b92506020840135915060408401356152cc81615070565b809150509250925092565b604081525f6151cb6040830185615102565b5f5f5f604084860312156152fb575f5ffd5b833561530681614a60565b925060208401356001600160401b03811115615320575f5ffd5b61532c86828701614df3565b9497909650939450505050565b5f5f6040838503121561534a575f5ffd5b823561535581614a60565b915060208301356001600160401b0381111561536f575f5ffd5b61537b85828601614c52565b9150509250929050565b5f5f5f5f5f5f6060878903121561539a575f5ffd5b86356001600160401b038111156153af575f5ffd5b6153bb89828a01614ad6565b90975095505060208701356001600160401b038111156153d9575f5ffd5b6153e589828a01614ad6565b90955093505060408701356001600160401b03811115615403575f5ffd5b61540f89828a01614ad6565b979a9699509497509295939492505050565b602081525f610c9c602083018461513b565b5f5f5f60608486031215615445575f5ffd5b833561545081614a60565b925060208401356001600160401b0381111561546a575f5ffd5b84016040818703121561547b575f5ffd5b615483614bde565b81356001600160401b03811115615498575f5ffd5b8201601f810188136154a8575f5ffd5b80356001600160401b038111156154c1576154c1614ba2565b6154d4601f8201601f1916602001614c00565b8181528960208385010111156154e8575f5ffd5b816020840160208301375f60209282018301528352928301359282019290925293969395505050506040919091013590565b5f5f6040838503121561552b575f5ffd5b823561553681614a60565b946020939093013593505050565b604081525f6151cb6040830185614d94565b80151581146123d9575f5ffd5b5f5f5f5f60608587031215615576575f5ffd5b84356001600160401b0381111561558b575f5ffd5b850160e0818803121561559c575f5ffd5b935060208501356001600160401b038111156155b6575f5ffd5b6155c287828801614ad6565b90945092505060408501356155d681615556565b939692955090935050565b5f5f604083850312156155f2575f5ffd5b82356001600160401b03811115615607575f5ffd5b8301601f81018513615617575f5ffd5b8035615625614c6f82614c30565b8082825260208201915060208360051b850101925087831115615646575f5ffd5b6020840193505b8284101561567157833561566081614a60565b82526020938401939091019061564d565b945050505060208301356001600160401b0381111561536f575f5ffd5b602081525f610c9c60208301846151dd565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126156c8575f5ffd5b9190910192915050565b5f5f8335601e198436030181126156e7575f5ffd5b8301803591506001600160401b03821115615700575f5ffd5b6020019150600581901b3603821315611ead575f5ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b5f60208284031215615755575f5ffd5b8151610c9c81615070565b634e487b7160e01b5f52601160045260245ffd5b808201808211156117e0576117e0615760565b60a08101853561579681614a60565b6001600160a01b0316825263ffffffff6157b260208801614de0565b16602083015260408201949094526001600160a01b03929092166060830152608090910152919050565b5f82601f8301126157eb575f5ffd5b81516157f9614c6f82614c30565b8082825260208201915060208360051b86010192508583111561581a575f5ffd5b602085015b83811015614cbb57805183526020928301920161581f565b5f5f60408385031215615848575f5ffd5b82516001600160401b0381111561585d575f5ffd5b8301601f8101851361586d575f5ffd5b805161587b614c6f82614c30565b8082825260208201915060208360051b85010192508783111561589c575f5ffd5b6020840193505b828410156158c75783516158b681614a60565b8252602093840193909101906158a3565b8095505050505060208301516001600160401b038111156158e6575f5ffd5b61537b858286016157dc565b5f60208284031215615902575f5ffd5b5051919050565b5f823560de198336030181126156c8575f5ffd5b5f6117e03683614f63565b5f60208284031215615938575f5ffd5b8135610c9c81615556565b6001600160a01b03831681526040602082018190525f9061188890830184615102565b5f60208284031215615976575f5ffd5b81516001600160401b0381111561598b575f5ffd5b8201601f8101841361599b575f5ffd5b80516159a9614c6f82614c30565b8082825260208201915060208360051b8501019250868311156159ca575f5ffd5b6020840193505b8284101561088d5783516159e481615070565b8252602093840193909101906159d1565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60018201615a2a57615a2a615760565b5060010190565b838152606060208201525f615a49606083018561513b565b828103604084015261088d8185614d94565b5f60208284031215615a6b575f5ffd5b8151610c9c81615556565b818103818111156117e0576117e0615760565b63ffffffff82811682821603908111156117e0576117e0615760565b63ffffffff81811683821601908111156117e0576117e0615760565b5f5f60408385031215615ad2575f5ffd5b505080516020909101519092909150565b5f60208284031215615af3575f5ffd5b8151610c9c81614a60565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b6001600160401b0382811682821603908111156117e0576117e0615760565b6001600160a01b03841681526060602082018190525f90615b6890830185615102565b905063ffffffff83166040830152949350505050565b634e487b7160e01b5f52603160045260245ffd5b828152604060208201525f6118886040830184614f23565b5f82518060208501845e5f920191825250919050565b5f82615bda57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220cfab2ac68206c2bb7c3bde9ecb9d93609eac4e9fed888135fd6d461d388210b764736f6c634300081b0033", } // DelegationManagerABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/ECDSACertificateVerifier/binding.go b/pkg/bindings/ECDSACertificateVerifier/binding.go index 4a730bf19c..2746f3dd4c 100644 --- a/pkg/bindings/ECDSACertificateVerifier/binding.go +++ b/pkg/bindings/ECDSACertificateVerifier/binding.go @@ -57,7 +57,7 @@ type OperatorSet struct { // ECDSACertificateVerifierMetaData contains all meta data concerning the ECDSACertificateVerifier contract. var ECDSACertificateVerifierMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_operatorTableUpdater\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableUpdater\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"calculateCertificateDigest\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateCertificateDigestBytes\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.ECDSAOperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorInfos\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIOperatorTableCalculatorTypes.ECDSAOperatorInfo[]\",\"components\":[{\"name\":\"pubkey\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetOwner\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeWeights\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isReferenceTimestampSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestReferenceTimestamp\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxOperatorTableStaleness\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"operatorTableUpdater\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIOperatorTableUpdater\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateOperatorTable\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfos\",\"type\":\"tuple[]\",\"internalType\":\"structIOperatorTableCalculatorTypes.ECDSAOperatorInfo[]\",\"components\":[{\"name\":\"pubkey\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"operatorSetConfig\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificate\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIECDSACertificateVerifierTypes.ECDSACertificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sig\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyCertificateNominal\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIECDSACertificateVerifierTypes.ECDSACertificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sig\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"totalStakeNominalThresholds\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyCertificateProportion\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIECDSACertificateVerifierTypes.ECDSACertificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sig\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"totalStakeProportionThresholds\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxStalenessPeriodUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetOwnerUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"owner\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TableUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorInfos\",\"type\":\"tuple[]\",\"indexed\":false,\"internalType\":\"structIOperatorTableCalculatorTypes.ECDSAOperatorInfo[]\",\"components\":[{\"name\":\"pubkey\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"IndexOutOfBounds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignatureLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyTableUpdater\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorCountZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReferenceTimestampDoesNotExist\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootDisabled\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignersNotOrdered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TableUpdateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"VerificationFailed\",\"inputs\":[]}]", - Bin: "0x60c060405234801561000f575f5ffd5b5060405161231938038061231983398101604081905261002e9161016d565b6001600160a01b03821660805280806100468161005b565b60a0525061005490506100a1565b5050610297565b5f5f829050601f8151111561008e578260405163305a27a960e01b8152600401610085919061023c565b60405180910390fd5b805161009982610271565b179392505050565b5f54610100900460ff16156101085760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610085565b5f5460ff90811614610157575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561017e575f5ffd5b82516001600160a01b0381168114610194575f5ffd5b60208401519092506001600160401b038111156101af575f5ffd5b8301601f810185136101bf575f5ffd5b80516001600160401b038111156101d8576101d8610159565b604051601f8201601f19908116603f011681016001600160401b038111828210171561020657610206610159565b60405281815282820160200187101561021d575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610291575f198160200360031b1b821691505b50919050565b60805160a05161204c6102cd5f395f8181610342015261104601525f81816101ad015281816103760152610ee4015261204c5ff3fe608060405234801561000f575f5ffd5b5060043610610106575f3560e01c80637c85ac4c1161009e578063be86e0b21161006e578063be86e0b21461026e578063c0da24201461028f578063cd83a72b146102a2578063e49613fc146102c5578063f698da25146102e5575f5ffd5b80637c85ac4c146101fa5780637d1d1f5b1461021a57806380c7d3f31461023a578063848189201461025b575f5ffd5b80635ddb9b5b116100d95780635ddb9b5b1461016d5780636141879e1461019557806368d6e081146101a8578063702ca531146101e7575f5ffd5b8063184674341461010a57806323c2a3cb1461013057806354fd4d501461014357806356d482f514610158575b5f5ffd5b61011d61011836600461161c565b6102ed565b6040519081526020015b60405180910390f35b61011d61013e3660046116fc565b610308565b61014b61033b565b604051610127919061175c565b61016b6101663660046117cb565b61036b565b005b61018061017b36600461183d565b610582565b60405163ffffffff9091168152602001610127565b6101806101a336600461183d565b6105a8565b6101cf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610127565b61014b6101f536600461161c565b6105ce565b61020d6102083660046116fc565b610665565b60405161012791906118ac565b61022d61022836600461190f565b6107c3565b6040516101279190611964565b61024d610248366004611986565b610986565b604051610127929190611a0a565b6101cf61026936600461183d565b6109a4565b61028161027c366004611a37565b6109cd565b604051610127929190611b1d565b61028161029d366004611b3f565b610a6d565b6102b56102b03660046116fc565b610b6f565b6040519015158152602001610127565b6102d86102d3366004611bb5565b610ba5565b6040516101279190611bf0565b61011d610c9e565b5f6102f883836105ce565b8051906020012090505b92915050565b5f5f61031384610d5e565b5f90815260046020908152604080832063ffffffff8716845290915290205491505092915050565b60606103667f0000000000000000000000000000000000000000000000000000000000000000610dc1565b905090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103b45760405163030c1b6b60e11b815260040160405180910390fd5b5f6103cc6103c73688900388018861183d565b610d5e565b5f8181526003602052604090205490915063ffffffff9081169086161161040657604051632f20889f60e01b815260040160405180910390fd5b5f81815260046020908152604080832063ffffffff8916845290915281208490555b8381101561048e5784848281811061044257610442611c02565b90506020028101906104549190611c16565b5f83815260056020908152604080832063ffffffff8b168452825280832085845290915290206104848282611c5f565b5050600101610428565b505f818152600360209081526040909120805463ffffffff191663ffffffff88161790556104be90830183611d62565b5f8281526001602090815260409182902080546001600160a01b0319166001600160a01b0394909416939093179092556104fd91908401908401611d7d565b5f828152600260209081526040808320805463ffffffff191663ffffffff958616179055600682528083209389168352929052819020805460ff19166001179055517f4f588da9ec57976194a79b5594f8f8782923d93013df2b9ed12fe125805011ef90610572908890889088908890611d96565b60405180910390a1505050505050565b5f5f61058d83610d5e565b5f9081526003602052604090205463ffffffff169392505050565b5f5f6105b383610d5e565b5f9081526002602052604090205463ffffffff169392505050565b604080517fda346acb3ce99e7c5132bf8cafb159ad8085970ebfdba78007ef0fe163063d1460208083019190915263ffffffff85168284015260608083018590528351808403820181526080909301909352815191012061062d610c9e565b60405161190160f01b602082015260228101919091526042810182905260620160405160208183030381529060405291505092915050565b60605f61067184610d5e565b5f81815260046020908152604080832063ffffffff8089168552925282205492935082166001600160401b038111156106ac576106ac611644565b6040519080825280602002602001820160405280156106f157816020015b604080518082019091525f8152606060208201528152602001906001900390816106ca5790505b5090505f5b8263ffffffff168110156107b9575f84815260056020908152604080832063ffffffff8a16845282528083208484528252918290208251808401845281546001600160a01b031681526001820180548551818602810186019096528086529194929385810193929083018282801561078b57602002820191905f5260205f20905b815481526020019060010190808311610777575b5050505050815250508282815181106107a6576107a6611c02565b60209081029190910101526001016106f6565b5095945050505050565b60605f6107d86103c73686900386018661183d565b5f81815260046020908152604080832063ffffffff881684529091529020549091508061081857604051631029081560e21b815260040160405180910390fd5b5f82815260056020908152604080832063ffffffff88168452825280832083805290915281206001015490816001600160401b0381111561085b5761085b611644565b604051908082528060200260200182016040528015610884578160200160208202803683370190505b5090505f5b8381101561097b575f85815260056020908152604080832063ffffffff8b16845282528083208484528252808320600101805482518185028101850190935280835291929091908301828280156108fd57602002820191905f5260205f20905b8154815260200190600101908083116108e9575b509394505f93505050505b81518110801561091757508481105b156109715781818151811061092e5761092e611c02565b602002602001015184828151811061094857610948611c02565b6020026020010181815161095c9190611ec9565b9052508061096981611edc565b915050610908565b5050600101610889565b509695505050505050565b6060805f5f6109958686610dfe565b909450925050505b9250929050565b5f5f6109af83610d5e565b5f908152600160205260409020546001600160a01b03169392505050565b5f60605f5f6109dc8787610dfe565b915091508451825114610a025760405163512509d360e11b815260040160405180910390fd5b5f5b8251811015610a5c57858181518110610a1f57610a1f611c02565b6020026020010151838281518110610a3957610a39611c02565b60200260200101511015610a5457505f93509150610a659050565b600101610a04565b50600193509150505b935093915050565b5f60605f5f610a7c8888610dfe565b90925090505f610a938961022860208b018b611d7d565b83519091508614610ab75760405163512509d360e11b815260040160405180910390fd5b5f5b8351811015610b5b575f612710898984818110610ad857610ad8611c02565b9050602002016020810190610aed9190611ef4565b61ffff16848481518110610b0357610b03611c02565b6020026020010151610b159190611c48565b610b1f9190611f29565b905080858381518110610b3457610b34611c02565b60200260200101511015610b52575f84965096505050505050610b66565b50600101610ab9565b506001945090925050505b94509492505050565b5f5f610b7a84610d5e565b5f90815260066020908152604080832063ffffffff8716845290915290205460ff1691505092915050565b604080518082019091525f8152606060208201525f610bc385610d5e565b5f81815260046020908152604080832063ffffffff891684529091529020549091508310610c0457604051634e23d03560e01b815260040160405180910390fd5b5f81815260056020908152604080832063ffffffff8816845282528083208684528252918290208251808401845281546001600160a01b0316815260018201805485518186028101860190965280865291949293858101939290830182828015610c8b57602002820191905f5260205f20905b815481526020019060010190808311610c77575b5050505050815250509150509392505050565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f91ab3d17e3a50a9d89e63fd30b92be7f5336b03b287bb946787a83a9d62a27667f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea610d0b61103e565b8051602091820120604051610d43949392309101938452602084019290925260408301526001600160a01b0316606082015260800190565b60405160208183030381529060405280519060200120905090565b5f815f0151826020015163ffffffff16604051602001610da992919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261030290611f3c565b60605f610dcd836110b3565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6060805f610e146103c73687900387018761183d565b5f8181526002602052604090205490915063ffffffff161580610e6a57505f8181526002602090815260409091205463ffffffff1690610e5690860186611d7d565b610e609190611f5f565b63ffffffff164211155b610e875760405163640fcd6b60e11b815260040160405180910390fd5b5f81815260066020908152604082209190610ea490870187611d7d565b63ffffffff16815260208101919091526040015f205460ff16610eda57604051630cad17b760e31b815260040160405180910390fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166364e1df84610f166020870187611d7d565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa158015610f56573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7a9190611f7b565b610f9757604051631b14174b60e01b815260040160405180910390fd5b5f610fb2610fa86020870187611d7d565b86602001356102ed565b90505f610fff82610fc66040890189611f9a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506110da92505050565b90505f6110138861022860208a018a611d7d565b5190505f61102f8561102860208b018b611d7d565b85856112e1565b99929850919650505050505050565b60605f61106a7f0000000000000000000000000000000000000000000000000000000000000000610dc1565b9050805f8151811061107e5761107e611c02565b016020908101516040516001600160f81b03199091169181019190915260210160405160208183030381529060405291505090565b5f60ff8216601f81111561030257604051632cd44ac360e21b815260040160405180910390fd5b60605f82511180156110f75750604182516110f59190611fdc565b155b61111457604051634be6321b60e01b815260040160405180910390fd5b5f604183516111239190611f29565b9050806001600160401b0381111561113d5761113d611644565b604051908082528060200260200182016040528015611166578160200160208202803683370190505b5091505f5b818110156112d957604080516041808252608082019092525f916020820181803683370190505090505f5b60418110156112015785816111ac856041611c48565b6111b69190611ec9565b815181106111c6576111c6611c02565b602001015160f81c60f81b8282815181106111e3576111e3611c02565b60200101906001600160f81b03191690815f1a905350600101611196565b505f5f61120e888461150b565b90925090505f81600481111561122657611226611fef565b1461124457604051638baa579f60e01b815260040160405180910390fd5b831580611285575085611258600186612003565b8151811061126857611268611c02565b60200260200101516001600160a01b0316826001600160a01b0316115b6112a257604051630b550c5760e41b815260040160405180910390fd5b818685815181106112b5576112b5611c02565b6001600160a01b03929092166020928302919091019091015250505060010161116b565b505092915050565b5f84815260046020908152604080832063ffffffff87168452909152902054606090826001600160401b0381111561131b5761131b611644565b604051908082528060200260200182016040528015611344578160200160208202803683370190505b5091505f5b8451811015611501575f85828151811061136557611365611c02565b602002602001015190505f5f905061139860405180604001604052805f6001600160a01b03168152602001606081525090565b5f5b85811015611461575f8b815260056020908152604080832063ffffffff8e16845282528083208484528252918290208251808401845281546001600160a01b031681526001820180548551818602810186019096528086529194929385810193929083018282801561142957602002820191905f5260205f20905b815481526020019060010190808311611415575b5050505050815250509150836001600160a01b0316825f01516001600160a01b0316036114595760019250611461565b60010161139a565b50816114805760405163439cc0cd60e01b815260040160405180910390fd5b60208101515f5b81518110801561149657508881105b156114f0578181815181106114ad576114ad611c02565b60200260200101518882815181106114c7576114c7611c02565b602002602001018181516114db9190611ec9565b905250806114e881611edc565b915050611487565b505060019093019250611349915050565b5050949350505050565b5f5f825160410361153f576020830151604084015160608501515f1a6115338782858561154a565b9450945050505061099d565b505f9050600261099d565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561157f57505f90506003610b66565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156115d0573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166115f8575f60019250925050610b66565b965f9650945050505050565b803563ffffffff81168114611617575f5ffd5b919050565b5f5f6040838503121561162d575f5ffd5b61163683611604565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561168057611680611644565b604052919050565b6001600160a01b038116811461169c575f5ffd5b50565b5f604082840312156116af575f5ffd5b604080519081016001600160401b03811182821017156116d1576116d1611644565b60405290508082356116e281611688565b81526116f060208401611604565b60208201525092915050565b5f5f6060838503121561170d575f5ffd5b611717848461169f565b915061172560408401611604565b90509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61176e602083018461172e565b9392505050565b5f60408284031215611785575f5ffd5b50919050565b5f5f83601f84011261179b575f5ffd5b5081356001600160401b038111156117b1575f5ffd5b6020830191508360208260051b850101111561099d575f5ffd5b5f5f5f5f5f60c086880312156117df575f5ffd5b6117e98787611775565b94506117f760408701611604565b935060608601356001600160401b03811115611811575f5ffd5b61181d8882890161178b565b909450925061183190508760808801611775565b90509295509295909350565b5f6040828403121561184d575f5ffd5b61176e838361169f565b80516001600160a01b03168252602080820151604082850181905281519085018190525f929190910190829060608601905b808310156107b95783518252602082019150602084019350600183019250611889565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561190357603f198786030184526118ee858351611857565b945060209384019391909101906001016118d2565b50929695505050505050565b5f5f60608385031215611920575f5ffd5b6117178484611775565b5f8151808452602084019350602083015f5b8281101561195a57815186526020958601959091019060010161193c565b5093949350505050565b602081525f61176e602083018461192a565b5f60608284031215611785575f5ffd5b5f5f60608385031215611997575f5ffd5b6119a18484611775565b915060408301356001600160401b038111156119bb575f5ffd5b6119c785828601611976565b9150509250929050565b5f8151808452602084019350602083015f5b8281101561195a5781516001600160a01b03168652602095860195909101906001016119e3565b604081525f611a1c604083018561192a565b8281036020840152611a2e81856119d1565b95945050505050565b5f5f5f60808486031215611a49575f5ffd5b611a538585611775565b925060408401356001600160401b03811115611a6d575f5ffd5b611a7986828701611976565b92505060608401356001600160401b03811115611a94575f5ffd5b8401601f81018613611aa4575f5ffd5b80356001600160401b03811115611abd57611abd611644565b8060051b611acd60208201611658565b91825260208184018101929081019089841115611ae8575f5ffd5b6020850194505b83851015611b0e57843580835260209586019590935090910190611aef565b80955050505050509250925092565b8215158152604060208201525f611b3760408301846119d1565b949350505050565b5f5f5f5f60808587031215611b52575f5ffd5b611b5c8686611775565b935060408501356001600160401b03811115611b76575f5ffd5b611b8287828801611976565b93505060608501356001600160401b03811115611b9d575f5ffd5b611ba98782880161178b565b95989497509550505050565b5f5f5f60808486031215611bc7575f5ffd5b611bd1858561169f565b9250611bdf60408501611604565b929592945050506060919091013590565b602081525f61176e6020830184611857565b634e487b7160e01b5f52603260045260245ffd5b5f8235603e19833603018112611c2a575f5ffd5b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761030257610302611c34565b8135611c6a81611688565b81546001600160a01b0319166001600160a01b0391909116178155602082013536839003601e19018112611c9c575f5ffd5b820180356001600160401b03811115611cb3575f5ffd5b6020820191508060051b3603821315611cca575f5ffd5b600183016001600160401b03821115611ce557611ce5611644565b68010000000000000000821115611cfe57611cfe611644565b805482825580831015611d33575f828152602090208381019082015b80821015611d30575f8255600182019150611d1a565b50505b505f90815260208120905b82811015611d5a57833582820155602090930192600101611d3e565b505050505050565b5f60208284031215611d72575f5ffd5b813561176e81611688565b5f60208284031215611d8d575f5ffd5b61176e82611604565b5f608082018635611da681611688565b6001600160a01b0316835263ffffffff611dc260208901611604565b16602084015263ffffffff861660408401526080606084015283905260a0600584901b83018101908301855f603e1936839003015b87821015611eba57868503609f190184528235818112611e15575f5ffd5b89018035611e2281611688565b6001600160a01b03168652602081013536829003601e19018112611e44575f5ffd5b016020810190356001600160401b03811115611e5e575f5ffd5b8060051b803603831315611e70575f5ffd5b60406020890181905288018290526001600160fb1b03821115611e91575f5ffd5b808360608a01376060818901019750505050602083019250602084019350600182019150611df7565b50929998505050505050505050565b8082018082111561030257610302611c34565b5f60018201611eed57611eed611c34565b5060010190565b5f60208284031215611f04575f5ffd5b813561ffff8116811461176e575f5ffd5b634e487b7160e01b5f52601260045260245ffd5b5f82611f3757611f37611f15565b500490565b80516020808301519190811015611785575f1960209190910360031b1b16919050565b63ffffffff818116838216019081111561030257610302611c34565b5f60208284031215611f8b575f5ffd5b8151801515811461176e575f5ffd5b5f5f8335601e19843603018112611faf575f5ffd5b8301803591506001600160401b03821115611fc8575f5ffd5b60200191503681900382131561099d575f5ffd5b5f82611fea57611fea611f15565b500690565b634e487b7160e01b5f52602160045260245ffd5b8181038181111561030257610302611c3456fea2646970667358221220c918da5d23756c3a8caca04dc1168ae68d8da50a3b978085361bba95f3546e0c64736f6c634300081b0033", + Bin: "0x60c060405234801561000f575f5ffd5b5060405161231938038061231983398101604081905261002e9161016d565b6001600160a01b03821660805280806100468161005b565b60a0525061005490506100a1565b5050610297565b5f5f829050601f8151111561008e578260405163305a27a960e01b8152600401610085919061023c565b60405180910390fd5b805161009982610271565b179392505050565b5f54610100900460ff16156101085760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610085565b5f5460ff90811614610157575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561017e575f5ffd5b82516001600160a01b0381168114610194575f5ffd5b60208401519092506001600160401b038111156101af575f5ffd5b8301601f810185136101bf575f5ffd5b80516001600160401b038111156101d8576101d8610159565b604051601f8201601f19908116603f011681016001600160401b038111828210171561020657610206610159565b60405281815282820160200187101561021d575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610291575f198160200360031b1b821691505b50919050565b60805160a05161204c6102cd5f395f8181610342015261104601525f81816101ad015281816103760152610ee4015261204c5ff3fe608060405234801561000f575f5ffd5b5060043610610106575f3560e01c80637c85ac4c1161009e578063be86e0b21161006e578063be86e0b21461026e578063c0da24201461028f578063cd83a72b146102a2578063e49613fc146102c5578063f698da25146102e5575f5ffd5b80637c85ac4c146101fa5780637d1d1f5b1461021a57806380c7d3f31461023a578063848189201461025b575f5ffd5b80635ddb9b5b116100d95780635ddb9b5b1461016d5780636141879e1461019557806368d6e081146101a8578063702ca531146101e7575f5ffd5b8063184674341461010a57806323c2a3cb1461013057806354fd4d501461014357806356d482f514610158575b5f5ffd5b61011d61011836600461161c565b6102ed565b6040519081526020015b60405180910390f35b61011d61013e3660046116fc565b610308565b61014b61033b565b604051610127919061175c565b61016b6101663660046117cb565b61036b565b005b61018061017b36600461183d565b610582565b60405163ffffffff9091168152602001610127565b6101806101a336600461183d565b6105a8565b6101cf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610127565b61014b6101f536600461161c565b6105ce565b61020d6102083660046116fc565b610665565b60405161012791906118ac565b61022d61022836600461190f565b6107c3565b6040516101279190611964565b61024d610248366004611986565b610986565b604051610127929190611a0a565b6101cf61026936600461183d565b6109a4565b61028161027c366004611a37565b6109cd565b604051610127929190611b1d565b61028161029d366004611b3f565b610a6d565b6102b56102b03660046116fc565b610b6f565b6040519015158152602001610127565b6102d86102d3366004611bb5565b610ba5565b6040516101279190611bf0565b61011d610c9e565b5f6102f883836105ce565b8051906020012090505b92915050565b5f5f61031384610d5e565b5f90815260046020908152604080832063ffffffff8716845290915290205491505092915050565b60606103667f0000000000000000000000000000000000000000000000000000000000000000610dc1565b905090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103b45760405163030c1b6b60e11b815260040160405180910390fd5b5f6103cc6103c73688900388018861183d565b610d5e565b5f8181526003602052604090205490915063ffffffff9081169086161161040657604051632f20889f60e01b815260040160405180910390fd5b5f81815260046020908152604080832063ffffffff8916845290915281208490555b8381101561048e5784848281811061044257610442611c02565b90506020028101906104549190611c16565b5f83815260056020908152604080832063ffffffff8b168452825280832085845290915290206104848282611c5f565b5050600101610428565b505f818152600360209081526040909120805463ffffffff191663ffffffff88161790556104be90830183611d62565b5f8281526001602090815260409182902080546001600160a01b0319166001600160a01b0394909416939093179092556104fd91908401908401611d7d565b5f828152600260209081526040808320805463ffffffff191663ffffffff958616179055600682528083209389168352929052819020805460ff19166001179055517f4f588da9ec57976194a79b5594f8f8782923d93013df2b9ed12fe125805011ef90610572908890889088908890611d96565b60405180910390a1505050505050565b5f5f61058d83610d5e565b5f9081526003602052604090205463ffffffff169392505050565b5f5f6105b383610d5e565b5f9081526002602052604090205463ffffffff169392505050565b604080517fda346acb3ce99e7c5132bf8cafb159ad8085970ebfdba78007ef0fe163063d1460208083019190915263ffffffff85168284015260608083018590528351808403820181526080909301909352815191012061062d610c9e565b60405161190160f01b602082015260228101919091526042810182905260620160405160208183030381529060405291505092915050565b60605f61067184610d5e565b5f81815260046020908152604080832063ffffffff8089168552925282205492935082166001600160401b038111156106ac576106ac611644565b6040519080825280602002602001820160405280156106f157816020015b604080518082019091525f8152606060208201528152602001906001900390816106ca5790505b5090505f5b8263ffffffff168110156107b9575f84815260056020908152604080832063ffffffff8a16845282528083208484528252918290208251808401845281546001600160a01b031681526001820180548551818602810186019096528086529194929385810193929083018282801561078b57602002820191905f5260205f20905b815481526020019060010190808311610777575b5050505050815250508282815181106107a6576107a6611c02565b60209081029190910101526001016106f6565b5095945050505050565b60605f6107d86103c73686900386018661183d565b5f81815260046020908152604080832063ffffffff881684529091529020549091508061081857604051631029081560e21b815260040160405180910390fd5b5f82815260056020908152604080832063ffffffff88168452825280832083805290915281206001015490816001600160401b0381111561085b5761085b611644565b604051908082528060200260200182016040528015610884578160200160208202803683370190505b5090505f5b8381101561097b575f85815260056020908152604080832063ffffffff8b16845282528083208484528252808320600101805482518185028101850190935280835291929091908301828280156108fd57602002820191905f5260205f20905b8154815260200190600101908083116108e9575b509394505f93505050505b81518110801561091757508481105b156109715781818151811061092e5761092e611c02565b602002602001015184828151811061094857610948611c02565b6020026020010181815161095c9190611ec9565b9052508061096981611edc565b915050610908565b5050600101610889565b509695505050505050565b6060805f5f6109958686610dfe565b909450925050505b9250929050565b5f5f6109af83610d5e565b5f908152600160205260409020546001600160a01b03169392505050565b5f60605f5f6109dc8787610dfe565b915091508451825114610a025760405163512509d360e11b815260040160405180910390fd5b5f5b8251811015610a5c57858181518110610a1f57610a1f611c02565b6020026020010151838281518110610a3957610a39611c02565b60200260200101511015610a5457505f93509150610a659050565b600101610a04565b50600193509150505b935093915050565b5f60605f5f610a7c8888610dfe565b90925090505f610a938961022860208b018b611d7d565b83519091508614610ab75760405163512509d360e11b815260040160405180910390fd5b5f5b8351811015610b5b575f612710898984818110610ad857610ad8611c02565b9050602002016020810190610aed9190611ef4565b61ffff16848481518110610b0357610b03611c02565b6020026020010151610b159190611c48565b610b1f9190611f29565b905080858381518110610b3457610b34611c02565b60200260200101511015610b52575f84965096505050505050610b66565b50600101610ab9565b506001945090925050505b94509492505050565b5f5f610b7a84610d5e565b5f90815260066020908152604080832063ffffffff8716845290915290205460ff1691505092915050565b604080518082019091525f8152606060208201525f610bc385610d5e565b5f81815260046020908152604080832063ffffffff891684529091529020549091508310610c0457604051634e23d03560e01b815260040160405180910390fd5b5f81815260056020908152604080832063ffffffff8816845282528083208684528252918290208251808401845281546001600160a01b0316815260018201805485518186028101860190965280865291949293858101939290830182828015610c8b57602002820191905f5260205f20905b815481526020019060010190808311610c77575b5050505050815250509150509392505050565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f91ab3d17e3a50a9d89e63fd30b92be7f5336b03b287bb946787a83a9d62a27667f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea610d0b61103e565b8051602091820120604051610d43949392309101938452602084019290925260408301526001600160a01b0316606082015260800190565b60405160208183030381529060405280519060200120905090565b5f815f0151826020015163ffffffff16604051602001610da992919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261030290611f3c565b60605f610dcd836110b3565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6060805f610e146103c73687900387018761183d565b5f8181526002602052604090205490915063ffffffff161580610e6a57505f8181526002602090815260409091205463ffffffff1690610e5690860186611d7d565b610e609190611f5f565b63ffffffff164211155b610e875760405163640fcd6b60e11b815260040160405180910390fd5b5f81815260066020908152604082209190610ea490870187611d7d565b63ffffffff16815260208101919091526040015f205460ff16610eda57604051630cad17b760e31b815260040160405180910390fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166364e1df84610f166020870187611d7d565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa158015610f56573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7a9190611f7b565b610f9757604051631b14174b60e01b815260040160405180910390fd5b5f610fb2610fa86020870187611d7d565b86602001356102ed565b90505f610fff82610fc66040890189611f9a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506110da92505050565b90505f6110138861022860208a018a611d7d565b5190505f61102f8561102860208b018b611d7d565b85856112e1565b99929850919650505050505050565b60605f61106a7f0000000000000000000000000000000000000000000000000000000000000000610dc1565b9050805f8151811061107e5761107e611c02565b016020908101516040516001600160f81b03199091169181019190915260210160405160208183030381529060405291505090565b5f60ff8216601f81111561030257604051632cd44ac360e21b815260040160405180910390fd5b60605f82511180156110f75750604182516110f59190611fdc565b155b61111457604051634be6321b60e01b815260040160405180910390fd5b5f604183516111239190611f29565b9050806001600160401b0381111561113d5761113d611644565b604051908082528060200260200182016040528015611166578160200160208202803683370190505b5091505f5b818110156112d957604080516041808252608082019092525f916020820181803683370190505090505f5b60418110156112015785816111ac856041611c48565b6111b69190611ec9565b815181106111c6576111c6611c02565b602001015160f81c60f81b8282815181106111e3576111e3611c02565b60200101906001600160f81b03191690815f1a905350600101611196565b505f5f61120e888461150b565b90925090505f81600481111561122657611226611fef565b1461124457604051638baa579f60e01b815260040160405180910390fd5b831580611285575085611258600186612003565b8151811061126857611268611c02565b60200260200101516001600160a01b0316826001600160a01b0316115b6112a257604051630b550c5760e41b815260040160405180910390fd5b818685815181106112b5576112b5611c02565b6001600160a01b03929092166020928302919091019091015250505060010161116b565b505092915050565b5f84815260046020908152604080832063ffffffff87168452909152902054606090826001600160401b0381111561131b5761131b611644565b604051908082528060200260200182016040528015611344578160200160208202803683370190505b5091505f5b8451811015611501575f85828151811061136557611365611c02565b602002602001015190505f5f905061139860405180604001604052805f6001600160a01b03168152602001606081525090565b5f5b85811015611461575f8b815260056020908152604080832063ffffffff8e16845282528083208484528252918290208251808401845281546001600160a01b031681526001820180548551818602810186019096528086529194929385810193929083018282801561142957602002820191905f5260205f20905b815481526020019060010190808311611415575b5050505050815250509150836001600160a01b0316825f01516001600160a01b0316036114595760019250611461565b60010161139a565b50816114805760405163439cc0cd60e01b815260040160405180910390fd5b60208101515f5b81518110801561149657508881105b156114f0578181815181106114ad576114ad611c02565b60200260200101518882815181106114c7576114c7611c02565b602002602001018181516114db9190611ec9565b905250806114e881611edc565b915050611487565b505060019093019250611349915050565b5050949350505050565b5f5f825160410361153f576020830151604084015160608501515f1a6115338782858561154a565b9450945050505061099d565b505f9050600261099d565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561157f57505f90506003610b66565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156115d0573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166115f8575f60019250925050610b66565b965f9650945050505050565b803563ffffffff81168114611617575f5ffd5b919050565b5f5f6040838503121561162d575f5ffd5b61163683611604565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561168057611680611644565b604052919050565b6001600160a01b038116811461169c575f5ffd5b50565b5f604082840312156116af575f5ffd5b604080519081016001600160401b03811182821017156116d1576116d1611644565b60405290508082356116e281611688565b81526116f060208401611604565b60208201525092915050565b5f5f6060838503121561170d575f5ffd5b611717848461169f565b915061172560408401611604565b90509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61176e602083018461172e565b9392505050565b5f60408284031215611785575f5ffd5b50919050565b5f5f83601f84011261179b575f5ffd5b5081356001600160401b038111156117b1575f5ffd5b6020830191508360208260051b850101111561099d575f5ffd5b5f5f5f5f5f60c086880312156117df575f5ffd5b6117e98787611775565b94506117f760408701611604565b935060608601356001600160401b03811115611811575f5ffd5b61181d8882890161178b565b909450925061183190508760808801611775565b90509295509295909350565b5f6040828403121561184d575f5ffd5b61176e838361169f565b80516001600160a01b03168252602080820151604082850181905281519085018190525f929190910190829060608601905b808310156107b95783518252602082019150602084019350600183019250611889565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561190357603f198786030184526118ee858351611857565b945060209384019391909101906001016118d2565b50929695505050505050565b5f5f60608385031215611920575f5ffd5b6117178484611775565b5f8151808452602084019350602083015f5b8281101561195a57815186526020958601959091019060010161193c565b5093949350505050565b602081525f61176e602083018461192a565b5f60608284031215611785575f5ffd5b5f5f60608385031215611997575f5ffd5b6119a18484611775565b915060408301356001600160401b038111156119bb575f5ffd5b6119c785828601611976565b9150509250929050565b5f8151808452602084019350602083015f5b8281101561195a5781516001600160a01b03168652602095860195909101906001016119e3565b604081525f611a1c604083018561192a565b8281036020840152611a2e81856119d1565b95945050505050565b5f5f5f60808486031215611a49575f5ffd5b611a538585611775565b925060408401356001600160401b03811115611a6d575f5ffd5b611a7986828701611976565b92505060608401356001600160401b03811115611a94575f5ffd5b8401601f81018613611aa4575f5ffd5b80356001600160401b03811115611abd57611abd611644565b8060051b611acd60208201611658565b91825260208184018101929081019089841115611ae8575f5ffd5b6020850194505b83851015611b0e57843580835260209586019590935090910190611aef565b80955050505050509250925092565b8215158152604060208201525f611b3760408301846119d1565b949350505050565b5f5f5f5f60808587031215611b52575f5ffd5b611b5c8686611775565b935060408501356001600160401b03811115611b76575f5ffd5b611b8287828801611976565b93505060608501356001600160401b03811115611b9d575f5ffd5b611ba98782880161178b565b95989497509550505050565b5f5f5f60808486031215611bc7575f5ffd5b611bd1858561169f565b9250611bdf60408501611604565b929592945050506060919091013590565b602081525f61176e6020830184611857565b634e487b7160e01b5f52603260045260245ffd5b5f8235603e19833603018112611c2a575f5ffd5b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761030257610302611c34565b8135611c6a81611688565b81546001600160a01b0319166001600160a01b0391909116178155602082013536839003601e19018112611c9c575f5ffd5b820180356001600160401b03811115611cb3575f5ffd5b6020820191508060051b3603821315611cca575f5ffd5b600183016001600160401b03821115611ce557611ce5611644565b68010000000000000000821115611cfe57611cfe611644565b805482825580831015611d33575f828152602090208381019082015b80821015611d30575f8255600182019150611d1a565b50505b505f90815260208120905b82811015611d5a57833582820155602090930192600101611d3e565b505050505050565b5f60208284031215611d72575f5ffd5b813561176e81611688565b5f60208284031215611d8d575f5ffd5b61176e82611604565b5f608082018635611da681611688565b6001600160a01b0316835263ffffffff611dc260208901611604565b16602084015263ffffffff861660408401526080606084015283905260a0600584901b83018101908301855f603e1936839003015b87821015611eba57868503609f190184528235818112611e15575f5ffd5b89018035611e2281611688565b6001600160a01b03168652602081013536829003601e19018112611e44575f5ffd5b016020810190356001600160401b03811115611e5e575f5ffd5b8060051b803603831315611e70575f5ffd5b60406020890181905288018290526001600160fb1b03821115611e91575f5ffd5b808360608a01376060818901019750505050602083019250602084019350600182019150611df7565b50929998505050505050505050565b8082018082111561030257610302611c34565b5f60018201611eed57611eed611c34565b5060010190565b5f60208284031215611f04575f5ffd5b813561ffff8116811461176e575f5ffd5b634e487b7160e01b5f52601260045260245ffd5b5f82611f3757611f37611f15565b500490565b80516020808301519190811015611785575f1960209190910360031b1b16919050565b63ffffffff818116838216019081111561030257610302611c34565b5f60208284031215611f8b575f5ffd5b8151801515811461176e575f5ffd5b5f5f8335601e19843603018112611faf575f5ffd5b8301803591506001600160401b03821115611fc8575f5ffd5b60200191503681900382131561099d575f5ffd5b5f82611fea57611fea611f15565b500690565b634e487b7160e01b5f52602160045260245ffd5b8181038181111561030257610302611c3456fea26469706673582212208d0a878a042e9b91809f8767929e9c01d8a7b59a7c046bfd148b8ebb747253bb64736f6c634300081b0033", } // ECDSACertificateVerifierABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/Eigen/binding.go b/pkg/bindings/Eigen/binding.go index 6e0a1c055e..b6d3be148e 100644 --- a/pkg/bindings/Eigen/binding.go +++ b/pkg/bindings/Eigen/binding.go @@ -38,7 +38,7 @@ type ERC20VotesUpgradeableCheckpoint struct { // EigenMetaData contains all meta data concerning the Eigen contract. var EigenMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_bEIGEN\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"CLOCK_MODE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allowedFrom\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allowedTo\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"bEIGEN\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkpoints\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"pos\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structERC20VotesUpgradeable.Checkpoint\",\"components\":[{\"name\":\"fromBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"votes\",\"type\":\"uint224\",\"internalType\":\"uint224\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"clock\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint48\",\"internalType\":\"uint48\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decreaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegate\",\"inputs\":[{\"name\":\"delegatee\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegateBySig\",\"inputs\":[{\"name\":\"delegatee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegates\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"disableTransferRestrictions\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"eip712Domain\",\"inputs\":[],\"outputs\":[{\"name\":\"fields\",\"type\":\"bytes1\",\"internalType\":\"bytes1\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"version\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"verifyingContract\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"extensions\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPastTotalSupply\",\"inputs\":[{\"name\":\"timepoint\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPastVotes\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"timepoint\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getVotes\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"minters\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"mintingAllowances\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"mintAllowedAfters\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"mintAllowedAfter\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mintingAllowance\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"multisend\",\"inputs\":[{\"name\":\"receivers\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"amounts\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"nonces\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"numCheckpoints\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permit\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"deadline\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"v\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"r\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"s\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllowedFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"isAllowedFrom\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAllowedTo\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"isAllowedTo\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferRestrictionsDisabledAfter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unwrap\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"wrap\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegateChanged\",\"inputs\":[{\"name\":\"delegator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"fromDelegate\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"toDelegate\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegateVotesChanged\",\"inputs\":[{\"name\":\"delegate\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"previousBalance\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newBalance\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EIP712DomainChanged\",\"inputs\":[],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Mint\",\"inputs\":[{\"name\":\"minter\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetAllowedFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"isAllowedFrom\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetAllowedTo\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"isAllowedTo\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokenUnwrapped\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokenWrapped\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TransferRestrictionsDisabled\",\"inputs\":[],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]}]", - Bin: "0x60c060405234801561000f575f5ffd5b5060405161379b38038061379b83398101604081905261002e9161016a565b8061003881610058565b608052506001600160a01b03821660a05261005161009e565b5050610294565b5f5f829050601f8151111561008b578260405163305a27a960e01b81526004016100829190610239565b60405180910390fd5b80516100968261026e565b179392505050565b5f54610100900460ff16156101055760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610082565b5f5460ff90811614610154575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561017b575f5ffd5b82516001600160a01b0381168114610191575f5ffd5b60208401519092506001600160401b038111156101ac575f5ffd5b8301601f810185136101bc575f5ffd5b80516001600160401b038111156101d5576101d5610156565b604051601f8201601f19908116603f011681016001600160401b038111828210171561020357610203610156565b60405281815282820160200187101561021a575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561028e575f198160200360031b1b821691505b50919050565b60805160a0516134d16102ca5f395f818161034c01528181610852015281816114dd01526115fb01525f610a1401526134d15ff3fe608060405234801561000f575f5ffd5b5060043610610260575f3560e01c80637ecebe001161014b578063a9059cbb116100bf578063dd62ed3e11610084578063dd62ed3e146105cc578063de0e9a3e146105df578063ea598cb0146105f2578063eb415f4514610605578063f1127ed81461060d578063f2fde38b1461064a575f5ffd5b8063a9059cbb1461056d578063aad41a4114610580578063b8c2559414610593578063c3cda520146105a6578063d505accf146105b9575f5ffd5b806391ddadf41161011057806391ddadf41461050357806395d89b41146105225780639ab24eb01461052a5780639aec4bae1461053d578063a457c2d714610547578063a7d1195d1461055a575f5ffd5b80637ecebe001461049157806381b97161146104a457806384b0196e146104c45780638da5cb5b146104df5780638e539e8c146104f0575f5ffd5b80633a46b1a8116101e2578063587cde1e116101a7578063587cde1e146103d85780635c19a95c146104035780636fcfff451461041657806370a082311461043e578063715018a61461046657806378aa33ba1461046e575f5ffd5b80633a46b1a8146103345780633f4da4c6146103475780634bf5d7e91461038657806353957125146103b057806354fd4d50146103d0575f5ffd5b80631ffacdef116102285780631ffacdef146102e457806323b872dd146102f7578063313ce5671461030a5780633644e515146103195780633950935114610321575f5ffd5b80630455e6941461026457806306fdde031461029c578063095ea7b3146102b15780631249c58b146102c457806318160ddd146102ce575b5f5ffd5b610287610272366004612d08565b6101336020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102a461065d565b6040516102939190612d4f565b6102876102bf366004612d61565b6106ed565b6102cc610706565b005b6102d661084f565b604051908152602001610293565b6102cc6102f2366004612d96565b6108d5565b610287610305366004612dcb565b61093d565b60405160128152602001610293565b6102d6610960565b61028761032f366004612d61565b610969565b6102d6610342366004612d61565b61098a565b61036e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610293565b60408051808201909152600e81526d06d6f64653d74696d657374616d760941b60208201526102a4565b6102d66103be366004612d08565b6101306020525f908152604090205481565b6102a4610a0d565b61036e6103e6366004612d08565b6001600160a01b039081165f90815260fe60205260409020541690565b6102cc610411366004612d08565b610a38565b610429610424366004612d08565b610a45565b60405163ffffffff9091168152602001610293565b6102d661044c366004612d08565b6001600160a01b03165f9081526065602052604090205490565b6102cc610a66565b61028761047c366004612d08565b6101346020525f908152604090205460ff1681565b6102d661049f366004612d08565b610a79565b6102d66104b2366004612d08565b6101316020525f908152604090205481565b6104cc610a96565b6040516102939796959493929190612e05565b6033546001600160a01b031661036e565b6102d66104fe366004612e9b565b610b2f565b61050b610b96565b60405165ffffffffffff9091168152602001610293565b6102a4610ba0565b6102d6610538366004612d08565b610baf565b6102d66101325481565b610287610555366004612d61565b610c2c565b6102cc610568366004612f7a565b610ca6565b61028761057b366004612d61565b6110ba565b6102cc61058e3660046130bf565b6110c7565b6102cc6105a1366004612d96565b611197565b6102cc6105b436600461313b565b6111f7565b6102cc6105c736600461318f565b61132c565b6102d66105da3660046131f5565b61148d565b6102cc6105ed366004612e9b565b6114b7565b6102cc610600366004612e9b565b6115d9565b6102cc611700565b61062061061b366004613226565b6117c7565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610293565b6102cc610658366004612d08565b611848565b60606068805461066c90613258565b80601f016020809104026020016040519081016040528092919081815260200182805461069890613258565b80156106e35780601f106106ba576101008083540402835291602001916106e3565b820191905f5260205f20905b8154815290600101906020018083116106c657829003601f168201915b5050505050905090565b5f336106fa8185856118be565b60019150505b92915050565b335f908152610131602052604090205461077f5760405162461bcd60e51b815260206004820152602f60248201527f456967656e2e6d696e743a206d73672e73656e64657220686173206e6f206d6960448201526e6e74696e6720616c6c6f77616e636560881b60648201526084015b60405180910390fd5b335f908152610130602052604090205442116107f75760405162461bcd60e51b815260206004820152603160248201527f456967656e2e6d696e743a206d73672e73656e646572206973206e6f7420616c6044820152701b1bddd959081d1bc81b5a5b9d081e595d607a1b6064820152608401610776565b335f8181526101316020526040812080549190559061081690826119e1565b60405181815233907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885906020015b60405180910390a250565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d0919061328a565b905090565b6108dd611a77565b6001600160a01b0382165f8181526101336020908152604091829020805460ff191685151590811790915591519182527fcf20b1ecb604b0e8888d579c64e8a3b10e590d45c1c2dddb393bed284362227191015b60405180910390a25050565b5f3361094a858285611ad1565b610955858585611b43565b506001949350505050565b5f6108d0611cfd565b5f336106fa81858561097b838361148d565b61098591906132b5565b6118be565b5f610993610b96565b65ffffffffffff1682106109e55760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610776565b6001600160a01b0383165f90815260ff60205260409020610a069083611d06565b9392505050565b60606108d07f0000000000000000000000000000000000000000000000000000000000000000611de7565b610a423382611e24565b50565b6001600160a01b0381165f90815260ff602052604081205461070090611e9d565b610a6e611a77565b610a775f611f05565b565b6001600160a01b0381165f90815260cb6020526040812054610700565b5f6060805f5f5f60606097545f5f1b148015610ab25750609854155b610af65760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610776565b610afe611f56565b610b06611f65565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f610b38610b96565b65ffffffffffff168210610b8a5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610776565b61070061010083611d06565b5f6108d042611f74565b60606069805461066c90613258565b6001600160a01b0381165f90815260ff60205260408120548015610c1a576001600160a01b0383165f90815260ff6020526040902080545f198301908110610bf957610bf96132c8565b5f9182526020909120015464010000000090046001600160e01b0316610c1c565b5f5b6001600160e01b03169392505050565b5f3381610c39828661148d565b905083811015610c995760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610776565b61095582868684036118be565b5f54610100900460ff1615808015610cc457505f54600160ff909116105b80610cdd5750303b158015610cdd57505f5460ff166001145b610d405760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610776565b5f805460ff191660011790558015610d61575f805461ff0019166101001790555b610d69611fda565b610dad6040518060400160405280600581526020016422b4b3b2b760d91b8152506040518060400160405280600581526020016422a4a3a2a760d91b815250612008565b610db685611f05565b610ddc6040518060400160405280600581526020016422a4a3a2a760d91b81525061203c565b8251845114610e635760405162461bcd60e51b815260206004820152604760248201527f456967656e2e696e697469616c697a653a206d696e7465727320616e64206d6960448201527f6e74696e67416c6c6f77616e636573206d757374206265207468652073616d65606482015266040d8cadccee8d60cb1b608482015260a401610776565b8151845114610eea5760405162461bcd60e51b815260206004820152604760248201527f456967656e2e696e697469616c697a653a206d696e7465727320616e64206d6960448201527f6e74416c6c6f776564416674657273206d757374206265207468652073616d65606482015266040d8cadccee8d60cb1b608482015260a401610776565b5f5b845181101561106757838181518110610f0757610f076132c8565b60200260200101516101315f878481518110610f2557610f256132c8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550828181518110610f6257610f626132c8565b60200260200101516101305f878481518110610f8057610f806132c8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f208190555060016101335f878481518110610fc357610fc36132c8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff021916908315150217905550848181518110611012576110126132c8565b60200260200101516001600160a01b03167fcf20b1ecb604b0e8888d579c64e8a3b10e590d45c1c2dddb393bed28436222716001604051611057911515815260200190565b60405180910390a2600101610eec565b505f196101325580156110b3575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b5f336106fa818585611b43565b82811461113c5760405162461bcd60e51b815260206004820152603e60248201527f456967656e2e6d756c746973656e643a2072656365697665727320616e64206160448201527f6d6f756e7473206d757374206265207468652073616d65206c656e67746800006064820152608401610776565b5f5b838110156110b35761118f3386868481811061115c5761115c6132c8565b90506020020160208101906111719190612d08565b858585818110611183576111836132c8565b90506020020135611b43565b60010161113e565b61119f611a77565b6001600160a01b0382165f8181526101346020908152604091829020805460ff191685151590811790915591519182527f72a561d1af7409467dae4f1e9fc52590a9335a1dda17727e2b6aa8c4db35109b9101610931565b834211156112475760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610776565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f906112c0906112b89060a00160405160208183030381529060405280519060200120612085565b8585856120b1565b90506112cb816120d7565b86146113195760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610776565b6113238188611e24565b50505050505050565b8342111561137c5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610776565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886113aa8c6120d7565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61140482612085565b90505f611413828787876120b1565b9050896001600160a01b0316816001600160a01b0316146114765760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610776565b6114818a8a8a6118be565b50505050505050505050565b6001600160a01b039182165f90815260666020908152604080832093909416825291909152205490565b6114c133826120fe565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af115801561152b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154f91906132dc565b6115a75760405162461bcd60e51b8152602060048201526024808201527f456967656e2e756e777261703a2062454947454e207472616e736665722066616044820152631a5b195960e21b6064820152608401610776565b60405181815233907f7f8146ca1ae17ad17561461ef221d97c8160bfddcae0edb68f53ce8dc5ce4af390602001610844565b6040516323b872dd60e01b8152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af1158015611649573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166d91906132dc565b6116c45760405162461bcd60e51b815260206004820152602260248201527f456967656e2e777261703a2062454947454e207472616e73666572206661696c604482015261195960f21b6064820152608401610776565b6116ce33826119e1565b60405181815233907f2273a99739c31a37346636a3013c2cedebee7cd5b4c560faded39d298c1dd45c90602001610844565b611708611a77565b5f1961013254146117975760405162461bcd60e51b815260206004820152604d60248201527f456967656e2e64697361626c655472616e736665725265737472696374696f6e60448201527f733a207472616e73666572207265737472696374696f6e732061726520616c7260648201526c1958591e48191a5cd8589b1959609a1b608482015260a401610776565b5f6101328190556040517f2b18986d3ba809db2f13a5d7bf17f60d357b37d9cbb55dd71cbbac8dc4060f649190a1565b604080518082019091525f80825260208201526001600160a01b0383165f90815260ff60205260409020805463ffffffff8416908110611809576118096132c8565b5f9182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b611850611a77565b6001600160a01b0381166118b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610776565b610a4281611f05565b6001600160a01b0383166119205760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610776565b6001600160a01b0382166119815760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610776565b6001600160a01b038381165f8181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6119eb8282612117565b6001600160e01b036119fb61084f565b1115611a625760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610776565b611a716101006121e8836121f3565b50505050565b6033546001600160a01b03163314610a775760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610776565b5f611adc848461148d565b90505f198114611a715781811015611b365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610776565b611a7184848484036118be565b6001600160a01b038316611ba75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610776565b6001600160a01b038216611c095760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610776565b611c1483838361235f565b6001600160a01b0383165f9081526065602052604090205481811015611c8b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610776565b6001600160a01b038085165f8181526065602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cea9086815260200190565b60405180910390a3611a71848484612443565b5f6108d0612474565b81545f9081816005811115611d5d575f611d1f846124e7565b611d2990856132f7565b5f88815260209020909150869082015463ffffffff161115611d4d57809150611d5b565b611d588160016132b5565b92505b505b80821015611da8575f611d7083836125cb565b5f88815260209020909150869082015463ffffffff161115611d9457809150611da2565b611d9f8160016132b5565b92505b50611d5d565b8015611dd2575f8681526020902081015f19015464010000000090046001600160e01b0316611dd4565b5f5b6001600160e01b03169695505050505050565b60605f611df3836125e5565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b038281165f81815260fe6020818152604080842080546065845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611a7182848361260c565b5f63ffffffff821115611f015760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610776565b5090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60606099805461066c90613258565b6060609a805461066c90613258565b5f65ffffffffffff821115611f015760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610776565b5f54610100900460ff166120005760405162461bcd60e51b81526004016107769061330a565b610a77612746565b5f54610100900460ff1661202e5760405162461bcd60e51b81526004016107769061330a565b6120388282612775565b5050565b5f54610100900460ff166120625760405162461bcd60e51b81526004016107769061330a565b610a4281604051806040016040528060018152602001603160f81b8152506127b4565b5f610700612091611cfd565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f6120c087878787612801565b915091506120cd816128be565b5095945050505050565b6001600160a01b0381165f90815260cb602052604090208054600181018255905b50919050565b6121088282612a07565b611a71610100612b4a836121f3565b6001600160a01b03821661216d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610776565b6121785f838361235f565b8060675f82825461218991906132b5565b90915550506001600160a01b0382165f818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36120385f8383612443565b5f610a0682846132b5565b82545f90819081811561223d575f8781526020902082015f190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152612251565b604080518082019091525f80825260208201525b905080602001516001600160e01b0316935061227184868863ffffffff16565b92505f821180156122995750612285610b96565b65ffffffffffff16815f015163ffffffff16145b156122dc576122a783612b55565b5f8881526020902083015f190180546001600160e01b03929092166401000000000263ffffffff909216919091179055612355565b8660405180604001604052806123006122f3610b96565b65ffffffffffff16611e9d565b63ffffffff16815260200161231486612b55565b6001600160e01b0390811690915282546001810184555f938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b61013254421161243e576001600160a01b038316158061238657506001600160a01b038216155b806123a957506001600160a01b0383165f908152610133602052604090205460ff165b806123cc57506001600160a01b0382165f908152610134602052604090205460ff165b61243e5760405162461bcd60e51b815260206004820152603a60248201527f456967656e2e5f6265666f7265546f6b656e5472616e736665723a2066726f6d60448201527f206f7220746f206d7573742062652077686974656c69737465640000000000006064820152608401610776565b505050565b6001600160a01b038381165f90815260fe602052604080822054858416835291205461243e9291821691168361260c565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61249e612bbd565b6124a6612c15565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f815f036124f657505f919050565b5f600161250284612c45565b901c6001901b9050600181848161251b5761251b613355565b048201901c9050600181848161253357612533613355565b048201901c9050600181848161254b5761254b613355565b048201901c9050600181848161256357612563613355565b048201901c9050600181848161257b5761257b613355565b048201901c9050600181848161259357612593613355565b048201901c905060018184816125ab576125ab613355565b048201901c9050610a06818285816125c5576125c5613355565b04612cd8565b5f6125d96002848418613369565b610a06908484166132b5565b5f60ff8216601f81111561070057604051632cd44ac360e21b815260040160405180910390fd5b816001600160a01b0316836001600160a01b03161415801561262d57505f81115b1561243e576001600160a01b038316156126ba576001600160a01b0383165f90815260ff60205260408120819061266790612b4a856121f3565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516126af929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561243e576001600160a01b0382165f90815260ff6020526040812081906126ef906121e8856121f3565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612737929190918252602082015260400190565b60405180910390a25050505050565b5f54610100900460ff1661276c5760405162461bcd60e51b81526004016107769061330a565b610a7733611f05565b5f54610100900460ff1661279b5760405162461bcd60e51b81526004016107769061330a565b60686127a783826133cc565b50606961243e82826133cc565b5f54610100900460ff166127da5760405162461bcd60e51b81526004016107769061330a565b60996127e683826133cc565b50609a6127f382826133cc565b50505f609781905560985550565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561283657505f905060036128b5565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612887573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166128af575f600192509250506128b5565b91505f90505b94509492505050565b5f8160048111156128d1576128d1613487565b036128d95750565b60018160048111156128ed576128ed613487565b0361293a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610776565b600281600481111561294e5761294e613487565b0361299b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610776565b60038160048111156129af576129af613487565b03610a425760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610776565b6001600160a01b038216612a675760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610776565b612a72825f8361235f565b6001600160a01b0382165f9081526065602052604090205481811015612ae55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610776565b6001600160a01b0383165f8181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361243e835f84612443565b5f610a0682846132f7565b5f6001600160e01b03821115611f015760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610776565b5f5f612bc7611f56565b805190915015612bde578051602090910120919050565b6097548015612bed5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f5f612c1f611f65565b805190915015612c36578051602090910120919050565b6098548015612bed5792915050565b5f80608083901c15612c5957608092831c92015b604083901c15612c6b57604092831c92015b602083901c15612c7d57602092831c92015b601083901c15612c8f57601092831c92015b600883901c15612ca157600892831c92015b600483901c15612cb357600492831c92015b600283901c15612cc557600292831c92015b600183901c156107005760010192915050565b5f818310612ce65781610a06565b5090919050565b80356001600160a01b0381168114612d03575f5ffd5b919050565b5f60208284031215612d18575f5ffd5b610a0682612ced565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a066020830184612d21565b5f5f60408385031215612d72575f5ffd5b612d7b83612ced565b946020939093013593505050565b8015158114610a42575f5ffd5b5f5f60408385031215612da7575f5ffd5b612db083612ced565b91506020830135612dc081612d89565b809150509250929050565b5f5f5f60608486031215612ddd575f5ffd5b612de684612ced565b9250612df460208501612ced565b929592945050506040919091013590565b60ff60f81b8816815260e060208201525f612e2360e0830189612d21565b8281036040840152612e358189612d21565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015612e8a578351835260209384019390920191600101612e6c565b50909b9a5050505050505050505050565b5f60208284031215612eab575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612eef57612eef612eb2565b604052919050565b5f67ffffffffffffffff821115612f1057612f10612eb2565b5060051b60200190565b5f82601f830112612f29575f5ffd5b8135612f3c612f3782612ef7565b612ec6565b8082825260208201915060208360051b860101925085831115612f5d575f5ffd5b602085015b838110156120cd578035835260209283019201612f62565b5f5f5f5f60808587031215612f8d575f5ffd5b612f9685612ced565b9350602085013567ffffffffffffffff811115612fb1575f5ffd5b8501601f81018713612fc1575f5ffd5b8035612fcf612f3782612ef7565b8082825260208201915060208360051b850101925089831115612ff0575f5ffd5b6020840193505b828410156130195761300884612ced565b825260209384019390910190612ff7565b9550505050604085013567ffffffffffffffff811115613037575f5ffd5b61304387828801612f1a565b925050606085013567ffffffffffffffff81111561305f575f5ffd5b61306b87828801612f1a565b91505092959194509250565b5f5f83601f840112613087575f5ffd5b50813567ffffffffffffffff81111561309e575f5ffd5b6020830191508360208260051b85010111156130b8575f5ffd5b9250929050565b5f5f5f5f604085870312156130d2575f5ffd5b843567ffffffffffffffff8111156130e8575f5ffd5b6130f487828801613077565b909550935050602085013567ffffffffffffffff811115613113575f5ffd5b61311f87828801613077565b95989497509550505050565b803560ff81168114612d03575f5ffd5b5f5f5f5f5f5f60c08789031215613150575f5ffd5b61315987612ced565b955060208701359450604087013593506131756060880161312b565b9598949750929560808101359460a0909101359350915050565b5f5f5f5f5f5f5f60e0888a0312156131a5575f5ffd5b6131ae88612ced565b96506131bc60208901612ced565b955060408801359450606088013593506131d86080890161312b565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215613206575f5ffd5b61320f83612ced565b915061321d60208401612ced565b90509250929050565b5f5f60408385031215613237575f5ffd5b61324083612ced565b9150602083013563ffffffff81168114612dc0575f5ffd5b600181811c9082168061326c57607f821691505b6020821081036120f857634e487b7160e01b5f52602260045260245ffd5b5f6020828403121561329a575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610700576107006132a1565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156132ec575f5ffd5b8151610a0681612d89565b81810381811115610700576107006132a1565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b5f52601260045260245ffd5b5f8261338357634e487b7160e01b5f52601260045260245ffd5b500490565b601f82111561243e57805f5260205f20601f840160051c810160208510156133ad5750805b601f840160051c820191505b818110156110b3575f81556001016133b9565b815167ffffffffffffffff8111156133e6576133e6612eb2565b6133fa816133f48454613258565b84613388565b6020601f82116001811461342c575f83156134155750848201515b5f19600385901b1c1916600184901b1784556110b3565b5f84815260208120601f198516915b8281101561345b578785015182556020948501946001909201910161343b565b508482101561347857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220c490569e565e0b8a6d0952ad851594e836656889f309ac01f14f261342832f2864736f6c634300081b0033", + Bin: "0x60c060405234801561000f575f5ffd5b5060405161379b38038061379b83398101604081905261002e9161016a565b8061003881610058565b608052506001600160a01b03821660a05261005161009e565b5050610294565b5f5f829050601f8151111561008b578260405163305a27a960e01b81526004016100829190610239565b60405180910390fd5b80516100968261026e565b179392505050565b5f54610100900460ff16156101055760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610082565b5f5460ff90811614610154575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561017b575f5ffd5b82516001600160a01b0381168114610191575f5ffd5b60208401519092506001600160401b038111156101ac575f5ffd5b8301601f810185136101bc575f5ffd5b80516001600160401b038111156101d5576101d5610156565b604051601f8201601f19908116603f011681016001600160401b038111828210171561020357610203610156565b60405281815282820160200187101561021a575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561028e575f198160200360031b1b821691505b50919050565b60805160a0516134d16102ca5f395f818161034c01528181610852015281816114dd01526115fb01525f610a1401526134d15ff3fe608060405234801561000f575f5ffd5b5060043610610260575f3560e01c80637ecebe001161014b578063a9059cbb116100bf578063dd62ed3e11610084578063dd62ed3e146105cc578063de0e9a3e146105df578063ea598cb0146105f2578063eb415f4514610605578063f1127ed81461060d578063f2fde38b1461064a575f5ffd5b8063a9059cbb1461056d578063aad41a4114610580578063b8c2559414610593578063c3cda520146105a6578063d505accf146105b9575f5ffd5b806391ddadf41161011057806391ddadf41461050357806395d89b41146105225780639ab24eb01461052a5780639aec4bae1461053d578063a457c2d714610547578063a7d1195d1461055a575f5ffd5b80637ecebe001461049157806381b97161146104a457806384b0196e146104c45780638da5cb5b146104df5780638e539e8c146104f0575f5ffd5b80633a46b1a8116101e2578063587cde1e116101a7578063587cde1e146103d85780635c19a95c146104035780636fcfff451461041657806370a082311461043e578063715018a61461046657806378aa33ba1461046e575f5ffd5b80633a46b1a8146103345780633f4da4c6146103475780634bf5d7e91461038657806353957125146103b057806354fd4d50146103d0575f5ffd5b80631ffacdef116102285780631ffacdef146102e457806323b872dd146102f7578063313ce5671461030a5780633644e515146103195780633950935114610321575f5ffd5b80630455e6941461026457806306fdde031461029c578063095ea7b3146102b15780631249c58b146102c457806318160ddd146102ce575b5f5ffd5b610287610272366004612d08565b6101336020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102a461065d565b6040516102939190612d4f565b6102876102bf366004612d61565b6106ed565b6102cc610706565b005b6102d661084f565b604051908152602001610293565b6102cc6102f2366004612d96565b6108d5565b610287610305366004612dcb565b61093d565b60405160128152602001610293565b6102d6610960565b61028761032f366004612d61565b610969565b6102d6610342366004612d61565b61098a565b61036e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610293565b60408051808201909152600e81526d06d6f64653d74696d657374616d760941b60208201526102a4565b6102d66103be366004612d08565b6101306020525f908152604090205481565b6102a4610a0d565b61036e6103e6366004612d08565b6001600160a01b039081165f90815260fe60205260409020541690565b6102cc610411366004612d08565b610a38565b610429610424366004612d08565b610a45565b60405163ffffffff9091168152602001610293565b6102d661044c366004612d08565b6001600160a01b03165f9081526065602052604090205490565b6102cc610a66565b61028761047c366004612d08565b6101346020525f908152604090205460ff1681565b6102d661049f366004612d08565b610a79565b6102d66104b2366004612d08565b6101316020525f908152604090205481565b6104cc610a96565b6040516102939796959493929190612e05565b6033546001600160a01b031661036e565b6102d66104fe366004612e9b565b610b2f565b61050b610b96565b60405165ffffffffffff9091168152602001610293565b6102a4610ba0565b6102d6610538366004612d08565b610baf565b6102d66101325481565b610287610555366004612d61565b610c2c565b6102cc610568366004612f7a565b610ca6565b61028761057b366004612d61565b6110ba565b6102cc61058e3660046130bf565b6110c7565b6102cc6105a1366004612d96565b611197565b6102cc6105b436600461313b565b6111f7565b6102cc6105c736600461318f565b61132c565b6102d66105da3660046131f5565b61148d565b6102cc6105ed366004612e9b565b6114b7565b6102cc610600366004612e9b565b6115d9565b6102cc611700565b61062061061b366004613226565b6117c7565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610293565b6102cc610658366004612d08565b611848565b60606068805461066c90613258565b80601f016020809104026020016040519081016040528092919081815260200182805461069890613258565b80156106e35780601f106106ba576101008083540402835291602001916106e3565b820191905f5260205f20905b8154815290600101906020018083116106c657829003601f168201915b5050505050905090565b5f336106fa8185856118be565b60019150505b92915050565b335f908152610131602052604090205461077f5760405162461bcd60e51b815260206004820152602f60248201527f456967656e2e6d696e743a206d73672e73656e64657220686173206e6f206d6960448201526e6e74696e6720616c6c6f77616e636560881b60648201526084015b60405180910390fd5b335f908152610130602052604090205442116107f75760405162461bcd60e51b815260206004820152603160248201527f456967656e2e6d696e743a206d73672e73656e646572206973206e6f7420616c6044820152701b1bddd959081d1bc81b5a5b9d081e595d607a1b6064820152608401610776565b335f8181526101316020526040812080549190559061081690826119e1565b60405181815233907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885906020015b60405180910390a250565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d0919061328a565b905090565b6108dd611a77565b6001600160a01b0382165f8181526101336020908152604091829020805460ff191685151590811790915591519182527fcf20b1ecb604b0e8888d579c64e8a3b10e590d45c1c2dddb393bed284362227191015b60405180910390a25050565b5f3361094a858285611ad1565b610955858585611b43565b506001949350505050565b5f6108d0611cfd565b5f336106fa81858561097b838361148d565b61098591906132b5565b6118be565b5f610993610b96565b65ffffffffffff1682106109e55760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610776565b6001600160a01b0383165f90815260ff60205260409020610a069083611d06565b9392505050565b60606108d07f0000000000000000000000000000000000000000000000000000000000000000611de7565b610a423382611e24565b50565b6001600160a01b0381165f90815260ff602052604081205461070090611e9d565b610a6e611a77565b610a775f611f05565b565b6001600160a01b0381165f90815260cb6020526040812054610700565b5f6060805f5f5f60606097545f5f1b148015610ab25750609854155b610af65760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610776565b610afe611f56565b610b06611f65565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f610b38610b96565b65ffffffffffff168210610b8a5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610776565b61070061010083611d06565b5f6108d042611f74565b60606069805461066c90613258565b6001600160a01b0381165f90815260ff60205260408120548015610c1a576001600160a01b0383165f90815260ff6020526040902080545f198301908110610bf957610bf96132c8565b5f9182526020909120015464010000000090046001600160e01b0316610c1c565b5f5b6001600160e01b03169392505050565b5f3381610c39828661148d565b905083811015610c995760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610776565b61095582868684036118be565b5f54610100900460ff1615808015610cc457505f54600160ff909116105b80610cdd5750303b158015610cdd57505f5460ff166001145b610d405760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610776565b5f805460ff191660011790558015610d61575f805461ff0019166101001790555b610d69611fda565b610dad6040518060400160405280600581526020016422b4b3b2b760d91b8152506040518060400160405280600581526020016422a4a3a2a760d91b815250612008565b610db685611f05565b610ddc6040518060400160405280600581526020016422a4a3a2a760d91b81525061203c565b8251845114610e635760405162461bcd60e51b815260206004820152604760248201527f456967656e2e696e697469616c697a653a206d696e7465727320616e64206d6960448201527f6e74696e67416c6c6f77616e636573206d757374206265207468652073616d65606482015266040d8cadccee8d60cb1b608482015260a401610776565b8151845114610eea5760405162461bcd60e51b815260206004820152604760248201527f456967656e2e696e697469616c697a653a206d696e7465727320616e64206d6960448201527f6e74416c6c6f776564416674657273206d757374206265207468652073616d65606482015266040d8cadccee8d60cb1b608482015260a401610776565b5f5b845181101561106757838181518110610f0757610f076132c8565b60200260200101516101315f878481518110610f2557610f256132c8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550828181518110610f6257610f626132c8565b60200260200101516101305f878481518110610f8057610f806132c8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f208190555060016101335f878481518110610fc357610fc36132c8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff021916908315150217905550848181518110611012576110126132c8565b60200260200101516001600160a01b03167fcf20b1ecb604b0e8888d579c64e8a3b10e590d45c1c2dddb393bed28436222716001604051611057911515815260200190565b60405180910390a2600101610eec565b505f196101325580156110b3575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b5f336106fa818585611b43565b82811461113c5760405162461bcd60e51b815260206004820152603e60248201527f456967656e2e6d756c746973656e643a2072656365697665727320616e64206160448201527f6d6f756e7473206d757374206265207468652073616d65206c656e67746800006064820152608401610776565b5f5b838110156110b35761118f3386868481811061115c5761115c6132c8565b90506020020160208101906111719190612d08565b858585818110611183576111836132c8565b90506020020135611b43565b60010161113e565b61119f611a77565b6001600160a01b0382165f8181526101346020908152604091829020805460ff191685151590811790915591519182527f72a561d1af7409467dae4f1e9fc52590a9335a1dda17727e2b6aa8c4db35109b9101610931565b834211156112475760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610776565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f906112c0906112b89060a00160405160208183030381529060405280519060200120612085565b8585856120b1565b90506112cb816120d7565b86146113195760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610776565b6113238188611e24565b50505050505050565b8342111561137c5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610776565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886113aa8c6120d7565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61140482612085565b90505f611413828787876120b1565b9050896001600160a01b0316816001600160a01b0316146114765760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610776565b6114818a8a8a6118be565b50505050505050505050565b6001600160a01b039182165f90815260666020908152604080832093909416825291909152205490565b6114c133826120fe565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af115801561152b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154f91906132dc565b6115a75760405162461bcd60e51b8152602060048201526024808201527f456967656e2e756e777261703a2062454947454e207472616e736665722066616044820152631a5b195960e21b6064820152608401610776565b60405181815233907f7f8146ca1ae17ad17561461ef221d97c8160bfddcae0edb68f53ce8dc5ce4af390602001610844565b6040516323b872dd60e01b8152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af1158015611649573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166d91906132dc565b6116c45760405162461bcd60e51b815260206004820152602260248201527f456967656e2e777261703a2062454947454e207472616e73666572206661696c604482015261195960f21b6064820152608401610776565b6116ce33826119e1565b60405181815233907f2273a99739c31a37346636a3013c2cedebee7cd5b4c560faded39d298c1dd45c90602001610844565b611708611a77565b5f1961013254146117975760405162461bcd60e51b815260206004820152604d60248201527f456967656e2e64697361626c655472616e736665725265737472696374696f6e60448201527f733a207472616e73666572207265737472696374696f6e732061726520616c7260648201526c1958591e48191a5cd8589b1959609a1b608482015260a401610776565b5f6101328190556040517f2b18986d3ba809db2f13a5d7bf17f60d357b37d9cbb55dd71cbbac8dc4060f649190a1565b604080518082019091525f80825260208201526001600160a01b0383165f90815260ff60205260409020805463ffffffff8416908110611809576118096132c8565b5f9182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b611850611a77565b6001600160a01b0381166118b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610776565b610a4281611f05565b6001600160a01b0383166119205760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610776565b6001600160a01b0382166119815760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610776565b6001600160a01b038381165f8181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6119eb8282612117565b6001600160e01b036119fb61084f565b1115611a625760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610776565b611a716101006121e8836121f3565b50505050565b6033546001600160a01b03163314610a775760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610776565b5f611adc848461148d565b90505f198114611a715781811015611b365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610776565b611a7184848484036118be565b6001600160a01b038316611ba75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610776565b6001600160a01b038216611c095760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610776565b611c1483838361235f565b6001600160a01b0383165f9081526065602052604090205481811015611c8b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610776565b6001600160a01b038085165f8181526065602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cea9086815260200190565b60405180910390a3611a71848484612443565b5f6108d0612474565b81545f9081816005811115611d5d575f611d1f846124e7565b611d2990856132f7565b5f88815260209020909150869082015463ffffffff161115611d4d57809150611d5b565b611d588160016132b5565b92505b505b80821015611da8575f611d7083836125cb565b5f88815260209020909150869082015463ffffffff161115611d9457809150611da2565b611d9f8160016132b5565b92505b50611d5d565b8015611dd2575f8681526020902081015f19015464010000000090046001600160e01b0316611dd4565b5f5b6001600160e01b03169695505050505050565b60605f611df3836125e5565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b038281165f81815260fe6020818152604080842080546065845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611a7182848361260c565b5f63ffffffff821115611f015760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610776565b5090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60606099805461066c90613258565b6060609a805461066c90613258565b5f65ffffffffffff821115611f015760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610776565b5f54610100900460ff166120005760405162461bcd60e51b81526004016107769061330a565b610a77612746565b5f54610100900460ff1661202e5760405162461bcd60e51b81526004016107769061330a565b6120388282612775565b5050565b5f54610100900460ff166120625760405162461bcd60e51b81526004016107769061330a565b610a4281604051806040016040528060018152602001603160f81b8152506127b4565b5f610700612091611cfd565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f6120c087878787612801565b915091506120cd816128be565b5095945050505050565b6001600160a01b0381165f90815260cb602052604090208054600181018255905b50919050565b6121088282612a07565b611a71610100612b4a836121f3565b6001600160a01b03821661216d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610776565b6121785f838361235f565b8060675f82825461218991906132b5565b90915550506001600160a01b0382165f818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36120385f8383612443565b5f610a0682846132b5565b82545f90819081811561223d575f8781526020902082015f190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152612251565b604080518082019091525f80825260208201525b905080602001516001600160e01b0316935061227184868863ffffffff16565b92505f821180156122995750612285610b96565b65ffffffffffff16815f015163ffffffff16145b156122dc576122a783612b55565b5f8881526020902083015f190180546001600160e01b03929092166401000000000263ffffffff909216919091179055612355565b8660405180604001604052806123006122f3610b96565b65ffffffffffff16611e9d565b63ffffffff16815260200161231486612b55565b6001600160e01b0390811690915282546001810184555f938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b61013254421161243e576001600160a01b038316158061238657506001600160a01b038216155b806123a957506001600160a01b0383165f908152610133602052604090205460ff165b806123cc57506001600160a01b0382165f908152610134602052604090205460ff165b61243e5760405162461bcd60e51b815260206004820152603a60248201527f456967656e2e5f6265666f7265546f6b656e5472616e736665723a2066726f6d60448201527f206f7220746f206d7573742062652077686974656c69737465640000000000006064820152608401610776565b505050565b6001600160a01b038381165f90815260fe602052604080822054858416835291205461243e9291821691168361260c565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61249e612bbd565b6124a6612c15565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f815f036124f657505f919050565b5f600161250284612c45565b901c6001901b9050600181848161251b5761251b613355565b048201901c9050600181848161253357612533613355565b048201901c9050600181848161254b5761254b613355565b048201901c9050600181848161256357612563613355565b048201901c9050600181848161257b5761257b613355565b048201901c9050600181848161259357612593613355565b048201901c905060018184816125ab576125ab613355565b048201901c9050610a06818285816125c5576125c5613355565b04612cd8565b5f6125d96002848418613369565b610a06908484166132b5565b5f60ff8216601f81111561070057604051632cd44ac360e21b815260040160405180910390fd5b816001600160a01b0316836001600160a01b03161415801561262d57505f81115b1561243e576001600160a01b038316156126ba576001600160a01b0383165f90815260ff60205260408120819061266790612b4a856121f3565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516126af929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561243e576001600160a01b0382165f90815260ff6020526040812081906126ef906121e8856121f3565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612737929190918252602082015260400190565b60405180910390a25050505050565b5f54610100900460ff1661276c5760405162461bcd60e51b81526004016107769061330a565b610a7733611f05565b5f54610100900460ff1661279b5760405162461bcd60e51b81526004016107769061330a565b60686127a783826133cc565b50606961243e82826133cc565b5f54610100900460ff166127da5760405162461bcd60e51b81526004016107769061330a565b60996127e683826133cc565b50609a6127f382826133cc565b50505f609781905560985550565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561283657505f905060036128b5565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612887573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166128af575f600192509250506128b5565b91505f90505b94509492505050565b5f8160048111156128d1576128d1613487565b036128d95750565b60018160048111156128ed576128ed613487565b0361293a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610776565b600281600481111561294e5761294e613487565b0361299b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610776565b60038160048111156129af576129af613487565b03610a425760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610776565b6001600160a01b038216612a675760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610776565b612a72825f8361235f565b6001600160a01b0382165f9081526065602052604090205481811015612ae55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610776565b6001600160a01b0383165f8181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361243e835f84612443565b5f610a0682846132f7565b5f6001600160e01b03821115611f015760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610776565b5f5f612bc7611f56565b805190915015612bde578051602090910120919050565b6097548015612bed5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f5f612c1f611f65565b805190915015612c36578051602090910120919050565b6098548015612bed5792915050565b5f80608083901c15612c5957608092831c92015b604083901c15612c6b57604092831c92015b602083901c15612c7d57602092831c92015b601083901c15612c8f57601092831c92015b600883901c15612ca157600892831c92015b600483901c15612cb357600492831c92015b600283901c15612cc557600292831c92015b600183901c156107005760010192915050565b5f818310612ce65781610a06565b5090919050565b80356001600160a01b0381168114612d03575f5ffd5b919050565b5f60208284031215612d18575f5ffd5b610a0682612ced565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a066020830184612d21565b5f5f60408385031215612d72575f5ffd5b612d7b83612ced565b946020939093013593505050565b8015158114610a42575f5ffd5b5f5f60408385031215612da7575f5ffd5b612db083612ced565b91506020830135612dc081612d89565b809150509250929050565b5f5f5f60608486031215612ddd575f5ffd5b612de684612ced565b9250612df460208501612ced565b929592945050506040919091013590565b60ff60f81b8816815260e060208201525f612e2360e0830189612d21565b8281036040840152612e358189612d21565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015612e8a578351835260209384019390920191600101612e6c565b50909b9a5050505050505050505050565b5f60208284031215612eab575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612eef57612eef612eb2565b604052919050565b5f67ffffffffffffffff821115612f1057612f10612eb2565b5060051b60200190565b5f82601f830112612f29575f5ffd5b8135612f3c612f3782612ef7565b612ec6565b8082825260208201915060208360051b860101925085831115612f5d575f5ffd5b602085015b838110156120cd578035835260209283019201612f62565b5f5f5f5f60808587031215612f8d575f5ffd5b612f9685612ced565b9350602085013567ffffffffffffffff811115612fb1575f5ffd5b8501601f81018713612fc1575f5ffd5b8035612fcf612f3782612ef7565b8082825260208201915060208360051b850101925089831115612ff0575f5ffd5b6020840193505b828410156130195761300884612ced565b825260209384019390910190612ff7565b9550505050604085013567ffffffffffffffff811115613037575f5ffd5b61304387828801612f1a565b925050606085013567ffffffffffffffff81111561305f575f5ffd5b61306b87828801612f1a565b91505092959194509250565b5f5f83601f840112613087575f5ffd5b50813567ffffffffffffffff81111561309e575f5ffd5b6020830191508360208260051b85010111156130b8575f5ffd5b9250929050565b5f5f5f5f604085870312156130d2575f5ffd5b843567ffffffffffffffff8111156130e8575f5ffd5b6130f487828801613077565b909550935050602085013567ffffffffffffffff811115613113575f5ffd5b61311f87828801613077565b95989497509550505050565b803560ff81168114612d03575f5ffd5b5f5f5f5f5f5f60c08789031215613150575f5ffd5b61315987612ced565b955060208701359450604087013593506131756060880161312b565b9598949750929560808101359460a0909101359350915050565b5f5f5f5f5f5f5f60e0888a0312156131a5575f5ffd5b6131ae88612ced565b96506131bc60208901612ced565b955060408801359450606088013593506131d86080890161312b565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215613206575f5ffd5b61320f83612ced565b915061321d60208401612ced565b90509250929050565b5f5f60408385031215613237575f5ffd5b61324083612ced565b9150602083013563ffffffff81168114612dc0575f5ffd5b600181811c9082168061326c57607f821691505b6020821081036120f857634e487b7160e01b5f52602260045260245ffd5b5f6020828403121561329a575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610700576107006132a1565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156132ec575f5ffd5b8151610a0681612d89565b81810381811115610700576107006132a1565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b5f52601260045260245ffd5b5f8261338357634e487b7160e01b5f52601260045260245ffd5b500490565b601f82111561243e57805f5260205f20601f840160051c810160208510156133ad5750805b601f840160051c820191505b818110156110b3575f81556001016133b9565b815167ffffffffffffffff8111156133e6576133e6612eb2565b6133fa816133f48454613258565b84613388565b6020601f82116001811461342c575f83156134155750848201515b5f19600385901b1c1916600184901b1784556110b3565b5f84815260208120601f198516915b8281101561345b578785015182556020948501946001909201910161343b565b508482101561347857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220a4af477d2fecb794e35b6ec5fa2d04e4b411a737cab2f1395a0bff02fd38ef1e64736f6c634300081b0033", } // EigenABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/EigenPod/binding.go b/pkg/bindings/EigenPod/binding.go index 6813e3764b..16524242c5 100644 --- a/pkg/bindings/EigenPod/binding.go +++ b/pkg/bindings/EigenPod/binding.go @@ -85,8 +85,8 @@ type IEigenPodTypesWithdrawalRequest struct { // EigenPodMetaData contains all meta data concerning the EigenPod contract. var EigenPodMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_ethPOS\",\"type\":\"address\",\"internalType\":\"contractIETHPOSDeposit\"},{\"name\":\"_eigenPodManager\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"activeValidatorCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkpointBalanceExitedGwei\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpoint\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.Checkpoint\",\"components\":[{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofsRemaining\",\"type\":\"uint24\",\"internalType\":\"uint24\"},{\"name\":\"podBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"balanceDeltasGwei\",\"type\":\"int64\",\"internalType\":\"int64\"},{\"name\":\"prevBeaconBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ethPOS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIETHPOSDeposit\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getConsolidationRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getParentBlockRoot\",\"inputs\":[{\"name\":\"timestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawalRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"podOwner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proofSubmitter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"recoverTokens\",\"inputs\":[{\"name\":\"tokenList\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"amountsToWithdraw\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestConsolidation\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.ConsolidationRequest[]\",\"components\":[{\"name\":\"srcPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"targetPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"requestWithdrawal\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.WithdrawalRequest[]\",\"components\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amountGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setProofSubmitter\",\"inputs\":[{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stake\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"depositDataRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"startCheckpoint\",\"inputs\":[{\"name\":\"revertIfNoBalance\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"validatorPubkeyHashToInfo\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorPubkeyToInfo\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyCheckpointProofs\",\"inputs\":[{\"name\":\"balanceContainerProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.BalanceContainerProof\",\"components\":[{\"name\":\"balanceContainerRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proofs\",\"type\":\"tuple[]\",\"internalType\":\"structBeaconChainProofs.BalanceProof[]\",\"components\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"balanceRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyStaleBalance\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.ValidatorProof\",\"components\":[{\"name\":\"validatorFields\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyWithdrawalCredentials\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"validatorIndices\",\"type\":\"uint40[]\",\"internalType\":\"uint40[]\"},{\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"validatorFields\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdrawRestakedBeaconChainETH\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amountWei\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawableRestakedExecutionLayerGwei\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"CheckpointCreated\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validatorCount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CheckpointFinalized\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"totalShareDeltaWei\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConsolidationRequested\",\"inputs\":[{\"name\":\"sourcePubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"targetPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EigenPodStaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExitRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NonBeaconChainETHReceived\",\"inputs\":[{\"name\":\"amountReceived\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ProofSubmitterUpdated\",\"inputs\":[{\"name\":\"prevProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RestakedBeaconChainETHWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SwitchToCompoundingRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorBalanceUpdated\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"balanceTimestamp\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newValidatorBalanceGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorCheckpointed\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRestaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWithdrawn\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"withdrawalAmountGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BeaconTimestampTooFarInPast\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotCheckpointTwiceInSingleBlock\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CheckpointAlreadyActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CredentialsAlreadyVerified\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeQueryFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ForkTimestampZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientFunds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientWithdrawableBalance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEIP4788Response\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProof\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidValidatorFieldsLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"LeavesNotPowerOfTwo\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MsgValueNot32ETH\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoActiveCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoBalanceToCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotEnoughLeaves\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwnerOrProofSubmitter\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PredeployFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TimestampOutOfRange\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorInactiveOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorIsExitingBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotActiveInPod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotSlashedOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalCredentialsNotForEigenPod\",\"inputs\":[]}]", - Bin: "0x60e060405234801561000f575f5ffd5b506040516148dc3803806148dc83398101604081905261002e91610188565b806100388161005f565b608052506001600160a01b0380841660a052821660c0526100576100a5565b5050506102b9565b5f5f829050601f81511115610092578260405163305a27a960e01b8152600401610089919061025e565b60405180910390fd5b805161009d82610293565b179392505050565b5f54610100900460ff161561010c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610089565b5f5460ff9081161461015b575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610171575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f6060848603121561019a575f5ffd5b83516101a58161015d565b60208501519093506101b68161015d565b60408501519092506001600160401b038111156101d1575f5ffd5b8401601f810186136101e1575f5ffd5b80516001600160401b038111156101fa576101fa610174565b604051601f8201601f19908116603f011681016001600160401b038111828210171561022857610228610174565b60405281815282820160200188101561023f575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102b3575f198160200360031b1b821691505b50919050565b60805160a05160c0516145976103455f395f8181610329015281816106d40152818161077c01528181610a2a01528181610da201528181610f6d01528181611078015281816115730152818161161a015281816118a301528181611bf101528181611d25015281816121fb015261310501525f818161057a015261168301525f610fd901526145975ff3fe6080604052600436106101bd575f3560e01c80636691954e116100f2578063b522538a11610092578063d06d558711610062578063d06d55871461063f578063dda3346c1461065e578063ee94d67c1461067d578063f074ba621461069c575f5ffd5b8063b522538a146105ce578063c44e30dc146105ed578063c490744214610601578063c4d66de814610620575f5ffd5b80637439841f116100cd5780637439841f1461053457806374cdd7981461056957806388676cad1461059c5780639b4e4634146105bb575f5ffd5b80636691954e146104d65780636c0d2d5a146104e95780636fcd0e5314610508575f5ffd5b806342ecff2a1161015d57806352396a591161013857806352396a591461043657806354fd4d501461046a578063587533571461048b57806358eaee79146104aa575f5ffd5b806342ecff2a146102f25780634665bcda1461031857806347d283721461034b575f5ffd5b80632340e8d3116101985780632340e8d31461027a5780633474aa161461028f5780633f5fa57a146102c05780633f65cf19146102d3575f5ffd5b8063039157d2146101fb5780630b18ff661461021c5780631e51553314610258575f5ffd5b366101f7576040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b5f5ffd5b348015610206575f5ffd5b5061021a610215366004613a3e565b6106bb565b005b348015610227575f5ffd5b5060335461023b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610263575f5ffd5b5061026c6109f0565b60405190815260200161024f565b348015610285575f5ffd5b5061026c60395481565b34801561029a575f5ffd5b506034546001600160401b03165b6040516001600160401b03909116815260200161024f565b61021a6102ce366004613af9565b610a11565b3480156102de575f5ffd5b5061021a6102ed366004613b37565b610d49565b3480156102fd575f5ffd5b50603a546102a890600160401b90046001600160401b031681565b348015610323575f5ffd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610356575f5ffd5b506103db6040805160a0810182525f80825260208201819052918101829052606081018290526080810191909152506040805160a081018252603c548152603d5462ffffff811660208301526001600160401b0363010000008204811693830193909352600160581b810460070b6060830152600160981b9004909116608082015290565b60405161024f91905f60a0820190508251825262ffffff60208401511660208301526001600160401b036040840151166040830152606083015160070b60608301526001600160401b03608084015116608083015292915050565b348015610441575f5ffd5b506102a8610450366004613c0e565b603b6020525f90815260409020546001600160401b031681565b348015610475575f5ffd5b5061047e610fd2565b60405161024f9190613c57565b348015610496575f5ffd5b50603e5461023b906001600160a01b031681565b3480156104b5575f5ffd5b506104c96104c4366004613ca6565b610ffd565b60405161024f9190613d0c565b61021a6104e4366004613af9565b61105f565b3480156104f4575f5ffd5b5061026c610503366004613c0e565b611361565b348015610513575f5ffd5b50610527610522366004613d1a565b61146f565b60405161024f9190613d31565b34801561053f575f5ffd5b506104c961054e366004613d1a565b5f90815260366020526040902054600160c01b900460ff1690565b348015610574575f5ffd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a7575f5ffd5b5061021a6105b6366004613d91565b61151a565b61021a6105c9366004613dac565b61160f565b3480156105d9575f5ffd5b506105276105e8366004613ca6565b61178d565b3480156105f8575f5ffd5b5061026c61187c565b34801561060c575f5ffd5b5061021a61061b366004613e41565b611898565b34801561062b575f5ffd5b5061021a61063a366004613e6b565b6119cf565b34801561064a575f5ffd5b5061021a610659366004613e6b565b611b19565b348015610669575f5ffd5b5061021a610678366004613f56565b611bad565b348015610688575f5ffd5b50603a546102a8906001600160401b031681565b3480156106a7575f5ffd5b5061021a6106b6366004614028565b611d0c565b604051635ac86ab760e01b8152600660048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610721573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610745919061408f565b156107635760405163840a48d560e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600860048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ed919061408f565b1561080b5760405163840a48d560e01b815260040160405180910390fd5b5f61084f61081985806140aa565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061210892505050565b5f818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156108bd576108bd613cd8565b60028111156108ce576108ce613cd8565b81525050905080604001516001600160401b0316876001600160401b03161161090a576040516337e07ffd60e01b815260040160405180910390fd5b60018160600151600281111561092257610922613cd8565b146109405760405163d49e19a760e01b815260040160405180910390fd5b61098361094d86806140aa565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061212a92505050565b6109a05760405163161ce5ed60e31b815260040160405180910390fd5b6109b26109ac88611361565b87612152565b6109de6109be886121f7565b87356109ca88806140aa565b6109d760208b018b6140ef565b87516122ce565b6109e75f612402565b50505050505050565b5f610a0c71bbddc7ce488642fb579f8b00f3a590007251612582565b905090565b604051635ac86ab760e01b8152600a60048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610a77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b919061408f565b15610ab95760405163840a48d560e01b815260040160405180910390fd5b6033546001600160a01b0316331480610adc5750603e546001600160a01b031633145b610af95760405163427a777960e01b815260040160405180910390fd5b5f610b0261187c565b90505f610b0f8483614145565b905080341015610b325760405163356680b760e01b815260040160405180910390fd5b5f610b3d823461415c565b90505f5b85811015610d305736878783818110610b5c57610b5c61416f565b9050602002810190610b6e9190614183565b90505f610bb7610b7e83806140ef565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061260892505050565b90505f610bc483806140ef565b610bd46040860160208701613c0e565b604051602001610be6939291906141a1565b60405160208183030381529060405290505f710961ef480eb55e80d19ad83579a64c0070026001600160a01b03168883604051610c2391906141d9565b5f6040518083038185875af1925050503d805f8114610c5d576040519150601f19603f3d011682016040523d82523d5f602084013e610c62565b606091505b5050905080610c845760405163fc52d48360e01b815260040160405180910390fd5b610c946040850160208601613c0e565b6001600160401b03165f03610cd25760405183907f60d8ca014d4765a2b8b389e25714cb1cef83b574222911a01d90c1bd69d2d320905f90a2610d20565b827f8b2737bb64ab2f2dc09552dfa1c250399e6a42c7ea9f0e1c658f5d65d708ec05610d046040870160208801613c0e565b6040516001600160401b03909116815260200160405180910390a25b505060019092019150610b419050565b508015610d4157610d413382612699565b505050505050565b6033546001600160a01b0316331480610d6c5750603e546001600160a01b031633145b610d895760405163427a777960e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610def573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e13919061408f565b15610e315760405163840a48d560e01b815260040160405180910390fd5b8584148015610e3f57508382145b610e5c576040516343714afd60e01b815260040160405180910390fd5b603a546001600160401b03600160401b9091048116908a1611610e92576040516337e07ffd60e01b815260040160405180910390fd5b610ea4610e9e8a611361565b89612152565b5f805b87811015610f3d57610f298b8b358b8b85818110610ec757610ec761416f565b9050602002016020810190610edc91906141e4565b8a8a86818110610eee57610eee61416f565b9050602002810190610f0091906140ef565b8a8a88818110610f1257610f1261416f565b9050602002810190610f2491906140aa565b6127ae565b610f339083614208565b9150600101610ea7565b5060335460405163a1ca780b60e01b81526001600160a01b0391821660048201525f6024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a1ca780b906064015f604051808303815f87803b158015610fb0575f5ffd5b505af1158015610fc2573d5f5f3e3d5ffd5b5050505050505050505050505050565b6060610a0c7f0000000000000000000000000000000000000000000000000000000000000000612caf565b5f5f61103d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061260892505050565b5f90815260366020526040902054600160c01b900460ff169150505b92915050565b604051635ac86ab760e01b8152600960048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156110c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e9919061408f565b156111075760405163840a48d560e01b815260040160405180910390fd5b6033546001600160a01b031633148061112a5750603e546001600160a01b031633145b6111475760405163427a777960e01b815260040160405180910390fd5b5f6111506109f0565b90505f61115d8483614145565b9050803410156111805760405163356680b760e01b815260040160405180910390fd5b5f61118b823461415c565b90505f5b85811015610d3057368787838181106111aa576111aa61416f565b90506020028101906111bc9190614183565b90505f6111cc610b7e83806140ef565b90505f6111df610b7e60208501856140ef565b90505f6111eb8261146f565b905060018160600151600281111561120557611205613cd8565b146112235760405163d49e19a760e01b815260040160405180910390fd5b5f61122e85806140ef565b61123b60208801886140ef565b60405160200161124e949392919061421b565b60405160208183030381529060405290505f71bbddc7ce488642fb579f8b00f3a5900072516001600160a01b03168a8360405161128b91906141d9565b5f6040518083038185875af1925050503d805f81146112c5576040519150601f19603f3d011682016040523d82523d5f602084013e6112ca565b606091505b50509050806112ec5760405163fc52d48360e01b815260040160405180910390fd5b8385036113225760405185907fc97b965b92ae7fd20095fe8eb7b99f81f95f8c4adffb22a19116d8eb2846b016905f90a261134f565b604051849086907f42f9c9db2ca443e9ec62f4588bd0c9b241065c02c2a8001ac164ae1282dc7b94905f90a35b50506001909401935061118f92505050565b5f61136f611fff600c614145565b6113826001600160401b0384164261415c565b106113a057604051637944e66d60e11b815260040160405180910390fd5b604080516001600160401b03841660208201525f918291720f3df6d732807ef1319fb7b8bb8522d0beac02910160408051601f19818403018152908290526113e7916141d9565b5f60405180830381855afa9150503d805f811461141f576040519150601f19603f3d011682016040523d82523d5f602084013e611424565b606091505b509150915081801561143657505f8151115b6114535760405163558ad0a360e01b815260040160405180910390fd5b80806020019051810190611467919061423a565b949350505050565b611496604080516080810182525f8082526020820181905291810182905290606082015290565b5f82815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff16600281111561150057611500613cd8565b600281111561151157611511613cd8565b90525092915050565b6033546001600160a01b031633148061153d5750603e546001600160a01b031633145b61155a5760405163427a777960e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600660048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156115c0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e4919061408f565b156116025760405163840a48d560e01b815260040160405180910390fd5b61160b82612402565b5050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461165857604051633213a66160e21b815260040160405180910390fd5b346801bc16d674ec800000146116815760405163049696b360e31b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec80000087876116c4612cec565b8888886040518863ffffffff1660e01b81526004016116e896959493929190614279565b5f604051808303818588803b1580156116ff575f5ffd5b505af1158015611711573d5f5f3e3d5ffd5b50505050507fa01003766d3cd97cf2ade5429690bf5d206be7fb01ef9d3a0089ecf67bc1121961177586868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061260892505050565b60405190815260200160405180910390a15050505050565b6117b4604080516080810182525f8082526020820181905291810182905290606082015290565b60365f6117f585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061260892505050565b815260208082019290925260409081015f20815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff16600281111561186157611861613cd8565b600281111561187257611872613cd8565b9052509392505050565b5f610a0c710961ef480eb55e80d19ad83579a64c007002612582565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146118e157604051633213a66160e21b815260040160405180910390fd5b5f6118f0633b9aca00836142db565b9050611909633b9aca006001600160401b038316614145565b6034549092506001600160401b03908116908216111561193c576040516302c6f54760e21b815260040160405180910390fd5b603480548291905f906119599084906001600160401b03166142ee565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e836040516119b891815260200190565b60405180910390a26119ca8383612699565b505050565b5f54610100900460ff16158080156119ed57505f54600160ff909116105b80611a065750303b158015611a0657505f5460ff166001145b611a6e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015611a8f575f805461ff0019166101001790555b6001600160a01b038216611ab6576040516339b190bb60e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b038416179055801561160b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6033546001600160a01b03163314611b445760405163719f370360e11b815260040160405180910390fd5b603e54604080516001600160a01b03928316815291831660208301527ffb8129080a19d34dceac04ba253fc50304dc86c729bd63cdca4a969ad19a5eac910160405180910390a1603e80546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314611bd85760405163719f370360e11b815260040160405180910390fd5b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611c3e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c62919061408f565b15611c805760405163840a48d560e01b815260040160405180910390fd5b8251845114611ca2576040516343714afd60e01b815260040160405180910390fd5b5f5b8451811015611d0557611cfd83858381518110611cc357611cc361416f565b6020026020010151878481518110611cdd57611cdd61416f565b60200260200101516001600160a01b0316612d1c9092919063ffffffff16565b600101611ca4565b5050505050565b604051635ac86ab760e01b8152600760048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611d72573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d96919061408f565b15611db45760405163840a48d560e01b815260040160405180910390fd5b603a54600160401b90046001600160401b03165f819003611de857604051631a544f4960e01b815260040160405180910390fd5b6040805160a081018252603c548152603d5462ffffff811660208301526001600160401b0363010000008204811693830193909352600160581b810460070b6060830152600160981b90049091166080820152611e4f611e47836121f7565b825188612d6e565b5f805b858110156120af5736878783818110611e6d57611e6d61416f565b9050602002810190611e7f919061430d565b80355f908152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff166002811115611eef57611eef613cd8565b6002811115611f0057611f00613cd8565b9052509050600181606001516002811115611f1d57611f1d613cd8565b14611f295750506120a7565b856001600160401b031681604001516001600160401b031610611f4d5750506120a7565b5f8080611f5d848a8f3588612e2f565b60208b0180519396509194509250611f7482614321565b62ffffff16905250608088018051849190611f9090839061433e565b6001600160401b0316905250606088018051839190611fb090839061435d565b60070b905250611fc0818861433e565b85355f908152603660209081526040918290208751815492890151938901516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060880151939a50879390929091839160ff60c01b1990911668ffffffffffffffffff60801b1990911617600160c01b83600281111561206457612064613cd8565b021790555050604051863591506001600160401b038b16907fe4866335761a51dcaff766448ab0af6064291ee5dc94e68492bb9cd757c1e350905f90a350505050505b600101611e52565b506001600160401b038084165f908152603b60205260408120805484939192916120db9185911661433e565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506109e782612f45565b5f815f8151811061211b5761211b61416f565b60200260200101519050919050565b5f8160038151811061213e5761213e61416f565b60200260200101515f5f1b14159050919050565b61215e60036020614145565b61216b60208301836140ef565b90501461218b576040516313717da960e21b815260040160405180910390fd5b6121da61219b60208301836140ef565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525086925050843590506003613165565b61160b576040516309bde33960e01b815260040160405180910390fd5b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632704351a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612255573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612279919061438c565b9050806001600160401b03165f036122a4576040516341a02cc960e01b815260040160405180910390fd5b806001600160401b0316836001600160401b031611156122c55760016122c7565b5f5b9392505050565b600884146122ef5760405163200591bd60e01b815260040160405180910390fd5b5f6122f98861319a565b90508061230860286001614208565b6123129190614208565b61231d906020614145565b831461233c576040516313717da960e21b815260040160405180910390fd5b5f6123788787808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506131c292505050565b90505f64ffffffffff841661238f60286001614208565b600b901b1790506123d986868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508d9250869150859050613165565b6123f6576040516309bde33960e01b815260040160405180910390fd5b50505050505050505050565b603a54600160401b90046001600160401b0316156124325760405162be9bc360e81b815260040160405180910390fd5b603a546001600160401b03428116911603612460576040516367db5b8b60e01b815260040160405180910390fd5b6034545f906001600160401b031661247c633b9aca00476142db565b61248691906142ee565b905081801561249c57506001600160401b038116155b156124ba576040516332dea95960e21b815260040160405180910390fd5b5f6040518060a001604052806124cf42611361565b815260395462ffffff1660208201526001600160401b0380851660408301525f60608301819052608090920191909152603a805442909216600160401b026fffffffffffffffff000000000000000019909216919091179055905061253381612f45565b805160208083015160405162ffffff90911681526001600160401b034216917f575796133bbed337e5b39aa49a30dc2556a91e0c6c2af4b7b886ae77ebef1076910160405180910390a3505050565b5f5f5f836001600160a01b03166040515f60405180830381855afa9150503d805f81146125ca576040519150601f19603f3d011682016040523d82523d5f602084013e6125cf565b606091505b50915091508180156125e2575080516020145b6125ff5760405163c90158af60e01b815260040160405180910390fd5b611467816143a7565b5f815160301461262b57604051634f88323960e11b815260040160405180910390fd5b6040516002906126419084905f906020016143ca565b60408051601f198184030181529082905261265b916141d9565b602060405180830381855afa158015612676573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611059919061423a565b804710156126e95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401611a65565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114612732576040519150601f19603f3d011682016040523d82523d5f602084013e612737565b606091505b50509050806119ca5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401611a65565b5f5f6127eb8484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061210892505050565b5f818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561285957612859613cd8565b600281111561286a5761286a613cd8565b90525090505f8160600151600281111561288657612886613cd8565b146128a4576040516335e09e9d60e01b815260040160405180910390fd5b6001600160401b0380166128e98686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061349092505050565b6001600160401b03160361291057604051631958236d60e21b815260040160405180910390fd5b6001600160401b0380166129558686808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506134b492505050565b6001600160401b03161461297c57604051632eade63760e01b815260040160405180910390fd5b612984612cec565b61298d906143a7565b6129c88686808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506134cb92505050565b1480612a1d57506129d76134df565b6129e0906143a7565b612a1b8686808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506134cb92505050565b145b612a3a57604051633772dd5360e11b815260040160405180910390fd5b5f612a768686808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506134fb92505050565b9050612a8f612a848c6121f7565b8b88888c8c8f6122ce565b60398054905f612a9e836143ee565b9091555050603a545f90600160401b90046001600160401b031615612ad557603a54600160401b90046001600160401b0316612ae2565b603a546001600160401b03165b6040805160808101825264ffffffffff8d1681526001600160401b03858116602083015283169181019190915290915060608101600190525f858152603660209081526040918290208351815492850151938501516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b031990951691909216179290921792831682178155606084015190929091839160ff60c01b1990911668ffffffffffffffffff60801b1990911617600160c01b836002811115612bb757612bb7613cd8565b021790555050603d8054849250601390612be2908490600160981b90046001600160401b031661433e565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507f101790c2993f6a4d962bd17c786126823ba1c4cf04ff4cccb2659d50fb20aee884604051612c3791815260200190565b60405180910390a1604080518581526001600160401b03838116602083015284168183015290517fcdae700d7241bc027168c53cf6f889763b0a2c88a65d77fc13a8a9fef0d8605f9181900360600190a1612c9f633b9aca006001600160401b038416614145565b9c9b505050505050505050505050565b60605f612cbb83613512565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b604051606090612d0890600160f81b905f903090602001614406565b604051602081830303815290604052905090565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526119ca908490613539565b5f612d788461319a565b9050612d85816003614208565b612d90906020614145565b612d9d60208401846140ef565b905014612dbd576040516313717da960e21b815260040160405180910390fd5b6003811b600c17612e12612dd460208501856140ef565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250508635905084613165565b611d05576040516309bde33960e01b815260040160405180910390fd5b5f5f5f866020015192505f612e4886895f01518761360c565b9050836001600160401b0316816001600160401b031614612ebc57612e6d8482614444565b60408051873581526001600160401b038a8116602083015284168183015290519194507fcdae700d7241bc027168c53cf6f889763b0a2c88a65d77fc13a8a9fef0d8605f919081900360600190a15b6001600160401b0380821660208a0181905290881660408a01525f03612f3a5760398054905f612eeb83614473565b909155505060026060890152612f0083614488565b6040519092508535906001600160401b038916907f5ce0aa04ae51d52da6e680fbe0336d2e2432f7c3dc2d4f3193204c57b9072107905f90a35b509450945094915050565b8051603c556020810151603d805460408401516060850151608086015162ffffff9095166affffffffffffffffffffff19909316831763010000006001600160401b0393841602176fffffffffffffffffffffffffffffffff60581b1916600160581b9183169190910267ffffffffffffffff60981b191617600160981b919094160292909217905515612fd65750565b60808101516034545f91612ff2916001600160401b031661433e565b90505f82606001518360400151613009919061435d565b60408401516034805492935090915f9061302d9084906001600160401b031661433e565b82546101009290920a6001600160401b03818102199093169183160217909155603a8054600160401b810483166001600160801b03199091161790555f915061307d90633b9aca00908516614145565b90505f613092633b9aca00600785900b6144ad565b603a546040518281529192506001600160401b0316907f525408c201bc1576eb44116f6478f1c2a54775b19a043bcfdc708364f74f8e449060200160405180910390a260335460405163a1ca780b60e01b81526001600160a01b03918216600482015260248101849052604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a1ca780b906064015f604051808303815f87803b158015613148575f5ffd5b505af115801561315a573d5f5f3e3d5ffd5b505050505050505050565b5f83613184576040516329e7276760e11b815260040160405180910390fd5b836131908685856136ea565b1495945050505050565b5f808260018111156131ae576131ae613cd8565b146131ba576006611059565b600592915050565b5f60018251116131e55760405163f8ef036760e01b815260040160405180910390fd5b6131ef82516137dd565b61320c5760405163f6558f5160e01b815260040160405180910390fd5b5f6002835161321b91906142db565b90505f816001600160401b0381111561323657613236613e86565b60405190808252806020026020018201604052801561325f578160200160208202803683370190505b5090505f5b82811015613359576002856132798383614145565b815181106132895761328961416f565b60200260200101518683600261329f9190614145565b6132aa906001614208565b815181106132ba576132ba61416f565b60200260200101516040516020016132dc929190918252602082015260400190565b60408051601f19818403018152908290526132f6916141d9565b602060405180830381855afa158015613311573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190613334919061423a565b8282815181106133465761334661416f565b6020908102919091010152600101613264565b505b8160011461346d5761336e6002836142db565b91505f5b82811015613467576002826133878383614145565b815181106133975761339761416f565b6020026020010151838360026133ad9190614145565b6133b8906001614208565b815181106133c8576133c861416f565b60200260200101516040516020016133ea929190918252602082015260400190565b60408051601f1981840301815290829052613404916141d9565b602060405180830381855afa15801561341f573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190613442919061423a565b8282815181106134545761345461416f565b6020908102919091010152600101613372565b5061335b565b805f8151811061347f5761347f61416f565b602002602001015192505050919050565b5f611059826005815181106134a7576134a761416f565b60200260200101516137fc565b5f611059826006815181106134a7576134a761416f565b5f8160018151811061211b5761211b61416f565b604051606090612d0890600160f91b905f903090602001614406565b5f611059826002815181106134a7576134a761416f565b5f60ff8216601f81111561105957604051632cd44ac360e21b815260040160405180910390fd5b5f61358d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166138639092919063ffffffff16565b905080515f14806135ad5750808060200190518101906135ad919061408f565b6119ca5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611a65565b5f61361960266001614208565b613624906020614145565b61363160408401846140ef565b905014613651576040516313717da960e21b815260040160405180910390fd5b5f61365d6004856144dc565b64ffffffffff1690506136b661367660408501856140ef565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508992505050602086013584613165565b6136d3576040516309bde33960e01b815260040160405180910390fd5b6136e1836020013585613871565b95945050505050565b5f83515f141580156137075750602084516137059190614505565b155b613724576040516313717da960e21b815260040160405180910390fd5b604080516020808201909252848152905b855181116137b457613748600285614505565b5f0361377a5781515f528086015160205260208260405f60026107d05a03fa61376f575f5ffd5b6002840493506137a2565b808601515f52815160205260208260405f60026107d05a03fa61379b575f5ffd5b6002840493505b6137ad602082614208565b9050613735565b5082156137d4576040516363df817160e01b815260040160405180910390fd5b51949350505050565b5f811580159061105957506137f360018361415c565b82161592915050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b606061146784845f8561389d565b5f8061387e600484614518565b613889906040614541565b64ffffffffff16905061146784821b6137fc565b6060824710156138fe5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401611a65565b5f5f866001600160a01b0316858760405161391991906141d9565b5f6040518083038185875af1925050503d805f8114613953576040519150601f19603f3d011682016040523d82523d5f602084013e613958565b606091505b509150915061396987838387613974565b979650505050505050565b606083156139e25782515f036139db576001600160a01b0385163b6139db5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611a65565b5081611467565b61146783838151156139f75781518083602001fd5b8060405162461bcd60e51b8152600401611a659190613c57565b6001600160401b0381168114613a25575f5ffd5b50565b5f60408284031215613a38575f5ffd5b50919050565b5f5f5f60608486031215613a50575f5ffd5b8335613a5b81613a11565b925060208401356001600160401b03811115613a75575f5ffd5b613a8186828701613a28565b92505060408401356001600160401b03811115613a9c575f5ffd5b613aa886828701613a28565b9150509250925092565b5f5f83601f840112613ac2575f5ffd5b5081356001600160401b03811115613ad8575f5ffd5b6020830191508360208260051b8501011115613af2575f5ffd5b9250929050565b5f5f60208385031215613b0a575f5ffd5b82356001600160401b03811115613b1f575f5ffd5b613b2b85828601613ab2565b90969095509350505050565b5f5f5f5f5f5f5f5f60a0898b031215613b4e575f5ffd5b8835613b5981613a11565b975060208901356001600160401b03811115613b73575f5ffd5b613b7f8b828c01613a28565b97505060408901356001600160401b03811115613b9a575f5ffd5b613ba68b828c01613ab2565b90975095505060608901356001600160401b03811115613bc4575f5ffd5b613bd08b828c01613ab2565b90955093505060808901356001600160401b03811115613bee575f5ffd5b613bfa8b828c01613ab2565b999c989b5096995094979396929594505050565b5f60208284031215613c1e575f5ffd5b81356122c781613a11565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6122c76020830184613c29565b5f5f83601f840112613c79575f5ffd5b5081356001600160401b03811115613c8f575f5ffd5b602083019150836020828501011115613af2575f5ffd5b5f5f60208385031215613cb7575f5ffd5b82356001600160401b03811115613ccc575f5ffd5b613b2b85828601613c69565b634e487b7160e01b5f52602160045260245ffd5b60038110613d0857634e487b7160e01b5f52602160045260245ffd5b9052565b602081016110598284613cec565b5f60208284031215613d2a575f5ffd5b5035919050565b5f6080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151613d7d6060840182613cec565b5092915050565b8015158114613a25575f5ffd5b5f60208284031215613da1575f5ffd5b81356122c781613d84565b5f5f5f5f5f60608688031215613dc0575f5ffd5b85356001600160401b03811115613dd5575f5ffd5b613de188828901613c69565b90965094505060208601356001600160401b03811115613dff575f5ffd5b613e0b88828901613c69565b96999598509660400135949350505050565b6001600160a01b0381168114613a25575f5ffd5b8035613e3c81613e1d565b919050565b5f5f60408385031215613e52575f5ffd5b8235613e5d81613e1d565b946020939093013593505050565b5f60208284031215613e7b575f5ffd5b81356122c781613e1d565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715613ec257613ec2613e86565b604052919050565b5f6001600160401b03821115613ee257613ee2613e86565b5060051b60200190565b5f82601f830112613efb575f5ffd5b8135613f0e613f0982613eca565b613e9a565b8082825260208201915060208360051b860101925085831115613f2f575f5ffd5b602085015b83811015613f4c578035835260209283019201613f34565b5095945050505050565b5f5f5f60608486031215613f68575f5ffd5b83356001600160401b03811115613f7d575f5ffd5b8401601f81018613613f8d575f5ffd5b8035613f9b613f0982613eca565b8082825260208201915060208360051b850101925088831115613fbc575f5ffd5b6020840193505b82841015613fe7578335613fd681613e1d565b825260209384019390910190613fc3565b955050505060208401356001600160401b03811115614004575f5ffd5b61401086828701613eec565b92505061401f60408501613e31565b90509250925092565b5f5f5f6040848603121561403a575f5ffd5b83356001600160401b0381111561404f575f5ffd5b61405b86828701613a28565b93505060208401356001600160401b03811115614076575f5ffd5b61408286828701613ab2565b9497909650939450505050565b5f6020828403121561409f575f5ffd5b81516122c781613d84565b5f5f8335601e198436030181126140bf575f5ffd5b8301803591506001600160401b038211156140d8575f5ffd5b6020019150600581901b3603821315613af2575f5ffd5b5f5f8335601e19843603018112614104575f5ffd5b8301803591506001600160401b0382111561411d575f5ffd5b602001915036819003821315613af2575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761105957611059614131565b8181038181111561105957611059614131565b634e487b7160e01b5f52603260045260245ffd5b5f8235603e19833603018112614197575f5ffd5b9190910192915050565b8284823760c09190911b6001600160c01b0319169101908152600801919050565b5f81518060208401855e5f93019283525090919050565b5f6122c782846141c2565b5f602082840312156141f4575f5ffd5b813564ffffffffff811681146122c7575f5ffd5b8082018082111561105957611059614131565b838582375f8482015f8152838582375f93019283525090949350505050565b5f6020828403121561424a575f5ffd5b5051919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b608081525f61428c60808301888a614251565b828103602084015261429e8188613c29565b905082810360408401526142b3818688614251565b915050826060830152979650505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f826142e9576142e96142c7565b500490565b6001600160401b03828116828216039081111561105957611059614131565b5f8235605e19833603018112614197575f5ffd5b5f62ffffff82168061433557614335614131565b5f190192915050565b6001600160401b03818116838216019081111561105957611059614131565b600781810b9083900b01677fffffffffffffff8113677fffffffffffffff198212171561105957611059614131565b5f6020828403121561439c575f5ffd5b81516122c781613a11565b80516020808301519190811015613a38575f1960209190910360031b1b16919050565b5f6143d582856141c2565b6001600160801b03199390931683525050601001919050565b5f600182016143ff576143ff614131565b5060010190565b6001600160f81b03199390931683526001600160a81b031991909116600183015260601b6bffffffffffffffffffffffff1916600c82015260200190565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff8213171561105957611059614131565b5f8161448157614481614131565b505f190190565b5f8160070b677fffffffffffffff1981036144a5576144a5614131565b5f0392915050565b8082025f8212600160ff1b841416156144c8576144c8614131565b818105831482151761105957611059614131565b5f64ffffffffff8316806144f2576144f26142c7565b8064ffffffffff84160491505092915050565b5f82614513576145136142c7565b500690565b5f64ffffffffff83168061452e5761452e6142c7565b8064ffffffffff84160691505092915050565b64ffffffffff8181168382160290811690818114613d7d57613d7d61413156fea2646970667358221220e2598e38e5691df567852c1fc1c4cf816fd603232fb02728167b0e7c60d7e26964736f6c634300081b0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_ethPOS\",\"type\":\"address\",\"internalType\":\"contractIETHPOSDeposit\"},{\"name\":\"_eigenPodManager\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"activeValidatorCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkpointBalanceExitedGwei\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpoint\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.Checkpoint\",\"components\":[{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofsRemaining\",\"type\":\"uint24\",\"internalType\":\"uint24\"},{\"name\":\"podBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"balanceDeltasGwei\",\"type\":\"int64\",\"internalType\":\"int64\"},{\"name\":\"prevBeaconBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ethPOS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIETHPOSDeposit\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getConsolidationRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getParentBlockRoot\",\"inputs\":[{\"name\":\"timestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawalRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"podOwner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proofSubmitter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"recoverTokens\",\"inputs\":[{\"name\":\"tokenList\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"amountsToWithdraw\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestConsolidation\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.ConsolidationRequest[]\",\"components\":[{\"name\":\"srcPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"targetPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"requestWithdrawal\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.WithdrawalRequest[]\",\"components\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amountGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setProofSubmitter\",\"inputs\":[{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stake\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"depositDataRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"startCheckpoint\",\"inputs\":[{\"name\":\"revertIfNoBalance\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"validatorPubkeyHashToInfo\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorPubkeyToInfo\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyCheckpointProofs\",\"inputs\":[{\"name\":\"balanceContainerProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.BalanceContainerProof\",\"components\":[{\"name\":\"balanceContainerRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proofs\",\"type\":\"tuple[]\",\"internalType\":\"structBeaconChainProofs.BalanceProof[]\",\"components\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"balanceRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyStaleBalance\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.ValidatorProof\",\"components\":[{\"name\":\"validatorFields\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyWithdrawalCredentials\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"validatorIndices\",\"type\":\"uint40[]\",\"internalType\":\"uint40[]\"},{\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"validatorFields\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdrawRestakedBeaconChainETH\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amountWei\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawableRestakedExecutionLayerGwei\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"CheckpointCreated\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validatorCount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CheckpointFinalized\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"totalShareDeltaWei\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConsolidationRequested\",\"inputs\":[{\"name\":\"sourcePubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"targetPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EigenPodStaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExitRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NonBeaconChainETHReceived\",\"inputs\":[{\"name\":\"amountReceived\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ProofSubmitterUpdated\",\"inputs\":[{\"name\":\"prevProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RestakedBeaconChainETHWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SwitchToCompoundingRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorBalanceUpdated\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"balanceTimestamp\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newValidatorBalanceGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorCheckpointed\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRestaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWithdrawn\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"withdrawalAmountGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BeaconTimestampBeforeLatestCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BeaconTimestampTooFarInPast\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotCheckpointTwiceInSingleBlock\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CheckpointAlreadyActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CredentialsAlreadyVerified\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeQueryFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ForkTimestampZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientFunds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientWithdrawableBalance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEIP4788Response\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProof\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidValidatorFieldsLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"LeavesNotPowerOfTwo\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MsgValueNot32ETH\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoActiveCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoBalanceToCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotEnoughLeaves\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwnerOrProofSubmitter\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PredeployFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TimestampOutOfRange\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorInactiveOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorIsExitingBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotActiveInPod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotSlashedOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalCredentialsNotForEigenPod\",\"inputs\":[]}]", + Bin: "0x60e060405234801561000f575f5ffd5b5060405161495a38038061495a83398101604081905261002e91610188565b806100388161005f565b608052506001600160a01b0380841660a052821660c0526100576100a5565b5050506102b9565b5f5f829050601f81511115610092578260405163305a27a960e01b8152600401610089919061025e565b60405180910390fd5b805161009d82610293565b179392505050565b5f54610100900460ff161561010c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610089565b5f5460ff9081161461015b575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114610171575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f6060848603121561019a575f5ffd5b83516101a58161015d565b60208501519093506101b68161015d565b60408501519092506001600160401b038111156101d1575f5ffd5b8401601f810186136101e1575f5ffd5b80516001600160401b038111156101fa576101fa610174565b604051601f8201601f19908116603f011681016001600160401b038111828210171561022857610228610174565b60405281815282820160200188101561023f575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102b3575f198160200360031b1b821691505b50919050565b60805160a05160c0516146156103455f395f8181610329015281816106d40152818161077c01528181610a2a01528181610deb01528181610fe5015281816110f0015281816115f1015281816116980152818161192101528181611c6f01528181611da301528181612279015261318301525f818161057a015261170101525f61105101526146155ff3fe6080604052600436106101bd575f3560e01c80636691954e116100f2578063b522538a11610092578063d06d558711610062578063d06d55871461063f578063dda3346c1461065e578063ee94d67c1461067d578063f074ba621461069c575f5ffd5b8063b522538a146105ce578063c44e30dc146105ed578063c490744214610601578063c4d66de814610620575f5ffd5b80637439841f116100cd5780637439841f1461053457806374cdd7981461056957806388676cad1461059c5780639b4e4634146105bb575f5ffd5b80636691954e146104d65780636c0d2d5a146104e95780636fcd0e5314610508575f5ffd5b806342ecff2a1161015d57806352396a591161013857806352396a591461043657806354fd4d501461046a578063587533571461048b57806358eaee79146104aa575f5ffd5b806342ecff2a146102f25780634665bcda1461031857806347d283721461034b575f5ffd5b80632340e8d3116101985780632340e8d31461027a5780633474aa161461028f5780633f5fa57a146102c05780633f65cf19146102d3575f5ffd5b8063039157d2146101fb5780630b18ff661461021c5780631e51553314610258575f5ffd5b366101f7576040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b5f5ffd5b348015610206575f5ffd5b5061021a610215366004613abc565b6106bb565b005b348015610227575f5ffd5b5060335461023b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610263575f5ffd5b5061026c6109f0565b60405190815260200161024f565b348015610285575f5ffd5b5061026c60395481565b34801561029a575f5ffd5b506034546001600160401b03165b6040516001600160401b03909116815260200161024f565b61021a6102ce366004613b77565b610a11565b3480156102de575f5ffd5b5061021a6102ed366004613bb5565b610d92565b3480156102fd575f5ffd5b50603a546102a890600160401b90046001600160401b031681565b348015610323575f5ffd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610356575f5ffd5b506103db6040805160a0810182525f80825260208201819052918101829052606081018290526080810191909152506040805160a081018252603c548152603d5462ffffff811660208301526001600160401b0363010000008204811693830193909352600160581b810460070b6060830152600160981b9004909116608082015290565b60405161024f91905f60a0820190508251825262ffffff60208401511660208301526001600160401b036040840151166040830152606083015160070b60608301526001600160401b03608084015116608083015292915050565b348015610441575f5ffd5b506102a8610450366004613c8c565b603b6020525f90815260409020546001600160401b031681565b348015610475575f5ffd5b5061047e61104a565b60405161024f9190613cd5565b348015610496575f5ffd5b50603e5461023b906001600160a01b031681565b3480156104b5575f5ffd5b506104c96104c4366004613d24565b611075565b60405161024f9190613d8a565b61021a6104e4366004613b77565b6110d7565b3480156104f4575f5ffd5b5061026c610503366004613c8c565b6113df565b348015610513575f5ffd5b50610527610522366004613d98565b6114ed565b60405161024f9190613daf565b34801561053f575f5ffd5b506104c961054e366004613d98565b5f90815260366020526040902054600160c01b900460ff1690565b348015610574575f5ffd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a7575f5ffd5b5061021a6105b6366004613e0f565b611598565b61021a6105c9366004613e2a565b61168d565b3480156105d9575f5ffd5b506105276105e8366004613d24565b61180b565b3480156105f8575f5ffd5b5061026c6118fa565b34801561060c575f5ffd5b5061021a61061b366004613ebf565b611916565b34801561062b575f5ffd5b5061021a61063a366004613ee9565b611a4d565b34801561064a575f5ffd5b5061021a610659366004613ee9565b611b97565b348015610669575f5ffd5b5061021a610678366004613fd4565b611c2b565b348015610688575f5ffd5b50603a546102a8906001600160401b031681565b3480156106a7575f5ffd5b5061021a6106b63660046140a6565b611d8a565b604051635ac86ab760e01b8152600660048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610721573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610745919061410d565b156107635760405163840a48d560e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600860048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ed919061410d565b1561080b5760405163840a48d560e01b815260040160405180910390fd5b5f61084f6108198580614128565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061218692505050565b5f818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156108bd576108bd613d56565b60028111156108ce576108ce613d56565b81525050905080604001516001600160401b0316876001600160401b03161161090a576040516337e07ffd60e01b815260040160405180910390fd5b60018160600151600281111561092257610922613d56565b146109405760405163d49e19a760e01b815260040160405180910390fd5b61098361094d8680614128565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506121a892505050565b6109a05760405163161ce5ed60e31b815260040160405180910390fd5b6109b26109ac886113df565b876121d0565b6109de6109be88612275565b87356109ca8880614128565b6109d760208b018b61416d565b875161234c565b6109e75f612480565b50505050505050565b5f610a0c71bbddc7ce488642fb579f8b00f3a590007251612600565b905090565b604051635ac86ab760e01b8152600a60048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610a77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b919061410d565b15610ab95760405163840a48d560e01b815260040160405180910390fd5b6033546001600160a01b0316331480610adc5750603e546001600160a01b031633145b610af95760405163427a777960e01b815260040160405180910390fd5b5f610b026118fa565b90505f610b0f84836141c3565b905080341015610b325760405163356680b760e01b815260040160405180910390fd5b5f610b3d82346141da565b90505f5b85811015610d795736878783818110610b5c57610b5c6141ed565b9050602002810190610b6e9190614201565b90505f610bb7610b7e838061416d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268692505050565b905060015f82815260366020526040902054600160c01b900460ff166002811115610be457610be4613d56565b14610c025760405163d49e19a760e01b815260040160405180910390fd5b5f610c0d838061416d565b610c1d6040860160208701613c8c565b604051602001610c2f9392919061421f565b60405160208183030381529060405290505f710961ef480eb55e80d19ad83579a64c0070026001600160a01b03168883604051610c6c9190614257565b5f6040518083038185875af1925050503d805f8114610ca6576040519150601f19603f3d011682016040523d82523d5f602084013e610cab565b606091505b5050905080610ccd5760405163fc52d48360e01b815260040160405180910390fd5b610cdd6040850160208601613c8c565b6001600160401b03165f03610d1b5760405183907f60d8ca014d4765a2b8b389e25714cb1cef83b574222911a01d90c1bd69d2d320905f90a2610d69565b827f8b2737bb64ab2f2dc09552dfa1c250399e6a42c7ea9f0e1c658f5d65d708ec05610d4d6040870160208801613c8c565b6040516001600160401b03909116815260200160405180910390a25b505060019092019150610b419050565b508015610d8a57610d8a3382612717565b505050505050565b6033546001600160a01b0316331480610db55750603e546001600160a01b031633145b610dd25760405163427a777960e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610e38573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5c919061410d565b15610e7a5760405163840a48d560e01b815260040160405180910390fd5b8584148015610e8857508382145b610ea5576040516343714afd60e01b815260040160405180910390fd5b603a546001600160401b03600160401b9091048116908a1611610edb576040516337e07ffd60e01b815260040160405180910390fd5b603a546001600160401b03908116908a1611610f0a576040516335e7f6b760e01b815260040160405180910390fd5b610f1c610f168a6113df565b896121d0565b5f805b87811015610fb557610fa18b8b358b8b85818110610f3f57610f3f6141ed565b9050602002016020810190610f549190614262565b8a8a86818110610f6657610f666141ed565b9050602002810190610f78919061416d565b8a8a88818110610f8a57610f8a6141ed565b9050602002810190610f9c9190614128565b61282c565b610fab9083614286565b9150600101610f1f565b5060335460405163a1ca780b60e01b81526001600160a01b0391821660048201525f6024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a1ca780b906064015f604051808303815f87803b158015611028575f5ffd5b505af115801561103a573d5f5f3e3d5ffd5b5050505050505050505050505050565b6060610a0c7f0000000000000000000000000000000000000000000000000000000000000000612d2d565b5f5f6110b584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268692505050565b5f90815260366020526040902054600160c01b900460ff169150505b92915050565b604051635ac86ab760e01b8152600960048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa15801561113d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611161919061410d565b1561117f5760405163840a48d560e01b815260040160405180910390fd5b6033546001600160a01b03163314806111a25750603e546001600160a01b031633145b6111bf5760405163427a777960e01b815260040160405180910390fd5b5f6111c86109f0565b90505f6111d584836141c3565b9050803410156111f85760405163356680b760e01b815260040160405180910390fd5b5f61120382346141da565b90505f5b85811015610d795736878783818110611222576112226141ed565b90506020028101906112349190614201565b90505f611244610b7e838061416d565b90505f611257610b7e602085018561416d565b905060015f82815260366020526040902054600160c01b900460ff16600281111561128457611284613d56565b146112a25760405163d49e19a760e01b815260040160405180910390fd5b5f6112ad848061416d565b6112ba602087018761416d565b6040516020016112cd9493929190614299565b60405160208183030381529060405290505f71bbddc7ce488642fb579f8b00f3a5900072516001600160a01b0316898360405161130a9190614257565b5f6040518083038185875af1925050503d805f8114611344576040519150601f19603f3d011682016040523d82523d5f602084013e611349565b606091505b505090508061136b5760405163fc52d48360e01b815260040160405180910390fd5b8284036113a15760405184907fc97b965b92ae7fd20095fe8eb7b99f81f95f8c4adffb22a19116d8eb2846b016905f90a26113ce565b604051839085907f42f9c9db2ca443e9ec62f4588bd0c9b241065c02c2a8001ac164ae1282dc7b94905f90a35b505060019093019250611207915050565b5f6113ed611fff600c6141c3565b6114006001600160401b038416426141da565b1061141e57604051637944e66d60e11b815260040160405180910390fd5b604080516001600160401b03841660208201525f918291720f3df6d732807ef1319fb7b8bb8522d0beac02910160408051601f198184030181529082905261146591614257565b5f60405180830381855afa9150503d805f811461149d576040519150601f19603f3d011682016040523d82523d5f602084013e6114a2565b606091505b50915091508180156114b457505f8151115b6114d15760405163558ad0a360e01b815260040160405180910390fd5b808060200190518101906114e591906142b8565b949350505050565b611514604080516080810182525f8082526020820181905291810182905290606082015290565b5f82815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff16600281111561157e5761157e613d56565b600281111561158f5761158f613d56565b90525092915050565b6033546001600160a01b03163314806115bb5750603e546001600160a01b031633145b6115d85760405163427a777960e01b815260040160405180910390fd5b604051635ac86ab760e01b8152600660048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa15801561163e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611662919061410d565b156116805760405163840a48d560e01b815260040160405180910390fd5b61168982612480565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116d657604051633213a66160e21b815260040160405180910390fd5b346801bc16d674ec800000146116ff5760405163049696b360e31b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787611742612d6a565b8888886040518863ffffffff1660e01b8152600401611766969594939291906142f7565b5f604051808303818588803b15801561177d575f5ffd5b505af115801561178f573d5f5f3e3d5ffd5b50505050507fa01003766d3cd97cf2ade5429690bf5d206be7fb01ef9d3a0089ecf67bc112196117f386868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268692505050565b60405190815260200160405180910390a15050505050565b611832604080516080810182525f8082526020820181905291810182905290606082015290565b60365f61187385858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061268692505050565b815260208082019290925260409081015f20815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156118df576118df613d56565b60028111156118f0576118f0613d56565b9052509392505050565b5f610a0c710961ef480eb55e80d19ad83579a64c007002612600565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461195f57604051633213a66160e21b815260040160405180910390fd5b5f61196e633b9aca0083614359565b9050611987633b9aca006001600160401b0383166141c3565b6034549092506001600160401b0390811690821611156119ba576040516302c6f54760e21b815260040160405180910390fd5b603480548291905f906119d79084906001600160401b031661436c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e83604051611a3691815260200190565b60405180910390a2611a488383612717565b505050565b5f54610100900460ff1615808015611a6b57505f54600160ff909116105b80611a845750303b158015611a8457505f5460ff166001145b611aec5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015611b0d575f805461ff0019166101001790555b6001600160a01b038216611b34576040516339b190bb60e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0384161790558015611689575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6033546001600160a01b03163314611bc25760405163719f370360e11b815260040160405180910390fd5b603e54604080516001600160a01b03928316815291831660208301527ffb8129080a19d34dceac04ba253fc50304dc86c729bd63cdca4a969ad19a5eac910160405180910390a1603e80546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314611c565760405163719f370360e11b815260040160405180910390fd5b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611cbc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ce0919061410d565b15611cfe5760405163840a48d560e01b815260040160405180910390fd5b8251845114611d20576040516343714afd60e01b815260040160405180910390fd5b5f5b8451811015611d8357611d7b83858381518110611d4157611d416141ed565b6020026020010151878481518110611d5b57611d5b6141ed565b60200260200101516001600160a01b0316612d9a9092919063ffffffff16565b600101611d22565b5050505050565b604051635ac86ab760e01b8152600760048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611df0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e14919061410d565b15611e325760405163840a48d560e01b815260040160405180910390fd5b603a54600160401b90046001600160401b03165f819003611e6657604051631a544f4960e01b815260040160405180910390fd5b6040805160a081018252603c548152603d5462ffffff811660208301526001600160401b0363010000008204811693830193909352600160581b810460070b6060830152600160981b90049091166080820152611ecd611ec583612275565b825188612dec565b5f805b8581101561212d5736878783818110611eeb57611eeb6141ed565b9050602002810190611efd919061438b565b80355f908152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff166002811115611f6d57611f6d613d56565b6002811115611f7e57611f7e613d56565b9052509050600181606001516002811115611f9b57611f9b613d56565b14611fa7575050612125565b856001600160401b031681604001516001600160401b031610611fcb575050612125565b5f8080611fdb848a8f3588612ead565b60208b0180519396509194509250611ff28261439f565b62ffffff1690525060808801805184919061200e9083906143bc565b6001600160401b031690525060608801805183919061202e9083906143db565b60070b90525061203e81886143bc565b85355f908152603660209081526040918290208751815492890151938901516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060880151939a50879390929091839160ff60c01b1990911668ffffffffffffffffff60801b1990911617600160c01b8360028111156120e2576120e2613d56565b021790555050604051863591506001600160401b038b16907fe4866335761a51dcaff766448ab0af6064291ee5dc94e68492bb9cd757c1e350905f90a350505050505b600101611ed0565b506001600160401b038084165f908152603b6020526040812080548493919291612159918591166143bc565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506109e782612fc3565b5f815f81518110612199576121996141ed565b60200260200101519050919050565b5f816003815181106121bc576121bc6141ed565b60200260200101515f5f1b14159050919050565b6121dc600360206141c3565b6121e9602083018361416d565b905014612209576040516313717da960e21b815260040160405180910390fd5b612258612219602083018361416d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250869250508435905060036131e3565b611689576040516309bde33960e01b815260040160405180910390fd5b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632704351a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122d3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122f7919061440a565b9050806001600160401b03165f03612322576040516341a02cc960e01b815260040160405180910390fd5b806001600160401b0316836001600160401b03161115612343576001612345565b5f5b9392505050565b6008841461236d5760405163200591bd60e01b815260040160405180910390fd5b5f61237788613218565b90508061238660286001614286565b6123909190614286565b61239b9060206141c3565b83146123ba576040516313717da960e21b815260040160405180910390fd5b5f6123f68787808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061324092505050565b90505f64ffffffffff841661240d60286001614286565b600b901b17905061245786868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508d92508691508590506131e3565b612474576040516309bde33960e01b815260040160405180910390fd5b50505050505050505050565b603a54600160401b90046001600160401b0316156124b05760405162be9bc360e81b815260040160405180910390fd5b603a546001600160401b034281169116036124de576040516367db5b8b60e01b815260040160405180910390fd5b6034545f906001600160401b03166124fa633b9aca0047614359565b612504919061436c565b905081801561251a57506001600160401b038116155b15612538576040516332dea95960e21b815260040160405180910390fd5b5f6040518060a0016040528061254d426113df565b815260395462ffffff1660208201526001600160401b0380851660408301525f60608301819052608090920191909152603a805442909216600160401b026fffffffffffffffff00000000000000001990921691909117905590506125b181612fc3565b805160208083015160405162ffffff90911681526001600160401b034216917f575796133bbed337e5b39aa49a30dc2556a91e0c6c2af4b7b886ae77ebef1076910160405180910390a3505050565b5f5f5f836001600160a01b03166040515f60405180830381855afa9150503d805f8114612648576040519150601f19603f3d011682016040523d82523d5f602084013e61264d565b606091505b5091509150818015612660575080516020145b61267d5760405163c90158af60e01b815260040160405180910390fd5b6114e581614425565b5f81516030146126a957604051634f88323960e11b815260040160405180910390fd5b6040516002906126bf9084905f90602001614448565b60408051601f19818403018152908290526126d991614257565b602060405180830381855afa1580156126f4573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906110d191906142b8565b804710156127675760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401611ae3565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146127b0576040519150601f19603f3d011682016040523d82523d5f602084013e6127b5565b606091505b5050905080611a485760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401611ae3565b5f5f6128698484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061218692505050565b5f818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156128d7576128d7613d56565b60028111156128e8576128e8613d56565b90525090505f8160600151600281111561290457612904613d56565b14612922576040516335e09e9d60e01b815260040160405180910390fd5b6001600160401b0380166129678686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061350e92505050565b6001600160401b03160361298e57604051631958236d60e21b815260040160405180910390fd5b6001600160401b0380166129d38686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061353292505050565b6001600160401b0316146129fa57604051632eade63760e01b815260040160405180910390fd5b612a02612d6a565b612a0b90614425565b612a468686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061354992505050565b1480612a9b5750612a5561355d565b612a5e90614425565b612a998686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061354992505050565b145b612ab857604051633772dd5360e11b815260040160405180910390fd5b5f612af48686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061357992505050565b9050612b0d612b028c612275565b8b88888c8c8f61234c565b60398054905f612b1c8361446c565b9091555050603a545f90600160401b90046001600160401b031615612b5357603a54600160401b90046001600160401b0316612b60565b603a546001600160401b03165b6040805160808101825264ffffffffff8d1681526001600160401b03858116602083015283169181019190915290915060608101600190525f858152603660209081526040918290208351815492850151938501516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b031990951691909216179290921792831682178155606084015190929091839160ff60c01b1990911668ffffffffffffffffff60801b1990911617600160c01b836002811115612c3557612c35613d56565b021790555050603d8054849250601390612c60908490600160981b90046001600160401b03166143bc565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507f101790c2993f6a4d962bd17c786126823ba1c4cf04ff4cccb2659d50fb20aee884604051612cb591815260200190565b60405180910390a1604080518581526001600160401b03838116602083015284168183015290517fcdae700d7241bc027168c53cf6f889763b0a2c88a65d77fc13a8a9fef0d8605f9181900360600190a1612d1d633b9aca006001600160401b0384166141c3565b9c9b505050505050505050505050565b60605f612d3983613590565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b604051606090612d8690600160f81b905f903090602001614484565b604051602081830303815290604052905090565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611a489084906135b7565b5f612df684613218565b9050612e03816003614286565b612e0e9060206141c3565b612e1b602084018461416d565b905014612e3b576040516313717da960e21b815260040160405180910390fd5b6003811b600c17612e90612e52602085018561416d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508892505086359050846131e3565b611d83576040516309bde33960e01b815260040160405180910390fd5b5f5f5f866020015192505f612ec686895f01518761368a565b9050836001600160401b0316816001600160401b031614612f3a57612eeb84826144c2565b60408051873581526001600160401b038a8116602083015284168183015290519194507fcdae700d7241bc027168c53cf6f889763b0a2c88a65d77fc13a8a9fef0d8605f919081900360600190a15b6001600160401b0380821660208a0181905290881660408a01525f03612fb85760398054905f612f69836144f1565b909155505060026060890152612f7e83614506565b6040519092508535906001600160401b038916907f5ce0aa04ae51d52da6e680fbe0336d2e2432f7c3dc2d4f3193204c57b9072107905f90a35b509450945094915050565b8051603c556020810151603d805460408401516060850151608086015162ffffff9095166affffffffffffffffffffff19909316831763010000006001600160401b0393841602176fffffffffffffffffffffffffffffffff60581b1916600160581b9183169190910267ffffffffffffffff60981b191617600160981b9190941602929092179055156130545750565b60808101516034545f91613070916001600160401b03166143bc565b90505f8260600151836040015161308791906143db565b60408401516034805492935090915f906130ab9084906001600160401b03166143bc565b82546101009290920a6001600160401b03818102199093169183160217909155603a8054600160401b810483166001600160801b03199091161790555f91506130fb90633b9aca009085166141c3565b90505f613110633b9aca00600785900b61452b565b603a546040518281529192506001600160401b0316907f525408c201bc1576eb44116f6478f1c2a54775b19a043bcfdc708364f74f8e449060200160405180910390a260335460405163a1ca780b60e01b81526001600160a01b03918216600482015260248101849052604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a1ca780b906064015f604051808303815f87803b1580156131c6575f5ffd5b505af11580156131d8573d5f5f3e3d5ffd5b505050505050505050565b5f83613202576040516329e7276760e11b815260040160405180910390fd5b8361320e868585613768565b1495945050505050565b5f8082600181111561322c5761322c613d56565b146132385760066110d1565b600592915050565b5f60018251116132635760405163f8ef036760e01b815260040160405180910390fd5b61326d825161385b565b61328a5760405163f6558f5160e01b815260040160405180910390fd5b5f600283516132999190614359565b90505f816001600160401b038111156132b4576132b4613f04565b6040519080825280602002602001820160405280156132dd578160200160208202803683370190505b5090505f5b828110156133d7576002856132f783836141c3565b81518110613307576133076141ed565b60200260200101518683600261331d91906141c3565b613328906001614286565b81518110613338576133386141ed565b602002602001015160405160200161335a929190918252602082015260400190565b60408051601f198184030181529082905261337491614257565b602060405180830381855afa15801561338f573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906133b291906142b8565b8282815181106133c4576133c46141ed565b60209081029190910101526001016132e2565b505b816001146134eb576133ec600283614359565b91505f5b828110156134e55760028261340583836141c3565b81518110613415576134156141ed565b60200260200101518383600261342b91906141c3565b613436906001614286565b81518110613446576134466141ed565b6020026020010151604051602001613468929190918252602082015260400190565b60408051601f198184030181529082905261348291614257565b602060405180830381855afa15801561349d573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906134c091906142b8565b8282815181106134d2576134d26141ed565b60209081029190910101526001016133f0565b506133d9565b805f815181106134fd576134fd6141ed565b602002602001015192505050919050565b5f6110d182600581518110613525576135256141ed565b602002602001015161387a565b5f6110d182600681518110613525576135256141ed565b5f81600181518110612199576121996141ed565b604051606090612d8690600160f91b905f903090602001614484565b5f6110d182600281518110613525576135256141ed565b5f60ff8216601f8111156110d157604051632cd44ac360e21b815260040160405180910390fd5b5f61360b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166138e19092919063ffffffff16565b905080515f148061362b57508080602001905181019061362b919061410d565b611a485760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611ae3565b5f61369760266001614286565b6136a29060206141c3565b6136af604084018461416d565b9050146136cf576040516313717da960e21b815260040160405180910390fd5b5f6136db60048561455a565b64ffffffffff1690506137346136f4604085018561416d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525089925050506020860135846131e3565b613751576040516309bde33960e01b815260040160405180910390fd5b61375f8360200135856138ef565b95945050505050565b5f83515f141580156137855750602084516137839190614583565b155b6137a2576040516313717da960e21b815260040160405180910390fd5b604080516020808201909252848152905b85518111613832576137c6600285614583565b5f036137f85781515f528086015160205260208260405f60026107d05a03fa6137ed575f5ffd5b600284049350613820565b808601515f52815160205260208260405f60026107d05a03fa613819575f5ffd5b6002840493505b61382b602082614286565b90506137b3565b508215613852576040516363df817160e01b815260040160405180910390fd5b51949350505050565b5f81158015906110d157506138716001836141da565b82161592915050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60606114e584845f8561391b565b5f806138fc600484614596565b6139079060406145bf565b64ffffffffff1690506114e584821b61387a565b60608247101561397c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401611ae3565b5f5f866001600160a01b031685876040516139979190614257565b5f6040518083038185875af1925050503d805f81146139d1576040519150601f19603f3d011682016040523d82523d5f602084013e6139d6565b606091505b50915091506139e7878383876139f2565b979650505050505050565b60608315613a605782515f03613a59576001600160a01b0385163b613a595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611ae3565b50816114e5565b6114e58383815115613a755781518083602001fd5b8060405162461bcd60e51b8152600401611ae39190613cd5565b6001600160401b0381168114613aa3575f5ffd5b50565b5f60408284031215613ab6575f5ffd5b50919050565b5f5f5f60608486031215613ace575f5ffd5b8335613ad981613a8f565b925060208401356001600160401b03811115613af3575f5ffd5b613aff86828701613aa6565b92505060408401356001600160401b03811115613b1a575f5ffd5b613b2686828701613aa6565b9150509250925092565b5f5f83601f840112613b40575f5ffd5b5081356001600160401b03811115613b56575f5ffd5b6020830191508360208260051b8501011115613b70575f5ffd5b9250929050565b5f5f60208385031215613b88575f5ffd5b82356001600160401b03811115613b9d575f5ffd5b613ba985828601613b30565b90969095509350505050565b5f5f5f5f5f5f5f5f60a0898b031215613bcc575f5ffd5b8835613bd781613a8f565b975060208901356001600160401b03811115613bf1575f5ffd5b613bfd8b828c01613aa6565b97505060408901356001600160401b03811115613c18575f5ffd5b613c248b828c01613b30565b90975095505060608901356001600160401b03811115613c42575f5ffd5b613c4e8b828c01613b30565b90955093505060808901356001600160401b03811115613c6c575f5ffd5b613c788b828c01613b30565b999c989b5096995094979396929594505050565b5f60208284031215613c9c575f5ffd5b813561234581613a8f565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6123456020830184613ca7565b5f5f83601f840112613cf7575f5ffd5b5081356001600160401b03811115613d0d575f5ffd5b602083019150836020828501011115613b70575f5ffd5b5f5f60208385031215613d35575f5ffd5b82356001600160401b03811115613d4a575f5ffd5b613ba985828601613ce7565b634e487b7160e01b5f52602160045260245ffd5b60038110613d8657634e487b7160e01b5f52602160045260245ffd5b9052565b602081016110d18284613d6a565b5f60208284031215613da8575f5ffd5b5035919050565b5f6080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151613dfb6060840182613d6a565b5092915050565b8015158114613aa3575f5ffd5b5f60208284031215613e1f575f5ffd5b813561234581613e02565b5f5f5f5f5f60608688031215613e3e575f5ffd5b85356001600160401b03811115613e53575f5ffd5b613e5f88828901613ce7565b90965094505060208601356001600160401b03811115613e7d575f5ffd5b613e8988828901613ce7565b96999598509660400135949350505050565b6001600160a01b0381168114613aa3575f5ffd5b8035613eba81613e9b565b919050565b5f5f60408385031215613ed0575f5ffd5b8235613edb81613e9b565b946020939093013593505050565b5f60208284031215613ef9575f5ffd5b813561234581613e9b565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715613f4057613f40613f04565b604052919050565b5f6001600160401b03821115613f6057613f60613f04565b5060051b60200190565b5f82601f830112613f79575f5ffd5b8135613f8c613f8782613f48565b613f18565b8082825260208201915060208360051b860101925085831115613fad575f5ffd5b602085015b83811015613fca578035835260209283019201613fb2565b5095945050505050565b5f5f5f60608486031215613fe6575f5ffd5b83356001600160401b03811115613ffb575f5ffd5b8401601f8101861361400b575f5ffd5b8035614019613f8782613f48565b8082825260208201915060208360051b85010192508883111561403a575f5ffd5b6020840193505b8284101561406557833561405481613e9b565b825260209384019390910190614041565b955050505060208401356001600160401b03811115614082575f5ffd5b61408e86828701613f6a565b92505061409d60408501613eaf565b90509250925092565b5f5f5f604084860312156140b8575f5ffd5b83356001600160401b038111156140cd575f5ffd5b6140d986828701613aa6565b93505060208401356001600160401b038111156140f4575f5ffd5b61410086828701613b30565b9497909650939450505050565b5f6020828403121561411d575f5ffd5b815161234581613e02565b5f5f8335601e1984360301811261413d575f5ffd5b8301803591506001600160401b03821115614156575f5ffd5b6020019150600581901b3603821315613b70575f5ffd5b5f5f8335601e19843603018112614182575f5ffd5b8301803591506001600160401b0382111561419b575f5ffd5b602001915036819003821315613b70575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176110d1576110d16141af565b818103818111156110d1576110d16141af565b634e487b7160e01b5f52603260045260245ffd5b5f8235603e19833603018112614215575f5ffd5b9190910192915050565b8284823760c09190911b6001600160c01b0319169101908152600801919050565b5f81518060208401855e5f93019283525090919050565b5f6123458284614240565b5f60208284031215614272575f5ffd5b813564ffffffffff81168114612345575f5ffd5b808201808211156110d1576110d16141af565b838582375f8482015f8152838582375f93019283525090949350505050565b5f602082840312156142c8575f5ffd5b5051919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b608081525f61430a60808301888a6142cf565b828103602084015261431c8188613ca7565b905082810360408401526143318186886142cf565b915050826060830152979650505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261436757614367614345565b500490565b6001600160401b0382811682821603908111156110d1576110d16141af565b5f8235605e19833603018112614215575f5ffd5b5f62ffffff8216806143b3576143b36141af565b5f190192915050565b6001600160401b0381811683821601908111156110d1576110d16141af565b600781810b9083900b01677fffffffffffffff8113677fffffffffffffff19821217156110d1576110d16141af565b5f6020828403121561441a575f5ffd5b815161234581613a8f565b80516020808301519190811015613ab6575f1960209190910360031b1b16919050565b5f6144538285614240565b6001600160801b03199390931683525050601001919050565b5f6001820161447d5761447d6141af565b5060010190565b6001600160f81b03199390931683526001600160a81b031991909116600183015260601b6bffffffffffffffffffffffff1916600c82015260200190565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff821317156110d1576110d16141af565b5f816144ff576144ff6141af565b505f190190565b5f8160070b677fffffffffffffff198103614523576145236141af565b5f0392915050565b8082025f8212600160ff1b84141615614546576145466141af565b81810583148215176110d1576110d16141af565b5f64ffffffffff83168061457057614570614345565b8064ffffffffff84160491505092915050565b5f8261459157614591614345565b500690565b5f64ffffffffff8316806145ac576145ac614345565b8064ffffffffff84160691505092915050565b64ffffffffff8181168382160290811690818114613dfb57613dfb6141af56fea2646970667358221220905476a9bc91953440c84d770e9b89fddd5a8856c845405968955c8c2a0995e264736f6c634300081b0033", } // EigenPodABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/EigenPodManager/binding.go b/pkg/bindings/EigenPodManager/binding.go index bfaed612c3..4b4dc78cc2 100644 --- a/pkg/bindings/EigenPodManager/binding.go +++ b/pkg/bindings/EigenPodManager/binding.go @@ -38,7 +38,7 @@ type OperatorSet struct { // EigenPodManagerMetaData contains all meta data concerning the EigenPodManager contract. var EigenPodManagerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_ethPOS\",\"type\":\"address\",\"internalType\":\"contractIETHPOSDeposit\"},{\"name\":\"_eigenPodBeacon\",\"type\":\"address\",\"internalType\":\"contractIBeacon\"},{\"name\":\"_delegationManager\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"addShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainSlashingFactor\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burnableETHShares\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createPod\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodBeacon\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBeacon\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ethPOS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIETHPOSDeposit\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPod\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPod\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"hasPod\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseBurnOrRedistributableShares\",\"inputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"addedSharesToBurn\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_initPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"numPods\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownerToPod\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPod\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pectraForkTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"podOwnerDepositShares\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proofTimestampSetter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"recordBeaconChainETHBalanceUpdate\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"prevRestakedBalanceWei\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"balanceDeltaWei\",\"type\":\"int256\",\"internalType\":\"int256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeDepositShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"depositSharesToRemove\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPectraForkTimestamp\",\"inputs\":[{\"name\":\"timestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setProofTimestampSetter\",\"inputs\":[{\"name\":\"newProofTimestampSetter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stake\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"depositDataRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"stakerDepositShares\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"depositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdrawSharesAsTokens\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BeaconChainETHDeposited\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BeaconChainETHWithdrawalCompleted\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"nonce\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"},{\"name\":\"delegatedAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"withdrawer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"withdrawalRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BeaconChainSlashingFactorDecreased\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"prevBeaconChainSlashingFactor\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newBeaconChainSlashingFactor\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BurnableETHSharesIncreased\",\"inputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NewTotalShares\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newTotalShares\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PectraForkTimestampSet\",\"inputs\":[{\"name\":\"newPectraForkTimestamp\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PodDeployed\",\"inputs\":[{\"name\":\"eigenPod\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"podOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PodSharesUpdated\",\"inputs\":[{\"name\":\"podOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sharesDelta\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ProofTimestampSetterSet\",\"inputs\":[{\"name\":\"newProofTimestampSetter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EigenPodAlreadyExists\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidStrategy\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"LegacyWithdrawalsNotCompleted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyDelegationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyProofTimestampSetter\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SharesNegative\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SharesNotMultipleOfGwei\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]}]", - Bin: "0x610120604052348015610010575f5ffd5b50604051612f01380380612f0183398101604081905261002f916101c2565b80858585856001600160a01b03811661005b576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805292831660a05290821660c0521660e05261008281610099565b610100525061008f6100df565b505050505061031a565b5f5f829050601f815111156100cc578260405163305a27a960e01b81526004016100c391906102bf565b60405180910390fd5b80516100d7826102f4565b179392505050565b5f54610100900460ff16156101465760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100c3565b5f5460ff90811614610195575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101ab575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f60a086880312156101d6575f5ffd5b85516101e181610197565b60208701519095506101f281610197565b604087015190945061020381610197565b606087015190935061021481610197565b60808701519092506001600160401b0381111561022f575f5ffd5b8601601f8101881361023f575f5ffd5b80516001600160401b03811115610258576102586101ae565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610286576102866101ae565b6040528181528282016020018a101561029d575f5ffd5b8160208401602083015e5f602083830101528093505050509295509295909350565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610314575f198160200360031b1b821691505b50919050565b60805160a05160c05160e05161010051612b6461039d5f395f610b2401525f818161060c0152818161077b015281816109d401528181610a7a01528181610c0501528181610f82015261103701525f818161028b015281816110cd015261186701525f61044b01525f8181610492015281816114950152611a840152612b645ff3fe6080604052600436106101f1575f3560e01c8063886f119511610108578063a6a509be1161009d578063f2fde38b1161006d578063f2fde38b1461062e578063f5d4fed31461064d578063f6848d2414610662578063fabc1cbc1461069b578063fe243a17146106ba575f5ffd5b8063a6a509be1461059c578063cd6dc687146105b1578063d48e8894146105d0578063ea4d3c9b146105fb575f5ffd5b80639ba06275116100d85780639ba062751461050b578063a1ca780b1461053f578063a38406a31461055e578063a3d75e091461057d575f5ffd5b8063886f1195146104815780638da5cb5b146104b45780639104c319146104d15780639b4e4634146104f8575f5ffd5b8063595c6a67116101895780635c975abb116101595780635c975abb146103e9578063715018a614610407578063724af4231461041b57806374cdd7981461043a57806384d810621461046d575f5ffd5b8063595c6a6714610358578063595edbcb1461036c5780635a26fbf41461038b5780635ac86ab7146103aa575f5ffd5b80632eae418c116101c45780632eae418c146102c55780633fb99ca5146102e457806350ff72251461030357806354fd4d5014610337575f5ffd5b80630d1e9de1146101f5578063136439dd146102165780632704351a14610235578063292b7b2b1461027a575b5f5ffd5b348015610200575f5ffd5b5061021461020f366004611d7e565b6106d9565b005b348015610221575f5ffd5b50610214610230366004611d99565b610736565b348015610240575f5ffd5b50609f5461025c90600160a01b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b348015610285575f5ffd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610271565b3480156102d0575f5ffd5b506102146102df366004611db0565b610770565b3480156102ef575f5ffd5b506102146102fe366004611dfe565b6109c9565b34801561030e575f5ffd5b5061032261031d366004611e48565b610a6d565b60408051928352602083019190915201610271565b348015610342575f5ffd5b5061034b610b1d565b6040516102719190611e86565b348015610363575f5ffd5b50610214610b4d565b348015610377575f5ffd5b50609f546102ad906001600160a01b031681565b348015610396575f5ffd5b506102146103a5366004611ebb565b610b61565b3480156103b5575f5ffd5b506103d96103c4366004611ee2565b606654600160ff9092169190911b9081161490565b6040519015158152602001610271565b3480156103f4575f5ffd5b506066545b604051908152602001610271565b348015610412575f5ffd5b50610214610be8565b348015610426575f5ffd5b506103f9610435366004611e48565b610bf9565b348015610445575f5ffd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b348015610478575f5ffd5b506102ad610d3e565b34801561048c575f5ffd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104bf575f5ffd5b506033546001600160a01b03166102ad565b3480156104dc575f5ffd5b506102ad73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b610214610506366004611f40565b610da1565b348015610516575f5ffd5b506102ad610525366004611d7e565b60986020525f90815260409020546001600160a01b031681565b34801561054a575f5ffd5b50610214610559366004611fb3565b610e52565b348015610569575f5ffd5b506102ad610578366004611d7e565b611073565b348015610588575f5ffd5b5061025c610597366004611d7e565b611144565b3480156105a7575f5ffd5b506103f960995481565b3480156105bc575f5ffd5b506102146105cb366004611fe5565b6111a4565b3480156105db575f5ffd5b506103f96105ea366004611d7e565b609b6020525f908152604090205481565b348015610606575f5ffd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b348015610639575f5ffd5b50610214610648366004611d7e565b6112c0565b348015610658575f5ffd5b506103f9609e5481565b34801561066d575f5ffd5b506103d961067c366004611d7e565b6001600160a01b039081165f9081526098602052604090205416151590565b3480156106a6575f5ffd5b506102146106b5366004611d99565b611339565b3480156106c5575f5ffd5b506103f96106d436600461200f565b6113a6565b6106e1611426565b609f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f7025c71a9fe60d709e71b377dc5f7c72c3e1d8539f8022574254e736ceca01e5906020015b60405180910390a150565b61073e611480565b60665481811681146107635760405163c61dca5d60e01b815260040160405180910390fd5b61076c82611523565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107b95760405163f739589b60e01b815260040160405180910390fd5b6107c1611560565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146107fe57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b038416610825576040516339b190bb60e11b815260040160405180910390fd5b5f81136108455760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490829082121561093f575f6108718361205a565b90505f8185111561088f5750806108888186612074565b9250610895565b505f9150835b5f6108a08286612087565b6001600160a01b038a165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906108f09085815260200190565b60405180910390a2886001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe0770988260405161093391815260200190565b60405180910390a25050505b80156109b7576001600160a01b038681165f81815260986020526040908190205490516362483a2160e11b81526004810192909252602482018490529091169063c4907442906044015b5f604051808303815f87803b1580156109a0575f5ffd5b505af11580156109b2573d5f5f3e3d5ffd5b505050505b50506109c3600160c955565b50505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a125760405163f739589b60e01b815260040160405180910390fd5b610a1a611560565b80609e5f828254610a2b91906120ae565b90915550506040518181527f1ed04b7fd262c0d9e50fa02957f32a81a151f03baaa367faeedc7521b001c4a49060200160405180910390a16109c3600160c955565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ab85760405163f739589b60e01b815260040160405180910390fd5b610ac0611560565b6001600160a01b03841673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610afd57604051632711b74d60e11b815260040160405180910390fd5b610b0785846115b9565b91509150610b15600160c955565b935093915050565b6060610b487f0000000000000000000000000000000000000000000000000000000000000000611700565b905090565b610b55611480565b610b5f5f19611523565b565b609f546001600160a01b03163314610b8c57604051630986113760e41b815260040160405180910390fd5b609f805467ffffffffffffffff60a01b1916600160a01b67ffffffffffffffff8416908102919091179091556040519081527f1bc8f042a52db3a437620dea4548f2031fb2a16dd8d3b0b854295528dd2cdd339060200161072b565b610bf0611426565b610b5f5f61173d565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c435760405163f739589b60e01b815260040160405180910390fd5b610c4b611560565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610c8857604051632711b74d60e11b815260040160405180910390fd5b5f610c928361178e565b6001600160a01b0386165f908152609b6020526040902054610cb491906120c1565b90505f811215610cd75760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0385165f818152609b602052604090819020839055517fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe07709890610d239084815260200190565b60405180910390a29050610d37600160c955565b9392505050565b5f5f610d49816117f7565b610d51611560565b335f908152609860205260409020546001600160a01b031615610d875760405163031a852160e21b815260040160405180910390fd5b5f610d90611822565b925050610d9d600160c955565b5090565b5f610dab816117f7565b610db3611560565b335f908152609860205260409020546001600160a01b031680610ddb57610dd8611822565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e4634903490610e11908b908b908b908b908b9060040161210f565b5f604051808303818588803b158015610e28575f5ffd5b505af1158015610e3a573d5f5f3e3d5ffd5b505050505050610e4a600160c955565b505050505050565b6001600160a01b038084165f908152609860205260409020548491163314610e8d576040516312e16d7160e11b815260040160405180910390fd5b610e95611560565b6001600160a01b038416610ebc576040516339b190bb60e11b815260040160405180910390fd5b610eca633b9aca008361215c565b15610ee8576040516347d072bb60e11b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490811215610f2157604051634b692bcf60e01b815260040160405180910390fd5b5f831315610fe2575f5f610f3587866115b9565b604051631e328e7960e11b81526001600160a01b038a8116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b158015610fc5575f5ffd5b505af1158015610fd7573d5f5f3e3d5ffd5b505050505050611068565b5f831215611068575f610ffe8686610ff98761205a565b61197d565b60405163305068e760e11b81526001600160a01b0388811660048301526024820185905267ffffffffffffffff831660448301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906360a0d1ce90606401610989565b506109c3600160c955565b6001600160a01b038082165f908152609860205260408120549091168061113e5761113b836001600160a01b03165f1b60405180610940016040528061090e815260200161222161090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f19818403018152908290526111209291602001612192565b60405160208183030381529060405280519060200120611a76565b90505b92915050565b6001600160a01b0381165f908152609d6020908152604080832081518083019092525460ff8116151580835261010090910467ffffffffffffffff16928201929092529061119a57670de0b6b3a7640000610d37565b6020015192915050565b5f54610100900460ff16158080156111c257505f54600160ff909116105b806111db5750303b1580156111db57505f5460ff166001145b6112435760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015611264575f805461ff0019166101001790555b61126d8361173d565b61127682611523565b80156112bb575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6112c8611426565b6001600160a01b03811661132d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161123a565b6113368161173d565b50565b611341611a82565b606654801982198116146113685760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146113e457604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0383165f908152609b60205260408120541261141e576001600160a01b0383165f908152609b602052604090205461113b565b505f92915050565b6033546001600160a01b03163314610b5f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161123a565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114e2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150691906121ae565b610b5f57604051631d77d47760e21b815260040160405180910390fd5b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b600260c954036115b25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161123a565b600260c955565b5f806001600160a01b0384166115e2576040516339b190bb60e11b815260040160405180910390fd5b5f8312156116035760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205484916116278383612087565b6001600160a01b0388165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906116779086815260200190565b60405180910390a2866001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe077098826040516116ba91815260200190565b60405180910390a25f81136116d7575f5f945094505050506116f9565b5f8212156116ec575f945092506116f9915050565b5092508391506116f99050565b9250929050565b60605f61170c83611b33565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160ff1b03821115610d9d5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161123a565b606654600160ff83161b908116036113365760405163840a48d560e01b815260040160405180910390fd5b5f60995f8154611831906121cd565b9091555060408051610940810190915261090e8082525f916118ce91839133916122216020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f19818403018152908290526118ba9291602001612192565b604051602081830303815290604052611b5a565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de8906024015f604051808303815f87803b15801561190f575f5ffd5b505af1158015611921573d5f5f3e3d5ffd5b5050335f8181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b5f806119898385612074565b90505f61199586611144565b90505f6119ad67ffffffffffffffff83168488611c5c565b90505f6119ba82846121e5565b6040805180820182526001815267ffffffffffffffff85811660208084018281526001600160a01b038f165f818152609d845287902095518654925168ffffffffffffffffff1990931690151568ffffffffffffffff001916176101009286169290920291909117909455845193845291881691830191909152918101919091529091507fb160ab8589bf47dc04ea11b50d46678d21590cea2ed3e454e7bd3e41510f98cf9060600160405180910390a1979650505050505050565b5f61113b838330611d41565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ade573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b029190612205565b6001600160a01b0316336001600160a01b031614610b5f5760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f81111561113e57604051632cd44ac360e21b815260040160405180910390fd5b5f83471015611bab5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161123a565b81515f03611bfb5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161123a565b8282516020840186f590506001600160a01b038116610d375760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161123a565b5f80805f19858709858702925082811083820303915050805f03611c9357838281611c8957611c89612148565b0492505050610d37565b808411611cda5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161123a565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6001600160a01b0381168114611336575f5ffd5b5f60208284031215611d8e575f5ffd5b8135610d3781611d6a565b5f60208284031215611da9575f5ffd5b5035919050565b5f5f5f5f60808587031215611dc3575f5ffd5b8435611dce81611d6a565b93506020850135611dde81611d6a565b92506040850135611dee81611d6a565b9396929550929360600135925050565b5f5f5f5f84860360a0811215611e12575f5ffd5b6040811215611e1f575f5ffd5b50849350604084013592506060840135611e3881611d6a565b9396929550929360800135925050565b5f5f5f60608486031215611e5a575f5ffd5b8335611e6581611d6a565b92506020840135611e7581611d6a565b929592945050506040919091013590565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611ecb575f5ffd5b813567ffffffffffffffff81168114610d37575f5ffd5b5f60208284031215611ef2575f5ffd5b813560ff81168114610d37575f5ffd5b5f5f83601f840112611f12575f5ffd5b50813567ffffffffffffffff811115611f29575f5ffd5b6020830191508360208285010111156116f9575f5ffd5b5f5f5f5f5f60608688031215611f54575f5ffd5b853567ffffffffffffffff811115611f6a575f5ffd5b611f7688828901611f02565b909650945050602086013567ffffffffffffffff811115611f95575f5ffd5b611fa188828901611f02565b96999598509660400135949350505050565b5f5f5f60608486031215611fc5575f5ffd5b8335611fd081611d6a565b95602085013595506040909401359392505050565b5f5f60408385031215611ff6575f5ffd5b823561200181611d6a565b946020939093013593505050565b5f5f60408385031215612020575f5ffd5b823561202b81611d6a565b9150602083013561203b81611d6a565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b820161206e5761206e612046565b505f0390565b8181038181111561113e5761113e612046565b8082018281125f8312801582168215821617156120a6576120a6612046565b505092915050565b8082018082111561113e5761113e612046565b8181035f8312801583831316838312821617156120e0576120e0612046565b5092915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b606081525f6121226060830187896120e7565b82810360208401526121358186886120e7565b9150508260408301529695505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261217657634e487b7160e01b5f52601260045260245ffd5b500790565b5f81518060208401855e5f93019283525090919050565b5f6121a66121a0838661217b565b8461217b565b949350505050565b5f602082840312156121be575f5ffd5b81518015158114610d37575f5ffd5b5f600182016121de576121de612046565b5060010190565b67ffffffffffffffff828116828216039081111561113e5761113e612046565b5f60208284031215612215575f5ffd5b8151610d3781611d6a56fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122034bd04a1597ca4b6266a447fa18d84e1acfd696d1c580826436595c09fd63c1b64736f6c634300081b0033", + Bin: "0x610120604052348015610010575f5ffd5b50604051612f01380380612f0183398101604081905261002f916101c2565b80858585856001600160a01b03811661005b576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805292831660a05290821660c0521660e05261008281610099565b610100525061008f6100df565b505050505061031a565b5f5f829050601f815111156100cc578260405163305a27a960e01b81526004016100c391906102bf565b60405180910390fd5b80516100d7826102f4565b179392505050565b5f54610100900460ff16156101465760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100c3565b5f5460ff90811614610195575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101ab575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f60a086880312156101d6575f5ffd5b85516101e181610197565b60208701519095506101f281610197565b604087015190945061020381610197565b606087015190935061021481610197565b60808701519092506001600160401b0381111561022f575f5ffd5b8601601f8101881361023f575f5ffd5b80516001600160401b03811115610258576102586101ae565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610286576102866101ae565b6040528181528282016020018a101561029d575f5ffd5b8160208401602083015e5f602083830101528093505050509295509295909350565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610314575f198160200360031b1b821691505b50919050565b60805160a05160c05160e05161010051612b6461039d5f395f610b2401525f818161060c0152818161077b015281816109d401528181610a7a01528181610c0501528181610f82015261103701525f818161028b015281816110cd015261186701525f61044b01525f8181610492015281816114950152611a840152612b645ff3fe6080604052600436106101f1575f3560e01c8063886f119511610108578063a6a509be1161009d578063f2fde38b1161006d578063f2fde38b1461062e578063f5d4fed31461064d578063f6848d2414610662578063fabc1cbc1461069b578063fe243a17146106ba575f5ffd5b8063a6a509be1461059c578063cd6dc687146105b1578063d48e8894146105d0578063ea4d3c9b146105fb575f5ffd5b80639ba06275116100d85780639ba062751461050b578063a1ca780b1461053f578063a38406a31461055e578063a3d75e091461057d575f5ffd5b8063886f1195146104815780638da5cb5b146104b45780639104c319146104d15780639b4e4634146104f8575f5ffd5b8063595c6a67116101895780635c975abb116101595780635c975abb146103e9578063715018a614610407578063724af4231461041b57806374cdd7981461043a57806384d810621461046d575f5ffd5b8063595c6a6714610358578063595edbcb1461036c5780635a26fbf41461038b5780635ac86ab7146103aa575f5ffd5b80632eae418c116101c45780632eae418c146102c55780633fb99ca5146102e457806350ff72251461030357806354fd4d5014610337575f5ffd5b80630d1e9de1146101f5578063136439dd146102165780632704351a14610235578063292b7b2b1461027a575b5f5ffd5b348015610200575f5ffd5b5061021461020f366004611d7e565b6106d9565b005b348015610221575f5ffd5b50610214610230366004611d99565b610736565b348015610240575f5ffd5b50609f5461025c90600160a01b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b348015610285575f5ffd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610271565b3480156102d0575f5ffd5b506102146102df366004611db0565b610770565b3480156102ef575f5ffd5b506102146102fe366004611dfe565b6109c9565b34801561030e575f5ffd5b5061032261031d366004611e48565b610a6d565b60408051928352602083019190915201610271565b348015610342575f5ffd5b5061034b610b1d565b6040516102719190611e86565b348015610363575f5ffd5b50610214610b4d565b348015610377575f5ffd5b50609f546102ad906001600160a01b031681565b348015610396575f5ffd5b506102146103a5366004611ebb565b610b61565b3480156103b5575f5ffd5b506103d96103c4366004611ee2565b606654600160ff9092169190911b9081161490565b6040519015158152602001610271565b3480156103f4575f5ffd5b506066545b604051908152602001610271565b348015610412575f5ffd5b50610214610be8565b348015610426575f5ffd5b506103f9610435366004611e48565b610bf9565b348015610445575f5ffd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b348015610478575f5ffd5b506102ad610d3e565b34801561048c575f5ffd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104bf575f5ffd5b506033546001600160a01b03166102ad565b3480156104dc575f5ffd5b506102ad73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b610214610506366004611f40565b610da1565b348015610516575f5ffd5b506102ad610525366004611d7e565b60986020525f90815260409020546001600160a01b031681565b34801561054a575f5ffd5b50610214610559366004611fb3565b610e52565b348015610569575f5ffd5b506102ad610578366004611d7e565b611073565b348015610588575f5ffd5b5061025c610597366004611d7e565b611144565b3480156105a7575f5ffd5b506103f960995481565b3480156105bc575f5ffd5b506102146105cb366004611fe5565b6111a4565b3480156105db575f5ffd5b506103f96105ea366004611d7e565b609b6020525f908152604090205481565b348015610606575f5ffd5b506102ad7f000000000000000000000000000000000000000000000000000000000000000081565b348015610639575f5ffd5b50610214610648366004611d7e565b6112c0565b348015610658575f5ffd5b506103f9609e5481565b34801561066d575f5ffd5b506103d961067c366004611d7e565b6001600160a01b039081165f9081526098602052604090205416151590565b3480156106a6575f5ffd5b506102146106b5366004611d99565b611339565b3480156106c5575f5ffd5b506103f96106d436600461200f565b6113a6565b6106e1611426565b609f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f7025c71a9fe60d709e71b377dc5f7c72c3e1d8539f8022574254e736ceca01e5906020015b60405180910390a150565b61073e611480565b60665481811681146107635760405163c61dca5d60e01b815260040160405180910390fd5b61076c82611523565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107b95760405163f739589b60e01b815260040160405180910390fd5b6107c1611560565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146107fe57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b038416610825576040516339b190bb60e11b815260040160405180910390fd5b5f81136108455760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490829082121561093f575f6108718361205a565b90505f8185111561088f5750806108888186612074565b9250610895565b505f9150835b5f6108a08286612087565b6001600160a01b038a165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906108f09085815260200190565b60405180910390a2886001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe0770988260405161093391815260200190565b60405180910390a25050505b80156109b7576001600160a01b038681165f81815260986020526040908190205490516362483a2160e11b81526004810192909252602482018490529091169063c4907442906044015b5f604051808303815f87803b1580156109a0575f5ffd5b505af11580156109b2573d5f5f3e3d5ffd5b505050505b50506109c3600160c955565b50505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a125760405163f739589b60e01b815260040160405180910390fd5b610a1a611560565b80609e5f828254610a2b91906120ae565b90915550506040518181527f1ed04b7fd262c0d9e50fa02957f32a81a151f03baaa367faeedc7521b001c4a49060200160405180910390a16109c3600160c955565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ab85760405163f739589b60e01b815260040160405180910390fd5b610ac0611560565b6001600160a01b03841673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610afd57604051632711b74d60e11b815260040160405180910390fd5b610b0785846115b9565b91509150610b15600160c955565b935093915050565b6060610b487f0000000000000000000000000000000000000000000000000000000000000000611700565b905090565b610b55611480565b610b5f5f19611523565b565b609f546001600160a01b03163314610b8c57604051630986113760e41b815260040160405180910390fd5b609f805467ffffffffffffffff60a01b1916600160a01b67ffffffffffffffff8416908102919091179091556040519081527f1bc8f042a52db3a437620dea4548f2031fb2a16dd8d3b0b854295528dd2cdd339060200161072b565b610bf0611426565b610b5f5f61173d565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c435760405163f739589b60e01b815260040160405180910390fd5b610c4b611560565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610c8857604051632711b74d60e11b815260040160405180910390fd5b5f610c928361178e565b6001600160a01b0386165f908152609b6020526040902054610cb491906120c1565b90505f811215610cd75760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0385165f818152609b602052604090819020839055517fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe07709890610d239084815260200190565b60405180910390a29050610d37600160c955565b9392505050565b5f5f610d49816117f7565b610d51611560565b335f908152609860205260409020546001600160a01b031615610d875760405163031a852160e21b815260040160405180910390fd5b5f610d90611822565b925050610d9d600160c955565b5090565b5f610dab816117f7565b610db3611560565b335f908152609860205260409020546001600160a01b031680610ddb57610dd8611822565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e4634903490610e11908b908b908b908b908b9060040161210f565b5f604051808303818588803b158015610e28575f5ffd5b505af1158015610e3a573d5f5f3e3d5ffd5b505050505050610e4a600160c955565b505050505050565b6001600160a01b038084165f908152609860205260409020548491163314610e8d576040516312e16d7160e11b815260040160405180910390fd5b610e95611560565b6001600160a01b038416610ebc576040516339b190bb60e11b815260040160405180910390fd5b610eca633b9aca008361215c565b15610ee8576040516347d072bb60e11b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490811215610f2157604051634b692bcf60e01b815260040160405180910390fd5b5f831315610fe2575f5f610f3587866115b9565b604051631e328e7960e11b81526001600160a01b038a8116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b158015610fc5575f5ffd5b505af1158015610fd7573d5f5f3e3d5ffd5b505050505050611068565b5f831215611068575f610ffe8686610ff98761205a565b61197d565b60405163305068e760e11b81526001600160a01b0388811660048301526024820185905267ffffffffffffffff831660448301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906360a0d1ce90606401610989565b506109c3600160c955565b6001600160a01b038082165f908152609860205260408120549091168061113e5761113b836001600160a01b03165f1b60405180610940016040528061090e815260200161222161090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f19818403018152908290526111209291602001612192565b60405160208183030381529060405280519060200120611a76565b90505b92915050565b6001600160a01b0381165f908152609d6020908152604080832081518083019092525460ff8116151580835261010090910467ffffffffffffffff16928201929092529061119a57670de0b6b3a7640000610d37565b6020015192915050565b5f54610100900460ff16158080156111c257505f54600160ff909116105b806111db5750303b1580156111db57505f5460ff166001145b6112435760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015611264575f805461ff0019166101001790555b61126d8361173d565b61127682611523565b80156112bb575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6112c8611426565b6001600160a01b03811661132d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161123a565b6113368161173d565b50565b611341611a82565b606654801982198116146113685760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0146113e457604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0383165f908152609b60205260408120541261141e576001600160a01b0383165f908152609b602052604090205461113b565b505f92915050565b6033546001600160a01b03163314610b5f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161123a565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114e2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150691906121ae565b610b5f57604051631d77d47760e21b815260040160405180910390fd5b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b600260c954036115b25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161123a565b600260c955565b5f806001600160a01b0384166115e2576040516339b190bb60e11b815260040160405180910390fd5b5f8312156116035760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205484916116278383612087565b6001600160a01b0388165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906116779086815260200190565b60405180910390a2866001600160a01b03167fd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe077098826040516116ba91815260200190565b60405180910390a25f81136116d7575f5f945094505050506116f9565b5f8212156116ec575f945092506116f9915050565b5092508391506116f99050565b9250929050565b60605f61170c83611b33565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160ff1b03821115610d9d5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161123a565b606654600160ff83161b908116036113365760405163840a48d560e01b815260040160405180910390fd5b5f60995f8154611831906121cd565b9091555060408051610940810190915261090e8082525f916118ce91839133916122216020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f19818403018152908290526118ba9291602001612192565b604051602081830303815290604052611b5a565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de8906024015f604051808303815f87803b15801561190f575f5ffd5b505af1158015611921573d5f5f3e3d5ffd5b5050335f8181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b5f806119898385612074565b90505f61199586611144565b90505f6119ad67ffffffffffffffff83168488611c5c565b90505f6119ba82846121e5565b6040805180820182526001815267ffffffffffffffff85811660208084018281526001600160a01b038f165f818152609d845287902095518654925168ffffffffffffffffff1990931690151568ffffffffffffffff001916176101009286169290920291909117909455845193845291881691830191909152918101919091529091507fb160ab8589bf47dc04ea11b50d46678d21590cea2ed3e454e7bd3e41510f98cf9060600160405180910390a1979650505050505050565b5f61113b838330611d41565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ade573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b029190612205565b6001600160a01b0316336001600160a01b031614610b5f5760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f81111561113e57604051632cd44ac360e21b815260040160405180910390fd5b5f83471015611bab5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161123a565b81515f03611bfb5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161123a565b8282516020840186f590506001600160a01b038116610d375760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161123a565b5f80805f19858709858702925082811083820303915050805f03611c9357838281611c8957611c89612148565b0492505050610d37565b808411611cda5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161123a565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6001600160a01b0381168114611336575f5ffd5b5f60208284031215611d8e575f5ffd5b8135610d3781611d6a565b5f60208284031215611da9575f5ffd5b5035919050565b5f5f5f5f60808587031215611dc3575f5ffd5b8435611dce81611d6a565b93506020850135611dde81611d6a565b92506040850135611dee81611d6a565b9396929550929360600135925050565b5f5f5f5f84860360a0811215611e12575f5ffd5b6040811215611e1f575f5ffd5b50849350604084013592506060840135611e3881611d6a565b9396929550929360800135925050565b5f5f5f60608486031215611e5a575f5ffd5b8335611e6581611d6a565b92506020840135611e7581611d6a565b929592945050506040919091013590565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611ecb575f5ffd5b813567ffffffffffffffff81168114610d37575f5ffd5b5f60208284031215611ef2575f5ffd5b813560ff81168114610d37575f5ffd5b5f5f83601f840112611f12575f5ffd5b50813567ffffffffffffffff811115611f29575f5ffd5b6020830191508360208285010111156116f9575f5ffd5b5f5f5f5f5f60608688031215611f54575f5ffd5b853567ffffffffffffffff811115611f6a575f5ffd5b611f7688828901611f02565b909650945050602086013567ffffffffffffffff811115611f95575f5ffd5b611fa188828901611f02565b96999598509660400135949350505050565b5f5f5f60608486031215611fc5575f5ffd5b8335611fd081611d6a565b95602085013595506040909401359392505050565b5f5f60408385031215611ff6575f5ffd5b823561200181611d6a565b946020939093013593505050565b5f5f60408385031215612020575f5ffd5b823561202b81611d6a565b9150602083013561203b81611d6a565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b820161206e5761206e612046565b505f0390565b8181038181111561113e5761113e612046565b8082018281125f8312801582168215821617156120a6576120a6612046565b505092915050565b8082018082111561113e5761113e612046565b8181035f8312801583831316838312821617156120e0576120e0612046565b5092915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b606081525f6121226060830187896120e7565b82810360208401526121358186886120e7565b9150508260408301529695505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261217657634e487b7160e01b5f52601260045260245ffd5b500790565b5f81518060208401855e5f93019283525090919050565b5f6121a66121a0838661217b565b8461217b565b949350505050565b5f602082840312156121be575f5ffd5b81518015158114610d37575f5ffd5b5f600182016121de576121de612046565b5060010190565b67ffffffffffffffff828116828216039081111561113e5761113e612046565b5f60208284031215612215575f5ffd5b8151610d3781611d6a56fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200fdd61faaceeb328ec0077dd560195e8ab3b7f96c33b1a12a23d282e72308e9264736f6c634300081b0033", } // EigenPodManagerABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/EigenPodStorage/binding.go b/pkg/bindings/EigenPodStorage/binding.go index a881e083cb..3378f548d5 100644 --- a/pkg/bindings/EigenPodStorage/binding.go +++ b/pkg/bindings/EigenPodStorage/binding.go @@ -85,7 +85,7 @@ type IEigenPodTypesWithdrawalRequest struct { // EigenPodStorageMetaData contains all meta data concerning the EigenPodStorage contract. var EigenPodStorageMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"activeValidatorCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkpointBalanceExitedGwei\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpoint\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.Checkpoint\",\"components\":[{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofsRemaining\",\"type\":\"uint24\",\"internalType\":\"uint24\"},{\"name\":\"podBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"balanceDeltasGwei\",\"type\":\"int64\",\"internalType\":\"int64\"},{\"name\":\"prevBeaconBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getConsolidationRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getParentBlockRoot\",\"inputs\":[{\"name\":\"timestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawalRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"podOwner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proofSubmitter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"recoverTokens\",\"inputs\":[{\"name\":\"tokenList\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"amountsToWithdraw\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestConsolidation\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.ConsolidationRequest[]\",\"components\":[{\"name\":\"srcPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"targetPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"requestWithdrawal\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.WithdrawalRequest[]\",\"components\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amountGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setProofSubmitter\",\"inputs\":[{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stake\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"depositDataRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"startCheckpoint\",\"inputs\":[{\"name\":\"revertIfNoBalance\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"validatorPubkeyHashToInfo\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorPubkeyToInfo\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyCheckpointProofs\",\"inputs\":[{\"name\":\"balanceContainerProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.BalanceContainerProof\",\"components\":[{\"name\":\"balanceContainerRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proofs\",\"type\":\"tuple[]\",\"internalType\":\"structBeaconChainProofs.BalanceProof[]\",\"components\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"balanceRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyStaleBalance\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.ValidatorProof\",\"components\":[{\"name\":\"validatorFields\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyWithdrawalCredentials\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"validatorIndices\",\"type\":\"uint40[]\",\"internalType\":\"uint40[]\"},{\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"validatorFields\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdrawRestakedBeaconChainETH\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawableRestakedExecutionLayerGwei\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"CheckpointCreated\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validatorCount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CheckpointFinalized\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"totalShareDeltaWei\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConsolidationRequested\",\"inputs\":[{\"name\":\"sourcePubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"targetPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EigenPodStaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExitRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NonBeaconChainETHReceived\",\"inputs\":[{\"name\":\"amountReceived\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ProofSubmitterUpdated\",\"inputs\":[{\"name\":\"prevProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RestakedBeaconChainETHWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SwitchToCompoundingRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorBalanceUpdated\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"balanceTimestamp\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newValidatorBalanceGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorCheckpointed\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRestaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWithdrawn\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"withdrawalAmountGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BeaconTimestampTooFarInPast\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotCheckpointTwiceInSingleBlock\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CheckpointAlreadyActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CredentialsAlreadyVerified\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeQueryFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ForkTimestampZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientFunds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientWithdrawableBalance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEIP4788Response\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MsgValueNot32ETH\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoActiveCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoBalanceToCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwnerOrProofSubmitter\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PredeployFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampOutOfRange\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorInactiveOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorIsExitingBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotActiveInPod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotSlashedOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalCredentialsNotForEigenPod\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"activeValidatorCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkpointBalanceExitedGwei\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpoint\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.Checkpoint\",\"components\":[{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofsRemaining\",\"type\":\"uint24\",\"internalType\":\"uint24\"},{\"name\":\"podBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"balanceDeltasGwei\",\"type\":\"int64\",\"internalType\":\"int64\"},{\"name\":\"prevBeaconBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getConsolidationRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getParentBlockRoot\",\"inputs\":[{\"name\":\"timestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawalRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"podOwner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proofSubmitter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"recoverTokens\",\"inputs\":[{\"name\":\"tokenList\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"amountsToWithdraw\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestConsolidation\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.ConsolidationRequest[]\",\"components\":[{\"name\":\"srcPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"targetPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"requestWithdrawal\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.WithdrawalRequest[]\",\"components\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amountGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setProofSubmitter\",\"inputs\":[{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stake\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"depositDataRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"startCheckpoint\",\"inputs\":[{\"name\":\"revertIfNoBalance\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"validatorPubkeyHashToInfo\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorPubkeyToInfo\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyCheckpointProofs\",\"inputs\":[{\"name\":\"balanceContainerProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.BalanceContainerProof\",\"components\":[{\"name\":\"balanceContainerRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proofs\",\"type\":\"tuple[]\",\"internalType\":\"structBeaconChainProofs.BalanceProof[]\",\"components\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"balanceRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyStaleBalance\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.ValidatorProof\",\"components\":[{\"name\":\"validatorFields\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyWithdrawalCredentials\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"validatorIndices\",\"type\":\"uint40[]\",\"internalType\":\"uint40[]\"},{\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"validatorFields\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdrawRestakedBeaconChainETH\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawableRestakedExecutionLayerGwei\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"CheckpointCreated\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validatorCount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CheckpointFinalized\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"totalShareDeltaWei\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConsolidationRequested\",\"inputs\":[{\"name\":\"sourcePubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"targetPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EigenPodStaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExitRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NonBeaconChainETHReceived\",\"inputs\":[{\"name\":\"amountReceived\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ProofSubmitterUpdated\",\"inputs\":[{\"name\":\"prevProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RestakedBeaconChainETHWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SwitchToCompoundingRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorBalanceUpdated\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"balanceTimestamp\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newValidatorBalanceGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorCheckpointed\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRestaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWithdrawn\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"withdrawalAmountGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BeaconTimestampBeforeLatestCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BeaconTimestampTooFarInPast\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotCheckpointTwiceInSingleBlock\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CheckpointAlreadyActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CredentialsAlreadyVerified\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeQueryFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ForkTimestampZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientFunds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientWithdrawableBalance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEIP4788Response\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MsgValueNot32ETH\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoActiveCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoBalanceToCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwnerOrProofSubmitter\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PredeployFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampOutOfRange\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorInactiveOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorIsExitingBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotActiveInPod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotSlashedOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalCredentialsNotForEigenPod\",\"inputs\":[]}]", } // EigenPodStorageABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/EigenStrategy/binding.go b/pkg/bindings/EigenStrategy/binding.go index 8ff7ffabbc..652fc4ae30 100644 --- a/pkg/bindings/EigenStrategy/binding.go +++ b/pkg/bindings/EigenStrategy/binding.go @@ -32,7 +32,7 @@ var ( // EigenStrategyMetaData contains all meta data concerning the EigenStrategy contract. var EigenStrategyMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"EIGEN\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigen\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"newShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"explanation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_EIGEN\",\"type\":\"address\",\"internalType\":\"contractIEigen\"},{\"name\":\"_bEIGEN\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_underlyingToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"shares\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlying\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlyingView\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalShares\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToShares\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToSharesView\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlying\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlyingView\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"amountOut\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ExchangeRateEmitted\",\"inputs\":[{\"name\":\"rate\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyTokenSet\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"decimals\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BalanceExceedsMaxTotalDeposits\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxPerDepositExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewSharesZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnderlyingToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TotalSharesExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalAmountExceedsTotalDeposits\",\"inputs\":[]}]", - Bin: "0x60e060405234801561000f575f5ffd5b5060405161181238038061181283398101604081905261002e916101bc565b82828280826001600160a01b03811661005a576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b031660805261006f81610093565b60a052506001600160a01b03831660c0526100886100d9565b5050505050506102ed565b5f5f829050601f815111156100c6578260405163305a27a960e01b81526004016100bd9190610292565b60405180910390fd5b80516100d1826102c7565b179392505050565b5f54610100900460ff16156101405760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bd565b5f5460ff9081161461018f575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101a5575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101ce575f5ffd5b83516101d981610191565b60208501519093506101ea81610191565b60408501519092506001600160401b03811115610205575f5ffd5b8401601f81018613610215575f5ffd5b80516001600160401b0381111561022e5761022e6101a8565b604051601f8201601f19908116603f011681016001600160401b038111828210171561025c5761025c6101a8565b604052818152828201602001881015610273575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102e7575f198160200360031b1b821691505b50919050565b60805160a05160c0516114d861033a5f395f8181610196015281816103990152818161076101526107e301525f6105a401525f8181610274015281816109910152610eca01526114d85ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c80637a8b2637116100bf578063ce7c2ac211610079578063ce7c2ac2146102d7578063d9caed12146102ea578063e3dae51c146102fd578063f3e7387514610310578063fabc1cbc14610323578063fdc371ce14610336575f5ffd5b80637a8b26371461025c578063886f11951461026f5780638c871019146102965780638f6a6240146102a9578063ab5921e1146102bc578063c4d66de8146102c4575f5ffd5b8063485cc95511610110578063485cc955146101e257806354fd4d50146101f5578063553ca5f81461020a578063595c6a671461021d5780635ac86ab7146102255780635c975abb14610254575f5ffd5b8063136439dd1461014c5780632495a5991461016157806339b70e38146101915780633a98ef39146101b857806347e7ef24146101cf575b5f5ffd5b61015f61015a3660046111cb565b610349565b005b603254610174906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101747f000000000000000000000000000000000000000000000000000000000000000081565b6101c160335481565b604051908152602001610188565b6101c16101dd3660046111f6565b610383565b61015f6101f0366004611220565b6104b2565b6101fd61059d565b6040516101889190611257565b6101c161021836600461128c565b6105cd565b61015f6105e0565b6102446102333660046112bc565b6001805460ff9092161b9081161490565b6040519015158152602001610188565b6001546101c1565b6101c161026a3660046111cb565b6105f4565b6101747f000000000000000000000000000000000000000000000000000000000000000081565b6101c16102a43660046111cb565b61063d565b6101c16102b736600461128c565b610647565b6101fd610654565b61015f6102d236600461128c565b610674565b6101c16102e536600461128c565b61073a565b6101c16102f83660046112d7565b6107cc565b6101c161030b3660046111cb565b6108ce565b6101c161031e3660046111cb565b610905565b61015f6103313660046111cb565b61090f565b606454610174906001600160a01b031681565b61035161097c565b60015481811681146103765760405163c61dca5d60e01b815260040160405180910390fd5b61037f82610a1f565b5050565b5f5f61038e81610a5c565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103d7576040516348da714f60e01b815260040160405180910390fd5b6103e18484610a92565b6033545f6103f16103e883611329565b90505f6103e86103ff610b4b565b6104099190611329565b90505f610416878361133c565b905080610423848961134f565b61042d9190611366565b9550855f0361044f57604051630c392ed360e11b815260040160405180910390fd5b6104598685611329565b60338190556f4b3b4ca85a86c47a098a223fffffffff101561048e57604051632f14e8a360e11b815260040160405180910390fd5b6104a7826103e86033546104a29190611329565b610bb5565b505050505092915050565b5f54610100900460ff16158080156104d057505f54600160ff909116105b806104e95750303b1580156104e957505f5460ff166001145b61050e5760405162461bcd60e51b815260040161050590611385565b60405180910390fd5b5f805460ff19166001179055801561052f575f805461ff0019166101001790555b606480546001600160a01b0319166001600160a01b03851617905561055382610c01565b8015610598575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60606105c87f0000000000000000000000000000000000000000000000000000000000000000610d4c565b905090565b5f6105da61026a8361073a565b92915050565b6105e861097c565b6105f25f19610a1f565b565b5f5f6103e86033546106069190611329565b90505f6103e8610614610b4b565b61061e9190611329565b90508161062b858361134f565b6106359190611366565b949350505050565b5f6105da826108ce565b5f6105da61031e8361073a565b60606040518060800160405280604d8152602001611456604d9139905090565b5f54610100900460ff161580801561069257505f54600160ff909116105b806106ab5750303b1580156106ab57505f5460ff166001145b6106c75760405162461bcd60e51b815260040161050590611385565b5f805460ff1916600117905580156106e8575f805461ff0019166101001790555b6106f182610c01565b801561037f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa1580156107a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105da91906113d3565b5f60016107d881610a5c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610821576040516348da714f60e01b815260040160405180910390fd5b61082c858585610d89565b6033548084111561085057604051630b469df360e41b815260040160405180910390fd5b5f61085d6103e883611329565b90505f6103e861086b610b4b565b6108759190611329565b905081610882878361134f565b61088c9190611366565b9450610898868461133c565b6033556108b86108a8868361133c565b6103e86033546104a29190611329565b6108c3888887610dcf565b505050509392505050565b5f5f6103e86033546108e09190611329565b90505f6103e86108ee610b4b565b6108f89190611329565b90508061062b838661134f565b5f6105da826105f4565b610917610ec8565b6001548019821981161461093e5760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156109de573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0291906113ea565b6105f257604051631d77d47760e21b815260040160405180910390fd5b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b610a71816001805460ff9092161b9081161490565b15610a8f5760405163840a48d560e01b815260040160405180910390fd5b50565b6032546001600160a01b0383811691161480610abb57506064546001600160a01b038381169116145b610ad857604051630312abdd60e61b815260040160405180910390fd5b6064546001600160a01b039081169083160361037f57606454604051636f074d1f60e11b8152600481018390526001600160a01b039091169063de0e9a3e906024015f604051808303815f87803b158015610b31575f5ffd5b505af1158015610b43573d5f5f3e3d5ffd5b505050505050565b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610b91573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c891906113d3565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610be984670de0b6b3a764000061134f565b610bf39190611366565b60405190815260200161072e565b5f54610100900460ff16610c6b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610505565b603280546001600160a01b0319166001600160a01b038316179055610c8f5f610a1f565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d01573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d259190611409565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b60605f610d5883610f79565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6032546001600160a01b0383811691161480610db257506064546001600160a01b038381169116145b61059857604051630312abdd60e61b815260040160405180910390fd5b6064546001600160a01b0390811690831603610eb45760325460405163095ea7b360e01b81526001600160a01b038481166004830152602482018490529091169063095ea7b3906044016020604051808303815f875af1158015610e35573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5991906113ea565b50606454604051630ea598cb60e41b8152600481018390526001600160a01b039091169063ea598cb0906024015f604051808303815f87803b158015610e9d575f5ffd5b505af1158015610eaf573d5f5f3e3d5ffd5b505050505b6105986001600160a01b0383168483610fa0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f24573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f489190611424565b6001600160a01b0316336001600160a01b0316146105f25760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f8111156105da57604051632cd44ac360e21b815260040160405180910390fd5b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610598928692915f9161102f9185169084906110ae565b905080515f148061104f57508080602001905181019061104f91906113ea565b6105985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610505565b606061063584845f85855f5f866001600160a01b031685876040516110d3919061143f565b5f6040518083038185875af1925050503d805f811461110d576040519150601f19603f3d011682016040523d82523d5f602084013e611112565b606091505b50915091506111238783838761112e565b979650505050505050565b6060831561119c5782515f03611195576001600160a01b0385163b6111955760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610505565b5081610635565b61063583838151156111b15781518083602001fd5b8060405162461bcd60e51b81526004016105059190611257565b5f602082840312156111db575f5ffd5b5035919050565b6001600160a01b0381168114610a8f575f5ffd5b5f5f60408385031215611207575f5ffd5b8235611212816111e2565b946020939093013593505050565b5f5f60408385031215611231575f5ffd5b823561123c816111e2565b9150602083013561124c816111e2565b809150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561129c575f5ffd5b81356112a7816111e2565b9392505050565b60ff81168114610a8f575f5ffd5b5f602082840312156112cc575f5ffd5b81356112a7816112ae565b5f5f5f606084860312156112e9575f5ffd5b83356112f4816111e2565b92506020840135611304816111e2565b929592945050506040919091013590565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105da576105da611315565b818103818111156105da576105da611315565b80820281158282048414176105da576105da611315565b5f8261138057634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b5f602082840312156113e3575f5ffd5b5051919050565b5f602082840312156113fa575f5ffd5b815180151581146112a7575f5ffd5b5f60208284031215611419575f5ffd5b81516112a7816112ae565b5f60208284031215611434575f5ffd5b81516112a7816111e2565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220a8b204485e6b6badc79eb89b625dc24b994cc150c07650aa24fcbd653df9eab364736f6c634300081b0033", + Bin: "0x60e060405234801561000f575f5ffd5b5060405161181238038061181283398101604081905261002e916101bc565b82828280826001600160a01b03811661005a576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b031660805261006f81610093565b60a052506001600160a01b03831660c0526100886100d9565b5050505050506102ed565b5f5f829050601f815111156100c6578260405163305a27a960e01b81526004016100bd9190610292565b60405180910390fd5b80516100d1826102c7565b179392505050565b5f54610100900460ff16156101405760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bd565b5f5460ff9081161461018f575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101a5575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101ce575f5ffd5b83516101d981610191565b60208501519093506101ea81610191565b60408501519092506001600160401b03811115610205575f5ffd5b8401601f81018613610215575f5ffd5b80516001600160401b0381111561022e5761022e6101a8565b604051601f8201601f19908116603f011681016001600160401b038111828210171561025c5761025c6101a8565b604052818152828201602001881015610273575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102e7575f198160200360031b1b821691505b50919050565b60805160a05160c0516114d861033a5f395f8181610196015281816103990152818161076101526107e301525f6105a401525f8181610274015281816109910152610eca01526114d85ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c80637a8b2637116100bf578063ce7c2ac211610079578063ce7c2ac2146102d7578063d9caed12146102ea578063e3dae51c146102fd578063f3e7387514610310578063fabc1cbc14610323578063fdc371ce14610336575f5ffd5b80637a8b26371461025c578063886f11951461026f5780638c871019146102965780638f6a6240146102a9578063ab5921e1146102bc578063c4d66de8146102c4575f5ffd5b8063485cc95511610110578063485cc955146101e257806354fd4d50146101f5578063553ca5f81461020a578063595c6a671461021d5780635ac86ab7146102255780635c975abb14610254575f5ffd5b8063136439dd1461014c5780632495a5991461016157806339b70e38146101915780633a98ef39146101b857806347e7ef24146101cf575b5f5ffd5b61015f61015a3660046111cb565b610349565b005b603254610174906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101747f000000000000000000000000000000000000000000000000000000000000000081565b6101c160335481565b604051908152602001610188565b6101c16101dd3660046111f6565b610383565b61015f6101f0366004611220565b6104b2565b6101fd61059d565b6040516101889190611257565b6101c161021836600461128c565b6105cd565b61015f6105e0565b6102446102333660046112bc565b6001805460ff9092161b9081161490565b6040519015158152602001610188565b6001546101c1565b6101c161026a3660046111cb565b6105f4565b6101747f000000000000000000000000000000000000000000000000000000000000000081565b6101c16102a43660046111cb565b61063d565b6101c16102b736600461128c565b610647565b6101fd610654565b61015f6102d236600461128c565b610674565b6101c16102e536600461128c565b61073a565b6101c16102f83660046112d7565b6107cc565b6101c161030b3660046111cb565b6108ce565b6101c161031e3660046111cb565b610905565b61015f6103313660046111cb565b61090f565b606454610174906001600160a01b031681565b61035161097c565b60015481811681146103765760405163c61dca5d60e01b815260040160405180910390fd5b61037f82610a1f565b5050565b5f5f61038e81610a5c565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103d7576040516348da714f60e01b815260040160405180910390fd5b6103e18484610a92565b6033545f6103f16103e883611329565b90505f6103e86103ff610b4b565b6104099190611329565b90505f610416878361133c565b905080610423848961134f565b61042d9190611366565b9550855f0361044f57604051630c392ed360e11b815260040160405180910390fd5b6104598685611329565b60338190556f4b3b4ca85a86c47a098a223fffffffff101561048e57604051632f14e8a360e11b815260040160405180910390fd5b6104a7826103e86033546104a29190611329565b610bb5565b505050505092915050565b5f54610100900460ff16158080156104d057505f54600160ff909116105b806104e95750303b1580156104e957505f5460ff166001145b61050e5760405162461bcd60e51b815260040161050590611385565b60405180910390fd5b5f805460ff19166001179055801561052f575f805461ff0019166101001790555b606480546001600160a01b0319166001600160a01b03851617905561055382610c01565b8015610598575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60606105c87f0000000000000000000000000000000000000000000000000000000000000000610d4c565b905090565b5f6105da61026a8361073a565b92915050565b6105e861097c565b6105f25f19610a1f565b565b5f5f6103e86033546106069190611329565b90505f6103e8610614610b4b565b61061e9190611329565b90508161062b858361134f565b6106359190611366565b949350505050565b5f6105da826108ce565b5f6105da61031e8361073a565b60606040518060800160405280604d8152602001611456604d9139905090565b5f54610100900460ff161580801561069257505f54600160ff909116105b806106ab5750303b1580156106ab57505f5460ff166001145b6106c75760405162461bcd60e51b815260040161050590611385565b5f805460ff1916600117905580156106e8575f805461ff0019166101001790555b6106f182610c01565b801561037f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa1580156107a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105da91906113d3565b5f60016107d881610a5c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610821576040516348da714f60e01b815260040160405180910390fd5b61082c858585610d89565b6033548084111561085057604051630b469df360e41b815260040160405180910390fd5b5f61085d6103e883611329565b90505f6103e861086b610b4b565b6108759190611329565b905081610882878361134f565b61088c9190611366565b9450610898868461133c565b6033556108b86108a8868361133c565b6103e86033546104a29190611329565b6108c3888887610dcf565b505050509392505050565b5f5f6103e86033546108e09190611329565b90505f6103e86108ee610b4b565b6108f89190611329565b90508061062b838661134f565b5f6105da826105f4565b610917610ec8565b6001548019821981161461093e5760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156109de573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0291906113ea565b6105f257604051631d77d47760e21b815260040160405180910390fd5b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b610a71816001805460ff9092161b9081161490565b15610a8f5760405163840a48d560e01b815260040160405180910390fd5b50565b6032546001600160a01b0383811691161480610abb57506064546001600160a01b038381169116145b610ad857604051630312abdd60e61b815260040160405180910390fd5b6064546001600160a01b039081169083160361037f57606454604051636f074d1f60e11b8152600481018390526001600160a01b039091169063de0e9a3e906024015f604051808303815f87803b158015610b31575f5ffd5b505af1158015610b43573d5f5f3e3d5ffd5b505050505050565b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610b91573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c891906113d3565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610be984670de0b6b3a764000061134f565b610bf39190611366565b60405190815260200161072e565b5f54610100900460ff16610c6b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610505565b603280546001600160a01b0319166001600160a01b038316179055610c8f5f610a1f565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d01573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d259190611409565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b60605f610d5883610f79565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6032546001600160a01b0383811691161480610db257506064546001600160a01b038381169116145b61059857604051630312abdd60e61b815260040160405180910390fd5b6064546001600160a01b0390811690831603610eb45760325460405163095ea7b360e01b81526001600160a01b038481166004830152602482018490529091169063095ea7b3906044016020604051808303815f875af1158015610e35573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5991906113ea565b50606454604051630ea598cb60e41b8152600481018390526001600160a01b039091169063ea598cb0906024015f604051808303815f87803b158015610e9d575f5ffd5b505af1158015610eaf573d5f5f3e3d5ffd5b505050505b6105986001600160a01b0383168483610fa0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f24573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f489190611424565b6001600160a01b0316336001600160a01b0316146105f25760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f8111156105da57604051632cd44ac360e21b815260040160405180910390fd5b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610598928692915f9161102f9185169084906110ae565b905080515f148061104f57508080602001905181019061104f91906113ea565b6105985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610505565b606061063584845f85855f5f866001600160a01b031685876040516110d3919061143f565b5f6040518083038185875af1925050503d805f811461110d576040519150601f19603f3d011682016040523d82523d5f602084013e611112565b606091505b50915091506111238783838761112e565b979650505050505050565b6060831561119c5782515f03611195576001600160a01b0385163b6111955760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610505565b5081610635565b61063583838151156111b15781518083602001fd5b8060405162461bcd60e51b81526004016105059190611257565b5f602082840312156111db575f5ffd5b5035919050565b6001600160a01b0381168114610a8f575f5ffd5b5f5f60408385031215611207575f5ffd5b8235611212816111e2565b946020939093013593505050565b5f5f60408385031215611231575f5ffd5b823561123c816111e2565b9150602083013561124c816111e2565b809150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561129c575f5ffd5b81356112a7816111e2565b9392505050565b60ff81168114610a8f575f5ffd5b5f602082840312156112cc575f5ffd5b81356112a7816112ae565b5f5f5f606084860312156112e9575f5ffd5b83356112f4816111e2565b92506020840135611304816111e2565b929592945050506040919091013590565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105da576105da611315565b818103818111156105da576105da611315565b80820281158282048414176105da576105da611315565b5f8261138057634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b5f602082840312156113e3575f5ffd5b5051919050565b5f602082840312156113fa575f5ffd5b815180151581146112a7575f5ffd5b5f60208284031215611419575f5ffd5b81516112a7816112ae565b5f60208284031215611434575f5ffd5b81516112a7816111e2565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220c126ee3ed65facb14cfa4c4b374d2894a7baff78f9620a242b72eb3bfcaf3f8564736f6c634300081b0033", } // EigenStrategyABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/Endian/binding.go b/pkg/bindings/Endian/binding.go index b2a1f90fff..85f3d78b70 100644 --- a/pkg/bindings/Endian/binding.go +++ b/pkg/bindings/Endian/binding.go @@ -32,7 +32,7 @@ var ( // EndianMetaData contains all meta data concerning the Endian contract. var EndianMetaData = &bind.MetaData{ ABI: "[]", - Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220d31d5c2b691cbd0a659ac6a2d7575448cb9db5c1e8b20efb6f6fe9e398049e6b64736f6c634300081b0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212204ec75bb4eedbcfc4e0d885385a5d7631856fe4e8cc7c998d6111857c16d9e75164736f6c634300081b0033", } // EndianABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/IBN254CertificateVerifier/binding.go b/pkg/bindings/IBN254CertificateVerifier/binding.go index 9c56511972..5519762984 100644 --- a/pkg/bindings/IBN254CertificateVerifier/binding.go +++ b/pkg/bindings/IBN254CertificateVerifier/binding.go @@ -85,7 +85,7 @@ type OperatorSet struct { // IBN254CertificateVerifierMetaData contains all meta data concerning the IBN254CertificateVerifier contract. var IBN254CertificateVerifierMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"calculateCertificateDigest\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getNonsignerOperatorInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetOwner\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeWeights\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isNonsignerCached\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isReferenceTimestampSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestReferenceTimestamp\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxOperatorTableStaleness\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"trySignatureVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"aggPubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"signatureValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateOperatorTable\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"operatorSetConfig\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificate\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"totalSignedStakeWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateNominal\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeNominalThresholds\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateProportion\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeProportionThresholds\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"MaxStalenessPeriodUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetOwnerUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"owner\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TableUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyTableUpdater\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReferenceTimestampDoesNotExist\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootDisabled\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TableUpdateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"VerificationFailed\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"calculateCertificateDigest\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getNonsignerOperatorInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetInfo\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetOwner\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalStakeWeights\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isNonsignerCached\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isReferenceTimestampSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestReferenceTimestamp\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxOperatorTableStaleness\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"trySignatureVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"aggPubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"signatureValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateOperatorTable\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]},{\"name\":\"operatorSetConfig\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificate\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"totalSignedStakeWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateNominal\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeNominalThresholds\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyCertificateProportion\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"totalStakeProportionThresholds\",\"type\":\"uint16[]\",\"internalType\":\"uint16[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"MaxStalenessPeriodUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetOwnerUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"owner\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TableUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorSetInfo\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NonSignerIndicesNotSorted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyTableUpdater\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReferenceTimestampDoesNotExist\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootDisabled\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TableUpdateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"VerificationFailed\",\"inputs\":[]}]", } // IBN254CertificateVerifierABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/IEigenPod/binding.go b/pkg/bindings/IEigenPod/binding.go index 1f10ba2088..bf36a23784 100644 --- a/pkg/bindings/IEigenPod/binding.go +++ b/pkg/bindings/IEigenPod/binding.go @@ -85,7 +85,7 @@ type IEigenPodTypesWithdrawalRequest struct { // IEigenPodMetaData contains all meta data concerning the IEigenPod contract. var IEigenPodMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"activeValidatorCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkpointBalanceExitedGwei\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpoint\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.Checkpoint\",\"components\":[{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofsRemaining\",\"type\":\"uint24\",\"internalType\":\"uint24\"},{\"name\":\"podBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"balanceDeltasGwei\",\"type\":\"int64\",\"internalType\":\"int64\"},{\"name\":\"prevBeaconBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getConsolidationRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getParentBlockRoot\",\"inputs\":[{\"name\":\"timestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawalRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"podOwner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proofSubmitter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"recoverTokens\",\"inputs\":[{\"name\":\"tokenList\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"amountsToWithdraw\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestConsolidation\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.ConsolidationRequest[]\",\"components\":[{\"name\":\"srcPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"targetPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"requestWithdrawal\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.WithdrawalRequest[]\",\"components\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amountGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setProofSubmitter\",\"inputs\":[{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stake\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"depositDataRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"startCheckpoint\",\"inputs\":[{\"name\":\"revertIfNoBalance\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"validatorPubkeyHashToInfo\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorPubkeyToInfo\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyCheckpointProofs\",\"inputs\":[{\"name\":\"balanceContainerProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.BalanceContainerProof\",\"components\":[{\"name\":\"balanceContainerRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proofs\",\"type\":\"tuple[]\",\"internalType\":\"structBeaconChainProofs.BalanceProof[]\",\"components\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"balanceRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyStaleBalance\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.ValidatorProof\",\"components\":[{\"name\":\"validatorFields\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyWithdrawalCredentials\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"validatorIndices\",\"type\":\"uint40[]\",\"internalType\":\"uint40[]\"},{\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"validatorFields\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdrawRestakedBeaconChainETH\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawableRestakedExecutionLayerGwei\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"CheckpointCreated\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validatorCount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CheckpointFinalized\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"totalShareDeltaWei\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConsolidationRequested\",\"inputs\":[{\"name\":\"sourcePubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"targetPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EigenPodStaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExitRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NonBeaconChainETHReceived\",\"inputs\":[{\"name\":\"amountReceived\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ProofSubmitterUpdated\",\"inputs\":[{\"name\":\"prevProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RestakedBeaconChainETHWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SwitchToCompoundingRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorBalanceUpdated\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"balanceTimestamp\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newValidatorBalanceGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorCheckpointed\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRestaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWithdrawn\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"withdrawalAmountGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BeaconTimestampTooFarInPast\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotCheckpointTwiceInSingleBlock\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CheckpointAlreadyActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CredentialsAlreadyVerified\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeQueryFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ForkTimestampZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientFunds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientWithdrawableBalance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEIP4788Response\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MsgValueNot32ETH\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoActiveCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoBalanceToCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwnerOrProofSubmitter\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PredeployFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampOutOfRange\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorInactiveOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorIsExitingBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotActiveInPod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotSlashedOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalCredentialsNotForEigenPod\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"activeValidatorCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkpointBalanceExitedGwei\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpoint\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.Checkpoint\",\"components\":[{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofsRemaining\",\"type\":\"uint24\",\"internalType\":\"uint24\"},{\"name\":\"podBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"balanceDeltasGwei\",\"type\":\"int64\",\"internalType\":\"int64\"},{\"name\":\"prevBeaconBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currentCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"eigenPodManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIEigenPodManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getConsolidationRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getParentBlockRoot\",\"inputs\":[{\"name\":\"timestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWithdrawalRequestFee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"lastCheckpointTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"podOwner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proofSubmitter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"recoverTokens\",\"inputs\":[{\"name\":\"tokenList\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"},{\"name\":\"amountsToWithdraw\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestConsolidation\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.ConsolidationRequest[]\",\"components\":[{\"name\":\"srcPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"targetPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"requestWithdrawal\",\"inputs\":[{\"name\":\"requests\",\"type\":\"tuple[]\",\"internalType\":\"structIEigenPodTypes.WithdrawalRequest[]\",\"components\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amountGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setProofSubmitter\",\"inputs\":[{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stake\",\"inputs\":[{\"name\":\"pubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"depositDataRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"startCheckpoint\",\"inputs\":[{\"name\":\"revertIfNoBalance\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"validatorPubkeyHashToInfo\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorPubkeyToInfo\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEigenPodTypes.ValidatorInfo\",\"components\":[{\"name\":\"validatorIndex\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"lastCheckpointedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"validatorPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorStatus\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIEigenPodTypes.VALIDATOR_STATUS\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyCheckpointProofs\",\"inputs\":[{\"name\":\"balanceContainerProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.BalanceContainerProof\",\"components\":[{\"name\":\"balanceContainerRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proofs\",\"type\":\"tuple[]\",\"internalType\":\"structBeaconChainProofs.BalanceProof[]\",\"components\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"balanceRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyStaleBalance\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"proof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.ValidatorProof\",\"components\":[{\"name\":\"validatorFields\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyWithdrawalCredentials\",\"inputs\":[{\"name\":\"beaconTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stateRootProof\",\"type\":\"tuple\",\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"components\":[{\"name\":\"beaconStateRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"validatorIndices\",\"type\":\"uint40[]\",\"internalType\":\"uint40[]\"},{\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"validatorFields\",\"type\":\"bytes32[][]\",\"internalType\":\"bytes32[][]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdrawRestakedBeaconChainETH\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawableRestakedExecutionLayerGwei\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"CheckpointCreated\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"beaconBlockRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validatorCount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CheckpointFinalized\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"totalShareDeltaWei\",\"type\":\"int256\",\"indexed\":false,\"internalType\":\"int256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConsolidationRequested\",\"inputs\":[{\"name\":\"sourcePubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"targetPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"EigenPodStaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExitRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NonBeaconChainETHReceived\",\"inputs\":[{\"name\":\"amountReceived\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ProofSubmitterUpdated\",\"inputs\":[{\"name\":\"prevProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newProofSubmitter\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RestakedBeaconChainETHWithdrawn\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SwitchToCompoundingRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorBalanceUpdated\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"balanceTimestamp\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"newValidatorBalanceGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorCheckpointed\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRestaked\",\"inputs\":[{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWithdrawn\",\"inputs\":[{\"name\":\"checkpointTimestamp\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"pubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"WithdrawalRequested\",\"inputs\":[{\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"withdrawalAmountGwei\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BeaconTimestampBeforeLatestCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BeaconTimestampTooFarInPast\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotCheckpointTwiceInSingleBlock\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CheckpointAlreadyActive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CredentialsAlreadyVerified\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeQueryFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ForkTimestampZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientFunds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientWithdrawableBalance\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEIP4788Response\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPubKeyLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MsgValueNot32ETH\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoActiveCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoBalanceToCheckpoint\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyEigenPodOwnerOrProofSubmitter\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PredeployFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampOutOfRange\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorInactiveOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorIsExitingBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotActiveInPod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ValidatorNotSlashedOnBeaconChain\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalCredentialsNotForEigenPod\",\"inputs\":[]}]", } // IEigenPodABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/ITaskMailbox/binding.go b/pkg/bindings/ITaskMailbox/binding.go index af61af758f..f4b4f38d71 100644 --- a/pkg/bindings/ITaskMailbox/binding.go +++ b/pkg/bindings/ITaskMailbox/binding.go @@ -120,7 +120,7 @@ type OperatorSet struct { // ITaskMailboxMetaData contains all meta data concerning the ITaskMailbox contract. var ITaskMailboxMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"BN254_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ECDSA_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_TASK_SLA\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createTask\",\"inputs\":[{\"name\":\"taskParams\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.TaskParams\",\"components\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"feeSplit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"feeSplitCollector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBN254CertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getECDSACertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIECDSACertificateVerifierTypes.ECDSACertificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sig\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskInfo\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Task\",\"components\":[{\"name\":\"creator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"creationTime\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"isFeeRefunded\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"executorOperatorSetTaskConfig\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskStatus\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"operatorSetKey\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"refundFee\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerExecutorOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"isRegistered\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplit\",\"inputs\":[{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplitCollector\",\"inputs\":[{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"submitResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"isRegistered\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetTaskConfigSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"config\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeRefunded\",\"inputs\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitCollectorSet\",\"inputs\":[{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitSet\",\"inputs\":[{\"name\":\"feeSplit\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskCreated\",\"inputs\":[{\"name\":\"creator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"},{\"name\":\"taskDeadline\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskVerified\",\"inputs\":[{\"name\":\"aggregator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyCertificateSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetTaskConfigNotSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeAlreadyRefunded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusValue\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCurveType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeReceiver\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeSplit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidMessageHash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSetOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidReferenceTimestamp\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskCreator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskStatus\",\"inputs\":[{\"name\":\"expected\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"actual\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}]},{\"type\":\"error\",\"name\":\"OnlyRefundCollector\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PayloadIsEmpty\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TaskSLAExceedsMaximum\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ThresholdNotMet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampAtCreation\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"BN254_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ECDSA_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_TASK_SLA\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createTask\",\"inputs\":[{\"name\":\"taskParams\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.TaskParams\",\"components\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"feeSplit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"feeSplitCollector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBN254CertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getECDSACertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIECDSACertificateVerifierTypes.ECDSACertificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sig\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMessageHash\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getTaskInfo\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Task\",\"components\":[{\"name\":\"creator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"creationTime\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"isFeeRefunded\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"executorOperatorSetTaskConfig\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskStatus\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"operatorSetKey\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"refundFee\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerExecutorOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"isRegistered\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplit\",\"inputs\":[{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplitCollector\",\"inputs\":[{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"submitResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"isRegistered\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetTaskConfigSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"config\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeRefunded\",\"inputs\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitCollectorSet\",\"inputs\":[{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitSet\",\"inputs\":[{\"name\":\"feeSplit\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskCreated\",\"inputs\":[{\"name\":\"creator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"},{\"name\":\"taskDeadline\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskVerified\",\"inputs\":[{\"name\":\"aggregator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyCertificateSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetTaskConfigNotSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeAlreadyRefunded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusValue\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCurveType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeReceiver\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeSplit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidMessageHash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSetOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidReferenceTimestamp\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskCreator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskStatus\",\"inputs\":[{\"name\":\"expected\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"actual\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}]},{\"type\":\"error\",\"name\":\"OnlyRefundCollector\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PayloadIsEmpty\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TaskSLAExceedsMaximum\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ThresholdNotMet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampAtCreation\",\"inputs\":[]}]", } // ITaskMailboxABI is the input ABI used to generate the binding from. @@ -517,6 +517,37 @@ func (_ITaskMailbox *ITaskMailboxCallerSession) GetExecutorOperatorSetTaskConfig return _ITaskMailbox.Contract.GetExecutorOperatorSetTaskConfig(&_ITaskMailbox.CallOpts, operatorSet) } +// GetMessageHash is a free data retrieval call binding the contract method 0x37eaa104. +// +// Solidity: function getMessageHash(bytes32 taskHash, bytes result) pure returns(bytes32) +func (_ITaskMailbox *ITaskMailboxCaller) GetMessageHash(opts *bind.CallOpts, taskHash [32]byte, result []byte) ([32]byte, error) { + var out []interface{} + err := _ITaskMailbox.contract.Call(opts, &out, "getMessageHash", taskHash, result) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetMessageHash is a free data retrieval call binding the contract method 0x37eaa104. +// +// Solidity: function getMessageHash(bytes32 taskHash, bytes result) pure returns(bytes32) +func (_ITaskMailbox *ITaskMailboxSession) GetMessageHash(taskHash [32]byte, result []byte) ([32]byte, error) { + return _ITaskMailbox.Contract.GetMessageHash(&_ITaskMailbox.CallOpts, taskHash, result) +} + +// GetMessageHash is a free data retrieval call binding the contract method 0x37eaa104. +// +// Solidity: function getMessageHash(bytes32 taskHash, bytes result) pure returns(bytes32) +func (_ITaskMailbox *ITaskMailboxCallerSession) GetMessageHash(taskHash [32]byte, result []byte) ([32]byte, error) { + return _ITaskMailbox.Contract.GetMessageHash(&_ITaskMailbox.CallOpts, taskHash, result) +} + // GetTaskInfo is a free data retrieval call binding the contract method 0x4ad52e02. // // Solidity: function getTaskInfo(bytes32 taskHash) view returns((address,uint96,address,uint96,address,uint32,uint16,uint8,bool,uint32,(address,uint96,address,uint8,address,(uint8,bytes),bytes),bytes,bytes,bytes)) diff --git a/pkg/bindings/KeyRegistrar/binding.go b/pkg/bindings/KeyRegistrar/binding.go index 4da812c7c7..7f1e9a785b 100644 --- a/pkg/bindings/KeyRegistrar/binding.go +++ b/pkg/bindings/KeyRegistrar/binding.go @@ -50,7 +50,7 @@ type OperatorSet struct { // KeyRegistrarMetaData contains all meta data concerning the KeyRegistrar contract. var KeyRegistrarMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"_allocationManager\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"BN254_KEY_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ECDSA_KEY_REGISTRATION_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allocationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"configureOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deregisterKey\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"encodeBN254KeyData\",\"inputs\":[{\"name\":\"g1Point\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"g2Point\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getBN254Key\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"g1Point\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"g2Point\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBN254KeyRegistrationMessageHash\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"keyData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getECDSAAddress\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getECDSAKey\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getECDSAKeyRegistrationMessageHash\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"keyAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getKeyHash\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorFromSigningKey\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"keyData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetCurveType\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isKeyGloballyRegistered\",\"inputs\":[{\"name\":\"keyHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isRegistered\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerKey\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"keyData\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"AggregateBN254KeyUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"newAggregateKey\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"KeyDeregistered\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"KeyRegistered\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"pubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetConfigured\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"curveType\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ConfigurationAlreadySet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECAddFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECMulFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ECPairingFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpModFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCurveType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidKeyFormat\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidKeypair\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"KeyAlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"KeyNotFound\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OperatorAlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorSetNotConfigured\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorStillSlashable\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroPubkey\",\"inputs\":[]}]", - Bin: "0x60e060405234801561000f575f5ffd5b5060405161314a38038061314a83398101604081905261002e916100cb565b6001600160a01b03808316608052831660a052808061004c8161005a565b60c052506101fc9350505050565b5f5f829050601f8151111561008d578260405163305a27a960e01b815260040161008491906101a1565b60405180910390fd5b8051610098826101d6565b179392505050565b6001600160a01b03811681146100b4575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156100dd575f5ffd5b83516100e8816100a0565b60208501519093506100f9816100a0565b60408501519092506001600160401b03811115610114575f5ffd5b8401601f81018613610124575f5ffd5b80516001600160401b0381111561013d5761013d6100b7565b604051601f8201601f19908116603f011681016001600160401b038111828210171561016b5761016b6100b7565b604052818152828201602001881015610182575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156101f6575f198160200360031b1b821691505b50919050565b60805160a05160c051612f0f61023b5f395f81816103fa01526116f001525f8181610195015261129f01525f818161033b015261061d0152612f0f5ff3fe608060405234801561000f575f5ffd5b5060043610610127575f3560e01c8063aa165c30116100a9578063d9f12db21161006e578063d9f12db214610370578063dab42d7e14610383578063ea0d8149146103a5578063ea194e2e146103b8578063f698da25146103cb575f5ffd5b8063aa165c30146102d9578063b05c8f6d146102ec578063bd30a0b914610313578063ca8aa7c714610336578063d40cda161461035d575f5ffd5b80637690e395116100ef5780637690e3951461023e5780637cffe48c146102515780638256909c1461027157806387ab86f4146102a35780639a43e3fb146102b8575f5ffd5b8063166aa1271461012b5780633b32a7bd146101655780634657e26a1461019057806350435add146101b757806354fd4d5014610236575b5f5ffd5b6101527f991b0a3376ce87f8ecc5d70962279ac09cdce934e8b5b9683e73c8ff087c7f8181565b6040519081526020015b60405180910390f35b61017861017336600461259c565b6103d3565b6040516001600160a01b03909116815260200161015c565b6101787f000000000000000000000000000000000000000000000000000000000000000081565b6102296101c536600461261d565b8151602080840151835180519083015185840151805190850151604080519687019790975295850193909352606084810192909252608084015260a083019190915260c082019290925260e001604051602081830303815290604052905092915050565b60405161015c91906126c8565b6102296103f3565b61015261024c366004612718565b610423565b61026461025f366004612776565b6104cb565b60405161015c91906127c4565b61028461027f3660046127d2565b6104f1565b604080516001600160a01b03909316835290151560208301520161015c565b6102b66102b1366004612878565b6105df565b005b6102cb6102c636600461259c565b6108f0565b60405161015c9291906128c3565b6102296102e736600461259c565b610ad8565b6101527fda86e76deaed01641f80ff5f72c372a038fa5182697aeb967e8b1f9819d58d8181565b61032661032136600461259c565b610c15565b604051901515815260200161015c565b6101787f000000000000000000000000000000000000000000000000000000000000000081565b6102b661036b366004612900565b610c52565b61015261037e366004612991565b610dc3565b6103266103913660046129d2565b5f9081526002602052604090205460ff1690565b6102b66103b33660046129e9565b610e5c565b6101526103c636600461259c565b610f9f565b6101526110c7565b5f6103de8383610ad8565b6103e790612a22565b60601c90505b92915050565b606061041e7f0000000000000000000000000000000000000000000000000000000000000000611180565b905090565b5f5f7fda86e76deaed01641f80ff5f72c372a038fa5182697aeb967e8b1f9819d58d8186865f015187602001518787604051610460929190612a7a565b6040805191829003822060208301969096526001600160a01b039485169082015292909116606083015263ffffffff16608082015260a081019190915260c0016040516020818303038152906040528051906020012090506104c1816111bd565b9695505050505050565b5f60015f6104d884611203565b815260208101919091526040015f205460ff1692915050565b5f5f5f60015f61050087611203565b815260208101919091526040015f9081205460ff169150600182600281111561052b5761052b612790565b0361053d5750835160208501206105ae565b600282600281111561055157610551612790565b03610595575f5f8680602001905181019061056c9190612a89565b60408051808201825283815260209081019283525f9384529151909152902092506105ae915050565b60405163fdea7c0960e01b815260040160405180910390fd5b5f818152600360205260409020546001600160a01b0316806105d08882610c15565b945094505050505b9250929050565b816105e981611261565b6106065760405163932d94f760e01b815260040160405180910390fd5b6040516309a961f360e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631352c3e6906106549086908690600401612aab565b602060405180830381865afa15801561066f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106939190612ae1565b15828490916106e057604051631070287960e01b815282516001600160a01b03908116600483015260209093015163ffffffff166024820152911660448201526064015b60405180910390fd5b50505f60015f6106ef85611203565b815260208101919091526040015f9081205460ff16915081600281111561071857610718612790565b0361073657604051635cd3106d60e11b815260040160405180910390fd5b5f5f5f61074286611203565b815260208082019290925260409081015f9081206001600160a01b038916825283528190208151808301909252805460ff1615158252600181018054929391929184019161078f90612b00565b80601f01602080910402602001604051908101604052809291908181526020018280546107bb90612b00565b80156108065780601f106107dd57610100808354040283529160200191610806565b820191905f5260205f20905b8154815290600101906020018083116107e957829003601f168201915b5050505050815250509050805f01518486909161085c57604051632e40e18760e01b815282516001600160a01b03908116600483015260209093015163ffffffff166024820152911660448201526064016106d7565b50505f5f61086986611203565b815260208082019290925260409081015f9081206001600160a01b03891682529092528120805460ff19168155906108a460018301826123a1565b5050846001600160a01b03167f28d3c3cee49478ec6fd219cfd685cd15cd01d95cabf69b4b7b57f9eaa3eb644285846040516108e1929190612b38565b60405180910390a25050505050565b604080518082019091525f808252602082015261090b6123db565b5f60015f61091887611203565b815260208101919091526040015f205460ff169050600281600281111561094157610941612790565b1461095f5760405163fdea7c0960e01b815260040160405180910390fd5b5f5f5f61096b88611203565b815260208082019290925260409081015f9081206001600160a01b038916825283528190208151808301909252805460ff161515825260018101805492939192918401916109b890612b00565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490612b00565b8015610a2f5780601f10610a0657610100808354040283529160200191610a2f565b820191905f5260205f20905b815481529060010190602001808311610a1257829003601f168201915b5050505050815250509050805f0151610a845750506040805180820182525f808252602080830182905283518085018552828152808201929092528351808501909452828452830191909152925090506105d8565b5f5f5f5f8460200151806020019051810190610aa09190612baa565b604080518082018252948552602080860194909452805180820190915291825291810191909152909b909a5098505050505050505050565b60605f60015f610ae786611203565b815260208101919091526040015f205460ff1690506001816002811115610b1057610b10612790565b14610b2e5760405163fdea7c0960e01b815260040160405180910390fd5b5f5f5f610b3a87611203565b815260208082019290925260409081015f9081206001600160a01b038816825283528190208151808301909252805460ff16151582526001810180549293919291840191610b8790612b00565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb390612b00565b8015610bfe5780601f10610bd557610100808354040283529160200191610bfe565b820191905f5260205f20905b815481529060010190602001808311610be157829003601f168201915b505050919092525050506020015195945050505050565b5f5f5f610c2185611203565b815260208082019290925260409081015f9081206001600160a01b038616825290925290205460ff16905092915050565b85610c5c81611261565b610c795760405163932d94f760e01b815260040160405180910390fd5b5f60015f610c8689611203565b815260208101919091526040015f9081205460ff169150816002811115610caf57610caf612790565b03610ccd57604051635cd3106d60e11b815260040160405180910390fd5b5f5f610cd889611203565b815260208082019290925260409081015f9081206001600160a01b038c16825290925290205460ff1615610d1f576040516342ee68b560e01b815260040160405180910390fd5b6001816002811115610d3357610d33612790565b03610d4b57610d4687898888888861130b565b610d72565b6002816002811115610d5f57610d5f612790565b0361059557610d4687898888888861146c565b876001600160a01b03167f1201ce0c5e577111bce91e907fd99cb183da5edc1e3fb650ca40769e4e9176dd88838989604051610db19493929190612bf0565b60405180910390a25050505050505050565b81516020808401516040515f938493610e30937f991b0a3376ce87f8ecc5d70962279ac09cdce934e8b5b9683e73c8ff087c7f81938a93928991019485526001600160a01b039384166020860152918316604085015263ffffffff16606084015216608082015260a00190565b604051602081830303815290604052805190602001209050610e51816111bd565b9150505b9392505050565b8151610e6781611261565b610e845760405163932d94f760e01b815260040160405180910390fd5b6001826002811115610e9857610e98612790565b1480610eb557506002826002811115610eb357610eb3612790565b145b610ed25760405163fdea7c0960e01b815260040160405180910390fd5b5f60015f610edf86611203565b815260208101919091526040015f9081205460ff169150816002811115610f0857610f08612790565b14610f25576040516281f09f60e01b815260040160405180910390fd5b8260015f610f3287611203565b815260208101919091526040015f20805460ff19166001836002811115610f5b57610f5b612790565b02179055507fb2266cb118e57095fcdbedb24dabd9fc9f5127e2dbedf62ce6ee71696fb8b6e78484604051610f91929190612b38565b60405180910390a150505050565b5f5f5f5f610fac86611203565b815260208082019290925260409081015f9081206001600160a01b038716825283528190208151808301909252805460ff16151582526001810180549293919291840191610ff990612b00565b80601f016020809104026020016040519081016040528092919081815260200182805461102590612b00565b80156110705780601f1061104757610100808354040283529160200191611070565b820191905f5260205f20905b81548152906001019060200180831161105357829003601f168201915b50505050508152505090505f60015f61108887611203565b815260208101919091526040015f2054825160ff90911691506110b057505f91506103ed9050565b6110be826020015182611667565b95945050505050565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea6111346116e8565b805160209182012060408051928301949094529281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60605f61118c8361175d565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f6111c66110c7565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b5f815f0151826020015163ffffffff1660405160200161124992919060609290921b6001600160601b031916825260a01b6001600160a01b031916601482015260200190565b6040516020818303038152906040526103ed90612c4d565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156112e7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ed9190612ae1565b6014831461132c5760405163d109118160e01b815260040160405180910390fd5b5f6113378486612c70565b60601c90508061135a57604051634935505f60e01b815260040160405180910390fd5b5f61139c86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525060019250611667915050565b5f8181526002602052604090205490915060ff16156113ce57604051630c7bc20160e11b815260040160405180910390fd5b5f6113da888a85610dc3565b905061141f838287878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505f199250611784915050565b611461898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508892506117dc915050565b505050505050505050565b60c0831461148d5760405163d109118160e01b815260040160405180910390fd5b604081146114ae57604051638baa579f60e01b815260040160405180910390fd5b604080518082019091525f80825260208201526114c96123db565b5f8080806114d9898b018b612cae565b93509350935093506040518060400160405280858152602001848152509550835f148015611505575082155b1561152357604051634935505f60e01b815260040160405180910390fd5b60408051808201909152918252602082015292505f91506115489050888a8989610423565b90505f8061155886880188612ce8565b604080518082019091528281526020810182905291935091505f611580858389898580611889565b915050806115a157604051638baa579f60e01b815260040160405180910390fd5b5f6115e38c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525060029250611667915050565b5f8181526002602052604090205490915060ff161561161557604051630c7bc20160e11b815260040160405180910390fd5b6116578e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792506117dc915050565b5050505050505050505050505050565b5f600182600281111561167c5761167c612790565b0361168e5750815160208301206103ed565b60028260028111156116a2576116a2612790565b03610595575f5f848060200190518101906116bd9190612baa565b505060408051808201825283815260209081019283525f9384529151909152902092506103ed915050565b60605f6117147f0000000000000000000000000000000000000000000000000000000000000000611180565b9050805f8151811061172857611728612a66565b016020908101516040516001600160f81b03199091169181019190915260210160405160208183030381529060405291505090565b5f60ff8216601f8111156103ed57604051632cd44ac360e21b815260040160405180910390fd5b428110156117a557604051630819bdcd60e01b815260040160405180910390fd5b6117b96001600160a01b0385168484611951565b6117d657604051638baa579f60e01b815260040160405180910390fd5b50505050565b6040805180820190915260018152602081018390525f806117fc87611203565b815260208082019290925260409081015f9081206001600160a01b03881682528352208251815460ff19169015151781559082015160018201906118409082612d54565b5050505f908152600260209081526040808320805460ff191660011790556003909152902080546001600160a01b039093166001600160a01b0319909316929092179091555050565b5f5f5f611895896119a5565b90505f6118a48a89898c611a2f565b90505f6118bb6118b48a84611ada565b8b90611b4a565b90505f6118fd6118f6846118f06040805180820182525f80825260209182015281518083019092526001825260029082015290565b90611ada565b8590611b4a565b905087156119225761191982611911611bbe565b838c8b611c7e565b96509450611942565b6119358261192e611bbe565b838c611e92565b9550851561194257600194505b50505050965096945050505050565b5f5f5f61195e85856120c9565b90925090505f81600481111561197657611976612790565b1480156119945750856001600160a01b0316826001600160a01b0316145b806104c157506104c1868686612108565b604080518082019091525f80825260208201525f80806119d25f516020612eba5f395f51905f5286612e0f565b90505b6119de816121ef565b90935091505f516020612eba5f395f51905f528283098303611a16576040805180820190915290815260208101919091529392505050565b5f516020612eba5f395f51905f526001820890506119d5565b8251602080850151845180519083015186840151805190850151875188870151604080519889018e90528801989098526060870195909552608086019390935260a085019190915260c084015260e08301526101008201526101208101919091525f907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019061014001604051602081830303815290604052805190602001205f1c6110be9190612e0f565b604080518082019091525f8082526020820152611af5612400565b835181526020808501519082015260408082018490525f908360608460076107d05a03fa90508080611b2357fe5b5080611b4257604051632319df1960e11b815260040160405180910390fd5b505092915050565b604080518082019091525f8082526020820152611b6561241e565b835181526020808501518183015283516040808401919091529084015160608301525f908360808460066107d05a03fa90508080611b9f57fe5b5080611b425760405163d4b68fd760e01b815260040160405180910390fd5b611bc66123db565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528681526020808201869052825180840190935286835282018490525f91829190611caf61243c565b5f5b6002811015611e66575f611cc6826006612e42565b9050848260028110611cda57611cda612a66565b60200201515183611ceb835f612e59565b600c8110611cfb57611cfb612a66565b6020020152848260028110611d1257611d12612a66565b60200201516020015183826001611d299190612e59565b600c8110611d3957611d39612a66565b6020020152838260028110611d5057611d50612a66565b6020020151515183611d63836002612e59565b600c8110611d7357611d73612a66565b6020020152838260028110611d8a57611d8a612a66565b6020020151516001602002015183611da3836003612e59565b600c8110611db357611db3612a66565b6020020152838260028110611dca57611dca612a66565b6020020151602001515f60028110611de457611de4612a66565b602002015183611df5836004612e59565b600c8110611e0557611e05612a66565b6020020152838260028110611e1c57611e1c612a66565b602002015160200151600160028110611e3757611e37612a66565b602002015183611e48836005612e59565b600c8110611e5857611e58612a66565b602002015250600101611cb1565b50611e6f61245b565b5f6020826101808560088cfa9151919c9115159b50909950505050505050505050565b6040805180820182528581526020808201859052825180840190935285835282018390525f91611ec061243c565b5f5b6002811015612077575f611ed7826006612e42565b9050848260028110611eeb57611eeb612a66565b60200201515183611efc835f612e59565b600c8110611f0c57611f0c612a66565b6020020152848260028110611f2357611f23612a66565b60200201516020015183826001611f3a9190612e59565b600c8110611f4a57611f4a612a66565b6020020152838260028110611f6157611f61612a66565b6020020151515183611f74836002612e59565b600c8110611f8457611f84612a66565b6020020152838260028110611f9b57611f9b612a66565b6020020151516001602002015183611fb4836003612e59565b600c8110611fc457611fc4612a66565b6020020152838260028110611fdb57611fdb612a66565b6020020151602001515f60028110611ff557611ff5612a66565b602002015183612006836004612e59565b600c811061201657612016612a66565b602002015283826002811061202d5761202d612a66565b60200201516020015160016002811061204857612048612a66565b602002015183612059836005612e59565b600c811061206957612069612a66565b602002015250600101611ec2565b5061208061245b565b5f6020826101808560086107d05a03fa9050808061209a57fe5b50806120b9576040516324ccc79360e21b815260040160405180910390fd5b5051151598975050505050505050565b5f5f82516041036120fd576020830151604084015160608501515f1a6120f18782858561226b565b945094505050506105d8565b505f905060026105d8565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401612130929190612e6c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161216e9190612e8c565b5f60405180830381855afa9150503d805f81146121a6576040519150601f19603f3d011682016040523d82523d5f602084013e6121ab565b606091505b50915091508180156121bf57506020815110155b80156104c157508051630b135d3f60e11b906121e49083016020908101908401612ea2565b149695505050505050565b5f80805f516020612eba5f395f51905f5260035f516020612eba5f395f51905f52865f516020612eba5f395f51905f52888909090890505f61225f827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f525f516020612eba5f395f51905f52612328565b91959194509092505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156122a057505f9050600361231f565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156122f1573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116612319575f6001925092505061231f565b91505f90505b94509492505050565b5f5f61233261245b565b61233a612479565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828061237757fe5b50826123965760405163d51edae360e01b815260040160405180910390fd5b505195945050505050565b5080546123ad90612b00565b5f825580601f106123bc575050565b601f0160209004905f5260205f20908101906123d89190612497565b50565b60405180604001604052806123ee6124af565b81526020016123fb6124af565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b5b808211156124ab575f8155600101612498565b5090565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715612504576125046124cd565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612533576125336124cd565b604052919050565b80356001600160a01b0381168114612551575f5ffd5b919050565b5f60408284031215612566575f5ffd5b61256e6124e1565b90506125798261253b565b8152602082013563ffffffff81168114612591575f5ffd5b602082015292915050565b5f5f606083850312156125ad575f5ffd5b6125b78484612556565b91506125c56040840161253b565b90509250929050565b5f82601f8301126125dd575f5ffd5b6125e7604061250a565b8060408401858111156125f8575f5ffd5b845b818110156126125780358452602093840193016125fa565b509095945050505050565b5f5f82840360c081121561262f575f5ffd5b604081121561263c575f5ffd5b6126446124e1565b843581526020808601359082015292506080603f1982011215612665575f5ffd5b5061266e6124e1565b61267b85604086016125ce565b815261268a85608086016125ce565b6020820152809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e55602083018461269a565b5f5f83601f8401126126ea575f5ffd5b50813567ffffffffffffffff811115612701575f5ffd5b6020830191508360208285010111156105d8575f5ffd5b5f5f5f5f6080858703121561272b575f5ffd5b6127348561253b565b93506127438660208701612556565b9250606085013567ffffffffffffffff81111561275e575f5ffd5b61276a878288016126da565b95989497509550505050565b5f60408284031215612786575f5ffd5b610e558383612556565b634e487b7160e01b5f52602160045260245ffd5b600381106127c057634e487b7160e01b5f52602160045260245ffd5b9052565b602081016103ed82846127a4565b5f5f606083850312156127e3575f5ffd5b6127ed8484612556565b9150604083013567ffffffffffffffff811115612808575f5ffd5b8301601f81018513612818575f5ffd5b803567ffffffffffffffff811115612832576128326124cd565b612845601f8201601f191660200161250a565b818152866020838501011115612859575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f60608385031215612889575f5ffd5b6128928361253b565b91506125c58460208501612556565b805f5b60028110156117d65781518452602093840193909101906001016128a4565b5f60c08201905083518252602084015160208301526128e66040830184516128a1565b60208301516128f860808401826128a1565b509392505050565b5f5f5f5f5f5f60a08789031215612915575f5ffd5b61291e8761253b565b955061292d8860208901612556565b9450606087013567ffffffffffffffff811115612948575f5ffd5b61295489828a016126da565b909550935050608087013567ffffffffffffffff811115612973575f5ffd5b61297f89828a016126da565b979a9699509497509295939492505050565b5f5f5f608084860312156129a3575f5ffd5b6129ac8461253b565b92506129bb8560208601612556565b91506129c96060850161253b565b90509250925092565b5f602082840312156129e2575f5ffd5b5035919050565b5f5f606083850312156129fa575f5ffd5b612a048484612556565b9150604083013560038110612a17575f5ffd5b809150509250929050565b805160208201516001600160601b0319811691906014821015612a5f576001600160601b03196001600160601b03198360140360031b1b82161692505b5050919050565b634e487b7160e01b5f52603260045260245ffd5b818382375f9101908152919050565b5f5f60408385031215612a9a575f5ffd5b505080516020909101519092909150565b6001600160a01b038316815260608101610e55602083018480516001600160a01b0316825260209081015163ffffffff16910152565b5f60208284031215612af1575f5ffd5b81518015158114610e55575f5ffd5b600181811c90821680612b1457607f821691505b602082108103612b3257634e487b7160e01b5f52602260045260245ffd5b50919050565b82516001600160a01b0316815260208084015163ffffffff169082015260608101610e5560408301846127a4565b5f82601f830112612b75575f5ffd5b612b7f604061250a565b806040840185811115612b90575f5ffd5b845b81811015612612578051845260209384019301612b92565b5f5f5f5f60c08587031215612bbd575f5ffd5b845160208601519094509250612bd68660408701612b66565b9150612be58660808701612b66565b905092959194509250565b84516001600160a01b0316815260208086015163ffffffff1690820152612c1a60408201856127a4565b60806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f191601019392505050565b80516020808301519190811015612b32575f1960209190910360031b1b16919050565b80356001600160601b03198116906014841015612ca7576001600160601b03196001600160601b03198560140360031b1b82161691505b5092915050565b5f5f5f5f60c08587031215612cc1575f5ffd5b8435935060208501359250612cd986604087016125ce565b9150612be586608087016125ce565b5f5f60408385031215612cf9575f5ffd5b50508035926020909101359150565b601f821115612d4f57805f5260205f20601f840160051c81016020851015612d2d5750805b601f840160051c820191505b81811015612d4c575f8155600101612d39565b50505b505050565b815167ffffffffffffffff811115612d6e57612d6e6124cd565b612d8281612d7c8454612b00565b84612d08565b6020601f821160018114612db4575f8315612d9d5750848201515b5f19600385901b1c1916600184901b178455612d4c565b5f84815260208120601f198516915b82811015612de35787850151825560209485019460019092019101612dc3565b5084821015612e0057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82612e2957634e487b7160e01b5f52601260045260245ffd5b500690565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ed576103ed612e2e565b808201808211156103ed576103ed612e2e565b828152604060208201525f612e84604083018461269a565b949350505050565b5f82518060208501845e5f920191825250919050565b5f60208284031215612eb2575f5ffd5b505191905056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220b1bc342d78c512cc6b4bea7cef24a2e54c4ec5761c94a7ddff633e36db0f0ade64736f6c634300081b0033", + Bin: "0x60e060405234801561000f575f5ffd5b5060405161314a38038061314a83398101604081905261002e916100cb565b6001600160a01b03808316608052831660a052808061004c8161005a565b60c052506101fc9350505050565b5f5f829050601f8151111561008d578260405163305a27a960e01b815260040161008491906101a1565b60405180910390fd5b8051610098826101d6565b179392505050565b6001600160a01b03811681146100b4575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156100dd575f5ffd5b83516100e8816100a0565b60208501519093506100f9816100a0565b60408501519092506001600160401b03811115610114575f5ffd5b8401601f81018613610124575f5ffd5b80516001600160401b0381111561013d5761013d6100b7565b604051601f8201601f19908116603f011681016001600160401b038111828210171561016b5761016b6100b7565b604052818152828201602001881015610182575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156101f6575f198160200360031b1b821691505b50919050565b60805160a05160c051612f0f61023b5f395f81816103fa01526116f001525f8181610195015261129f01525f818161033b015261061d0152612f0f5ff3fe608060405234801561000f575f5ffd5b5060043610610127575f3560e01c8063aa165c30116100a9578063d9f12db21161006e578063d9f12db214610370578063dab42d7e14610383578063ea0d8149146103a5578063ea194e2e146103b8578063f698da25146103cb575f5ffd5b8063aa165c30146102d9578063b05c8f6d146102ec578063bd30a0b914610313578063ca8aa7c714610336578063d40cda161461035d575f5ffd5b80637690e395116100ef5780637690e3951461023e5780637cffe48c146102515780638256909c1461027157806387ab86f4146102a35780639a43e3fb146102b8575f5ffd5b8063166aa1271461012b5780633b32a7bd146101655780634657e26a1461019057806350435add146101b757806354fd4d5014610236575b5f5ffd5b6101527f991b0a3376ce87f8ecc5d70962279ac09cdce934e8b5b9683e73c8ff087c7f8181565b6040519081526020015b60405180910390f35b61017861017336600461259c565b6103d3565b6040516001600160a01b03909116815260200161015c565b6101787f000000000000000000000000000000000000000000000000000000000000000081565b6102296101c536600461261d565b8151602080840151835180519083015185840151805190850151604080519687019790975295850193909352606084810192909252608084015260a083019190915260c082019290925260e001604051602081830303815290604052905092915050565b60405161015c91906126c8565b6102296103f3565b61015261024c366004612718565b610423565b61026461025f366004612776565b6104cb565b60405161015c91906127c4565b61028461027f3660046127d2565b6104f1565b604080516001600160a01b03909316835290151560208301520161015c565b6102b66102b1366004612878565b6105df565b005b6102cb6102c636600461259c565b6108f0565b60405161015c9291906128c3565b6102296102e736600461259c565b610ad8565b6101527fda86e76deaed01641f80ff5f72c372a038fa5182697aeb967e8b1f9819d58d8181565b61032661032136600461259c565b610c15565b604051901515815260200161015c565b6101787f000000000000000000000000000000000000000000000000000000000000000081565b6102b661036b366004612900565b610c52565b61015261037e366004612991565b610dc3565b6103266103913660046129d2565b5f9081526002602052604090205460ff1690565b6102b66103b33660046129e9565b610e5c565b6101526103c636600461259c565b610f9f565b6101526110c7565b5f6103de8383610ad8565b6103e790612a22565b60601c90505b92915050565b606061041e7f0000000000000000000000000000000000000000000000000000000000000000611180565b905090565b5f5f7fda86e76deaed01641f80ff5f72c372a038fa5182697aeb967e8b1f9819d58d8186865f015187602001518787604051610460929190612a7a565b6040805191829003822060208301969096526001600160a01b039485169082015292909116606083015263ffffffff16608082015260a081019190915260c0016040516020818303038152906040528051906020012090506104c1816111bd565b9695505050505050565b5f60015f6104d884611203565b815260208101919091526040015f205460ff1692915050565b5f5f5f60015f61050087611203565b815260208101919091526040015f9081205460ff169150600182600281111561052b5761052b612790565b0361053d5750835160208501206105ae565b600282600281111561055157610551612790565b03610595575f5f8680602001905181019061056c9190612a89565b60408051808201825283815260209081019283525f9384529151909152902092506105ae915050565b60405163fdea7c0960e01b815260040160405180910390fd5b5f818152600360205260409020546001600160a01b0316806105d08882610c15565b945094505050505b9250929050565b816105e981611261565b6106065760405163932d94f760e01b815260040160405180910390fd5b6040516309a961f360e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631352c3e6906106549086908690600401612aab565b602060405180830381865afa15801561066f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106939190612ae1565b15828490916106e057604051631070287960e01b815282516001600160a01b03908116600483015260209093015163ffffffff166024820152911660448201526064015b60405180910390fd5b50505f60015f6106ef85611203565b815260208101919091526040015f9081205460ff16915081600281111561071857610718612790565b0361073657604051635cd3106d60e11b815260040160405180910390fd5b5f5f5f61074286611203565b815260208082019290925260409081015f9081206001600160a01b038916825283528190208151808301909252805460ff1615158252600181018054929391929184019161078f90612b00565b80601f01602080910402602001604051908101604052809291908181526020018280546107bb90612b00565b80156108065780601f106107dd57610100808354040283529160200191610806565b820191905f5260205f20905b8154815290600101906020018083116107e957829003601f168201915b5050505050815250509050805f01518486909161085c57604051632e40e18760e01b815282516001600160a01b03908116600483015260209093015163ffffffff166024820152911660448201526064016106d7565b50505f5f61086986611203565b815260208082019290925260409081015f9081206001600160a01b03891682529092528120805460ff19168155906108a460018301826123a1565b5050846001600160a01b03167f28d3c3cee49478ec6fd219cfd685cd15cd01d95cabf69b4b7b57f9eaa3eb644285846040516108e1929190612b38565b60405180910390a25050505050565b604080518082019091525f808252602082015261090b6123db565b5f60015f61091887611203565b815260208101919091526040015f205460ff169050600281600281111561094157610941612790565b1461095f5760405163fdea7c0960e01b815260040160405180910390fd5b5f5f5f61096b88611203565b815260208082019290925260409081015f9081206001600160a01b038916825283528190208151808301909252805460ff161515825260018101805492939192918401916109b890612b00565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490612b00565b8015610a2f5780601f10610a0657610100808354040283529160200191610a2f565b820191905f5260205f20905b815481529060010190602001808311610a1257829003601f168201915b5050505050815250509050805f0151610a845750506040805180820182525f808252602080830182905283518085018552828152808201929092528351808501909452828452830191909152925090506105d8565b5f5f5f5f8460200151806020019051810190610aa09190612baa565b604080518082018252948552602080860194909452805180820190915291825291810191909152909b909a5098505050505050505050565b60605f60015f610ae786611203565b815260208101919091526040015f205460ff1690506001816002811115610b1057610b10612790565b14610b2e5760405163fdea7c0960e01b815260040160405180910390fd5b5f5f5f610b3a87611203565b815260208082019290925260409081015f9081206001600160a01b038816825283528190208151808301909252805460ff16151582526001810180549293919291840191610b8790612b00565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb390612b00565b8015610bfe5780601f10610bd557610100808354040283529160200191610bfe565b820191905f5260205f20905b815481529060010190602001808311610be157829003601f168201915b505050919092525050506020015195945050505050565b5f5f5f610c2185611203565b815260208082019290925260409081015f9081206001600160a01b038616825290925290205460ff16905092915050565b85610c5c81611261565b610c795760405163932d94f760e01b815260040160405180910390fd5b5f60015f610c8689611203565b815260208101919091526040015f9081205460ff169150816002811115610caf57610caf612790565b03610ccd57604051635cd3106d60e11b815260040160405180910390fd5b5f5f610cd889611203565b815260208082019290925260409081015f9081206001600160a01b038c16825290925290205460ff1615610d1f576040516342ee68b560e01b815260040160405180910390fd5b6001816002811115610d3357610d33612790565b03610d4b57610d4687898888888861130b565b610d72565b6002816002811115610d5f57610d5f612790565b0361059557610d4687898888888861146c565b876001600160a01b03167f1201ce0c5e577111bce91e907fd99cb183da5edc1e3fb650ca40769e4e9176dd88838989604051610db19493929190612bf0565b60405180910390a25050505050505050565b81516020808401516040515f938493610e30937f991b0a3376ce87f8ecc5d70962279ac09cdce934e8b5b9683e73c8ff087c7f81938a93928991019485526001600160a01b039384166020860152918316604085015263ffffffff16606084015216608082015260a00190565b604051602081830303815290604052805190602001209050610e51816111bd565b9150505b9392505050565b8151610e6781611261565b610e845760405163932d94f760e01b815260040160405180910390fd5b6001826002811115610e9857610e98612790565b1480610eb557506002826002811115610eb357610eb3612790565b145b610ed25760405163fdea7c0960e01b815260040160405180910390fd5b5f60015f610edf86611203565b815260208101919091526040015f9081205460ff169150816002811115610f0857610f08612790565b14610f25576040516281f09f60e01b815260040160405180910390fd5b8260015f610f3287611203565b815260208101919091526040015f20805460ff19166001836002811115610f5b57610f5b612790565b02179055507fb2266cb118e57095fcdbedb24dabd9fc9f5127e2dbedf62ce6ee71696fb8b6e78484604051610f91929190612b38565b60405180910390a150505050565b5f5f5f5f610fac86611203565b815260208082019290925260409081015f9081206001600160a01b038716825283528190208151808301909252805460ff16151582526001810180549293919291840191610ff990612b00565b80601f016020809104026020016040519081016040528092919081815260200182805461102590612b00565b80156110705780601f1061104757610100808354040283529160200191611070565b820191905f5260205f20905b81548152906001019060200180831161105357829003601f168201915b50505050508152505090505f60015f61108887611203565b815260208101919091526040015f2054825160ff90911691506110b057505f91506103ed9050565b6110be826020015182611667565b95945050505050565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea6111346116e8565b805160209182012060408051928301949094529281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60605f61118c8361175d565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f6111c66110c7565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b5f815f0151826020015163ffffffff1660405160200161124992919060609290921b6001600160601b031916825260a01b6001600160a01b031916601482015260200190565b6040516020818303038152906040526103ed90612c4d565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156112e7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ed9190612ae1565b6014831461132c5760405163d109118160e01b815260040160405180910390fd5b5f6113378486612c70565b60601c90508061135a57604051634935505f60e01b815260040160405180910390fd5b5f61139c86868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525060019250611667915050565b5f8181526002602052604090205490915060ff16156113ce57604051630c7bc20160e11b815260040160405180910390fd5b5f6113da888a85610dc3565b905061141f838287878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505f199250611784915050565b611461898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508892506117dc915050565b505050505050505050565b60c0831461148d5760405163d109118160e01b815260040160405180910390fd5b604081146114ae57604051638baa579f60e01b815260040160405180910390fd5b604080518082019091525f80825260208201526114c96123db565b5f8080806114d9898b018b612cae565b93509350935093506040518060400160405280858152602001848152509550835f148015611505575082155b1561152357604051634935505f60e01b815260040160405180910390fd5b60408051808201909152918252602082015292505f91506115489050888a8989610423565b90505f8061155886880188612ce8565b604080518082019091528281526020810182905291935091505f611580858389898580611889565b915050806115a157604051638baa579f60e01b815260040160405180910390fd5b5f6115e38c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525060029250611667915050565b5f8181526002602052604090205490915060ff161561161557604051630c7bc20160e11b815260040160405180910390fd5b6116578e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508792506117dc915050565b5050505050505050505050505050565b5f600182600281111561167c5761167c612790565b0361168e5750815160208301206103ed565b60028260028111156116a2576116a2612790565b03610595575f5f848060200190518101906116bd9190612baa565b505060408051808201825283815260209081019283525f9384529151909152902092506103ed915050565b60605f6117147f0000000000000000000000000000000000000000000000000000000000000000611180565b9050805f8151811061172857611728612a66565b016020908101516040516001600160f81b03199091169181019190915260210160405160208183030381529060405291505090565b5f60ff8216601f8111156103ed57604051632cd44ac360e21b815260040160405180910390fd5b428110156117a557604051630819bdcd60e01b815260040160405180910390fd5b6117b96001600160a01b0385168484611951565b6117d657604051638baa579f60e01b815260040160405180910390fd5b50505050565b6040805180820190915260018152602081018390525f806117fc87611203565b815260208082019290925260409081015f9081206001600160a01b03881682528352208251815460ff19169015151781559082015160018201906118409082612d54565b5050505f908152600260209081526040808320805460ff191660011790556003909152902080546001600160a01b039093166001600160a01b0319909316929092179091555050565b5f5f5f611895896119a5565b90505f6118a48a89898c611a2f565b90505f6118bb6118b48a84611ada565b8b90611b4a565b90505f6118fd6118f6846118f06040805180820182525f80825260209182015281518083019092526001825260029082015290565b90611ada565b8590611b4a565b905087156119225761191982611911611bbe565b838c8b611c7e565b96509450611942565b6119358261192e611bbe565b838c611e92565b9550851561194257600194505b50505050965096945050505050565b5f5f5f61195e85856120c9565b90925090505f81600481111561197657611976612790565b1480156119945750856001600160a01b0316826001600160a01b0316145b806104c157506104c1868686612108565b604080518082019091525f80825260208201525f80806119d25f516020612eba5f395f51905f5286612e0f565b90505b6119de816121ef565b90935091505f516020612eba5f395f51905f528283098303611a16576040805180820190915290815260208101919091529392505050565b5f516020612eba5f395f51905f526001820890506119d5565b8251602080850151845180519083015186840151805190850151875188870151604080519889018e90528801989098526060870195909552608086019390935260a085019190915260c084015260e08301526101008201526101208101919091525f907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019061014001604051602081830303815290604052805190602001205f1c6110be9190612e0f565b604080518082019091525f8082526020820152611af5612400565b835181526020808501519082015260408082018490525f908360608460076107d05a03fa90508080611b2357fe5b5080611b4257604051632319df1960e11b815260040160405180910390fd5b505092915050565b604080518082019091525f8082526020820152611b6561241e565b835181526020808501518183015283516040808401919091529084015160608301525f908360808460066107d05a03fa90508080611b9f57fe5b5080611b425760405163d4b68fd760e01b815260040160405180910390fd5b611bc66123db565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820182528681526020808201869052825180840190935286835282018490525f91829190611caf61243c565b5f5b6002811015611e66575f611cc6826006612e42565b9050848260028110611cda57611cda612a66565b60200201515183611ceb835f612e59565b600c8110611cfb57611cfb612a66565b6020020152848260028110611d1257611d12612a66565b60200201516020015183826001611d299190612e59565b600c8110611d3957611d39612a66565b6020020152838260028110611d5057611d50612a66565b6020020151515183611d63836002612e59565b600c8110611d7357611d73612a66565b6020020152838260028110611d8a57611d8a612a66565b6020020151516001602002015183611da3836003612e59565b600c8110611db357611db3612a66565b6020020152838260028110611dca57611dca612a66565b6020020151602001515f60028110611de457611de4612a66565b602002015183611df5836004612e59565b600c8110611e0557611e05612a66565b6020020152838260028110611e1c57611e1c612a66565b602002015160200151600160028110611e3757611e37612a66565b602002015183611e48836005612e59565b600c8110611e5857611e58612a66565b602002015250600101611cb1565b50611e6f61245b565b5f6020826101808560088cfa9151919c9115159b50909950505050505050505050565b6040805180820182528581526020808201859052825180840190935285835282018390525f91611ec061243c565b5f5b6002811015612077575f611ed7826006612e42565b9050848260028110611eeb57611eeb612a66565b60200201515183611efc835f612e59565b600c8110611f0c57611f0c612a66565b6020020152848260028110611f2357611f23612a66565b60200201516020015183826001611f3a9190612e59565b600c8110611f4a57611f4a612a66565b6020020152838260028110611f6157611f61612a66565b6020020151515183611f74836002612e59565b600c8110611f8457611f84612a66565b6020020152838260028110611f9b57611f9b612a66565b6020020151516001602002015183611fb4836003612e59565b600c8110611fc457611fc4612a66565b6020020152838260028110611fdb57611fdb612a66565b6020020151602001515f60028110611ff557611ff5612a66565b602002015183612006836004612e59565b600c811061201657612016612a66565b602002015283826002811061202d5761202d612a66565b60200201516020015160016002811061204857612048612a66565b602002015183612059836005612e59565b600c811061206957612069612a66565b602002015250600101611ec2565b5061208061245b565b5f6020826101808560086107d05a03fa9050808061209a57fe5b50806120b9576040516324ccc79360e21b815260040160405180910390fd5b5051151598975050505050505050565b5f5f82516041036120fd576020830151604084015160608501515f1a6120f18782858561226b565b945094505050506105d8565b505f905060026105d8565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401612130929190612e6c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161216e9190612e8c565b5f60405180830381855afa9150503d805f81146121a6576040519150601f19603f3d011682016040523d82523d5f602084013e6121ab565b606091505b50915091508180156121bf57506020815110155b80156104c157508051630b135d3f60e11b906121e49083016020908101908401612ea2565b149695505050505050565b5f80805f516020612eba5f395f51905f5260035f516020612eba5f395f51905f52865f516020612eba5f395f51905f52888909090890505f61225f827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f525f516020612eba5f395f51905f52612328565b91959194509092505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156122a057505f9050600361231f565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156122f1573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116612319575f6001925092505061231f565b91505f90505b94509492505050565b5f5f61233261245b565b61233a612479565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828061237757fe5b50826123965760405163d51edae360e01b815260040160405180910390fd5b505195945050505050565b5080546123ad90612b00565b5f825580601f106123bc575050565b601f0160209004905f5260205f20908101906123d89190612497565b50565b60405180604001604052806123ee6124af565b81526020016123fb6124af565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b5b808211156124ab575f8155600101612498565b5090565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715612504576125046124cd565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612533576125336124cd565b604052919050565b80356001600160a01b0381168114612551575f5ffd5b919050565b5f60408284031215612566575f5ffd5b61256e6124e1565b90506125798261253b565b8152602082013563ffffffff81168114612591575f5ffd5b602082015292915050565b5f5f606083850312156125ad575f5ffd5b6125b78484612556565b91506125c56040840161253b565b90509250929050565b5f82601f8301126125dd575f5ffd5b6125e7604061250a565b8060408401858111156125f8575f5ffd5b845b818110156126125780358452602093840193016125fa565b509095945050505050565b5f5f82840360c081121561262f575f5ffd5b604081121561263c575f5ffd5b6126446124e1565b843581526020808601359082015292506080603f1982011215612665575f5ffd5b5061266e6124e1565b61267b85604086016125ce565b815261268a85608086016125ce565b6020820152809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e55602083018461269a565b5f5f83601f8401126126ea575f5ffd5b50813567ffffffffffffffff811115612701575f5ffd5b6020830191508360208285010111156105d8575f5ffd5b5f5f5f5f6080858703121561272b575f5ffd5b6127348561253b565b93506127438660208701612556565b9250606085013567ffffffffffffffff81111561275e575f5ffd5b61276a878288016126da565b95989497509550505050565b5f60408284031215612786575f5ffd5b610e558383612556565b634e487b7160e01b5f52602160045260245ffd5b600381106127c057634e487b7160e01b5f52602160045260245ffd5b9052565b602081016103ed82846127a4565b5f5f606083850312156127e3575f5ffd5b6127ed8484612556565b9150604083013567ffffffffffffffff811115612808575f5ffd5b8301601f81018513612818575f5ffd5b803567ffffffffffffffff811115612832576128326124cd565b612845601f8201601f191660200161250a565b818152866020838501011115612859575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f60608385031215612889575f5ffd5b6128928361253b565b91506125c58460208501612556565b805f5b60028110156117d65781518452602093840193909101906001016128a4565b5f60c08201905083518252602084015160208301526128e66040830184516128a1565b60208301516128f860808401826128a1565b509392505050565b5f5f5f5f5f5f60a08789031215612915575f5ffd5b61291e8761253b565b955061292d8860208901612556565b9450606087013567ffffffffffffffff811115612948575f5ffd5b61295489828a016126da565b909550935050608087013567ffffffffffffffff811115612973575f5ffd5b61297f89828a016126da565b979a9699509497509295939492505050565b5f5f5f608084860312156129a3575f5ffd5b6129ac8461253b565b92506129bb8560208601612556565b91506129c96060850161253b565b90509250925092565b5f602082840312156129e2575f5ffd5b5035919050565b5f5f606083850312156129fa575f5ffd5b612a048484612556565b9150604083013560038110612a17575f5ffd5b809150509250929050565b805160208201516001600160601b0319811691906014821015612a5f576001600160601b03196001600160601b03198360140360031b1b82161692505b5050919050565b634e487b7160e01b5f52603260045260245ffd5b818382375f9101908152919050565b5f5f60408385031215612a9a575f5ffd5b505080516020909101519092909150565b6001600160a01b038316815260608101610e55602083018480516001600160a01b0316825260209081015163ffffffff16910152565b5f60208284031215612af1575f5ffd5b81518015158114610e55575f5ffd5b600181811c90821680612b1457607f821691505b602082108103612b3257634e487b7160e01b5f52602260045260245ffd5b50919050565b82516001600160a01b0316815260208084015163ffffffff169082015260608101610e5560408301846127a4565b5f82601f830112612b75575f5ffd5b612b7f604061250a565b806040840185811115612b90575f5ffd5b845b81811015612612578051845260209384019301612b92565b5f5f5f5f60c08587031215612bbd575f5ffd5b845160208601519094509250612bd68660408701612b66565b9150612be58660808701612b66565b905092959194509250565b84516001600160a01b0316815260208086015163ffffffff1690820152612c1a60408201856127a4565b60806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f191601019392505050565b80516020808301519190811015612b32575f1960209190910360031b1b16919050565b80356001600160601b03198116906014841015612ca7576001600160601b03196001600160601b03198560140360031b1b82161691505b5092915050565b5f5f5f5f60c08587031215612cc1575f5ffd5b8435935060208501359250612cd986604087016125ce565b9150612be586608087016125ce565b5f5f60408385031215612cf9575f5ffd5b50508035926020909101359150565b601f821115612d4f57805f5260205f20601f840160051c81016020851015612d2d5750805b601f840160051c820191505b81811015612d4c575f8155600101612d39565b50505b505050565b815167ffffffffffffffff811115612d6e57612d6e6124cd565b612d8281612d7c8454612b00565b84612d08565b6020601f821160018114612db4575f8315612d9d5750848201515b5f19600385901b1c1916600184901b178455612d4c565b5f84815260208120601f198516915b82811015612de35787850151825560209485019460019092019101612dc3565b5084821015612e0057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82612e2957634e487b7160e01b5f52601260045260245ffd5b500690565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ed576103ed612e2e565b808201808211156103ed576103ed612e2e565b828152604060208201525f612e84604083018461269a565b949350505050565b5f82518060208501845e5f920191825250919050565b5f60208284031215612eb2575f5ffd5b505191905056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212201df3a560128f27a0612f2f095e7e575dd271a835148632603757c72234c7b14364736f6c634300081b0033", } // KeyRegistrarABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/Merkle/binding.go b/pkg/bindings/Merkle/binding.go index 9d4f980399..c04c193866 100644 --- a/pkg/bindings/Merkle/binding.go +++ b/pkg/bindings/Merkle/binding.go @@ -32,7 +32,7 @@ var ( // MerkleMetaData contains all meta data concerning the Merkle contract. var MerkleMetaData = &bind.MetaData{ ABI: "[{\"type\":\"error\",\"name\":\"EmptyRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"LeavesNotPowerOfTwo\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoLeaves\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotEnoughLeaves\",\"inputs\":[]}]", - Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122036cb143ac372b3fb553e74acf8a0354c8e9d16d2c07c53a9802331cb60f4308a64736f6c634300081b0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212207533eb554d661aa14ef6c353843c60b9f3700f9a67001c1733f0924af8e48fbc64736f6c634300081b0033", } // MerkleABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/OperatorSetLib/binding.go b/pkg/bindings/OperatorSetLib/binding.go index 6c590a0119..d27bdfc373 100644 --- a/pkg/bindings/OperatorSetLib/binding.go +++ b/pkg/bindings/OperatorSetLib/binding.go @@ -32,7 +32,7 @@ var ( // OperatorSetLibMetaData contains all meta data concerning the OperatorSetLib contract. var OperatorSetLibMetaData = &bind.MetaData{ ABI: "[]", - Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220cff5cce6a223d03985b2fb4df1b3303ea84184d948c0fc99a7f5e16d218126a464736f6c634300081b0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212200d41c40979a555029104dbf8f0150fa995e0afa0623de87526ee70333455ae7f64736f6c634300081b0033", } // OperatorSetLibABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/OperatorTableUpdater/binding.go b/pkg/bindings/OperatorTableUpdater/binding.go index 3a0dd4fe6e..f67ae80236 100644 --- a/pkg/bindings/OperatorTableUpdater/binding.go +++ b/pkg/bindings/OperatorTableUpdater/binding.go @@ -86,7 +86,7 @@ type OperatorSet struct { // OperatorTableUpdaterMetaData contains all meta data concerning the OperatorTableUpdater contract. var OperatorTableUpdaterMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_bn254CertificateVerifier\",\"type\":\"address\",\"internalType\":\"contractIBN254CertificateVerifier\"},{\"name\":\"_ecdsaCertificateVerifier\",\"type\":\"address\",\"internalType\":\"contractIECDSACertificateVerifier\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"GENERATOR_GLOBAL_TABLE_ROOT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"GENERATOR_MAX_STALENESS_PERIOD\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"GENERATOR_REFERENCE_TIMESTAMP\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"GLOBAL_TABLE_ROOT_CERT_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_BPS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPERATOR_INFO_LEAF_SALT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"OPERATOR_TABLE_LEAF_SALT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"bn254CertificateVerifier\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBN254CertificateVerifier\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateOperatorInfoLeaf\",\"inputs\":[{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"calculateOperatorTableLeaf\",\"inputs\":[{\"name\":\"operatorTableBytes\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"confirmGlobalTableRoot\",\"inputs\":[{\"name\":\"globalTableRootCert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]},{\"name\":\"globalTableRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"disableRoot\",\"inputs\":[{\"name\":\"globalTableRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ecdsaCertificateVerifier\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIECDSACertificateVerifier\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCertificateVerifier\",\"inputs\":[{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentGlobalTableRoot\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getGenerator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getGeneratorConfig\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structICrossChainRegistryTypes.OperatorSetConfig\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxStalenessPeriod\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getGeneratorReferenceTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getGlobalTableRootByTimestamp\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getGlobalTableUpdateMessageHash\",\"inputs\":[{\"name\":\"globalTableRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getGlobalTableUpdateSignableDigest\",\"inputs\":[{\"name\":\"globalTableRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLatestReferenceBlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLatestReferenceTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getReferenceBlockNumberByTimestamp\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getReferenceTimestampByBlockNumber\",\"inputs\":[{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"globalRootConfirmationThreshold\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_initialGenerator\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"_globalRootConfirmationThreshold\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"generatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isRootValid\",\"inputs\":[{\"name\":\"globalTableRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isRootValidByTimestamp\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setGlobalRootConfirmationThreshold\",\"inputs\":[{\"name\":\"bps\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateGenerator\",\"inputs\":[{\"name\":\"generator\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"generatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorSetInfo\",\"components\":[{\"name\":\"operatorInfoTreeRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"numOperators\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"aggregatePubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"totalWeights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateOperatorTable\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"globalTableRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"operatorSetIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorTableBytes\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"GeneratorUpdated\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"GlobalRootConfirmationThresholdUpdated\",\"inputs\":[{\"name\":\"bps\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"GlobalRootDisabled\",\"inputs\":[{\"name\":\"globalTableRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NewGlobalTableRoot\",\"inputs\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"globalTableRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CannotDisableGeneratorRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CertificateInvalid\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GlobalTableRootInFuture\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GlobalTableRootStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConfirmationThreshold\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCurveType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidGenerator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidGlobalTableRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidMessageHash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSetProof\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TableUpdateForPastTimestamp\",\"inputs\":[]}]", - Bin: "0x610100604052348015610010575f5ffd5b50604051612e6a380380612e6a83398101604081905261002f916101b9565b808484846001600160a01b03811661005a576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805291821660a0521660c05261007b81610090565b60e052506100876100d6565b505050506102fe565b5f5f829050601f815111156100c3578260405163305a27a960e01b81526004016100ba91906102a3565b60405180910390fd5b80516100ce826102d8565b179392505050565b5f54610100900460ff161561013d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100ba565b5f5460ff9081161461018c575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101a2575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f608085870312156101cc575f5ffd5b84516101d78161018e565b60208601519094506101e88161018e565b60408601519093506101f98161018e565b60608601519092506001600160401b03811115610214575f5ffd5b8501601f81018713610224575f5ffd5b80516001600160401b0381111561023d5761023d6101a5565b604051601f8201601f19908116603f011681016001600160401b038111828210171561026b5761026b6101a5565b604052818152828201602001891015610282575f5ffd5b8160208401602083015e5f6020838301015280935050505092959194509250565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102f8575f198160200360031b1b821691505b50919050565b60805160a05160c05160e051612aec61037e5f395f610a1301525f81816105b501528181610aad0152610e6d01525f818161061c0152818161094101528181610a6d01528181610b1901528181610dc8015281816111420152818161142b01526114dd01525f818161053c0152818161160901526118f50152612aec5ff3fe608060405234801561000f575f5ffd5b5060043610610255575f3560e01c80636f728c5011610140578063ad0f9582116100bf578063c3be1e3311610084578063c3be1e3314610672578063c5916a3914610685578063eaaed9d5146106aa578063f2fde38b146106bd578063fabc1cbc146106d0578063fd967f47146106e3575f5ffd5b8063ad0f9582146105b0578063b0cb3a24146105d7578063b8c1430614610617578063c252aa221461063e578063c3621f0a1461065f575f5ffd5b80638da5cb5b116101055780638da5cb5b1461055e5780639ea947781461056f5780639f7e206f14610582578063a2c902f514610595578063a2f2e24d1461059d575f5ffd5b80636f728c50146104f5578063715018a6146105205780637551ba3414610528578063790961ea14610530578063886f119514610537575f5ffd5b806331a599d2116101d757806354fd4d501161019c57806354fd4d5014610470578063595c6a67146104855780635ac86ab71461048d5780635c975abb146104b0578063612abcb0146104b857806364e1df84146104c0575f5ffd5b806331a599d2146103ea5780633ef6cd7a1461040f578063401c370f146104365780634624e6a314610449578063538a37901461045d575f5ffd5b80631e2ca2601161021d5780631e2ca260146103125780632370356c1461035b57806323b7b5b21461036e57806328522d791461039657806330ef41b4146103b8575f5ffd5b806306f5187514610259578063121409ea1461026e578063136439dd1461028d578063193b79f3146102a05780631bdc0deb146102dd575b5f5ffd5b61026c610267366004611b4f565b6106ec565b005b610276608e81565b60405160ff90911681526020015b60405180910390f35b61026c61029b366004611bc5565b6108c6565b6102c86102ae366004611bed565b63ffffffff9081165f908152609b60205260409020541690565b60405163ffffffff9091168152602001610284565b6103047fcefe99cb2e240b5f07de5cd472a75fc6e345370b73588ab161cb25c4a259a86981565b604051908152602001610284565b6040805180820182525f80825260209182015281518083019092526098546001600160a01b0381168352600160a01b900463ffffffff16908201525b6040516102849190611c26565b61026c610369366004611c34565b610900565b6102c861037c366004611bed565b63ffffffff9081165f908152609a60205260409020541690565b60975462010000900463ffffffff165f90815260996020526040902054610304565b6103da6103c6366004611bc5565b5f908152609c602052604090205460ff1690565b6040519015158152602001610284565b60975462010000900463ffffffff9081165f908152609a6020526040902054166102c8565b6103047f4491f5ee91595f938885ef73c9a1fa8a6d14ff9b9dab4aa24b8802bbb9bfc1cc81565b610304610444366004611c4d565b610914565b60975462010000900463ffffffff166102c8565b61030461046b366004611d3c565b6109bd565b610478610a0c565b6040516102849190611e34565b61026c610a3c565b6103da61049b366004611e69565b606654600160ff9092169190911b9081161490565b606654610304565b6102c8600181565b6103da6104ce366004611bed565b63ffffffff165f908152609960209081526040808320548352609c90915290205460ff1690565b610508610503366004611e97565b610a50565b6040516001600160a01b039091168152602001610284565b61026c610aef565b6102c8610b00565b6102c85f81565b6105087f000000000000000000000000000000000000000000000000000000000000000081565b6033546001600160a01b0316610508565b61026c61057d366004611ef4565b610b8e565b61026c610590366004611f8f565b610ede565b610276607581565b6103046105ab366004611fda565b610ef0565b6105087f000000000000000000000000000000000000000000000000000000000000000081565b6040805180820182525f8082526020918201528151808301909252609d546001600160a01b0381168352600160a01b900463ffffffff169082015261034e565b6105087f000000000000000000000000000000000000000000000000000000000000000081565b60975461064c9061ffff1681565b60405161ffff9091168152602001610284565b61026c61066d366004611bc5565b610f26565b610304610680366004611c4d565b610fdb565b610304610693366004611bed565b63ffffffff165f9081526099602052604090205490565b61026c6106b8366004612018565b611043565b61026c6106cb366004612084565b611292565b61026c6106de366004611bc5565b611308565b61064c61271081565b5f54610100900460ff161580801561070a57505f54600160ff909116105b806107235750303b15801561072357505f5460ff166001145b61078b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156107ac575f805461ff0019166101001790555b6107b586611375565b6107be856113c6565b6107c88483611403565b6107d183611583565b7fcefe99cb2e240b5f07de5cd472a75fc6e345370b73588ab161cb25c4a259a8697fbb86fbc034f4e382929974bcd8419ed626b0ea647f962d89ba2fb6bd28785ab98190555f52609c6020527f38353ab40115e4013d688e07cff5857dde443bd05e72c49fcb5e684a9bb9efc4805460ff19166001179055609d80546001600160c01b03191630179055609780544263ffffffff16620100000265ffffffff00001990911617905580156108be575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6108ce6115f4565b60665481811681146108f35760405163c61dca5d60e01b815260040160405180910390fd5b6108fc826113c6565b5050565b610908611697565b61091181611583565b50565b5f5f610921858585610fdb565b6040516306119d0d60e21b815260016004820152602481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631846743490604401602060405180830381865afa15801561098e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b2919061209f565b9150505b9392505050565b5f6075826040516020016109d191906120f0565b60408051601f19818403018152908290526109ef929160200161211d565b604051602081830303815290604052805190602001209050919050565b6060610a377f00000000000000000000000000000000000000000000000000000000000000006116f1565b905090565b610a446115f4565b610a4e5f196113c6565b565b5f6002826002811115610a6557610a65612146565b03610a9157507f0000000000000000000000000000000000000000000000000000000000000000919050565b6001826002811115610aa557610aa5612146565b03610ad157507f0000000000000000000000000000000000000000000000000000000000000000919050565b60405163fdea7c0960e01b815260040160405180910390fd5b919050565b610af7611697565b610a4e5f611375565b604051635ddb9b5b60e01b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635ddb9b5b90610b4f9060989060040161215a565b602060405180830381865afa158015610b6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a379190612181565b6001610b998161172e565b610ba1611759565b5f5f5f5f610baf87876117b2565b5f8f8152609c60205260409020549397509195509350915060ff16610be75760405163504570e360e01b815260040160405180910390fd5b604080518082019091526098546001600160a01b0381168252600160a01b900463ffffffff166020820152610c1b906117f9565b610c24856117f9565b03610c4257604051631fb1705560e21b815260040160405180910390fd5b610c4b83610a50565b6001600160a01b031663cd83a72b858e6040518363ffffffff1660e01b8152600401610c7892919061219c565b602060405180830381865afa158015610c93573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb791906121bd565b15610cc55750505050610eca565b610cce83610a50565b6001600160a01b0316635ddb9b5b856040518263ffffffff1660e01b8152600401610cf99190611c26565b602060405180830381865afa158015610d14573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d389190612181565b63ffffffff168c63ffffffff1611610d635760405163207617df60e01b815260040160405180910390fd5b63ffffffff8c165f908152609960205260409020548b14610d975760405163639d09b560e11b815260040160405180910390fd5b610dad8b8b8b8b610da88c8c610ef0565b61185c565b6002836002811115610dc157610dc1612146565b03610e52577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636738c40b858e610e00856118c1565b866040518563ffffffff1660e01b8152600401610e2094939291906121dc565b5f604051808303815f87803b158015610e37575f5ffd5b505af1158015610e49573d5f5f3e3d5ffd5b50505050610ec5565b6001836002811115610e6657610e66612146565b03610ad1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166356d482f5858e610ea5856118dd565b866040518563ffffffff1660e01b8152600401610e20949392919061225d565b505050505b610ed4600160c955565b5050505050505050565b610ee6611697565b6108fc8282611403565b5f608e8383604051602001610f0793929190612302565b6040516020818303038152906040528051906020012090505b92915050565b610f2e6115f4565b5f818152609c602052604090205460ff16610f5c5760405163504570e360e01b815260040160405180910390fd5b7fcefe99cb2e240b5f07de5cd472a75fc6e345370b73588ab161cb25c4a259a8698103610f9c576040516319920afd60e11b815260040160405180910390fd5b5f818152609c6020526040808220805460ff191690555182917f8bd43de1250f58fe6ec9a78671a8b78dba70f0018656d157a3aeaabec389df3491a250565b604080517f4491f5ee91595f938885ef73c9a1fa8a6d14ff9b9dab4aa24b8802bbb9bfc1cc602082015290810184905263ffffffff8084166060830152821660808201525f9060a0016040516020818303038152906040528051906020012090509392505050565b5f61104d8161172e565b611055611759565b428363ffffffff16111561107c57604051635a119db560e11b815260040160405180910390fd5b60975463ffffffff620100009091048116908416116110ae5760405163037fa86b60e31b815260040160405180910390fd5b6110b9848484610fdb565b8560200135146110dc57604051638b56642d60e01b815260040160405180910390fd5b6040805160018082528183019092525f91602080830190803683375050609754825192935061ffff16918391505f9061111757611117612329565b61ffff90921660209283029190910190910152604051625f5e5d60e21b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063017d79749061117c906098908b90879060040161245b565b6020604051808303815f875af1158015611198573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111bc91906121bd565b9050806111dc57604051633042041f60e21b815260040160405180910390fd5b6097805463ffffffff80881662010000810265ffffffff000019909316929092179092555f818152609a602090815260408083208054958a1663ffffffff1996871681179091558352609b825280832080549095168417909455828252609981528382208a9055898252609c9052828120805460ff19166001179055915188927f010dcbe0d1e019c93357711f7bb6287d543b7ff7de74f29df3fb5ecceec8d36991a3505061128b600160c955565b5050505050565b61129a611697565b6001600160a01b0381166112ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610782565b61091181611375565b6113106118f3565b606654801982198116146113375760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b81609861141082826125e8565b5050604051635ddb9b5b60e01b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635ddb9b5b90611460908690600401612679565b602060405180830381865afa15801561147b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061149f9190612181565b905063ffffffff8116156114c657604051636446f91760e01b815260040160405180910390fd5b604051636738c40b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636738c40b9061151a9086906001908790609d90600401612687565b5f604051808303815f87803b158015611531575f5ffd5b505af1158015611543573d5f5f3e3d5ffd5b505050507f3463431b09dfd43dec7349f8f24acfa753fe4cf40a26235402d213373df15856836040516115769190612679565b60405180910390a1505050565b61271061ffff821611156115aa576040516307336f0360e11b815260040160405180910390fd5b6097805461ffff191661ffff83169081179091556040519081527ff5d1836df8fcd7c1e54047e94ac8773d2855395603e2ef9ba5f5f16905f225929060200160405180910390a150565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611656573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167a91906121bd565b610a4e57604051631d77d47760e21b815260040160405180910390fd5b6033546001600160a01b03163314610a4e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610782565b60605f6116fd836119a4565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b606654600160ff83161b908116036109115760405163840a48d560e01b815260040160405180910390fd5b600260c954036117ab5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610782565b600260c955565b604080518082019091525f8082526020820152604080518082019091525f808252602082018190529060606117e985870187612760565b9299919850965090945092505050565b5f815f0151826020015163ffffffff1660405160200161184492919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b604051602081830303815290604052610f2090612825565b6118a483838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508992508591505063ffffffff88166119cb565b61128b5760405163afa42ca760e01b815260040160405180910390fd5b6118c9611ac5565b81806020019051810190610f2091906128ad565b606081806020019051810190610f20919061295c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561194f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119739190612a5d565b6001600160a01b0316336001600160a01b031614610a4e5760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f811115610f2057604051632cd44ac360e21b815260040160405180910390fd5b5f836119ea576040516329e7276760e11b815260040160405180910390fd5b836119f6868585611a00565b1495945050505050565b5f83515f03611a105750816109b6565b60208451611a1e9190612a78565b15611a3c576040516313717da960e21b815260040160405180910390fd5b8260205b85518111611a9d57611a53600285612a78565b5f03611a7457815f528086015160205260405f209150600284049350611a8b565b808601515f528160205260405f2091506002840493505b611a96602082612a97565b9050611a40565b508215611abd576040516363df817160e01b815260040160405180910390fd5b949350505050565b60405180608001604052805f81526020015f8152602001611af760405180604001604052805f81526020015f81525090565b8152602001606081525090565b6001600160a01b0381168114610911575f5ffd5b5f60408284031215611b28575f5ffd5b50919050565b803561ffff81168114610aea575f5ffd5b5f60a08284031215611b28575f5ffd5b5f5f5f5f5f60c08688031215611b63575f5ffd5b8535611b6e81611b04565b945060208601359350611b848760408801611b18565b9250611b9260808701611b2e565b915060a08601356001600160401b03811115611bac575f5ffd5b611bb888828901611b3f565b9150509295509295909350565b5f60208284031215611bd5575f5ffd5b5035919050565b63ffffffff81168114610911575f5ffd5b5f60208284031215611bfd575f5ffd5b81356109b681611bdc565b80516001600160a01b0316825260209081015163ffffffff16910152565b60408101610f208284611c08565b5f60208284031215611c44575f5ffd5b6109b682611b2e565b5f5f5f60608486031215611c5f575f5ffd5b833592506020840135611c7181611bdc565b91506040840135611c8181611bdc565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715611cc257611cc2611c8c565b60405290565b604051608081016001600160401b0381118282101715611cc257611cc2611c8c565b604051601f8201601f191681016001600160401b0381118282101715611d1257611d12611c8c565b604052919050565b5f6001600160401b03821115611d3257611d32611c8c565b5060051b60200190565b5f60208284031215611d4c575f5ffd5b81356001600160401b03811115611d61575f5ffd5b82018084036060811215611d73575f5ffd5b611d7b611ca0565b6040821215611d88575f5ffd5b611d90611ca0565b83358152602080850135908201528152604083013591506001600160401b03821115611dba575f5ffd5b818301925085601f840112611dcd575f5ffd5b82359150611de2611ddd83611d1a565b611cea565b8083825260208201915060208460051b860101935087841115611e03575f5ffd5b6020850194505b83851015611e25578435825260209485019490910190611e0a565b60208301525095945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611e79575f5ffd5b813560ff811681146109b6575f5ffd5b803560038110610aea575f5ffd5b5f60208284031215611ea7575f5ffd5b6109b682611e89565b5f5f83601f840112611ec0575f5ffd5b5081356001600160401b03811115611ed6575f5ffd5b602083019150836020828501011115611eed575f5ffd5b9250929050565b5f5f5f5f5f5f5f60a0888a031215611f0a575f5ffd5b8735611f1581611bdc565b9650602088013595506040880135611f2c81611bdc565b945060608801356001600160401b03811115611f46575f5ffd5b611f528a828b01611eb0565b90955093505060808801356001600160401b03811115611f70575f5ffd5b611f7c8a828b01611eb0565b989b979a50959850939692959293505050565b5f5f60608385031215611fa0575f5ffd5b611faa8484611b18565b915060408301356001600160401b03811115611fc4575f5ffd5b611fd085828601611b3f565b9150509250929050565b5f5f60208385031215611feb575f5ffd5b82356001600160401b03811115612000575f5ffd5b61200c85828601611eb0565b90969095509350505050565b5f5f5f5f6080858703121561202b575f5ffd5b84356001600160401b03811115612040575f5ffd5b85016101208188031215612052575f5ffd5b935060208501359250604085013561206981611bdc565b9150606085013561207981611bdc565b939692955090935050565b5f60208284031215612094575f5ffd5b81356109b681611b04565b5f602082840312156120af575f5ffd5b5051919050565b5f8151808452602084019350602083015f5b828110156120e65781518652602095860195909101906001016120c8565b5093949350505050565b60208082528251805183830152015160408201525f6020830151606080840152611abd60808401826120b6565b60ff60f81b8360f81b1681525f82518060208501600185015e5f92016001019182525092915050565b634e487b7160e01b5f52602160045260245ffd5b60408101610f208284546001600160a01b038116825260a01c63ffffffff16602090910152565b5f60208284031215612191575f5ffd5b81516109b681611bdc565b606081016121aa8285611c08565b63ffffffff831660408301529392505050565b5f602082840312156121cd575f5ffd5b815180151581146109b6575f5ffd5b6121e68186611c08565b63ffffffff8416604082015260c06060820152825160c0820152602083015160e08201525f604084015161222861010084018280518252602090810151910152565b50606084015160a06101408401526122446101608401826120b6565b9150506122546080830184611c08565b95945050505050565b5f60c0820161226c8388611c08565b63ffffffff8616604084015260c0606084015280855180835260e08501915060e08160051b8601019250602087015f5b828110156122ed5786850360df19018452815180516001600160a01b031686526020908101516040918701829052906122d7908701826120b6565b955050602093840193919091019060010161229c565b50505050809150506122546080830184611c08565b60f884901b6001600160f81b0319168152818360018301375f910160010190815292915050565b634e487b7160e01b5f52603260045260245ffd5b5f5f8335601e19843603018112612352575f5ffd5b83016020810192503590506001600160401b03811115612370575f5ffd5b8060051b3603821315611eed575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8235605e198336030181126123bd575f5ffd5b90910192915050565b8183525f6001600160fb1b038311156123dd575f5ffd5b8260051b80836020870137939093016020019392505050565b80358252602080820135908301525f612412604083018361233d565b606060408601526122546060860182846123c6565b5f8151808452602084019350602083015f5b828110156120e657815161ffff16865260209586019590910190600101612439565b61247e8185546001600160a01b038116825260a01c63ffffffff16602090910152565b608060408201525f6101a08201843561249681611bdc565b63ffffffff166080840152602085013560a0840152604085013560c0840152606085013560e0840152604060808601610100850137604060c086016101408501376124e561010086018661233d565b610120610180860152828184526101c0860190506101c08260051b8701019350825f5b838110156125c7578786036101bf1901835261252482866123a9565b803561252f81611bdc565b63ffffffff168752602081013536829003601e1901811261254e575f5ffd5b81016020810190356001600160401b03811115612569575f5ffd5b803603821315612577575f5ffd5b606060208a015261258c60608a018284612381565b91505061259c60408301836123a9565b915087810360408901526125b081836123f6565b975050506020928301929190910190600101612508565b505050505082810360608401526125de8185612427565b9695505050505050565b81356125f381611b04565b81546001600160a01b031981166001600160a01b03929092169182178355602084013561261f81611bdc565b6001600160c01b03199190911690911760a09190911b63ffffffff60a01b1617905550565b803561264f81611b04565b6001600160a01b03168252602081013561266881611bdc565b63ffffffff81166020840152505050565b60408101610f208284612644565b6126918186612644565b63ffffffff841660408281019190915260c06060808401829052853591840191909152602085013560e0840152908401356101008301528301356101208201525f6126df608085018561233d565b60a06101408501526126f6610160850182846123c6565b925050506122546080830184546001600160a01b038116825260a01c63ffffffff16602090910152565b5f60408284031215612730575f5ffd5b612738611ca0565b9050813561274581611b04565b8152602082013561275581611bdc565b602082015292915050565b5f5f5f5f60c08587031215612773575f5ffd5b61277d8686612720565b935061278b60408601611e89565b925061279a8660608701612720565b915060a08501356001600160401b038111156127b4575f5ffd5b8501601f810187136127c4575f5ffd5b80356001600160401b038111156127dd576127dd611c8c565b6127f0601f8201601f1916602001611cea565b818152886020838501011115612804575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b80516020808301519190811015611b28575f1960209190910360031b1b16919050565b5f82601f830112612857575f5ffd5b8151612865611ddd82611d1a565b8082825260208201915060208360051b860101925085831115612886575f5ffd5b602085015b838110156128a357805183526020928301920161288b565b5095945050505050565b5f602082840312156128bd575f5ffd5b81516001600160401b038111156128d2575f5ffd5b820180840360a08112156128e4575f5ffd5b6128ec611cc8565b82518152602080840151908201526040603f198301121561290b575f5ffd5b612913611ca0565b604084810151825260608501516020830152820152608083015191506001600160401b03821115612942575f5ffd5b61294e86838501612848565b606082015295945050505050565b5f6020828403121561296c575f5ffd5b81516001600160401b03811115612981575f5ffd5b8201601f81018413612991575f5ffd5b805161299f611ddd82611d1a565b8082825260208201915060208360051b8501019250868311156129c0575f5ffd5b602084015b83811015612a525780516001600160401b038111156129e2575f5ffd5b85016040818a03601f190112156129f7575f5ffd5b6129ff611ca0565b6020820151612a0d81611b04565b815260408201516001600160401b03811115612a27575f5ffd5b612a368b602083860101612848565b60208301525080855250506020830192506020810190506129c5565b509695505050505050565b5f60208284031215612a6d575f5ffd5b81516109b681611b04565b5f82612a9257634e487b7160e01b5f52601260045260245ffd5b500690565b80820180821115610f2057634e487b7160e01b5f52601160045260245ffdfea264697066735822122074a6983350720cbe730095835bde2692087345cfb90c4ac4f3b54c125c879a8764736f6c634300081b0033", + Bin: "0x610100604052348015610010575f5ffd5b50604051612e6a380380612e6a83398101604081905261002f916101b9565b808484846001600160a01b03811661005a576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805291821660a0521660c05261007b81610090565b60e052506100876100d6565b505050506102fe565b5f5f829050601f815111156100c3578260405163305a27a960e01b81526004016100ba91906102a3565b60405180910390fd5b80516100ce826102d8565b179392505050565b5f54610100900460ff161561013d5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100ba565b5f5460ff9081161461018c575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101a2575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f608085870312156101cc575f5ffd5b84516101d78161018e565b60208601519094506101e88161018e565b60408601519093506101f98161018e565b60608601519092506001600160401b03811115610214575f5ffd5b8501601f81018713610224575f5ffd5b80516001600160401b0381111561023d5761023d6101a5565b604051601f8201601f19908116603f011681016001600160401b038111828210171561026b5761026b6101a5565b604052818152828201602001891015610282575f5ffd5b8160208401602083015e5f6020838301015280935050505092959194509250565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102f8575f198160200360031b1b821691505b50919050565b60805160a05160c05160e051612aec61037e5f395f610a1301525f81816105b501528181610aad0152610e6d01525f818161061c0152818161094101528181610a6d01528181610b1901528181610dc8015281816111420152818161142b01526114dd01525f818161053c0152818161160901526118f50152612aec5ff3fe608060405234801561000f575f5ffd5b5060043610610255575f3560e01c80636f728c5011610140578063ad0f9582116100bf578063c3be1e3311610084578063c3be1e3314610672578063c5916a3914610685578063eaaed9d5146106aa578063f2fde38b146106bd578063fabc1cbc146106d0578063fd967f47146106e3575f5ffd5b8063ad0f9582146105b0578063b0cb3a24146105d7578063b8c1430614610617578063c252aa221461063e578063c3621f0a1461065f575f5ffd5b80638da5cb5b116101055780638da5cb5b1461055e5780639ea947781461056f5780639f7e206f14610582578063a2c902f514610595578063a2f2e24d1461059d575f5ffd5b80636f728c50146104f5578063715018a6146105205780637551ba3414610528578063790961ea14610530578063886f119514610537575f5ffd5b806331a599d2116101d757806354fd4d501161019c57806354fd4d5014610470578063595c6a67146104855780635ac86ab71461048d5780635c975abb146104b0578063612abcb0146104b857806364e1df84146104c0575f5ffd5b806331a599d2146103ea5780633ef6cd7a1461040f578063401c370f146104365780634624e6a314610449578063538a37901461045d575f5ffd5b80631e2ca2601161021d5780631e2ca260146103125780632370356c1461035b57806323b7b5b21461036e57806328522d791461039657806330ef41b4146103b8575f5ffd5b806306f5187514610259578063121409ea1461026e578063136439dd1461028d578063193b79f3146102a05780631bdc0deb146102dd575b5f5ffd5b61026c610267366004611b4f565b6106ec565b005b610276608e81565b60405160ff90911681526020015b60405180910390f35b61026c61029b366004611bc5565b6108c6565b6102c86102ae366004611bed565b63ffffffff9081165f908152609b60205260409020541690565b60405163ffffffff9091168152602001610284565b6103047fcefe99cb2e240b5f07de5cd472a75fc6e345370b73588ab161cb25c4a259a86981565b604051908152602001610284565b6040805180820182525f80825260209182015281518083019092526098546001600160a01b0381168352600160a01b900463ffffffff16908201525b6040516102849190611c26565b61026c610369366004611c34565b610900565b6102c861037c366004611bed565b63ffffffff9081165f908152609a60205260409020541690565b60975462010000900463ffffffff165f90815260996020526040902054610304565b6103da6103c6366004611bc5565b5f908152609c602052604090205460ff1690565b6040519015158152602001610284565b60975462010000900463ffffffff9081165f908152609a6020526040902054166102c8565b6103047f4491f5ee91595f938885ef73c9a1fa8a6d14ff9b9dab4aa24b8802bbb9bfc1cc81565b610304610444366004611c4d565b610914565b60975462010000900463ffffffff166102c8565b61030461046b366004611d3c565b6109bd565b610478610a0c565b6040516102849190611e34565b61026c610a3c565b6103da61049b366004611e69565b606654600160ff9092169190911b9081161490565b606654610304565b6102c8600181565b6103da6104ce366004611bed565b63ffffffff165f908152609960209081526040808320548352609c90915290205460ff1690565b610508610503366004611e97565b610a50565b6040516001600160a01b039091168152602001610284565b61026c610aef565b6102c8610b00565b6102c85f81565b6105087f000000000000000000000000000000000000000000000000000000000000000081565b6033546001600160a01b0316610508565b61026c61057d366004611ef4565b610b8e565b61026c610590366004611f8f565b610ede565b610276607581565b6103046105ab366004611fda565b610ef0565b6105087f000000000000000000000000000000000000000000000000000000000000000081565b6040805180820182525f8082526020918201528151808301909252609d546001600160a01b0381168352600160a01b900463ffffffff169082015261034e565b6105087f000000000000000000000000000000000000000000000000000000000000000081565b60975461064c9061ffff1681565b60405161ffff9091168152602001610284565b61026c61066d366004611bc5565b610f26565b610304610680366004611c4d565b610fdb565b610304610693366004611bed565b63ffffffff165f9081526099602052604090205490565b61026c6106b8366004612018565b611043565b61026c6106cb366004612084565b611292565b61026c6106de366004611bc5565b611308565b61064c61271081565b5f54610100900460ff161580801561070a57505f54600160ff909116105b806107235750303b15801561072357505f5460ff166001145b61078b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156107ac575f805461ff0019166101001790555b6107b586611375565b6107be856113c6565b6107c88483611403565b6107d183611583565b7fcefe99cb2e240b5f07de5cd472a75fc6e345370b73588ab161cb25c4a259a8697fbb86fbc034f4e382929974bcd8419ed626b0ea647f962d89ba2fb6bd28785ab98190555f52609c6020527f38353ab40115e4013d688e07cff5857dde443bd05e72c49fcb5e684a9bb9efc4805460ff19166001179055609d80546001600160c01b03191630179055609780544263ffffffff16620100000265ffffffff00001990911617905580156108be575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6108ce6115f4565b60665481811681146108f35760405163c61dca5d60e01b815260040160405180910390fd5b6108fc826113c6565b5050565b610908611697565b61091181611583565b50565b5f5f610921858585610fdb565b6040516306119d0d60e21b815260016004820152602481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631846743490604401602060405180830381865afa15801561098e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b2919061209f565b9150505b9392505050565b5f6075826040516020016109d191906120f0565b60408051601f19818403018152908290526109ef929160200161211d565b604051602081830303815290604052805190602001209050919050565b6060610a377f00000000000000000000000000000000000000000000000000000000000000006116f1565b905090565b610a446115f4565b610a4e5f196113c6565b565b5f6002826002811115610a6557610a65612146565b03610a9157507f0000000000000000000000000000000000000000000000000000000000000000919050565b6001826002811115610aa557610aa5612146565b03610ad157507f0000000000000000000000000000000000000000000000000000000000000000919050565b60405163fdea7c0960e01b815260040160405180910390fd5b919050565b610af7611697565b610a4e5f611375565b604051635ddb9b5b60e01b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635ddb9b5b90610b4f9060989060040161215a565b602060405180830381865afa158015610b6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a379190612181565b6001610b998161172e565b610ba1611759565b5f5f5f5f610baf87876117b2565b5f8f8152609c60205260409020549397509195509350915060ff16610be75760405163504570e360e01b815260040160405180910390fd5b604080518082019091526098546001600160a01b0381168252600160a01b900463ffffffff166020820152610c1b906117f9565b610c24856117f9565b03610c4257604051631fb1705560e21b815260040160405180910390fd5b610c4b83610a50565b6001600160a01b031663cd83a72b858e6040518363ffffffff1660e01b8152600401610c7892919061219c565b602060405180830381865afa158015610c93573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb791906121bd565b15610cc55750505050610eca565b610cce83610a50565b6001600160a01b0316635ddb9b5b856040518263ffffffff1660e01b8152600401610cf99190611c26565b602060405180830381865afa158015610d14573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d389190612181565b63ffffffff168c63ffffffff1611610d635760405163207617df60e01b815260040160405180910390fd5b63ffffffff8c165f908152609960205260409020548b14610d975760405163639d09b560e11b815260040160405180910390fd5b610dad8b8b8b8b610da88c8c610ef0565b61185c565b6002836002811115610dc157610dc1612146565b03610e52577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636738c40b858e610e00856118c1565b866040518563ffffffff1660e01b8152600401610e2094939291906121dc565b5f604051808303815f87803b158015610e37575f5ffd5b505af1158015610e49573d5f5f3e3d5ffd5b50505050610ec5565b6001836002811115610e6657610e66612146565b03610ad1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166356d482f5858e610ea5856118dd565b866040518563ffffffff1660e01b8152600401610e20949392919061225d565b505050505b610ed4600160c955565b5050505050505050565b610ee6611697565b6108fc8282611403565b5f608e8383604051602001610f0793929190612302565b6040516020818303038152906040528051906020012090505b92915050565b610f2e6115f4565b5f818152609c602052604090205460ff16610f5c5760405163504570e360e01b815260040160405180910390fd5b7fcefe99cb2e240b5f07de5cd472a75fc6e345370b73588ab161cb25c4a259a8698103610f9c576040516319920afd60e11b815260040160405180910390fd5b5f818152609c6020526040808220805460ff191690555182917f8bd43de1250f58fe6ec9a78671a8b78dba70f0018656d157a3aeaabec389df3491a250565b604080517f4491f5ee91595f938885ef73c9a1fa8a6d14ff9b9dab4aa24b8802bbb9bfc1cc602082015290810184905263ffffffff8084166060830152821660808201525f9060a0016040516020818303038152906040528051906020012090509392505050565b5f61104d8161172e565b611055611759565b428363ffffffff16111561107c57604051635a119db560e11b815260040160405180910390fd5b60975463ffffffff620100009091048116908416116110ae5760405163037fa86b60e31b815260040160405180910390fd5b6110b9848484610fdb565b8560200135146110dc57604051638b56642d60e01b815260040160405180910390fd5b6040805160018082528183019092525f91602080830190803683375050609754825192935061ffff16918391505f9061111757611117612329565b61ffff90921660209283029190910190910152604051625f5e5d60e21b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063017d79749061117c906098908b90879060040161245b565b6020604051808303815f875af1158015611198573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111bc91906121bd565b9050806111dc57604051633042041f60e21b815260040160405180910390fd5b6097805463ffffffff80881662010000810265ffffffff000019909316929092179092555f818152609a602090815260408083208054958a1663ffffffff1996871681179091558352609b825280832080549095168417909455828252609981528382208a9055898252609c9052828120805460ff19166001179055915188927f010dcbe0d1e019c93357711f7bb6287d543b7ff7de74f29df3fb5ecceec8d36991a3505061128b600160c955565b5050505050565b61129a611697565b6001600160a01b0381166112ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610782565b61091181611375565b6113106118f3565b606654801982198116146113375760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b81609861141082826125e8565b5050604051635ddb9b5b60e01b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635ddb9b5b90611460908690600401612679565b602060405180830381865afa15801561147b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061149f9190612181565b905063ffffffff8116156114c657604051636446f91760e01b815260040160405180910390fd5b604051636738c40b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636738c40b9061151a9086906001908790609d90600401612687565b5f604051808303815f87803b158015611531575f5ffd5b505af1158015611543573d5f5f3e3d5ffd5b505050507f3463431b09dfd43dec7349f8f24acfa753fe4cf40a26235402d213373df15856836040516115769190612679565b60405180910390a1505050565b61271061ffff821611156115aa576040516307336f0360e11b815260040160405180910390fd5b6097805461ffff191661ffff83169081179091556040519081527ff5d1836df8fcd7c1e54047e94ac8773d2855395603e2ef9ba5f5f16905f225929060200160405180910390a150565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611656573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167a91906121bd565b610a4e57604051631d77d47760e21b815260040160405180910390fd5b6033546001600160a01b03163314610a4e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610782565b60605f6116fd836119a4565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b606654600160ff83161b908116036109115760405163840a48d560e01b815260040160405180910390fd5b600260c954036117ab5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610782565b600260c955565b604080518082019091525f8082526020820152604080518082019091525f808252602082018190529060606117e985870187612760565b9299919850965090945092505050565b5f815f0151826020015163ffffffff1660405160200161184492919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b604051602081830303815290604052610f2090612825565b6118a483838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508992508591505063ffffffff88166119cb565b61128b5760405163afa42ca760e01b815260040160405180910390fd5b6118c9611ac5565b81806020019051810190610f2091906128ad565b606081806020019051810190610f20919061295c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561194f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119739190612a5d565b6001600160a01b0316336001600160a01b031614610a4e5760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f811115610f2057604051632cd44ac360e21b815260040160405180910390fd5b5f836119ea576040516329e7276760e11b815260040160405180910390fd5b836119f6868585611a00565b1495945050505050565b5f83515f03611a105750816109b6565b60208451611a1e9190612a78565b15611a3c576040516313717da960e21b815260040160405180910390fd5b8260205b85518111611a9d57611a53600285612a78565b5f03611a7457815f528086015160205260405f209150600284049350611a8b565b808601515f528160205260405f2091506002840493505b611a96602082612a97565b9050611a40565b508215611abd576040516363df817160e01b815260040160405180910390fd5b949350505050565b60405180608001604052805f81526020015f8152602001611af760405180604001604052805f81526020015f81525090565b8152602001606081525090565b6001600160a01b0381168114610911575f5ffd5b5f60408284031215611b28575f5ffd5b50919050565b803561ffff81168114610aea575f5ffd5b5f60a08284031215611b28575f5ffd5b5f5f5f5f5f60c08688031215611b63575f5ffd5b8535611b6e81611b04565b945060208601359350611b848760408801611b18565b9250611b9260808701611b2e565b915060a08601356001600160401b03811115611bac575f5ffd5b611bb888828901611b3f565b9150509295509295909350565b5f60208284031215611bd5575f5ffd5b5035919050565b63ffffffff81168114610911575f5ffd5b5f60208284031215611bfd575f5ffd5b81356109b681611bdc565b80516001600160a01b0316825260209081015163ffffffff16910152565b60408101610f208284611c08565b5f60208284031215611c44575f5ffd5b6109b682611b2e565b5f5f5f60608486031215611c5f575f5ffd5b833592506020840135611c7181611bdc565b91506040840135611c8181611bdc565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715611cc257611cc2611c8c565b60405290565b604051608081016001600160401b0381118282101715611cc257611cc2611c8c565b604051601f8201601f191681016001600160401b0381118282101715611d1257611d12611c8c565b604052919050565b5f6001600160401b03821115611d3257611d32611c8c565b5060051b60200190565b5f60208284031215611d4c575f5ffd5b81356001600160401b03811115611d61575f5ffd5b82018084036060811215611d73575f5ffd5b611d7b611ca0565b6040821215611d88575f5ffd5b611d90611ca0565b83358152602080850135908201528152604083013591506001600160401b03821115611dba575f5ffd5b818301925085601f840112611dcd575f5ffd5b82359150611de2611ddd83611d1a565b611cea565b8083825260208201915060208460051b860101935087841115611e03575f5ffd5b6020850194505b83851015611e25578435825260209485019490910190611e0a565b60208301525095945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611e79575f5ffd5b813560ff811681146109b6575f5ffd5b803560038110610aea575f5ffd5b5f60208284031215611ea7575f5ffd5b6109b682611e89565b5f5f83601f840112611ec0575f5ffd5b5081356001600160401b03811115611ed6575f5ffd5b602083019150836020828501011115611eed575f5ffd5b9250929050565b5f5f5f5f5f5f5f60a0888a031215611f0a575f5ffd5b8735611f1581611bdc565b9650602088013595506040880135611f2c81611bdc565b945060608801356001600160401b03811115611f46575f5ffd5b611f528a828b01611eb0565b90955093505060808801356001600160401b03811115611f70575f5ffd5b611f7c8a828b01611eb0565b989b979a50959850939692959293505050565b5f5f60608385031215611fa0575f5ffd5b611faa8484611b18565b915060408301356001600160401b03811115611fc4575f5ffd5b611fd085828601611b3f565b9150509250929050565b5f5f60208385031215611feb575f5ffd5b82356001600160401b03811115612000575f5ffd5b61200c85828601611eb0565b90969095509350505050565b5f5f5f5f6080858703121561202b575f5ffd5b84356001600160401b03811115612040575f5ffd5b85016101208188031215612052575f5ffd5b935060208501359250604085013561206981611bdc565b9150606085013561207981611bdc565b939692955090935050565b5f60208284031215612094575f5ffd5b81356109b681611b04565b5f602082840312156120af575f5ffd5b5051919050565b5f8151808452602084019350602083015f5b828110156120e65781518652602095860195909101906001016120c8565b5093949350505050565b60208082528251805183830152015160408201525f6020830151606080840152611abd60808401826120b6565b60ff60f81b8360f81b1681525f82518060208501600185015e5f92016001019182525092915050565b634e487b7160e01b5f52602160045260245ffd5b60408101610f208284546001600160a01b038116825260a01c63ffffffff16602090910152565b5f60208284031215612191575f5ffd5b81516109b681611bdc565b606081016121aa8285611c08565b63ffffffff831660408301529392505050565b5f602082840312156121cd575f5ffd5b815180151581146109b6575f5ffd5b6121e68186611c08565b63ffffffff8416604082015260c06060820152825160c0820152602083015160e08201525f604084015161222861010084018280518252602090810151910152565b50606084015160a06101408401526122446101608401826120b6565b9150506122546080830184611c08565b95945050505050565b5f60c0820161226c8388611c08565b63ffffffff8616604084015260c0606084015280855180835260e08501915060e08160051b8601019250602087015f5b828110156122ed5786850360df19018452815180516001600160a01b031686526020908101516040918701829052906122d7908701826120b6565b955050602093840193919091019060010161229c565b50505050809150506122546080830184611c08565b60f884901b6001600160f81b0319168152818360018301375f910160010190815292915050565b634e487b7160e01b5f52603260045260245ffd5b5f5f8335601e19843603018112612352575f5ffd5b83016020810192503590506001600160401b03811115612370575f5ffd5b8060051b3603821315611eed575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8235605e198336030181126123bd575f5ffd5b90910192915050565b8183525f6001600160fb1b038311156123dd575f5ffd5b8260051b80836020870137939093016020019392505050565b80358252602080820135908301525f612412604083018361233d565b606060408601526122546060860182846123c6565b5f8151808452602084019350602083015f5b828110156120e657815161ffff16865260209586019590910190600101612439565b61247e8185546001600160a01b038116825260a01c63ffffffff16602090910152565b608060408201525f6101a08201843561249681611bdc565b63ffffffff166080840152602085013560a0840152604085013560c0840152606085013560e0840152604060808601610100850137604060c086016101408501376124e561010086018661233d565b610120610180860152828184526101c0860190506101c08260051b8701019350825f5b838110156125c7578786036101bf1901835261252482866123a9565b803561252f81611bdc565b63ffffffff168752602081013536829003601e1901811261254e575f5ffd5b81016020810190356001600160401b03811115612569575f5ffd5b803603821315612577575f5ffd5b606060208a015261258c60608a018284612381565b91505061259c60408301836123a9565b915087810360408901526125b081836123f6565b975050506020928301929190910190600101612508565b505050505082810360608401526125de8185612427565b9695505050505050565b81356125f381611b04565b81546001600160a01b031981166001600160a01b03929092169182178355602084013561261f81611bdc565b6001600160c01b03199190911690911760a09190911b63ffffffff60a01b1617905550565b803561264f81611b04565b6001600160a01b03168252602081013561266881611bdc565b63ffffffff81166020840152505050565b60408101610f208284612644565b6126918186612644565b63ffffffff841660408281019190915260c06060808401829052853591840191909152602085013560e0840152908401356101008301528301356101208201525f6126df608085018561233d565b60a06101408501526126f6610160850182846123c6565b925050506122546080830184546001600160a01b038116825260a01c63ffffffff16602090910152565b5f60408284031215612730575f5ffd5b612738611ca0565b9050813561274581611b04565b8152602082013561275581611bdc565b602082015292915050565b5f5f5f5f60c08587031215612773575f5ffd5b61277d8686612720565b935061278b60408601611e89565b925061279a8660608701612720565b915060a08501356001600160401b038111156127b4575f5ffd5b8501601f810187136127c4575f5ffd5b80356001600160401b038111156127dd576127dd611c8c565b6127f0601f8201601f1916602001611cea565b818152886020838501011115612804575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b80516020808301519190811015611b28575f1960209190910360031b1b16919050565b5f82601f830112612857575f5ffd5b8151612865611ddd82611d1a565b8082825260208201915060208360051b860101925085831115612886575f5ffd5b602085015b838110156128a357805183526020928301920161288b565b5095945050505050565b5f602082840312156128bd575f5ffd5b81516001600160401b038111156128d2575f5ffd5b820180840360a08112156128e4575f5ffd5b6128ec611cc8565b82518152602080840151908201526040603f198301121561290b575f5ffd5b612913611ca0565b604084810151825260608501516020830152820152608083015191506001600160401b03821115612942575f5ffd5b61294e86838501612848565b606082015295945050505050565b5f6020828403121561296c575f5ffd5b81516001600160401b03811115612981575f5ffd5b8201601f81018413612991575f5ffd5b805161299f611ddd82611d1a565b8082825260208201915060208360051b8501019250868311156129c0575f5ffd5b602084015b83811015612a525780516001600160401b038111156129e2575f5ffd5b85016040818a03601f190112156129f7575f5ffd5b6129ff611ca0565b6020820151612a0d81611b04565b815260408201516001600160401b03811115612a27575f5ffd5b612a368b602083860101612848565b60208301525080855250506020830192506020810190506129c5565b509695505050505050565b5f60208284031215612a6d575f5ffd5b81516109b681611b04565b5f82612a9257634e487b7160e01b5f52601260045260245ffd5b500690565b80820180821115610f2057634e487b7160e01b5f52601160045260245ffdfea26469706673582212200c08c24e8a97c7749812f9dda90ce24a9ef882dbee243c0833a48871c761caec64736f6c634300081b0033", } // OperatorTableUpdaterABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/PauserRegistry/binding.go b/pkg/bindings/PauserRegistry/binding.go index 1e8885e369..dfb7ea4084 100644 --- a/pkg/bindings/PauserRegistry/binding.go +++ b/pkg/bindings/PauserRegistry/binding.go @@ -32,7 +32,7 @@ var ( // PauserRegistryMetaData contains all meta data concerning the PauserRegistry contract. var PauserRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_pausers\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"_unpauser\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isPauser\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setIsPauser\",\"inputs\":[{\"name\":\"newPauser\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"canPause\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setUnpauser\",\"inputs\":[{\"name\":\"newUnpauser\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpauser\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"PauserStatusChanged\",\"inputs\":[{\"name\":\"pauser\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"canPause\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UnpauserChanged\",\"inputs\":[{\"name\":\"previousUnpauser\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newUnpauser\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]}]", - Bin: "0x608060405234801561000f575f5ffd5b506040516105c83803806105c883398101604081905261002e916101c2565b5f5b825181101561006b5761006383828151811061004e5761004e61029e565b6020026020010151600161007c60201b60201c565b600101610030565b5061007581610103565b50506102b2565b6001600160a01b0382166100a3576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0382165f8181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661012a576040516339b190bb60e11b815260040160405180910390fd5b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b03811681146101bd575f5ffd5b919050565b5f5f604083850312156101d3575f5ffd5b82516001600160401b038111156101e8575f5ffd5b8301601f810185136101f8575f5ffd5b80516001600160401b0381111561021157610211610193565b604051600582901b90603f8201601f191681016001600160401b038111828210171561023f5761023f610193565b60405291825260208184018101929081018884111561025c575f5ffd5b6020850194505b8385101561028257610274856101a7565b815260209485019401610263565b50945061029592505050602084016101a7565b90509250929050565b634e487b7160e01b5f52603260045260245ffd5b610309806102bf5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c806346fbf68e1461004e5780638568520614610085578063ce5484281461009a578063eab66d7a146100ad575b5f5ffd5b61007061005c36600461027a565b5f6020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009861009336600461029a565b6100d8565b005b6100986100a836600461027a565b610111565b6001546100c0906001600160a01b031681565b6040516001600160a01b03909116815260200161007c565b6001546001600160a01b031633146101035760405163794821ff60e01b815260040160405180910390fd5b61010d8282610148565b5050565b6001546001600160a01b0316331461013c5760405163794821ff60e01b815260040160405180910390fd5b610145816101cf565b50565b6001600160a01b03821661016f576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0382165f8181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101f6576040516339b190bb60e11b815260040160405180910390fd5b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b0381168114610275575f5ffd5b919050565b5f6020828403121561028a575f5ffd5b6102938261025f565b9392505050565b5f5f604083850312156102ab575f5ffd5b6102b48361025f565b9150602083013580151581146102c8575f5ffd5b80915050925092905056fea2646970667358221220db74dd8a1c2636fc45fee53a0fefff90f86f0498901cb732dc4c0ce26247557164736f6c634300081b0033", + Bin: "0x608060405234801561000f575f5ffd5b506040516105c83803806105c883398101604081905261002e916101c2565b5f5b825181101561006b5761006383828151811061004e5761004e61029e565b6020026020010151600161007c60201b60201c565b600101610030565b5061007581610103565b50506102b2565b6001600160a01b0382166100a3576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0382165f8181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661012a576040516339b190bb60e11b815260040160405180910390fd5b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b03811681146101bd575f5ffd5b919050565b5f5f604083850312156101d3575f5ffd5b82516001600160401b038111156101e8575f5ffd5b8301601f810185136101f8575f5ffd5b80516001600160401b0381111561021157610211610193565b604051600582901b90603f8201601f191681016001600160401b038111828210171561023f5761023f610193565b60405291825260208184018101929081018884111561025c575f5ffd5b6020850194505b8385101561028257610274856101a7565b815260209485019401610263565b50945061029592505050602084016101a7565b90509250929050565b634e487b7160e01b5f52603260045260245ffd5b610309806102bf5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c806346fbf68e1461004e5780638568520614610085578063ce5484281461009a578063eab66d7a146100ad575b5f5ffd5b61007061005c36600461027a565b5f6020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009861009336600461029a565b6100d8565b005b6100986100a836600461027a565b610111565b6001546100c0906001600160a01b031681565b6040516001600160a01b03909116815260200161007c565b6001546001600160a01b031633146101035760405163794821ff60e01b815260040160405180910390fd5b61010d8282610148565b5050565b6001546001600160a01b0316331461013c5760405163794821ff60e01b815260040160405180910390fd5b610145816101cf565b50565b6001600160a01b03821661016f576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0382165f8181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101f6576040516339b190bb60e11b815260040160405180910390fd5b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b0381168114610275575f5ffd5b919050565b5f6020828403121561028a575f5ffd5b6102938261025f565b9392505050565b5f5f604083850312156102ab575f5ffd5b6102b48361025f565b9150602083013580151581146102c8575f5ffd5b80915050925092905056fea2646970667358221220912d9aab30be938dab3ebca2aa9bf6b6198fb6a29afd7dcf21e3a0efc0574d9c64736f6c634300081b0033", } // PauserRegistryABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/PermissionController/binding.go b/pkg/bindings/PermissionController/binding.go index 0da8ed3538..db53a9ade5 100644 --- a/pkg/bindings/PermissionController/binding.go +++ b/pkg/bindings/PermissionController/binding.go @@ -32,7 +32,7 @@ var ( // PermissionControllerMetaData contains all meta data concerning the PermissionController contract. var PermissionControllerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"acceptAdmin\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"addPendingAdmin\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"admin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"canCall\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"caller\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selector\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAdmins\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAppointeePermissions\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"appointee\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"\",\"type\":\"bytes4[]\",\"internalType\":\"bytes4[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAppointees\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selector\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPendingAdmins\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isAdmin\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"caller\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isPendingAdmin\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"pendingAdmin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeAdmin\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"admin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeAppointee\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"appointee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selector\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removePendingAdmin\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"admin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setAppointee\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"appointee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"selector\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"AdminRemoved\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"admin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AdminSet\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"admin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AppointeeRemoved\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"appointee\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"target\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"selector\",\"type\":\"bytes4\",\"indexed\":false,\"internalType\":\"bytes4\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AppointeeSet\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"appointee\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"target\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"selector\",\"type\":\"bytes4\",\"indexed\":false,\"internalType\":\"bytes4\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PendingAdminAdded\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"admin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PendingAdminRemoved\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"admin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AdminAlreadyPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AdminAlreadySet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AdminNotPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AdminNotSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AppointeeAlreadySet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AppointeeNotSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotHaveZeroAdmins\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotAdmin\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]}]", - Bin: "0x60a060405234801561000f575f5ffd5b506040516112b73803806112b783398101604081905261002e9161015c565b806100388161004a565b60805250610044610090565b50610267565b5f5f829050601f8151111561007d578260405163305a27a960e01b8152600401610074919061020c565b60405180910390fd5b805161008882610241565b179392505050565b5f54610100900460ff16156100f75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610074565b5f5460ff90811614610146575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f6020828403121561016c575f5ffd5b81516001600160401b03811115610181575f5ffd5b8201601f81018413610191575f5ffd5b80516001600160401b038111156101aa576101aa610148565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101d8576101d8610148565b6040528181528282016020018610156101ef575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610261575f198160200360031b1b821691505b50919050565b60805161103861027f5f395f6104d101526110385ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80639100674511610088578063ad8aca7711610063578063ad8aca77146101df578063df595cb8146101f2578063eb5a4e8714610205578063fddbdefd14610218575f5ffd5b80639100674514610196578063950d806e146101b9578063ad5f2210146101cc575f5ffd5b806354fd4d50116100c357806354fd4d5014610124578063628806ef146101425780636bddfa1f14610155578063882a3b3814610175575f5ffd5b806306641201146100e9578063268959e5146100fe5780634f906cf914610111575b5f5ffd5b6100fc6100f7366004610dbd565b61022b565b005b6100fc61010c366004610e0e565b61034c565b6100fc61011f366004610e0e565b610427565b61012c6104ca565b6040516101399190610e3f565b60405180910390f35b6100fc610150366004610e74565b6104fa565b610168610163366004610e74565b610588565b6040516101399190610ed0565b610188610183366004610e0e565b6105b1565b604051610139929190610ee2565b6101a96101a4366004610e0e565b610712565b6040519015158152602001610139565b6100fc6101c7366004610dbd565b610782565b6101686101da366004610e74565b610893565b6101a96101ed366004610e0e565b610939565b6101a9610200366004610dbd565b61095a565b6100fc610213366004610e0e565b6109af565b610168610226366004610f44565b610a7d565b836102368133610712565b61025357604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b0385165f908152600160205260408120906102758585610abb565b6001600160a01b0387165f908152600484016020526040902090915061029b9082610ae8565b6102b85760405163262118cd60e01b815260040160405180910390fd5b6001600160a01b0386165f90815260048301602052604090206102db9082610aff565b505f81815260058301602052604090206102f59087610b0a565b50856001600160a01b0316876001600160a01b03167f18242326b6b862126970679759169f01f646bd55ec5bfcab85ba9f337a74e0c6878760405161033b929190610f84565b60405180910390a350505050505050565b816103578133610712565b61037457604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b0383165f9081526001602081905260409091206002019061039b82610b1e565b116103b9576040516310ce892b60e31b815260040160405180910390fd5b6103c38184610b0a565b6103e057604051630716d81b60e51b815260040160405180910390fd5b6040516001600160a01b0384811682528516907fdb9d5d31320daf5bc7181d565b6da4d12e30f0f4d5aa324a992426c14a1d19ce906020015b60405180910390a250505050565b816104328133610712565b61044f57604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b0383165f9081526001602052604090206104708184610b0a565b61048d5760405163bed8295f60e01b815260040160405180910390fd5b6040516001600160a01b0384811682528516907fd706ed7ae044d795b49e54c9f519f663053951011985f663a862cd9ee72a9ac790602001610419565b60606104f57f0000000000000000000000000000000000000000000000000000000000000000610b27565b905090565b6001600160a01b0381165f90815260016020526040902061051b8133610b0a565b6105385760405163bed8295f60e01b815260040160405180910390fd5b6105456002820133610b64565b506040513381526001600160a01b038316907fbf265e8326285a2747e33e54d5945f7111f2b5edb826eb8c08d4677779b3ff979060200160405180910390a25050565b6001600160a01b0381165f9081526001602052604090206060906105ab90610b78565b92915050565b6001600160a01b038083165f9081526001602090815260408083209385168352600490930190529081206060918291906105ea82610b1e565b90505f8167ffffffffffffffff81111561060657610606610fa7565b60405190808252806020026020018201604052801561062f578160200160208202803683370190505b5090505f8267ffffffffffffffff81111561064c5761064c610fa7565b604051908082528060200260200182016040528015610675578160200160208202803683370190505b5090505f5b83811015610704576106a861068f8683610b84565b606081901c9160a09190911b6001600160e01b03191690565b8483815181106106ba576106ba610fbb565b602002602001018484815181106106d3576106d3610fbb565b6001600160e01b0319909316602093840291909101909201919091526001600160a01b03909116905260010161067a565b509097909650945050505050565b6001600160a01b0382165f90815260016020526040812061073590600201610b1e565b5f0361075757816001600160a01b0316836001600160a01b03161490506105ab565b6001600160a01b0383165f90815260016020526040902061077b9060020183610b8f565b9392505050565b8361078d8133610712565b6107aa57604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b0385165f908152600160205260408120906107cc8585610abb565b6001600160a01b0387165f90815260048401602052604090209091506107f29082610ae8565b156108105760405163ad8efeb760e01b815260040160405180910390fd5b6001600160a01b0386165f90815260048301602052604090206108339082610bb0565b505f818152600583016020526040902061084d9087610b64565b50856001600160a01b0316876001600160a01b03167f037f03a2ad6b967df4a01779b6d2b4c85950df83925d9e31362b519422fc0169878760405161033b929190610f84565b6001600160a01b0381165f9081526001602052604090206060906108b990600201610b1e565b5f03610911576040805160018082528183019092525f916020808301908036833701905050905082815f815181106108f3576108f3610fbb565b6001600160a01b039092166020928302919091019091015292915050565b6001600160a01b0382165f9081526001602052604090206105ab90600201610b78565b919050565b6001600160a01b0382165f90815260016020526040812061077b9083610b8f565b5f6109658585610712565b806109a657506109a66109788484610abb565b6001600160a01b038088165f908152600160209081526040808320938a168352600490930190522090610ae8565b95945050505050565b816109ba8133610712565b6109d757604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b0383165f9081526001602052604090206109fb6002820184610b8f565b15610a195760405163130160e560e31b815260040160405180910390fd5b610a238184610b64565b610a40576040516319abede360e11b815260040160405180910390fd5b6040516001600160a01b0384811682528516907fb14b9a3d448c5b04f0e5b087b6f5193390db7955482a6ffb841e7b3ba61a460c90602001610419565b60605f610a8a8484610abb565b6001600160a01b0386165f90815260016020908152604080832084845260050190915290209091506109a690610b78565b60609190911b6bffffffffffffffffffffffff191660a09190911c6bffffffff0000000000000000161790565b5f818152600183016020526040812054151561077b565b5f61077b8383610bbb565b5f61077b836001600160a01b038416610bbb565b5f6105ab825490565b60605f610b3383610c9e565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f61077b836001600160a01b038416610cc5565b60605f61077b83610d11565b5f61077b8383610d6a565b6001600160a01b0381165f908152600183016020526040812054151561077b565b5f61077b8383610cc5565b5f8181526001830160205260408120548015610c95575f610bdd600183610fcf565b85549091505f90610bf090600190610fcf565b9050818114610c4f575f865f018281548110610c0e57610c0e610fbb565b905f5260205f200154905080875f018481548110610c2e57610c2e610fbb565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610c6057610c60610fee565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506105ab565b5f9150506105ab565b5f60ff8216601f8111156105ab57604051632cd44ac360e21b815260040160405180910390fd5b5f818152600183016020526040812054610d0a57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556105ab565b505f6105ab565b6060815f01805480602002602001604051908101604052809291908181526020018280548015610d5e57602002820191905f5260205f20905b815481526020019060010190808311610d4a575b50505050509050919050565b5f825f018281548110610d7f57610d7f610fbb565b905f5260205f200154905092915050565b80356001600160a01b0381168114610934575f5ffd5b80356001600160e01b031981168114610934575f5ffd5b5f5f5f5f60808587031215610dd0575f5ffd5b610dd985610d90565b9350610de760208601610d90565b9250610df560408601610d90565b9150610e0360608601610da6565b905092959194509250565b5f5f60408385031215610e1f575f5ffd5b610e2883610d90565b9150610e3660208401610d90565b90509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610e84575f5ffd5b61077b82610d90565b5f8151808452602084019350602083015f5b82811015610ec65781516001600160a01b0316865260209586019590910190600101610e9f565b5093949350505050565b602081525f61077b6020830184610e8d565b604081525f610ef46040830185610e8d565b82810360208401528084518083526020830191506020860192505f5b81811015610f385783516001600160e01b031916835260209384019390920191600101610f10565b50909695505050505050565b5f5f5f60608486031215610f56575f5ffd5b610f5f84610d90565b9250610f6d60208501610d90565b9150610f7b60408501610da6565b90509250925092565b6001600160a01b039290921682526001600160e01b031916602082015260400190565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b818103818111156105ab57634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea26469706673582212202acca6720ebe01af577e9acb79d8b1a859fdbbfef7a7aa4e1e4b6f1070183c6064736f6c634300081b0033", + Bin: "0x60a060405234801561000f575f5ffd5b506040516112b73803806112b783398101604081905261002e9161015c565b806100388161004a565b60805250610044610090565b50610267565b5f5f829050601f8151111561007d578260405163305a27a960e01b8152600401610074919061020c565b60405180910390fd5b805161008882610241565b179392505050565b5f54610100900460ff16156100f75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610074565b5f5460ff90811614610146575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f6020828403121561016c575f5ffd5b81516001600160401b03811115610181575f5ffd5b8201601f81018413610191575f5ffd5b80516001600160401b038111156101aa576101aa610148565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101d8576101d8610148565b6040528181528282016020018610156101ef575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610261575f198160200360031b1b821691505b50919050565b60805161103861027f5f395f6104d101526110385ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80639100674511610088578063ad8aca7711610063578063ad8aca77146101df578063df595cb8146101f2578063eb5a4e8714610205578063fddbdefd14610218575f5ffd5b80639100674514610196578063950d806e146101b9578063ad5f2210146101cc575f5ffd5b806354fd4d50116100c357806354fd4d5014610124578063628806ef146101425780636bddfa1f14610155578063882a3b3814610175575f5ffd5b806306641201146100e9578063268959e5146100fe5780634f906cf914610111575b5f5ffd5b6100fc6100f7366004610dbd565b61022b565b005b6100fc61010c366004610e0e565b61034c565b6100fc61011f366004610e0e565b610427565b61012c6104ca565b6040516101399190610e3f565b60405180910390f35b6100fc610150366004610e74565b6104fa565b610168610163366004610e74565b610588565b6040516101399190610ed0565b610188610183366004610e0e565b6105b1565b604051610139929190610ee2565b6101a96101a4366004610e0e565b610712565b6040519015158152602001610139565b6100fc6101c7366004610dbd565b610782565b6101686101da366004610e74565b610893565b6101a96101ed366004610e0e565b610939565b6101a9610200366004610dbd565b61095a565b6100fc610213366004610e0e565b6109af565b610168610226366004610f44565b610a7d565b836102368133610712565b61025357604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b0385165f908152600160205260408120906102758585610abb565b6001600160a01b0387165f908152600484016020526040902090915061029b9082610ae8565b6102b85760405163262118cd60e01b815260040160405180910390fd5b6001600160a01b0386165f90815260048301602052604090206102db9082610aff565b505f81815260058301602052604090206102f59087610b0a565b50856001600160a01b0316876001600160a01b03167f18242326b6b862126970679759169f01f646bd55ec5bfcab85ba9f337a74e0c6878760405161033b929190610f84565b60405180910390a350505050505050565b816103578133610712565b61037457604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b0383165f9081526001602081905260409091206002019061039b82610b1e565b116103b9576040516310ce892b60e31b815260040160405180910390fd5b6103c38184610b0a565b6103e057604051630716d81b60e51b815260040160405180910390fd5b6040516001600160a01b0384811682528516907fdb9d5d31320daf5bc7181d565b6da4d12e30f0f4d5aa324a992426c14a1d19ce906020015b60405180910390a250505050565b816104328133610712565b61044f57604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b0383165f9081526001602052604090206104708184610b0a565b61048d5760405163bed8295f60e01b815260040160405180910390fd5b6040516001600160a01b0384811682528516907fd706ed7ae044d795b49e54c9f519f663053951011985f663a862cd9ee72a9ac790602001610419565b60606104f57f0000000000000000000000000000000000000000000000000000000000000000610b27565b905090565b6001600160a01b0381165f90815260016020526040902061051b8133610b0a565b6105385760405163bed8295f60e01b815260040160405180910390fd5b6105456002820133610b64565b506040513381526001600160a01b038316907fbf265e8326285a2747e33e54d5945f7111f2b5edb826eb8c08d4677779b3ff979060200160405180910390a25050565b6001600160a01b0381165f9081526001602052604090206060906105ab90610b78565b92915050565b6001600160a01b038083165f9081526001602090815260408083209385168352600490930190529081206060918291906105ea82610b1e565b90505f8167ffffffffffffffff81111561060657610606610fa7565b60405190808252806020026020018201604052801561062f578160200160208202803683370190505b5090505f8267ffffffffffffffff81111561064c5761064c610fa7565b604051908082528060200260200182016040528015610675578160200160208202803683370190505b5090505f5b83811015610704576106a861068f8683610b84565b606081901c9160a09190911b6001600160e01b03191690565b8483815181106106ba576106ba610fbb565b602002602001018484815181106106d3576106d3610fbb565b6001600160e01b0319909316602093840291909101909201919091526001600160a01b03909116905260010161067a565b509097909650945050505050565b6001600160a01b0382165f90815260016020526040812061073590600201610b1e565b5f0361075757816001600160a01b0316836001600160a01b03161490506105ab565b6001600160a01b0383165f90815260016020526040902061077b9060020183610b8f565b9392505050565b8361078d8133610712565b6107aa57604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b0385165f908152600160205260408120906107cc8585610abb565b6001600160a01b0387165f90815260048401602052604090209091506107f29082610ae8565b156108105760405163ad8efeb760e01b815260040160405180910390fd5b6001600160a01b0386165f90815260048301602052604090206108339082610bb0565b505f818152600583016020526040902061084d9087610b64565b50856001600160a01b0316876001600160a01b03167f037f03a2ad6b967df4a01779b6d2b4c85950df83925d9e31362b519422fc0169878760405161033b929190610f84565b6001600160a01b0381165f9081526001602052604090206060906108b990600201610b1e565b5f03610911576040805160018082528183019092525f916020808301908036833701905050905082815f815181106108f3576108f3610fbb565b6001600160a01b039092166020928302919091019091015292915050565b6001600160a01b0382165f9081526001602052604090206105ab90600201610b78565b919050565b6001600160a01b0382165f90815260016020526040812061077b9083610b8f565b5f6109658585610712565b806109a657506109a66109788484610abb565b6001600160a01b038088165f908152600160209081526040808320938a168352600490930190522090610ae8565b95945050505050565b816109ba8133610712565b6109d757604051637bfa4b9f60e01b815260040160405180910390fd5b6001600160a01b0383165f9081526001602052604090206109fb6002820184610b8f565b15610a195760405163130160e560e31b815260040160405180910390fd5b610a238184610b64565b610a40576040516319abede360e11b815260040160405180910390fd5b6040516001600160a01b0384811682528516907fb14b9a3d448c5b04f0e5b087b6f5193390db7955482a6ffb841e7b3ba61a460c90602001610419565b60605f610a8a8484610abb565b6001600160a01b0386165f90815260016020908152604080832084845260050190915290209091506109a690610b78565b60609190911b6bffffffffffffffffffffffff191660a09190911c6bffffffff0000000000000000161790565b5f818152600183016020526040812054151561077b565b5f61077b8383610bbb565b5f61077b836001600160a01b038416610bbb565b5f6105ab825490565b60605f610b3383610c9e565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f61077b836001600160a01b038416610cc5565b60605f61077b83610d11565b5f61077b8383610d6a565b6001600160a01b0381165f908152600183016020526040812054151561077b565b5f61077b8383610cc5565b5f8181526001830160205260408120548015610c95575f610bdd600183610fcf565b85549091505f90610bf090600190610fcf565b9050818114610c4f575f865f018281548110610c0e57610c0e610fbb565b905f5260205f200154905080875f018481548110610c2e57610c2e610fbb565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610c6057610c60610fee565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506105ab565b5f9150506105ab565b5f60ff8216601f8111156105ab57604051632cd44ac360e21b815260040160405180910390fd5b5f818152600183016020526040812054610d0a57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556105ab565b505f6105ab565b6060815f01805480602002602001604051908101604052809291908181526020018280548015610d5e57602002820191905f5260205f20905b815481526020019060010190808311610d4a575b50505050509050919050565b5f825f018281548110610d7f57610d7f610fbb565b905f5260205f200154905092915050565b80356001600160a01b0381168114610934575f5ffd5b80356001600160e01b031981168114610934575f5ffd5b5f5f5f5f60808587031215610dd0575f5ffd5b610dd985610d90565b9350610de760208601610d90565b9250610df560408601610d90565b9150610e0360608601610da6565b905092959194509250565b5f5f60408385031215610e1f575f5ffd5b610e2883610d90565b9150610e3660208401610d90565b90509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610e84575f5ffd5b61077b82610d90565b5f8151808452602084019350602083015f5b82811015610ec65781516001600160a01b0316865260209586019590910190600101610e9f565b5093949350505050565b602081525f61077b6020830184610e8d565b604081525f610ef46040830185610e8d565b82810360208401528084518083526020830191506020860192505f5b81811015610f385783516001600160e01b031916835260209384019390920191600101610f10565b50909695505050505050565b5f5f5f60608486031215610f56575f5ffd5b610f5f84610d90565b9250610f6d60208501610d90565b9150610f7b60408501610da6565b90509250925092565b6001600160a01b039290921682526001600160e01b031916602082015260400190565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b818103818111156105ab57634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea26469706673582212200bfef99c3a205d60791c555845f86aa8d73ec426628fe8d9ce32ca87c87a311f64736f6c634300081b0033", } // PermissionControllerABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/ReleaseManager/binding.go b/pkg/bindings/ReleaseManager/binding.go index 65e1473bdc..0736dab5d7 100644 --- a/pkg/bindings/ReleaseManager/binding.go +++ b/pkg/bindings/ReleaseManager/binding.go @@ -50,7 +50,7 @@ type OperatorSet struct { // ReleaseManagerMetaData contains all meta data concerning the ReleaseManager contract. var ReleaseManagerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getLatestRelease\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIReleaseManagerTypes.Release\",\"components\":[{\"name\":\"artifacts\",\"type\":\"tuple[]\",\"internalType\":\"structIReleaseManagerTypes.Artifact[]\",\"components\":[{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"registry\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"name\":\"upgradeByTime\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLatestUpgradeByTime\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMetadataURI\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRelease\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"releaseId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIReleaseManagerTypes.Release\",\"components\":[{\"name\":\"artifacts\",\"type\":\"tuple[]\",\"internalType\":\"structIReleaseManagerTypes.Artifact[]\",\"components\":[{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"registry\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"name\":\"upgradeByTime\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTotalReleases\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isValidRelease\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"releaseId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"publishMetadataURI\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"publishRelease\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"release\",\"type\":\"tuple\",\"internalType\":\"structIReleaseManagerTypes.Release\",\"components\":[{\"name\":\"artifacts\",\"type\":\"tuple[]\",\"internalType\":\"structIReleaseManagerTypes.Artifact[]\",\"components\":[{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"registry\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"name\":\"upgradeByTime\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"releaseId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MetadataURIPublished\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":true,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"metadataURI\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ReleasePublished\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":true,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"releaseId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"release\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIReleaseManagerTypes.Release\",\"components\":[{\"name\":\"artifacts\",\"type\":\"tuple[]\",\"internalType\":\"structIReleaseManagerTypes.Artifact[]\",\"components\":[{\"name\":\"digest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"registry\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"name\":\"upgradeByTime\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InvalidMetadataURI\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidUpgradeByTime\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MustPublishMetadataURI\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoReleases\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]}]", - Bin: "0x60c060405234801561000f575f5ffd5b5060405161168938038061168983398101604081905261002e9161016a565b6001600160a01b0382166080528061004581610058565b60a0525061005161009e565b5050610294565b5f5f829050601f8151111561008b578260405163305a27a960e01b81526004016100829190610239565b60405180910390fd5b80516100968261026e565b179392505050565b5f54610100900460ff16156101055760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610082565b5f5460ff90811614610154575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561017b575f5ffd5b82516001600160a01b0381168114610191575f5ffd5b60208401519092506001600160401b038111156101ac575f5ffd5b8301601f810185136101bc575f5ffd5b80516001600160401b038111156101d5576101d5610156565b604051601f8201601f19908116603f011681016001600160401b038111828210171561020357610203610156565b60405281815282820160200187101561021a575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561028e575f198160200360031b1b821691505b50919050565b60805160a0516113ce6102bb5f395f61047101525f818160cd01526109ae01526113ce5ff3fe608060405234801561000f575f5ffd5b506004361061009b575f3560e01c806366f409f71161006357806366f409f7146101545780637c09ea8214610175578063a9e0ed6814610188578063b053b56d146101b0578063d30eeb88146101c3575f5ffd5b80633acab5fc1461009f5780634657e26a146100c85780634840a67c14610107578063517e40681461011c57806354fd4d501461013f575b5f5ffd5b6100b26100ad366004610b2b565b6101e4565b6040516100bf9190610c17565b60405180910390f35b6100ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bf565b61011a610115366004610c46565b610348565b005b61012f61012a366004610b2b565b610428565b60405190151581526020016100bf565b61014761046a565b6040516100bf9190610cc5565b610167610162366004610cd7565b61049a565b6040519081526020016100bf565b610167610183366004610cf1565b6104bd565b61019b610196366004610cd7565b610636565b60405163ffffffff90911681526020016100bf565b6101476101be366004610cd7565b6106bc565b6101d66101d1366004610cd7565b610765565b6040516100bf929190610d3d565b60408051808201909152606081525f602082015260015f6102048561090d565b81526020019081526020015f20828154811061022257610222610d5d565b905f5260205f2090600202016040518060400160405290815f8201805480602002602001604051908101604052809291908181526020015f905b82821015610325578382905f5260205f2090600202016040518060400160405290815f820154815260200160018201805461029690610d71565b80601f01602080910402602001604051908101604052809291908181526020018280546102c290610d71565b801561030d5780601f106102e45761010080835404028352916020019161030d565b820191905f5260205f20905b8154815290600101906020018083116102f057829003601f168201915b5050505050815250508152602001906001019061025c565b505050908252506001919091015463ffffffff1660209091015290505b92915050565b6103556020840184610da3565b61035e81610970565b61037b5760405163932d94f760e01b815260040160405180910390fd5b5f82900361039c57604051630eec403f60e41b815260040160405180910390fd5b828260025f6103b86103b3368a90038a018a610cd7565b61090d565b81526020019081526020015f2091826103d2929190610e13565b50836040516103e19190610ecd565b60405180910390207f209e95fbe8dd14c5e1fbf791ee0a83234f45f20cb85504c7068d5ca0d6224588848460405161041a929190610f2c565b60405180910390a250505050565b5f5f6104338461049a565b90505f811161045557604051637a31a0a160e11b815260040160405180910390fd5b610460600182610f53565b9092149392505050565b60606104957f0000000000000000000000000000000000000000000000000000000000000000610a1a565b905090565b5f60015f6104a78461090d565b815260208101919091526040015f205492915050565b5f6104cb6020840184610da3565b6104d481610970565b6104f15760405163932d94f760e01b815260040160405180910390fd5b5f6001816105076103b336899003890189610cd7565b81526020019081526020015f20905060025f61052d878036038101906103b39190610cd7565b81526020019081526020015f20805461054590610d71565b90505f036105665760405163413e6e5760e11b815260040160405180910390fd5b6105766040850160208601610f66565b63ffffffff16158061059d5750426105946040860160208701610f66565b63ffffffff1610155b6105ba5760405163325ec75f60e01b815260040160405180910390fd5b80546001810182555f82815260209020909350849060028502016105de82826110a4565b505082856040516105ef9190610ecd565b60405180910390207f2decd15222f7c4a8c3d4d2e14dcfdc5a0b52eb2d4b81796bfd010ee5cd972fd386604051610626919061122f565b60405180910390a3505092915050565b5f5f60015f6106448561090d565b81526020019081526020015f2090505f81805490501161067757604051637a31a0a160e11b815260040160405180910390fd5b80545f9061068790600190610f53565b905081818154811061069b5761069b610d5d565b5f91825260209091206001600290920201015463ffffffff16949350505050565b606060025f6106ca8461090d565b81526020019081526020015f2080546106e290610d71565b80601f016020809104026020016040519081016040528092919081815260200182805461070e90610d71565b80156107595780601f1061073057610100808354040283529160200191610759565b820191905f5260205f20905b81548152906001019060200180831161073c57829003601f168201915b50505050509050919050565b60408051808201909152606081525f60208201819052905f60015f6107898661090d565b81526020019081526020015f2090505f8180549050116107bc57604051637a31a0a160e11b815260040160405180910390fd5b80545f906107cc90600190610f53565b9050808282815481106107e1576107e1610d5d565b905f5260205f209060020201806040518060400160405290815f8201805480602002602001604051908101604052809291908181526020015f905b828210156108e5578382905f5260205f2090600202016040518060400160405290815f820154815260200160018201805461085690610d71565b80601f016020809104026020016040519081016040528092919081815260200182805461088290610d71565b80156108cd5780601f106108a4576101008083540402835291602001916108cd565b820191905f5260205f20905b8154815290600101906020018083116108b057829003601f168201915b5050505050815250508152602001906001019061081c565b505050908252506001919091015463ffffffff16602090910152919791965090945050505050565b5f815f0151826020015163ffffffff1660405160200161095892919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261034290611356565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156109f6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103429190611379565b60605f610a2683610a57565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f60ff8216601f81111561034257604051632cd44ac360e21b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b0381168114610aa8575f5ffd5b919050565b63ffffffff81168114610abe575f5ffd5b50565b8035610aa881610aad565b5f60408284031215610adc575f5ffd5b6040516040810181811067ffffffffffffffff82111715610aff57610aff610a7e565b604052905080610b0e83610a92565b81526020830135610b1e81610aad565b6020919091015292915050565b5f5f60608385031215610b3c575f5ffd5b610b468484610acc565b946040939093013593505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f6040830182516040855281815180845260608701915060608160051b88010193506020830192505f5b81811015610bf457605f198886030183528351805186526020810151905060406020870152610bde6040870182610b54565b9550506020938401939290920191600101610bac565b505050506020830151610c0f602086018263ffffffff169052565b509392505050565b602081525f610c296020830184610b82565b9392505050565b5f60408284031215610c40575f5ffd5b50919050565b5f5f5f60608486031215610c58575f5ffd5b610c628585610c30565b9250604084013567ffffffffffffffff811115610c7d575f5ffd5b8401601f81018613610c8d575f5ffd5b803567ffffffffffffffff811115610ca3575f5ffd5b866020828401011115610cb4575f5ffd5b939660209190910195509293505050565b602081525f610c296020830184610b54565b5f60408284031215610ce7575f5ffd5b610c298383610acc565b5f5f60608385031215610d02575f5ffd5b610d0c8484610c30565b9150604083013567ffffffffffffffff811115610d27575f5ffd5b610d3385828601610c30565b9150509250929050565b828152604060208201525f610d556040830184610b82565b949350505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680610d8557607f821691505b602082108103610c4057634e487b7160e01b5f52602260045260245ffd5b5f60208284031215610db3575f5ffd5b610c2982610a92565b5b81811015610dd0575f8155600101610dbd565b5050565b601f821115610e0e57805f5260205f20601f840160051c81016020851015610df95750805b610e0b601f850160051c830182610dbc565b50505b505050565b67ffffffffffffffff831115610e2b57610e2b610a7e565b610e3f83610e398354610d71565b83610dd4565b5f601f841160018114610e70575f8515610e595750838201355b5f19600387901b1c1916600186901b178355610e0b565b5f83815260208120601f198716915b82811015610e9f5786850135825560209485019460019092019101610e7f565b5086821015610ebb575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6001600160a01b03610ede83610a92565b1681525f6020830135610ef081610aad565b63ffffffff16602083015250604001919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f610d55602083018486610f04565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561034257610342610f3f565b5f60208284031215610f76575f5ffd5b8135610c2981610aad565b5f8235603e19833603018112610f95575f5ffd5b9190910192915050565b81358155600181016020830135601e19843603018112610fbd575f5ffd5b8301803567ffffffffffffffff81118015610fd6575f5ffd5b813603602084011315610fe7575f5ffd5b5f905050610fff81610ff98554610d71565b85610dd4565b5f601f821160018114611033575f831561101c5750838201602001355b5f19600385901b1c1916600184901b17855561108f565b5f85815260208120601f198516915b8281101561106457602085880181013583559485019460019092019101611042565b5084821015611083575f1960f88660031b161c19602085880101351681555b505060018360011b0185555b50505050505050565b5f813561034281610aad565b8135601e198336030181126110b7575f5ffd5b8201803567ffffffffffffffff8111156110cf575f5ffd5b6020820191508060051b36038213156110e6575f5ffd5b680100000000000000008111156110ff576110ff610a7e565b8254818455808210156111c3576001600160ff1b038116811461112457611124610f3f565b6001600160ff1b038216821461113c5761113c610f3f565b835f5260205f208160011b81018360011b820191505b808210156111c0575f825560018201805461116c90610d71565b80156111b357601f811160018114611186575f83556111b1565b5f838152602090206111a3601f840160051c820160018301610dbc565b505f83815260208120818555555b505b5050600282019150611152565b50505b505f8381526020812083915b83811015611200576111ea6111e48487610f81565b83610f9f565b60209290920191600291909101906001016111cf565b5050505050610dd061121460208401611098565b6001830163ffffffff821663ffffffff198254161781555050565b602081525f606082018335601e1985360301811261124b575f5ffd5b840180356020820167ffffffffffffffff821115611267575f5ffd5b8160051b803603821315611279575f5ffd5b604060208801529382905260809386018401935f908701605e1936869003015b8483101561133357888703607f1901825283358181126112b7575f5ffd5b860160208101358852604081013536829003603e190181126112d7575f5ffd5b0160408101906020013567ffffffffffffffff8111156112f5575f5ffd5b803603821315611303575f5ffd5b604060208a015261131860408a018284610f04565b98505050602084019350602082019150600183019250611299565b50505050505061134560208501610ac1565b63ffffffff81166040850152610c0f565b80516020808301519190811015610c40575f1960209190910360031b1b16919050565b5f60208284031215611389575f5ffd5b81518015158114610c29575f5ffdfea26469706673582212203379f2249603e9a59875b615be4754146f886916fc025c19fa13230b3b40e45864736f6c634300081b0033", + Bin: "0x60c060405234801561000f575f5ffd5b5060405161168938038061168983398101604081905261002e9161016a565b6001600160a01b0382166080528061004581610058565b60a0525061005161009e565b5050610294565b5f5f829050601f8151111561008b578260405163305a27a960e01b81526004016100829190610239565b60405180910390fd5b80516100968261026e565b179392505050565b5f54610100900460ff16156101055760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610082565b5f5460ff90811614610154575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561017b575f5ffd5b82516001600160a01b0381168114610191575f5ffd5b60208401519092506001600160401b038111156101ac575f5ffd5b8301601f810185136101bc575f5ffd5b80516001600160401b038111156101d5576101d5610156565b604051601f8201601f19908116603f011681016001600160401b038111828210171561020357610203610156565b60405281815282820160200187101561021a575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561028e575f198160200360031b1b821691505b50919050565b60805160a0516113ce6102bb5f395f61047101525f818160cd01526109ae01526113ce5ff3fe608060405234801561000f575f5ffd5b506004361061009b575f3560e01c806366f409f71161006357806366f409f7146101545780637c09ea8214610175578063a9e0ed6814610188578063b053b56d146101b0578063d30eeb88146101c3575f5ffd5b80633acab5fc1461009f5780634657e26a146100c85780634840a67c14610107578063517e40681461011c57806354fd4d501461013f575b5f5ffd5b6100b26100ad366004610b2b565b6101e4565b6040516100bf9190610c17565b60405180910390f35b6100ef7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bf565b61011a610115366004610c46565b610348565b005b61012f61012a366004610b2b565b610428565b60405190151581526020016100bf565b61014761046a565b6040516100bf9190610cc5565b610167610162366004610cd7565b61049a565b6040519081526020016100bf565b610167610183366004610cf1565b6104bd565b61019b610196366004610cd7565b610636565b60405163ffffffff90911681526020016100bf565b6101476101be366004610cd7565b6106bc565b6101d66101d1366004610cd7565b610765565b6040516100bf929190610d3d565b60408051808201909152606081525f602082015260015f6102048561090d565b81526020019081526020015f20828154811061022257610222610d5d565b905f5260205f2090600202016040518060400160405290815f8201805480602002602001604051908101604052809291908181526020015f905b82821015610325578382905f5260205f2090600202016040518060400160405290815f820154815260200160018201805461029690610d71565b80601f01602080910402602001604051908101604052809291908181526020018280546102c290610d71565b801561030d5780601f106102e45761010080835404028352916020019161030d565b820191905f5260205f20905b8154815290600101906020018083116102f057829003601f168201915b5050505050815250508152602001906001019061025c565b505050908252506001919091015463ffffffff1660209091015290505b92915050565b6103556020840184610da3565b61035e81610970565b61037b5760405163932d94f760e01b815260040160405180910390fd5b5f82900361039c57604051630eec403f60e41b815260040160405180910390fd5b828260025f6103b86103b3368a90038a018a610cd7565b61090d565b81526020019081526020015f2091826103d2929190610e13565b50836040516103e19190610ecd565b60405180910390207f209e95fbe8dd14c5e1fbf791ee0a83234f45f20cb85504c7068d5ca0d6224588848460405161041a929190610f2c565b60405180910390a250505050565b5f5f6104338461049a565b90505f811161045557604051637a31a0a160e11b815260040160405180910390fd5b610460600182610f53565b9092149392505050565b60606104957f0000000000000000000000000000000000000000000000000000000000000000610a1a565b905090565b5f60015f6104a78461090d565b815260208101919091526040015f205492915050565b5f6104cb6020840184610da3565b6104d481610970565b6104f15760405163932d94f760e01b815260040160405180910390fd5b5f6001816105076103b336899003890189610cd7565b81526020019081526020015f20905060025f61052d878036038101906103b39190610cd7565b81526020019081526020015f20805461054590610d71565b90505f036105665760405163413e6e5760e11b815260040160405180910390fd5b6105766040850160208601610f66565b63ffffffff16158061059d5750426105946040860160208701610f66565b63ffffffff1610155b6105ba5760405163325ec75f60e01b815260040160405180910390fd5b80546001810182555f82815260209020909350849060028502016105de82826110a4565b505082856040516105ef9190610ecd565b60405180910390207f2decd15222f7c4a8c3d4d2e14dcfdc5a0b52eb2d4b81796bfd010ee5cd972fd386604051610626919061122f565b60405180910390a3505092915050565b5f5f60015f6106448561090d565b81526020019081526020015f2090505f81805490501161067757604051637a31a0a160e11b815260040160405180910390fd5b80545f9061068790600190610f53565b905081818154811061069b5761069b610d5d565b5f91825260209091206001600290920201015463ffffffff16949350505050565b606060025f6106ca8461090d565b81526020019081526020015f2080546106e290610d71565b80601f016020809104026020016040519081016040528092919081815260200182805461070e90610d71565b80156107595780601f1061073057610100808354040283529160200191610759565b820191905f5260205f20905b81548152906001019060200180831161073c57829003601f168201915b50505050509050919050565b60408051808201909152606081525f60208201819052905f60015f6107898661090d565b81526020019081526020015f2090505f8180549050116107bc57604051637a31a0a160e11b815260040160405180910390fd5b80545f906107cc90600190610f53565b9050808282815481106107e1576107e1610d5d565b905f5260205f209060020201806040518060400160405290815f8201805480602002602001604051908101604052809291908181526020015f905b828210156108e5578382905f5260205f2090600202016040518060400160405290815f820154815260200160018201805461085690610d71565b80601f016020809104026020016040519081016040528092919081815260200182805461088290610d71565b80156108cd5780601f106108a4576101008083540402835291602001916108cd565b820191905f5260205f20905b8154815290600101906020018083116108b057829003601f168201915b5050505050815250508152602001906001019061081c565b505050908252506001919091015463ffffffff16602090910152919791965090945050505050565b5f815f0151826020015163ffffffff1660405160200161095892919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261034290611356565b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156109f6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103429190611379565b60605f610a2683610a57565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f60ff8216601f81111561034257604051632cd44ac360e21b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b0381168114610aa8575f5ffd5b919050565b63ffffffff81168114610abe575f5ffd5b50565b8035610aa881610aad565b5f60408284031215610adc575f5ffd5b6040516040810181811067ffffffffffffffff82111715610aff57610aff610a7e565b604052905080610b0e83610a92565b81526020830135610b1e81610aad565b6020919091015292915050565b5f5f60608385031215610b3c575f5ffd5b610b468484610acc565b946040939093013593505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f6040830182516040855281815180845260608701915060608160051b88010193506020830192505f5b81811015610bf457605f198886030183528351805186526020810151905060406020870152610bde6040870182610b54565b9550506020938401939290920191600101610bac565b505050506020830151610c0f602086018263ffffffff169052565b509392505050565b602081525f610c296020830184610b82565b9392505050565b5f60408284031215610c40575f5ffd5b50919050565b5f5f5f60608486031215610c58575f5ffd5b610c628585610c30565b9250604084013567ffffffffffffffff811115610c7d575f5ffd5b8401601f81018613610c8d575f5ffd5b803567ffffffffffffffff811115610ca3575f5ffd5b866020828401011115610cb4575f5ffd5b939660209190910195509293505050565b602081525f610c296020830184610b54565b5f60408284031215610ce7575f5ffd5b610c298383610acc565b5f5f60608385031215610d02575f5ffd5b610d0c8484610c30565b9150604083013567ffffffffffffffff811115610d27575f5ffd5b610d3385828601610c30565b9150509250929050565b828152604060208201525f610d556040830184610b82565b949350505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680610d8557607f821691505b602082108103610c4057634e487b7160e01b5f52602260045260245ffd5b5f60208284031215610db3575f5ffd5b610c2982610a92565b5b81811015610dd0575f8155600101610dbd565b5050565b601f821115610e0e57805f5260205f20601f840160051c81016020851015610df95750805b610e0b601f850160051c830182610dbc565b50505b505050565b67ffffffffffffffff831115610e2b57610e2b610a7e565b610e3f83610e398354610d71565b83610dd4565b5f601f841160018114610e70575f8515610e595750838201355b5f19600387901b1c1916600186901b178355610e0b565b5f83815260208120601f198716915b82811015610e9f5786850135825560209485019460019092019101610e7f565b5086821015610ebb575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6001600160a01b03610ede83610a92565b1681525f6020830135610ef081610aad565b63ffffffff16602083015250604001919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f610d55602083018486610f04565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561034257610342610f3f565b5f60208284031215610f76575f5ffd5b8135610c2981610aad565b5f8235603e19833603018112610f95575f5ffd5b9190910192915050565b81358155600181016020830135601e19843603018112610fbd575f5ffd5b8301803567ffffffffffffffff81118015610fd6575f5ffd5b813603602084011315610fe7575f5ffd5b5f905050610fff81610ff98554610d71565b85610dd4565b5f601f821160018114611033575f831561101c5750838201602001355b5f19600385901b1c1916600184901b17855561108f565b5f85815260208120601f198516915b8281101561106457602085880181013583559485019460019092019101611042565b5084821015611083575f1960f88660031b161c19602085880101351681555b505060018360011b0185555b50505050505050565b5f813561034281610aad565b8135601e198336030181126110b7575f5ffd5b8201803567ffffffffffffffff8111156110cf575f5ffd5b6020820191508060051b36038213156110e6575f5ffd5b680100000000000000008111156110ff576110ff610a7e565b8254818455808210156111c3576001600160ff1b038116811461112457611124610f3f565b6001600160ff1b038216821461113c5761113c610f3f565b835f5260205f208160011b81018360011b820191505b808210156111c0575f825560018201805461116c90610d71565b80156111b357601f811160018114611186575f83556111b1565b5f838152602090206111a3601f840160051c820160018301610dbc565b505f83815260208120818555555b505b5050600282019150611152565b50505b505f8381526020812083915b83811015611200576111ea6111e48487610f81565b83610f9f565b60209290920191600291909101906001016111cf565b5050505050610dd061121460208401611098565b6001830163ffffffff821663ffffffff198254161781555050565b602081525f606082018335601e1985360301811261124b575f5ffd5b840180356020820167ffffffffffffffff821115611267575f5ffd5b8160051b803603821315611279575f5ffd5b604060208801529382905260809386018401935f908701605e1936869003015b8483101561133357888703607f1901825283358181126112b7575f5ffd5b860160208101358852604081013536829003603e190181126112d7575f5ffd5b0160408101906020013567ffffffffffffffff8111156112f5575f5ffd5b803603821315611303575f5ffd5b604060208a015261131860408a018284610f04565b98505050602084019350602082019150600183019250611299565b50505050505061134560208501610ac1565b63ffffffff81166040850152610c0f565b80516020808301519190811015610c40575f1960209190910360031b1b16919050565b5f60208284031215611389575f5ffd5b81518015158114610c29575f5ffdfea2646970667358221220052ed1bd5390ae538172254ad9b8c5cdcbd68a93cd2964671194cfb528248f4264736f6c634300081b0033", } // ReleaseManagerABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/RewardsCoordinator/binding.go b/pkg/bindings/RewardsCoordinator/binding.go index 261f953bc9..5b5c6b9c55 100644 --- a/pkg/bindings/RewardsCoordinator/binding.go +++ b/pkg/bindings/RewardsCoordinator/binding.go @@ -115,7 +115,7 @@ type OperatorSet struct { // RewardsCoordinatorMetaData contains all meta data concerning the RewardsCoordinator contract. var RewardsCoordinatorMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsCoordinatorConstructorParams\",\"components\":[{\"name\":\"delegationManager\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"allocationManager\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"},{\"name\":\"pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"permissionController\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"},{\"name\":\"CALCULATION_INTERVAL_SECONDS\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"MAX_REWARDS_DURATION\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"MAX_RETROACTIVE_LENGTH\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"MAX_FUTURE_LENGTH\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"GENESIS_REWARDS_TIMESTAMP\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"version\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"CALCULATION_INTERVAL_SECONDS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"GENESIS_REWARDS_TIMESTAMP\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_FUTURE_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_RETROACTIVE_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_REWARDS_DURATION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"activationDelay\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"allocationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"beaconChainETHStrategy\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateEarnerLeafHash\",\"inputs\":[{\"name\":\"leaf\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.EarnerTreeMerkleLeaf\",\"components\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"earnerTokenRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"calculateTokenLeafHash\",\"inputs\":[{\"name\":\"leaf\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.TokenTreeMerkleLeaf\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"cumulativeEarnings\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"checkClaim\",\"inputs\":[{\"name\":\"claim\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsMerkleClaim\",\"components\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerTreeProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"earnerLeaf\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.EarnerTreeMerkleLeaf\",\"components\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"earnerTokenRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"tokenIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"tokenTreeProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"tokenLeaves\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.TokenTreeMerkleLeaf[]\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"cumulativeEarnings\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"claimerFor\",\"inputs\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createAVSRewardsSubmission\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorDirectedAVSRewardsSubmission\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorDirectedRewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.OperatorDirectedRewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"operatorRewards\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.OperatorReward[]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createOperatorDirectedOperatorSetRewardsSubmission\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"operatorDirectedRewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.OperatorDirectedRewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"operatorRewards\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.OperatorReward[]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createRewardsForAllEarners\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createRewardsForAllSubmission\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cumulativeClaimed\",\"inputs\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[{\"name\":\"totalClaimed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"currRewardsCalculationEndTimestamp\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"defaultOperatorSplitBips\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"delegationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"disableRoot\",\"inputs\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getCurrentClaimableDistributionRoot\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.DistributionRoot\",\"components\":[{\"name\":\"root\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"rewardsCalculationEndTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"disabled\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCurrentDistributionRoot\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.DistributionRoot\",\"components\":[{\"name\":\"root\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"rewardsCalculationEndTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"disabled\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDistributionRootAtIndex\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.DistributionRoot\",\"components\":[{\"name\":\"root\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"rewardsCalculationEndTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"disabled\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDistributionRootsLength\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorAVSSplit\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorPISplit\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getOperatorSetSplit\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRootIndexFromHash\",\"inputs\":[{\"name\":\"rootHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_rewardsUpdater\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_activationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_defaultSplitBips\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isAVSRewardsSubmissionHash\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"hash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"valid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorDirectedAVSRewardsSubmissionHash\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"hash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"valid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperatorDirectedOperatorSetRewardsSubmissionHash\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"hash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"valid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isRewardsForAllSubmitter\",\"inputs\":[{\"name\":\"submitter\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"valid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isRewardsSubmissionForAllEarnersHash\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"hash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"valid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isRewardsSubmissionForAllHash\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"hash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"valid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"permissionController\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPermissionController\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"processClaim\",\"inputs\":[{\"name\":\"claim\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsMerkleClaim\",\"components\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerTreeProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"earnerLeaf\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.EarnerTreeMerkleLeaf\",\"components\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"earnerTokenRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"tokenIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"tokenTreeProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"tokenLeaves\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.TokenTreeMerkleLeaf[]\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"cumulativeEarnings\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"processClaims\",\"inputs\":[{\"name\":\"claims\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.RewardsMerkleClaim[]\",\"components\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"earnerTreeProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"earnerLeaf\",\"type\":\"tuple\",\"internalType\":\"structIRewardsCoordinatorTypes.EarnerTreeMerkleLeaf\",\"components\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"earnerTokenRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"tokenIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"tokenTreeProofs\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"tokenLeaves\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.TokenTreeMerkleLeaf[]\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"cumulativeEarnings\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]},{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rewardsUpdater\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setActivationDelay\",\"inputs\":[{\"name\":\"_activationDelay\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setClaimerFor\",\"inputs\":[{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setClaimerFor\",\"inputs\":[{\"name\":\"earner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"claimer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setDefaultOperatorSplit\",\"inputs\":[{\"name\":\"split\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorAVSSplit\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"split\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorPISplit\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"split\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperatorSetSplit\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"split\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setRewardsForAllSubmitter\",\"inputs\":[{\"name\":\"_submitter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_newValue\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setRewardsUpdater\",\"inputs\":[{\"name\":\"_rewardsUpdater\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"submissionNonce\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"submitRoot\",\"inputs\":[{\"name\":\"root\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"rewardsCalculationEndTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"AVSRewardsSubmissionCreated\",\"inputs\":[{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"submissionNonce\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"rewardsSubmissionHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"rewardsSubmission\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ActivationDelaySet\",\"inputs\":[{\"name\":\"oldActivationDelay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"newActivationDelay\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ClaimerForSet\",\"inputs\":[{\"name\":\"earner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"oldClaimer\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"claimer\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DefaultOperatorSplitBipsSet\",\"inputs\":[{\"name\":\"oldDefaultOperatorSplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"},{\"name\":\"newDefaultOperatorSplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DistributionRootDisabled\",\"inputs\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DistributionRootSubmitted\",\"inputs\":[{\"name\":\"rootIndex\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"root\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"rewardsCalculationEndTimestamp\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAVSSplitBipsSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"oldOperatorAVSSplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"},{\"name\":\"newOperatorAVSSplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorDirectedAVSRewardsSubmissionCreated\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorDirectedRewardsSubmissionHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"submissionNonce\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"operatorDirectedRewardsSubmission\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRewardsCoordinatorTypes.OperatorDirectedRewardsSubmission\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"operatorRewards\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.OperatorReward[]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorDirectedOperatorSetRewardsSubmissionCreated\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorDirectedRewardsSubmissionHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"submissionNonce\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"operatorDirectedRewardsSubmission\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRewardsCoordinatorTypes.OperatorDirectedRewardsSubmission\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"operatorRewards\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.OperatorReward[]\",\"components\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"description\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorPISplitBipsSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"oldOperatorPISplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"},{\"name\":\"newOperatorPISplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorSetSplitBipsSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"activatedAt\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"oldOperatorSetSplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"},{\"name\":\"newOperatorSetSplitBips\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsClaimed\",\"inputs\":[{\"name\":\"root\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"earner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"claimer\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"claimedAmount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsForAllSubmitterSet\",\"inputs\":[{\"name\":\"rewardsForAllSubmitter\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"oldValue\",\"type\":\"bool\",\"indexed\":true,\"internalType\":\"bool\"},{\"name\":\"newValue\",\"type\":\"bool\",\"indexed\":true,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsSubmissionForAllCreated\",\"inputs\":[{\"name\":\"submitter\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"submissionNonce\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"rewardsSubmissionHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"rewardsSubmission\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsSubmissionForAllEarnersCreated\",\"inputs\":[{\"name\":\"tokenHopper\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"submissionNonce\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"rewardsSubmissionHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"rewardsSubmission\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structIRewardsCoordinatorTypes.RewardsSubmission\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinatorTypes.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsUpdaterSet\",\"inputs\":[{\"name\":\"oldRewardsUpdater\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newRewardsUpdater\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AmountExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AmountIsZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DurationExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DurationIsZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EarningsNotGreaterThanClaimed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputArrayLengthZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCalculationIntervalSecondsRemainder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidClaimProof\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidDurationRemainder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEarner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidEarnerLeafIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidGenesisRewardsTimestampRemainder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPermissions\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProofLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidRootIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidStartTimestampRemainder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTokenLeafIndex\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewRootMustBeForNewCalculatedPeriod\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OperatorsNotInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PreviousSplitPending\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RewardsEndTimestampNotElapsed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootAlreadyActivated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootDisabled\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RootNotActivated\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SplitExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StartTimestampTooFarInFuture\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StartTimestampTooFarInPast\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategiesNotInAscendingOrder\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotWhitelisted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"SubmissionNotRetroactive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnauthorizedCaller\",\"inputs\":[]}]", - Bin: "0x6101e0604052348015610010575f5ffd5b50604051614bd4380380614bd483398101604081905261002f9161034a565b610140810151608082015182516020840151604085015160a086015160c087015160e08801516101008901516101208a015160608b01516001600160a01b03811661008d576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b03166080526100a38582610465565b63ffffffff16156100c757604051630e06bd3160e01b815260040160405180910390fd5b6100d46201518086610465565b63ffffffff16156100f85760405163223c7b3960e11b815260040160405180910390fd5b6001600160a01b0397881660a05295871660c05293861660e05263ffffffff9283166101005290821661012052811661014052908116610160521661018052166101a05261014581610158565b6101c0525061015261019e565b506104f3565b5f5f829050601f8151111561018b578260405163305a27a960e01b81526004016101829190610498565b60405180910390fd5b8051610196826104cd565b179392505050565b5f54610100900460ff16156102055760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610182565b5f5460ff90811614610254575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b038111828210171561028d5761028d610256565b60405290565b80516001600160a01b03811681146102a9575f5ffd5b919050565b805163ffffffff811681146102a9575f5ffd5b5f82601f8301126102d0575f5ffd5b81516001600160401b038111156102e9576102e9610256565b604051601f8201601f19908116603f011681016001600160401b038111828210171561031757610317610256565b60405281815283820160200185101561032e575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f6020828403121561035a575f5ffd5b81516001600160401b0381111561036f575f5ffd5b82016101608185031215610381575f5ffd5b61038961026a565b61039282610293565b81526103a060208301610293565b60208201526103b160408301610293565b60408201526103c260608301610293565b60608201526103d360808301610293565b60808201526103e460a083016102ae565b60a08201526103f560c083016102ae565b60c082015261040660e083016102ae565b60e082015261041861010083016102ae565b61010082015261042b61012083016102ae565b6101208201526101408201516001600160401b0381111561044a575f5ffd5b610456868285016102c1565b61014083015250949350505050565b5f63ffffffff83168061048657634e487b7160e01b5f52601260045260245ffd5b8063ffffffff84160691505092915050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156104ed575f198160200360031b1b821691505b50919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516146066105ce5f395f61138701525f81816105f001526124b301525f81816104a4015261341101525f81816103f3015261299801525f818161055201526133cf01525f818161087e01526132b901525f81816107bf01528181613309015261337d01525f81816108d201528181610adc01528181611bff0152611e8c01525f818161057901526134ac01525f81816109450152611b6f01525f81816107510152818161283d01526131ea01526146065ff3fe608060405234801561000f575f5ffd5b50600436106103b3575f3560e01c8063886f1195116101f5578063de02e50311610114578063f6efbb59116100a9578063fabc1cbc11610079578063fabc1cbc14610a33578063fbf1e2c114610a46578063fce36c7d14610a59578063ff9f6cce14610a6c575f5ffd5b8063f6efbb59146109e7578063f74e8eac146109fa578063f8cd844814610a0d578063f96abf2e14610a20575f5ffd5b8063ed71e6a2116100e4578063ed71e6a214610967578063f22cef8514610994578063f2f07ab4146109a7578063f2fde38b146109d4575f5ffd5b8063de02e50314610907578063e063f81f1461091a578063e810ce211461092d578063ea4d3c9b14610940575f5ffd5b8063a50a1d9c1161018a578063bf21a8aa1161015a578063bf21a8aa14610879578063c46db606146108a0578063ca8aa7c7146108cd578063dcbb03b3146108f4575f5ffd5b8063a50a1d9c14610807578063aebd8bae1461081a578063b3dbb0e014610847578063bb7e451f1461085a575f5ffd5b80639cb9a5fa116101c55780639cb9a5fa146107a75780639d45c281146107ba5780639de4b35f146107e1578063a0169ddd146107f4575f5ffd5b8063886f11951461074c5780638da5cb5b146107735780639104c319146107845780639be3d4e41461079f575f5ffd5b80634596021c116102e15780635c975abb11610276578063715018a611610246578063715018a6146106ff5780637b8f8b0514610707578063863cb9a91461070f578063865c695314610722575f5ffd5b80635c975abb146106a25780635e9d8348146106aa57806363f6a798146106bd5780636d21117e146106d2575f5ffd5b806354fd4d50116102b157806354fd4d501461064f57806358baaa3e14610664578063595c6a67146106775780635ac86ab71461067f575f5ffd5b80634596021c146105d85780634657e26a146105eb5780634b943960146106125780634d18cc3514610638575f5ffd5b8063149bc8721161035757806339b70e381161032757806339b70e38146105745780633a8c07861461059b5780633ccc861d146105b25780633efe1db6146105c5575f5ffd5b8063149bc872146104d95780632b9f64a4146104fa57806336af41fa1461053a57806337838ed01461054d575f5ffd5b80630e9a53cf116103925780630e9a53cf1461043f5780630eb383451461048c578063131433b41461049f578063136439dd146104c6575f5ffd5b806218572c146103b757806304a0c502146103ee5780630ca298991461042a575b5f5ffd5b6103d96103c5366004613a33565b60d16020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6104157f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016103e5565b61043d610438366004613aab565b610a7f565b005b610447610d25565b6040516103e591905f6080820190508251825263ffffffff602084015116602083015263ffffffff604084015116604083015260608301511515606083015292915050565b61043d61049a366004613b07565b610e25565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b61043d6104d4366004613b3e565b610ea5565b6104ec6104e7366004613b55565b610edf565b6040519081526020016103e5565b610522610508366004613a33565b60cc6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016103e5565b61043d610548366004613b6f565b610f54565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b6105227f000000000000000000000000000000000000000000000000000000000000000081565b60cb5461041590600160a01b900463ffffffff1681565b61043d6105c0366004613bbe565b6110c5565b61043d6105d3366004613c14565b6110ec565b61043d6105e6366004613c3e565b6112c2565b6105227f000000000000000000000000000000000000000000000000000000000000000081565b610625610620366004613a33565b611325565b60405161ffff90911681526020016103e5565b60cb5461041590600160c01b900463ffffffff1681565b610657611380565b6040516103e59190613c90565b61043d610672366004613cc5565b6113b0565b61043d6113c4565b6103d961068d366004613cde565b606654600160ff9092169190911b9081161490565b6066546104ec565b6103d96106b8366004613cfe565b6113d8565b60cb5461062590600160e01b900461ffff1681565b6103d96106e0366004613d2f565b60cf60209081525f928352604080842090915290825290205460ff1681565b61043d611463565b60ca546104ec565b61043d61071d366004613a33565b611474565b6104ec610730366004613d59565b60cd60209081525f928352604080842090915290825290205481565b6105227f000000000000000000000000000000000000000000000000000000000000000081565b6033546001600160a01b0316610522565b61052273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b610447611485565b61043d6107b5366004613d85565b611521565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b6106256107ef366004613dbc565b61169c565b61043d610802366004613a33565b61171f565b61043d610815366004613df8565b61172a565b6103d9610828366004613d2f565b60d260209081525f928352604080842090915290825290205460ff1681565b61043d610855366004613e11565b61173b565b6104ec610868366004613a33565b60ce6020525f908152604090205481565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b6103d96108ae366004613d2f565b60d060209081525f928352604080842090915290825290205460ff1681565b6105227f000000000000000000000000000000000000000000000000000000000000000081565b61043d610902366004613e3b565b611866565b610447610915366004613b3e565b6119b3565b610625610928366004613d59565b611a43565b61041561093b366004613b3e565b611aa8565b6105227f000000000000000000000000000000000000000000000000000000000000000081565b6103d9610975366004613d2f565b60d360209081525f928352604080842090915290825290205460ff1681565b61043d6109a2366004613d59565b611b29565b6103d96109b5366004613d2f565b60d760209081525f928352604080842090915290825290205460ff1681565b61043d6109e2366004613a33565b611c93565b61043d6109f5366004613e7f565b611d0e565b61043d610a08366004613edd565b611e43565b6104ec610a1b366004613b55565b61200a565b61043d610a2e366004613cc5565b61201a565b61043d610a41366004613b3e565b61214b565b60cb54610522906001600160a01b031681565b61043d610a67366004613b6f565b6121b8565b61043d610a7a366004613b6f565b6122e9565b6009610a8a8161244a565b610a976020850185613a33565b610aa081612475565b610abd5760405163932d94f760e01b815260040160405180910390fd5b610ac561251f565b6040516304c1b8eb60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc75890610b11908890600401613f48565b602060405180830381865afa158015610b2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b509190613f56565b610b6d57604051631fb1705560e21b815260040160405180910390fd5b5f5b83811015610d135736858583818110610b8a57610b8a613f71565b9050602002810190610b9c9190613f85565b90505f60ce81610baf60208b018b613a33565b6001600160a01b031681526020808201929092526040015f90812054925090610bda908a018a613a33565b8284604051602001610bee939291906141ad565b6040516020818303038152906040528051906020012090505f610c1084612578565b9050600160d75f610c2460208e018e613a33565b6001600160a01b0316815260208082019290925260409081015f9081208682529092529020805460ff1916911515919091179055610c638360016141f0565b60ce5f610c7360208e018e613a33565b6001600160a01b03166001600160a01b031681526020019081526020015f208190555081336001600160a01b03167ffff0759ccb371dfb5691798724e70b4fa61cb3bfe730a33ac19fb86a48efc7568c8688604051610cd493929190614203565b60405180910390a3610d03333083610cf26040890160208a01613a33565b6001600160a01b0316929190612763565b505060019092019150610b6f9050565b50610d1e6001609755565b5050505050565b604080516080810182525f80825260208201819052918101829052606081019190915260ca545b8015610dfd575f60ca610d60600184614228565b81548110610d7057610d70613f71565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161580156060830181905291925090610ddf5750806040015163ffffffff164210155b15610dea5792915050565b5080610df58161423b565b915050610d4c565b5050604080516080810182525f80825260208201819052918101829052606081019190915290565b610e2d6127ce565b6001600160a01b0382165f81815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b03919091165f90815260d160205260409020805460ff1916911515919091179055565b610ead612828565b6066548181168114610ed25760405163c61dca5d60e01b815260040160405180910390fd5b610edb826128cb565b5050565b5f80610eee6020840184613a33565b8360200135604051602001610f379392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b6001610f5f8161244a565b335f90815260d1602052604090205460ff16610f8e57604051635c427cd960e01b815260040160405180910390fd5b610f9661251f565b5f5b828110156110b55736848483818110610fb357610fb3613f71565b9050602002810190610fc59190614250565b335f81815260ce60209081526040808320549051949550939192610fef92909185918791016142e2565b60405160208183030381529060405280519060200120905061101083612908565b335f90815260d0602090815260408083208484529091529020805460ff191660019081179091556110429083906141f0565b335f81815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290611089908890614308565b60405180910390a46110aa333060408601803590610cf29060208901613a33565b505050600101610f98565b506110c06001609755565b505050565b60026110d08161244a565b6110d861251f565b6110e283836129f3565b6110c06001609755565b60036110f78161244a565b60cb546001600160a01b0316331461112257604051635c427cd960e01b815260040160405180910390fd5b60cb5463ffffffff600160c01b90910481169083161161115557604051631ca7e50b60e21b815260040160405180910390fd5b428263ffffffff161061117b576040516306957c9160e11b815260040160405180910390fd5b60ca5460cb545f9061119a90600160a01b900463ffffffff164261431a565b6040805160808101825287815263ffffffff87811660208084018281528684168587018181525f6060880181815260ca8054600181018255925297517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029092029182015592517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee290930180549151975193871667ffffffffffffffff1990921691909117600160201b978716979097029690961760ff60401b1916600160401b921515929092029190911790945560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b60026112cd8161244a565b6112d561251f565b5f5b838110156113145761130c8585838181106112f4576112f4613f71565b90506020028101906113069190614336565b846129f3565b6001016112d7565b5061131f6001609755565b50505050565b6001600160a01b0381165f90815260d5602090815260408083208151606081018352905461ffff80821683526201000082041693820193909352600160201b90920463ffffffff169082015261137a90612c7b565b92915050565b60606113ab7f0000000000000000000000000000000000000000000000000000000000000000612ceb565b905090565b6113b86127ce565b6113c181612d28565b50565b6113cc612828565b6113d65f196128cb565b565b5f61145b8260ca6113ec6020830183613cc5565b63ffffffff168154811061140257611402613f71565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff1615156060820152612d99565b506001919050565b61146b6127ce565b6113d65f612f3c565b61147c6127ce565b6113c181612f8d565b604080516080810182525f80825260208201819052918101829052606081019190915260ca80546114b890600190614228565b815481106114c8576114c8613f71565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff1615156060820152919050565b600561152c8161244a565b8361153681612475565b6115535760405163932d94f760e01b815260040160405180910390fd5b61155b61251f565b5f5b83811015610d13573685858381811061157857611578613f71565b905060200281019061158a9190613f85565b6001600160a01b0388165f90815260ce60209081526040808320549051939450926115bb918b9185918791016141ad565b6040516020818303038152906040528051906020012090505f6115dd84612578565b6001600160a01b038b165f90815260d3602090815260408083208684529091529020805460ff1916600190811790915590915061161b9084906141f0565b6001600160a01b038b165f81815260ce60205260409081902092909255905183919033907ffc8888bffd711da60bc5092b33f677d81896fe80ecc677b84cfab8184462b6e09061166e9088908a9061434a565b60405180910390a461168c333083610cf26040890160208a01613a33565b50506001909201915061155d9050565b6001600160a01b0382165f90815260d66020526040812061171890826116cf6116ca36879003870187614362565b612fe8565b815260208082019290925260409081015f208151606081018352905461ffff80821683526201000082041693820193909352600160201b90920463ffffffff1690820152612c7b565b9392505050565b33610edb818361304b565b6117326127ce565b6113c1816130ae565b60076117468161244a565b8261175081612475565b61176d5760405163932d94f760e01b815260040160405180910390fd5b60cb545f9061178990600160a01b900463ffffffff164261431a565b6001600160a01b0386165f90815260d5602090815260408083208151606081018352905461ffff80821683526201000082041693820193909352600160201b90920463ffffffff1690820152919250906117e290612c7b565b6001600160a01b0387165f90815260d560205260409020909150611807908684613119565b6040805163ffffffff8416815261ffff838116602083015287168183015290516001600160a01b0388169133917fd1e028bd664486a46ad26040e999cd2d22e1e9a094ee6afe19fcf64678f16f749181900360600190a3505050505050565b60066118718161244a565b8361187b81612475565b6118985760405163932d94f760e01b815260040160405180910390fd5b60cb545f906118b490600160a01b900463ffffffff164261431a565b6001600160a01b038781165f90815260d460209081526040808320938a1683529281528282208351606081018552905461ffff80821683526201000082041692820192909252600160201b90910463ffffffff169281019290925291925061191b90612c7b565b6001600160a01b038089165f90815260d460209081526040808320938b1683529290522090915061194d908684613119565b6040805163ffffffff8416815261ffff838116602083015287168183015290516001600160a01b0388811692908a169133917f48e198b6ae357e529204ee53a8e514c470ff77d9cc8e4f7207f8b5d490ae6934919081900360600190a450505050505050565b604080516080810182525f80825260208201819052918101829052606081019190915260ca82815481106119e9576119e9613f71565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161515606082015292915050565b6001600160a01b038281165f90815260d46020908152604080832093851683529281528282208351606081018552905461ffff80821683526201000082041692820192909252600160201b90910463ffffffff16928101929092529061171890612c7b565b60ca545f905b63ffffffff811615611b0f578260ca611ac86001846143ca565b63ffffffff1681548110611ade57611ade613f71565b905f5260205f2090600202015f015403611afd576117186001826143ca565b80611b07816143e6565b915050611aae565b5060405163504570e360e01b815260040160405180910390fd5b81611b3381612475565b611b505760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015611bb4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bd89190613f56565b80611c6c575060405163ba1a84e560e01b81526001600160a01b0384811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063ba1a84e590602401602060405180830381865afa158015611c46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6a9190614404565b115b611c895760405163fb494ea160e01b815260040160405180910390fd5b6110c0838361304b565b611c9b6127ce565b6001600160a01b038116611d055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6113c181612f3c565b5f54610100900460ff1615808015611d2c57505f54600160ff909116105b80611d455750303b158015611d4557505f5460ff166001145b611da85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401611cfc565b5f805460ff191660011790558015611dc9575f805461ff0019166101001790555b611dd2856128cb565b611ddb86612f3c565b611de484612f8d565b611ded83612d28565b611df6826130ae565b8015611e3b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6008611e4e8161244a565b83611e5881612475565b611e755760405163932d94f760e01b815260040160405180910390fd5b6040516304c1b8eb60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc75890611ec1908790600401613f48565b602060405180830381865afa158015611edc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f009190613f56565b611f1d57604051631fb1705560e21b815260040160405180910390fd5b60cb545f90611f3990600160a01b900463ffffffff164261431a565b6001600160a01b0387165f90815260d66020526040812091925090611f6b90826116cf6116ca368b90038b018b614362565b6001600160a01b0388165f90815260d660205260408120919250611fb09190611f9c6116ca368b90038b018b614362565b81526020019081526020015f208684613119565b866001600160a01b0316336001600160a01b03167f14918b3834ab6752eb2e1b489b6663a67810efb5f56f3944a97ede8ecf1fd9f18885858a604051611ff9949392919061441b565b60405180910390a350505050505050565b5f6001610eee6020840184613a33565b60036120258161244a565b60cb546001600160a01b0316331461205057604051635c427cd960e01b815260040160405180910390fd5b60ca5463ffffffff831610612078576040516394a8d38960e01b815260040160405180910390fd5b5f60ca8363ffffffff168154811061209257612092613f71565b905f5260205f20906002020190508060010160089054906101000a900460ff16156120d057604051631b14174b60e01b815260040160405180910390fd5b6001810154600160201b900463ffffffff16421061210157604051630c36f66560e21b815260040160405180910390fd5b60018101805460ff60401b1916600160401b17905560405163ffffffff8416907fd850e6e5dfa497b72661fa73df2923464eaed9dc2ff1d3cb82bccbfeabe5c41e905f90a2505050565b6121536131e8565b6066548019821981161461217a5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f6121c28161244a565b6121ca61251f565b5f5b828110156110b557368484838181106121e7576121e7613f71565b90506020028101906121f99190614250565b335f81815260ce6020908152604080832054905194955093919261222392909185918791016142e2565b60405160208183030381529060405280519060200120905061224483612908565b335f90815260cf602090815260408083208484529091529020805460ff191660019081179091556122769083906141f0565b335f81815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e6281906122bd908890614308565b60405180910390a46122de333060408601803590610cf29060208901613a33565b5050506001016121cc565b60046122f48161244a565b335f90815260d1602052604090205460ff1661232357604051635c427cd960e01b815260040160405180910390fd5b61232b61251f565b5f5b828110156110b5573684848381811061234857612348613f71565b905060200281019061235a9190614250565b335f81815260ce6020908152604080832054905194955093919261238492909185918791016142e2565b6040516020818303038152906040528051906020012090506123a583612908565b335f90815260d2602090815260408083208484529091529020805460ff191660019081179091556123d79083906141f0565b335f81815260ce602052604090819020929092559051829184917f5251b6fdefcb5d81144e735f69ea4c695fd43b0289ca53dc075033f5fc80068b9061241e908890614308565b60405180910390a461243f333060408601803590610cf29060208901613a33565b50505060010161232d565b606654600160ff83161b908116036113c15760405163840a48d560e01b815260040160405180910390fd5b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156124fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137a9190613f56565b6002609754036125715760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611cfc565b6002609755565b5f6125ab612586838061444f565b6125966080860160608701613cc5565b6125a660a0870160808801613cc5565b613299565b5f6125b9604084018461444f565b9050116125d95760405163796cc52560e01b815260040160405180910390fd5b426125ea60a0840160808501613cc5565b6125fa6080850160608601613cc5565b612604919061431a565b63ffffffff16106126285760405163150358a160e21b815260040160405180910390fd5b5f80805b612639604086018661444f565b905081101561272a5736612650604087018761444f565b8381811061266057612660613f71565b6040029190910191505f90506126796020830183613a33565b6001600160a01b0316036126a057604051630863a45360e11b815260040160405180910390fd5b6126ad6020820182613a33565b6001600160a01b0316836001600160a01b0316106126de576040516310fb47f160e31b815260040160405180910390fd5b5f816020013511612702576040516310eb483f60e21b815260040160405180910390fd5b61270f6020820182613a33565b925061271f6020820135856141f0565b93505060010161262c565b506f4b3b4ca85a86c47a098a223fffffffff82111561275c5760405163070b5a6f60e21b815260040160405180910390fd5b5092915050565b6040516001600160a01b038085166024830152831660448201526064810182905261131f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613597565b6033546001600160a01b031633146113d65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611cfc565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561288a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128ae9190613f56565b6113d657604051631d77d47760e21b815260040160405180910390fd5b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b612935612915828061444f565b6129256080850160608601613cc5565b6125a660a0860160808701613cc5565b5f816040013511612959576040516310eb483f60e21b815260040160405180910390fd5b6f4b3b4ca85a86c47a098a223fffffffff8160400135111561298e5760405163070b5a6f60e21b815260040160405180910390fd5b6129be63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016426141f0565b6129ce6080830160608401613cc5565b63ffffffff1611156113c157604051637ee2b44360e01b815260040160405180910390fd5b5f60ca612a036020850185613cc5565b63ffffffff1681548110612a1957612a19613f71565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff16151560608201529050612a798382612d99565b5f612a8a6080850160608601613a33565b6001600160a01b038082165f90815260cc60205260409020549192501680612aaf5750805b336001600160a01b03821614612ad857604051635c427cd960e01b815260040160405180910390fd5b5f5b612ae760a0870187614494565b9050811015611e3b5736612afe60e088018861444f565b83818110612b0e57612b0e613f71565b6001600160a01b0387165f90815260cd602090815260408083209302949094019450929091508290612b4290850185613a33565b6001600160a01b03166001600160a01b031681526020019081526020015f2054905080826020013511612b885760405163aa385e8160e01b815260040160405180910390fd5b5f612b97826020850135614228565b6001600160a01b0387165f90815260cd60209081526040822092935085018035929190612bc49087613a33565b6001600160a01b031681526020808201929092526040015f2091909155612c059089908390612bf590870187613a33565b6001600160a01b0316919061366a565b86516001600160a01b03808a1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce3190612c496020890189613a33565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101612ada565b5f816040015163ffffffff165f1480612cad5750815161ffff908116148015612cad5750816040015163ffffffff1642105b15612cc557505060cb54600160e01b900461ffff1690565b816040015163ffffffff16421015612cde57815161137a565b506020015190565b919050565b60605f612cf78361369a565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b806060015115612dbc57604051631b14174b60e01b815260040160405180910390fd5b806040015163ffffffff16421015612de757604051631437a2bb60e31b815260040160405180910390fd5b612df460c0830183614494565b9050612e0360a0840184614494565b905014612e23576040516343714afd60e01b815260040160405180910390fd5b612e3060e083018361444f565b9050612e3f60c0840184614494565b905014612e5f576040516343714afd60e01b815260040160405180910390fd5b8051612e8b90612e756040850160208601613cc5565b612e8260408601866144d9565b866060016136c1565b5f5b612e9a60a0840184614494565b90508110156110c057612f346080840135612eb860a0860186614494565b84818110612ec857612ec8613f71565b9050602002016020810190612edd9190613cc5565b612eea60c0870187614494565b85818110612efa57612efa613f71565b9050602002810190612f0c91906144d9565b612f1960e089018961444f565b87818110612f2957612f29613f71565b905060400201613765565b600101612e8d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb905f90a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b5f815f0151826020015163ffffffff1660405160200161303392919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261137a9061451b565b6001600160a01b038083165f81815260cc602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca3129190a4505050565b60cb546040805161ffff600160e01b9093048316815291831660208301527fe6cd4edfdcc1f6d130ab35f73d72378f3a642944fb4ee5bd84b7807a81ea1c4e910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b61271061ffff831611156131405760405163891c63df60e01b815260040160405180910390fd5b8254600160201b900463ffffffff16421161316e57604051637b1e25c560e01b815260040160405180910390fd5b8254600160201b900463ffffffff165f0361319557825461ffff191661ffff1783556131ac565b825462010000810461ffff1661ffff199091161783555b825463ffffffff909116600160201b0267ffffffff000000001961ffff90931662010000029290921667ffffffffffff00001990911617179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613244573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613268919061453e565b6001600160a01b0316336001600160a01b0316146113d65760405163794821ff60e01b815260040160405180910390fd5b826132b75760405163796cc52560e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16111561330457604051630dd0b9f560e21b815260040160405180910390fd5b61332e7f00000000000000000000000000000000000000000000000000000000000000008261456d565b63ffffffff16156133525760405163ee66470560e01b815260040160405180910390fd5b5f8163ffffffff16116133785760405163cb3f434d60e01b815260040160405180910390fd5b6133a27f00000000000000000000000000000000000000000000000000000000000000008361456d565b63ffffffff16156133c657604051633c1a94f160e21b815260040160405180910390fd5b8163ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426133ff9190614228565b1115801561343957508163ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6134565760405163041aa75760e11b815260040160405180910390fd5b5f805b84811015611e3b575f86868381811061347457613474613f71565b61348a9260206040909202019081019150613a33565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156134f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135179190613f56565b8061353e57506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61355b57604051632efd965160e11b815260040160405180910390fd5b806001600160a01b0316836001600160a01b03161061358d5760405163dfad9ca160e01b815260040160405180910390fd5b9150600101613459565b5f6135eb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166137a39092919063ffffffff16565b905080515f148061360b57508080602001905181019061360b9190613f56565b6110c05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611cfc565b6040516001600160a01b0383166024820152604481018290526110c090849063a9059cbb60e01b90606401612797565b5f60ff8216601f81111561137a57604051632cd44ac360e21b815260040160405180910390fd5b6136cc602083614594565b6001901b8463ffffffff16106136f45760405162c6c39d60e71b815260040160405180910390fd5b5f6136fe82610edf565b905061374884848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a92508591505063ffffffff89166137b9565b611e3b576040516369ca16c960e01b815260040160405180910390fd5b613770602083614594565b6001901b8463ffffffff16106137995760405163054ff4df60e51b815260040160405180910390fd5b5f6136fe8261200a565b60606137b184845f856137ee565b949350505050565b5f836137d8576040516329e7276760e11b815260040160405180910390fd5b836137e48685856138c5565b1495945050505050565b60608247101561384f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401611cfc565b5f5f866001600160a01b0316858760405161386a91906145a7565b5f6040518083038185875af1925050503d805f81146138a4576040519150601f19603f3d011682016040523d82523d5f602084013e6138a9565b606091505b50915091506138ba87838387613982565b979650505050505050565b5f83515f036138d5575081611718565b602084516138e391906145bd565b15613901576040516313717da960e21b815260040160405180910390fd5b8260205b85518111613962576139186002856145bd565b5f0361393957815f528086015160205260405f209150600284049350613950565b808601515f528160205260405f2091506002840493505b61395b6020826141f0565b9050613905565b5082156137b1576040516363df817160e01b815260040160405180910390fd5b606083156139f05782515f036139e9576001600160a01b0385163b6139e95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611cfc565b50816137b1565b6137b18383815115613a055781518083602001fd5b8060405162461bcd60e51b8152600401611cfc9190613c90565b6001600160a01b03811681146113c1575f5ffd5b5f60208284031215613a43575f5ffd5b813561171881613a1f565b5f60408284031215613a5e575f5ffd5b50919050565b5f5f83601f840112613a74575f5ffd5b5081356001600160401b03811115613a8a575f5ffd5b6020830191508360208260051b8501011115613aa4575f5ffd5b9250929050565b5f5f5f60608486031215613abd575f5ffd5b613ac78585613a4e565b925060408401356001600160401b03811115613ae1575f5ffd5b613aed86828701613a64565b9497909650939450505050565b80151581146113c1575f5ffd5b5f5f60408385031215613b18575f5ffd5b8235613b2381613a1f565b91506020830135613b3381613afa565b809150509250929050565b5f60208284031215613b4e575f5ffd5b5035919050565b5f60408284031215613b65575f5ffd5b6117188383613a4e565b5f5f60208385031215613b80575f5ffd5b82356001600160401b03811115613b95575f5ffd5b613ba185828601613a64565b90969095509350505050565b5f6101008284031215613a5e575f5ffd5b5f5f60408385031215613bcf575f5ffd5b82356001600160401b03811115613be4575f5ffd5b613bf085828601613bad565b9250506020830135613b3381613a1f565b803563ffffffff81168114612ce6575f5ffd5b5f5f60408385031215613c25575f5ffd5b82359150613c3560208401613c01565b90509250929050565b5f5f5f60408486031215613c50575f5ffd5b83356001600160401b03811115613c65575f5ffd5b613c7186828701613a64565b9094509250506020840135613c8581613a1f565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215613cd5575f5ffd5b61171882613c01565b5f60208284031215613cee575f5ffd5b813560ff81168114611718575f5ffd5b5f60208284031215613d0e575f5ffd5b81356001600160401b03811115613d23575f5ffd5b6137b184828501613bad565b5f5f60408385031215613d40575f5ffd5b8235613d4b81613a1f565b946020939093013593505050565b5f5f60408385031215613d6a575f5ffd5b8235613d7581613a1f565b91506020830135613b3381613a1f565b5f5f5f60408486031215613d97575f5ffd5b8335613da281613a1f565b925060208401356001600160401b03811115613ae1575f5ffd5b5f5f60608385031215613dcd575f5ffd5b8235613dd881613a1f565b9150613c358460208501613a4e565b803561ffff81168114612ce6575f5ffd5b5f60208284031215613e08575f5ffd5b61171882613de7565b5f5f60408385031215613e22575f5ffd5b8235613e2d81613a1f565b9150613c3560208401613de7565b5f5f5f60608486031215613e4d575f5ffd5b8335613e5881613a1f565b92506020840135613e6881613a1f565b9150613e7660408501613de7565b90509250925092565b5f5f5f5f5f60a08688031215613e93575f5ffd5b8535613e9e81613a1f565b9450602086013593506040860135613eb581613a1f565b9250613ec360608701613c01565b9150613ed160808701613de7565b90509295509295909350565b5f5f5f60808486031215613eef575f5ffd5b8335613efa81613a1f565b9250613f098560208601613a4e565b9150613e7660608501613de7565b8035613f2281613a1f565b6001600160a01b0316825263ffffffff613f3e60208301613c01565b1660208301525050565b6040810161137a8284613f17565b5f60208284031215613f66575f5ffd5b815161171881613afa565b634e487b7160e01b5f52603260045260245ffd5b5f823560be19833603018112613f99575f5ffd5b9190910192915050565b5f5f8335601e19843603018112613fb8575f5ffd5b83016020810192503590506001600160401b03811115613fd6575f5ffd5b8060061b3603821315613aa4575f5ffd5b8183526020830192505f815f5b8481101561404a57813561400781613a1f565b6001600160a01b0316865260208201356bffffffffffffffffffffffff8116808214614031575f5ffd5b6020880152506040958601959190910190600101613ff4565b5093949350505050565b5f5f8335601e19843603018112614069575f5ffd5b83016020810192503590506001600160401b03811115614087575f5ffd5b803603821315613aa4575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f6140c88283613fa3565b60c085526140da60c086018284613fe7565b91505060208301356140eb81613a1f565b6001600160a01b031660208501526141066040840184613fa3565b858303604087015280835290915f91906020015b8183101561415557833561412d81613a1f565b6001600160a01b0316815260208481013590820152604093840193600193909301920161411a565b61416160608701613c01565b63ffffffff81166060890152935061417b60808701613c01565b63ffffffff81166080890152935061419660a0870187614054565b9450925086810360a08801526138ba818585614095565b60018060a01b0384168152826020820152606060408201525f6141d360608301846140bd565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561137a5761137a6141dc565b61420d8185613f17565b826040820152608060608201525f6141d360808301846140bd565b8181038181111561137a5761137a6141dc565b5f81614249576142496141dc565b505f190190565b5f8235609e19833603018112613f99575f5ffd5b5f61426f8283613fa3565b60a0855261428160a086018284613fe7565b915050602083013561429281613a1f565b6001600160a01b031660208501526040838101359085015263ffffffff6142bb60608501613c01565b16606085015263ffffffff6142d260808501613c01565b1660808501528091505092915050565b60018060a01b0384168152826020820152606060408201525f6141d36060830184614264565b602081525f6117186020830184614264565b63ffffffff818116838216019081111561137a5761137a6141dc565b5f823560fe19833603018112613f99575f5ffd5b828152604060208201525f6137b160408301846140bd565b5f6040828403128015614373575f5ffd5b50604080519081016001600160401b03811182821017156143a257634e487b7160e01b5f52604160045260245ffd5b60405282356143b081613a1f565b81526143be60208401613c01565b60208201529392505050565b63ffffffff828116828216039081111561137a5761137a6141dc565b5f63ffffffff8216806143fb576143fb6141dc565b5f190192915050565b5f60208284031215614414575f5ffd5b5051919050565b60a081016144298287613f17565b63ffffffff94909416604082015261ffff92831660608201529116608090910152919050565b5f5f8335601e19843603018112614464575f5ffd5b8301803591506001600160401b0382111561447d575f5ffd5b6020019150600681901b3603821315613aa4575f5ffd5b5f5f8335601e198436030181126144a9575f5ffd5b8301803591506001600160401b038211156144c2575f5ffd5b6020019150600581901b3603821315613aa4575f5ffd5b5f5f8335601e198436030181126144ee575f5ffd5b8301803591506001600160401b03821115614507575f5ffd5b602001915036819003821315613aa4575f5ffd5b80516020808301519190811015613a5e575f1960209190910360031b1b16919050565b5f6020828403121561454e575f5ffd5b815161171881613a1f565b634e487b7160e01b5f52601260045260245ffd5b5f63ffffffff83168061458257614582614559565b8063ffffffff84160691505092915050565b5f826145a2576145a2614559565b500490565b5f82518060208501845e5f920191825250919050565b5f826145cb576145cb614559565b50069056fea26469706673582212202d1b5cc44bd1127466f63ab2cd085e266f71d303d50caab82bd3370d0734476164736f6c634300081b0033", + Bin: "0x6101e0604052348015610010575f5ffd5b50604051614bd4380380614bd483398101604081905261002f9161034a565b610140810151608082015182516020840151604085015160a086015160c087015160e08801516101008901516101208a015160608b01516001600160a01b03811661008d576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b03166080526100a38582610465565b63ffffffff16156100c757604051630e06bd3160e01b815260040160405180910390fd5b6100d46201518086610465565b63ffffffff16156100f85760405163223c7b3960e11b815260040160405180910390fd5b6001600160a01b0397881660a05295871660c05293861660e05263ffffffff9283166101005290821661012052811661014052908116610160521661018052166101a05261014581610158565b6101c0525061015261019e565b506104f3565b5f5f829050601f8151111561018b578260405163305a27a960e01b81526004016101829190610498565b60405180910390fd5b8051610196826104cd565b179392505050565b5f54610100900460ff16156102055760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610182565b5f5460ff90811614610254575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b038111828210171561028d5761028d610256565b60405290565b80516001600160a01b03811681146102a9575f5ffd5b919050565b805163ffffffff811681146102a9575f5ffd5b5f82601f8301126102d0575f5ffd5b81516001600160401b038111156102e9576102e9610256565b604051601f8201601f19908116603f011681016001600160401b038111828210171561031757610317610256565b60405281815283820160200185101561032e575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f6020828403121561035a575f5ffd5b81516001600160401b0381111561036f575f5ffd5b82016101608185031215610381575f5ffd5b61038961026a565b61039282610293565b81526103a060208301610293565b60208201526103b160408301610293565b60408201526103c260608301610293565b60608201526103d360808301610293565b60808201526103e460a083016102ae565b60a08201526103f560c083016102ae565b60c082015261040660e083016102ae565b60e082015261041861010083016102ae565b61010082015261042b61012083016102ae565b6101208201526101408201516001600160401b0381111561044a575f5ffd5b610456868285016102c1565b61014083015250949350505050565b5f63ffffffff83168061048657634e487b7160e01b5f52601260045260245ffd5b8063ffffffff84160691505092915050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156104ed575f198160200360031b1b821691505b50919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516146066105ce5f395f61138701525f81816105f001526124b301525f81816104a4015261341101525f81816103f3015261299801525f818161055201526133cf01525f818161087e01526132b901525f81816107bf01528181613309015261337d01525f81816108d201528181610adc01528181611bff0152611e8c01525f818161057901526134ac01525f81816109450152611b6f01525f81816107510152818161283d01526131ea01526146065ff3fe608060405234801561000f575f5ffd5b50600436106103b3575f3560e01c8063886f1195116101f5578063de02e50311610114578063f6efbb59116100a9578063fabc1cbc11610079578063fabc1cbc14610a33578063fbf1e2c114610a46578063fce36c7d14610a59578063ff9f6cce14610a6c575f5ffd5b8063f6efbb59146109e7578063f74e8eac146109fa578063f8cd844814610a0d578063f96abf2e14610a20575f5ffd5b8063ed71e6a2116100e4578063ed71e6a214610967578063f22cef8514610994578063f2f07ab4146109a7578063f2fde38b146109d4575f5ffd5b8063de02e50314610907578063e063f81f1461091a578063e810ce211461092d578063ea4d3c9b14610940575f5ffd5b8063a50a1d9c1161018a578063bf21a8aa1161015a578063bf21a8aa14610879578063c46db606146108a0578063ca8aa7c7146108cd578063dcbb03b3146108f4575f5ffd5b8063a50a1d9c14610807578063aebd8bae1461081a578063b3dbb0e014610847578063bb7e451f1461085a575f5ffd5b80639cb9a5fa116101c55780639cb9a5fa146107a75780639d45c281146107ba5780639de4b35f146107e1578063a0169ddd146107f4575f5ffd5b8063886f11951461074c5780638da5cb5b146107735780639104c319146107845780639be3d4e41461079f575f5ffd5b80634596021c116102e15780635c975abb11610276578063715018a611610246578063715018a6146106ff5780637b8f8b0514610707578063863cb9a91461070f578063865c695314610722575f5ffd5b80635c975abb146106a25780635e9d8348146106aa57806363f6a798146106bd5780636d21117e146106d2575f5ffd5b806354fd4d50116102b157806354fd4d501461064f57806358baaa3e14610664578063595c6a67146106775780635ac86ab71461067f575f5ffd5b80634596021c146105d85780634657e26a146105eb5780634b943960146106125780634d18cc3514610638575f5ffd5b8063149bc8721161035757806339b70e381161032757806339b70e38146105745780633a8c07861461059b5780633ccc861d146105b25780633efe1db6146105c5575f5ffd5b8063149bc872146104d95780632b9f64a4146104fa57806336af41fa1461053a57806337838ed01461054d575f5ffd5b80630e9a53cf116103925780630e9a53cf1461043f5780630eb383451461048c578063131433b41461049f578063136439dd146104c6575f5ffd5b806218572c146103b757806304a0c502146103ee5780630ca298991461042a575b5f5ffd5b6103d96103c5366004613a33565b60d16020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6104157f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016103e5565b61043d610438366004613aab565b610a7f565b005b610447610d25565b6040516103e591905f6080820190508251825263ffffffff602084015116602083015263ffffffff604084015116604083015260608301511515606083015292915050565b61043d61049a366004613b07565b610e25565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b61043d6104d4366004613b3e565b610ea5565b6104ec6104e7366004613b55565b610edf565b6040519081526020016103e5565b610522610508366004613a33565b60cc6020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016103e5565b61043d610548366004613b6f565b610f54565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b6105227f000000000000000000000000000000000000000000000000000000000000000081565b60cb5461041590600160a01b900463ffffffff1681565b61043d6105c0366004613bbe565b6110c5565b61043d6105d3366004613c14565b6110ec565b61043d6105e6366004613c3e565b6112c2565b6105227f000000000000000000000000000000000000000000000000000000000000000081565b610625610620366004613a33565b611325565b60405161ffff90911681526020016103e5565b60cb5461041590600160c01b900463ffffffff1681565b610657611380565b6040516103e59190613c90565b61043d610672366004613cc5565b6113b0565b61043d6113c4565b6103d961068d366004613cde565b606654600160ff9092169190911b9081161490565b6066546104ec565b6103d96106b8366004613cfe565b6113d8565b60cb5461062590600160e01b900461ffff1681565b6103d96106e0366004613d2f565b60cf60209081525f928352604080842090915290825290205460ff1681565b61043d611463565b60ca546104ec565b61043d61071d366004613a33565b611474565b6104ec610730366004613d59565b60cd60209081525f928352604080842090915290825290205481565b6105227f000000000000000000000000000000000000000000000000000000000000000081565b6033546001600160a01b0316610522565b61052273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b610447611485565b61043d6107b5366004613d85565b611521565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b6106256107ef366004613dbc565b61169c565b61043d610802366004613a33565b61171f565b61043d610815366004613df8565b61172a565b6103d9610828366004613d2f565b60d260209081525f928352604080842090915290825290205460ff1681565b61043d610855366004613e11565b61173b565b6104ec610868366004613a33565b60ce6020525f908152604090205481565b6104157f000000000000000000000000000000000000000000000000000000000000000081565b6103d96108ae366004613d2f565b60d060209081525f928352604080842090915290825290205460ff1681565b6105227f000000000000000000000000000000000000000000000000000000000000000081565b61043d610902366004613e3b565b611866565b610447610915366004613b3e565b6119b3565b610625610928366004613d59565b611a43565b61041561093b366004613b3e565b611aa8565b6105227f000000000000000000000000000000000000000000000000000000000000000081565b6103d9610975366004613d2f565b60d360209081525f928352604080842090915290825290205460ff1681565b61043d6109a2366004613d59565b611b29565b6103d96109b5366004613d2f565b60d760209081525f928352604080842090915290825290205460ff1681565b61043d6109e2366004613a33565b611c93565b61043d6109f5366004613e7f565b611d0e565b61043d610a08366004613edd565b611e43565b6104ec610a1b366004613b55565b61200a565b61043d610a2e366004613cc5565b61201a565b61043d610a41366004613b3e565b61214b565b60cb54610522906001600160a01b031681565b61043d610a67366004613b6f565b6121b8565b61043d610a7a366004613b6f565b6122e9565b6009610a8a8161244a565b610a976020850185613a33565b610aa081612475565b610abd5760405163932d94f760e01b815260040160405180910390fd5b610ac561251f565b6040516304c1b8eb60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc75890610b11908890600401613f48565b602060405180830381865afa158015610b2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b509190613f56565b610b6d57604051631fb1705560e21b815260040160405180910390fd5b5f5b83811015610d135736858583818110610b8a57610b8a613f71565b9050602002810190610b9c9190613f85565b90505f60ce81610baf60208b018b613a33565b6001600160a01b031681526020808201929092526040015f90812054925090610bda908a018a613a33565b8284604051602001610bee939291906141ad565b6040516020818303038152906040528051906020012090505f610c1084612578565b9050600160d75f610c2460208e018e613a33565b6001600160a01b0316815260208082019290925260409081015f9081208682529092529020805460ff1916911515919091179055610c638360016141f0565b60ce5f610c7360208e018e613a33565b6001600160a01b03166001600160a01b031681526020019081526020015f208190555081336001600160a01b03167ffff0759ccb371dfb5691798724e70b4fa61cb3bfe730a33ac19fb86a48efc7568c8688604051610cd493929190614203565b60405180910390a3610d03333083610cf26040890160208a01613a33565b6001600160a01b0316929190612763565b505060019092019150610b6f9050565b50610d1e6001609755565b5050505050565b604080516080810182525f80825260208201819052918101829052606081019190915260ca545b8015610dfd575f60ca610d60600184614228565b81548110610d7057610d70613f71565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161580156060830181905291925090610ddf5750806040015163ffffffff164210155b15610dea5792915050565b5080610df58161423b565b915050610d4c565b5050604080516080810182525f80825260208201819052918101829052606081019190915290565b610e2d6127ce565b6001600160a01b0382165f81815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b03919091165f90815260d160205260409020805460ff1916911515919091179055565b610ead612828565b6066548181168114610ed25760405163c61dca5d60e01b815260040160405180910390fd5b610edb826128cb565b5050565b5f80610eee6020840184613a33565b8360200135604051602001610f379392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b6001610f5f8161244a565b335f90815260d1602052604090205460ff16610f8e57604051635c427cd960e01b815260040160405180910390fd5b610f9661251f565b5f5b828110156110b55736848483818110610fb357610fb3613f71565b9050602002810190610fc59190614250565b335f81815260ce60209081526040808320549051949550939192610fef92909185918791016142e2565b60405160208183030381529060405280519060200120905061101083612908565b335f90815260d0602090815260408083208484529091529020805460ff191660019081179091556110429083906141f0565b335f81815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290611089908890614308565b60405180910390a46110aa333060408601803590610cf29060208901613a33565b505050600101610f98565b506110c06001609755565b505050565b60026110d08161244a565b6110d861251f565b6110e283836129f3565b6110c06001609755565b60036110f78161244a565b60cb546001600160a01b0316331461112257604051635c427cd960e01b815260040160405180910390fd5b60cb5463ffffffff600160c01b90910481169083161161115557604051631ca7e50b60e21b815260040160405180910390fd5b428263ffffffff161061117b576040516306957c9160e11b815260040160405180910390fd5b60ca5460cb545f9061119a90600160a01b900463ffffffff164261431a565b6040805160808101825287815263ffffffff87811660208084018281528684168587018181525f6060880181815260ca8054600181018255925297517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029092029182015592517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee290930180549151975193871667ffffffffffffffff1990921691909117600160201b978716979097029690961760ff60401b1916600160401b921515929092029190911790945560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b60026112cd8161244a565b6112d561251f565b5f5b838110156113145761130c8585838181106112f4576112f4613f71565b90506020028101906113069190614336565b846129f3565b6001016112d7565b5061131f6001609755565b50505050565b6001600160a01b0381165f90815260d5602090815260408083208151606081018352905461ffff80821683526201000082041693820193909352600160201b90920463ffffffff169082015261137a90612c7b565b92915050565b60606113ab7f0000000000000000000000000000000000000000000000000000000000000000612ceb565b905090565b6113b86127ce565b6113c181612d28565b50565b6113cc612828565b6113d65f196128cb565b565b5f61145b8260ca6113ec6020830183613cc5565b63ffffffff168154811061140257611402613f71565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff1615156060820152612d99565b506001919050565b61146b6127ce565b6113d65f612f3c565b61147c6127ce565b6113c181612f8d565b604080516080810182525f80825260208201819052918101829052606081019190915260ca80546114b890600190614228565b815481106114c8576114c8613f71565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff1615156060820152919050565b600561152c8161244a565b8361153681612475565b6115535760405163932d94f760e01b815260040160405180910390fd5b61155b61251f565b5f5b83811015610d13573685858381811061157857611578613f71565b905060200281019061158a9190613f85565b6001600160a01b0388165f90815260ce60209081526040808320549051939450926115bb918b9185918791016141ad565b6040516020818303038152906040528051906020012090505f6115dd84612578565b6001600160a01b038b165f90815260d3602090815260408083208684529091529020805460ff1916600190811790915590915061161b9084906141f0565b6001600160a01b038b165f81815260ce60205260409081902092909255905183919033907ffc8888bffd711da60bc5092b33f677d81896fe80ecc677b84cfab8184462b6e09061166e9088908a9061434a565b60405180910390a461168c333083610cf26040890160208a01613a33565b50506001909201915061155d9050565b6001600160a01b0382165f90815260d66020526040812061171890826116cf6116ca36879003870187614362565b612fe8565b815260208082019290925260409081015f208151606081018352905461ffff80821683526201000082041693820193909352600160201b90920463ffffffff1690820152612c7b565b9392505050565b33610edb818361304b565b6117326127ce565b6113c1816130ae565b60076117468161244a565b8261175081612475565b61176d5760405163932d94f760e01b815260040160405180910390fd5b60cb545f9061178990600160a01b900463ffffffff164261431a565b6001600160a01b0386165f90815260d5602090815260408083208151606081018352905461ffff80821683526201000082041693820193909352600160201b90920463ffffffff1690820152919250906117e290612c7b565b6001600160a01b0387165f90815260d560205260409020909150611807908684613119565b6040805163ffffffff8416815261ffff838116602083015287168183015290516001600160a01b0388169133917fd1e028bd664486a46ad26040e999cd2d22e1e9a094ee6afe19fcf64678f16f749181900360600190a3505050505050565b60066118718161244a565b8361187b81612475565b6118985760405163932d94f760e01b815260040160405180910390fd5b60cb545f906118b490600160a01b900463ffffffff164261431a565b6001600160a01b038781165f90815260d460209081526040808320938a1683529281528282208351606081018552905461ffff80821683526201000082041692820192909252600160201b90910463ffffffff169281019290925291925061191b90612c7b565b6001600160a01b038089165f90815260d460209081526040808320938b1683529290522090915061194d908684613119565b6040805163ffffffff8416815261ffff838116602083015287168183015290516001600160a01b0388811692908a169133917f48e198b6ae357e529204ee53a8e514c470ff77d9cc8e4f7207f8b5d490ae6934919081900360600190a450505050505050565b604080516080810182525f80825260208201819052918101829052606081019190915260ca82815481106119e9576119e9613f71565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff161515606082015292915050565b6001600160a01b038281165f90815260d46020908152604080832093851683529281528282208351606081018552905461ffff80821683526201000082041692820192909252600160201b90910463ffffffff16928101929092529061171890612c7b565b60ca545f905b63ffffffff811615611b0f578260ca611ac86001846143ca565b63ffffffff1681548110611ade57611ade613f71565b905f5260205f2090600202015f015403611afd576117186001826143ca565b80611b07816143e6565b915050611aae565b5060405163504570e360e01b815260040160405180910390fd5b81611b3381612475565b611b505760405163932d94f760e01b815260040160405180910390fd5b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa158015611bb4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bd89190613f56565b80611c6c575060405163ba1a84e560e01b81526001600160a01b0384811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063ba1a84e590602401602060405180830381865afa158015611c46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6a9190614404565b115b611c895760405163fb494ea160e01b815260040160405180910390fd5b6110c0838361304b565b611c9b6127ce565b6001600160a01b038116611d055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6113c181612f3c565b5f54610100900460ff1615808015611d2c57505f54600160ff909116105b80611d455750303b158015611d4557505f5460ff166001145b611da85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401611cfc565b5f805460ff191660011790558015611dc9575f805461ff0019166101001790555b611dd2856128cb565b611ddb86612f3c565b611de484612f8d565b611ded83612d28565b611df6826130ae565b8015611e3b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6008611e4e8161244a565b83611e5881612475565b611e755760405163932d94f760e01b815260040160405180910390fd5b6040516304c1b8eb60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063260dc75890611ec1908790600401613f48565b602060405180830381865afa158015611edc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f009190613f56565b611f1d57604051631fb1705560e21b815260040160405180910390fd5b60cb545f90611f3990600160a01b900463ffffffff164261431a565b6001600160a01b0387165f90815260d66020526040812091925090611f6b90826116cf6116ca368b90038b018b614362565b6001600160a01b0388165f90815260d660205260408120919250611fb09190611f9c6116ca368b90038b018b614362565b81526020019081526020015f208684613119565b866001600160a01b0316336001600160a01b03167f14918b3834ab6752eb2e1b489b6663a67810efb5f56f3944a97ede8ecf1fd9f18885858a604051611ff9949392919061441b565b60405180910390a350505050505050565b5f6001610eee6020840184613a33565b60036120258161244a565b60cb546001600160a01b0316331461205057604051635c427cd960e01b815260040160405180910390fd5b60ca5463ffffffff831610612078576040516394a8d38960e01b815260040160405180910390fd5b5f60ca8363ffffffff168154811061209257612092613f71565b905f5260205f20906002020190508060010160089054906101000a900460ff16156120d057604051631b14174b60e01b815260040160405180910390fd5b6001810154600160201b900463ffffffff16421061210157604051630c36f66560e21b815260040160405180910390fd5b60018101805460ff60401b1916600160401b17905560405163ffffffff8416907fd850e6e5dfa497b72661fa73df2923464eaed9dc2ff1d3cb82bccbfeabe5c41e905f90a2505050565b6121536131e8565b6066548019821981161461217a5760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f6121c28161244a565b6121ca61251f565b5f5b828110156110b557368484838181106121e7576121e7613f71565b90506020028101906121f99190614250565b335f81815260ce6020908152604080832054905194955093919261222392909185918791016142e2565b60405160208183030381529060405280519060200120905061224483612908565b335f90815260cf602090815260408083208484529091529020805460ff191660019081179091556122769083906141f0565b335f81815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e6281906122bd908890614308565b60405180910390a46122de333060408601803590610cf29060208901613a33565b5050506001016121cc565b60046122f48161244a565b335f90815260d1602052604090205460ff1661232357604051635c427cd960e01b815260040160405180910390fd5b61232b61251f565b5f5b828110156110b5573684848381811061234857612348613f71565b905060200281019061235a9190614250565b335f81815260ce6020908152604080832054905194955093919261238492909185918791016142e2565b6040516020818303038152906040528051906020012090506123a583612908565b335f90815260d2602090815260408083208484529091529020805460ff191660019081179091556123d79083906141f0565b335f81815260ce602052604090819020929092559051829184917f5251b6fdefcb5d81144e735f69ea4c695fd43b0289ca53dc075033f5fc80068b9061241e908890614308565b60405180910390a461243f333060408601803590610cf29060208901613a33565b50505060010161232d565b606654600160ff83161b908116036113c15760405163840a48d560e01b815260040160405180910390fd5b604051631beb2b9760e31b81526001600160a01b0382811660048301523360248301523060448301525f80356001600160e01b0319166064840152917f00000000000000000000000000000000000000000000000000000000000000009091169063df595cb8906084016020604051808303815f875af11580156124fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137a9190613f56565b6002609754036125715760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611cfc565b6002609755565b5f6125ab612586838061444f565b6125966080860160608701613cc5565b6125a660a0870160808801613cc5565b613299565b5f6125b9604084018461444f565b9050116125d95760405163796cc52560e01b815260040160405180910390fd5b426125ea60a0840160808501613cc5565b6125fa6080850160608601613cc5565b612604919061431a565b63ffffffff16106126285760405163150358a160e21b815260040160405180910390fd5b5f80805b612639604086018661444f565b905081101561272a5736612650604087018761444f565b8381811061266057612660613f71565b6040029190910191505f90506126796020830183613a33565b6001600160a01b0316036126a057604051630863a45360e11b815260040160405180910390fd5b6126ad6020820182613a33565b6001600160a01b0316836001600160a01b0316106126de576040516310fb47f160e31b815260040160405180910390fd5b5f816020013511612702576040516310eb483f60e21b815260040160405180910390fd5b61270f6020820182613a33565b925061271f6020820135856141f0565b93505060010161262c565b506f4b3b4ca85a86c47a098a223fffffffff82111561275c5760405163070b5a6f60e21b815260040160405180910390fd5b5092915050565b6040516001600160a01b038085166024830152831660448201526064810182905261131f9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613597565b6033546001600160a01b031633146113d65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611cfc565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa15801561288a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128ae9190613f56565b6113d657604051631d77d47760e21b815260040160405180910390fd5b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b612935612915828061444f565b6129256080850160608601613cc5565b6125a660a0860160808701613cc5565b5f816040013511612959576040516310eb483f60e21b815260040160405180910390fd5b6f4b3b4ca85a86c47a098a223fffffffff8160400135111561298e5760405163070b5a6f60e21b815260040160405180910390fd5b6129be63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016426141f0565b6129ce6080830160608401613cc5565b63ffffffff1611156113c157604051637ee2b44360e01b815260040160405180910390fd5b5f60ca612a036020850185613cc5565b63ffffffff1681548110612a1957612a19613f71565b5f91825260209182902060408051608081018252600293909302909101805483526001015463ffffffff80821694840194909452600160201b810490931690820152600160401b90910460ff16151560608201529050612a798382612d99565b5f612a8a6080850160608601613a33565b6001600160a01b038082165f90815260cc60205260409020549192501680612aaf5750805b336001600160a01b03821614612ad857604051635c427cd960e01b815260040160405180910390fd5b5f5b612ae760a0870187614494565b9050811015611e3b5736612afe60e088018861444f565b83818110612b0e57612b0e613f71565b6001600160a01b0387165f90815260cd602090815260408083209302949094019450929091508290612b4290850185613a33565b6001600160a01b03166001600160a01b031681526020019081526020015f2054905080826020013511612b885760405163aa385e8160e01b815260040160405180910390fd5b5f612b97826020850135614228565b6001600160a01b0387165f90815260cd60209081526040822092935085018035929190612bc49087613a33565b6001600160a01b031681526020808201929092526040015f2091909155612c059089908390612bf590870187613a33565b6001600160a01b0316919061366a565b86516001600160a01b03808a1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce3190612c496020890189613a33565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101612ada565b5f816040015163ffffffff165f1480612cad5750815161ffff908116148015612cad5750816040015163ffffffff1642105b15612cc557505060cb54600160e01b900461ffff1690565b816040015163ffffffff16421015612cde57815161137a565b506020015190565b919050565b60605f612cf78361369a565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b806060015115612dbc57604051631b14174b60e01b815260040160405180910390fd5b806040015163ffffffff16421015612de757604051631437a2bb60e31b815260040160405180910390fd5b612df460c0830183614494565b9050612e0360a0840184614494565b905014612e23576040516343714afd60e01b815260040160405180910390fd5b612e3060e083018361444f565b9050612e3f60c0840184614494565b905014612e5f576040516343714afd60e01b815260040160405180910390fd5b8051612e8b90612e756040850160208601613cc5565b612e8260408601866144d9565b866060016136c1565b5f5b612e9a60a0840184614494565b90508110156110c057612f346080840135612eb860a0860186614494565b84818110612ec857612ec8613f71565b9050602002016020810190612edd9190613cc5565b612eea60c0870187614494565b85818110612efa57612efa613f71565b9050602002810190612f0c91906144d9565b612f1960e089018961444f565b87818110612f2957612f29613f71565b905060400201613765565b600101612e8d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb905f90a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b5f815f0151826020015163ffffffff1660405160200161303392919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261137a9061451b565b6001600160a01b038083165f81815260cc602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca3129190a4505050565b60cb546040805161ffff600160e01b9093048316815291831660208301527fe6cd4edfdcc1f6d130ab35f73d72378f3a642944fb4ee5bd84b7807a81ea1c4e910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b61271061ffff831611156131405760405163891c63df60e01b815260040160405180910390fd5b8254600160201b900463ffffffff16421161316e57604051637b1e25c560e01b815260040160405180910390fd5b8254600160201b900463ffffffff165f0361319557825461ffff191661ffff1783556131ac565b825462010000810461ffff1661ffff199091161783555b825463ffffffff909116600160201b0267ffffffff000000001961ffff90931662010000029290921667ffffffffffff00001990911617179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613244573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613268919061453e565b6001600160a01b0316336001600160a01b0316146113d65760405163794821ff60e01b815260040160405180910390fd5b826132b75760405163796cc52560e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168163ffffffff16111561330457604051630dd0b9f560e21b815260040160405180910390fd5b61332e7f00000000000000000000000000000000000000000000000000000000000000008261456d565b63ffffffff16156133525760405163ee66470560e01b815260040160405180910390fd5b5f8163ffffffff16116133785760405163cb3f434d60e01b815260040160405180910390fd5b6133a27f00000000000000000000000000000000000000000000000000000000000000008361456d565b63ffffffff16156133c657604051633c1a94f160e21b815260040160405180910390fd5b8163ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426133ff9190614228565b1115801561343957508163ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6134565760405163041aa75760e11b815260040160405180910390fd5b5f805b84811015611e3b575f86868381811061347457613474613f71565b61348a9260206040909202019081019150613a33565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156134f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135179190613f56565b8061353e57506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61355b57604051632efd965160e11b815260040160405180910390fd5b806001600160a01b0316836001600160a01b03161061358d5760405163dfad9ca160e01b815260040160405180910390fd5b9150600101613459565b5f6135eb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166137a39092919063ffffffff16565b905080515f148061360b57508080602001905181019061360b9190613f56565b6110c05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611cfc565b6040516001600160a01b0383166024820152604481018290526110c090849063a9059cbb60e01b90606401612797565b5f60ff8216601f81111561137a57604051632cd44ac360e21b815260040160405180910390fd5b6136cc602083614594565b6001901b8463ffffffff16106136f45760405162c6c39d60e71b815260040160405180910390fd5b5f6136fe82610edf565b905061374884848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a92508591505063ffffffff89166137b9565b611e3b576040516369ca16c960e01b815260040160405180910390fd5b613770602083614594565b6001901b8463ffffffff16106137995760405163054ff4df60e51b815260040160405180910390fd5b5f6136fe8261200a565b60606137b184845f856137ee565b949350505050565b5f836137d8576040516329e7276760e11b815260040160405180910390fd5b836137e48685856138c5565b1495945050505050565b60608247101561384f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401611cfc565b5f5f866001600160a01b0316858760405161386a91906145a7565b5f6040518083038185875af1925050503d805f81146138a4576040519150601f19603f3d011682016040523d82523d5f602084013e6138a9565b606091505b50915091506138ba87838387613982565b979650505050505050565b5f83515f036138d5575081611718565b602084516138e391906145bd565b15613901576040516313717da960e21b815260040160405180910390fd5b8260205b85518111613962576139186002856145bd565b5f0361393957815f528086015160205260405f209150600284049350613950565b808601515f528160205260405f2091506002840493505b61395b6020826141f0565b9050613905565b5082156137b1576040516363df817160e01b815260040160405180910390fd5b606083156139f05782515f036139e9576001600160a01b0385163b6139e95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611cfc565b50816137b1565b6137b18383815115613a055781518083602001fd5b8060405162461bcd60e51b8152600401611cfc9190613c90565b6001600160a01b03811681146113c1575f5ffd5b5f60208284031215613a43575f5ffd5b813561171881613a1f565b5f60408284031215613a5e575f5ffd5b50919050565b5f5f83601f840112613a74575f5ffd5b5081356001600160401b03811115613a8a575f5ffd5b6020830191508360208260051b8501011115613aa4575f5ffd5b9250929050565b5f5f5f60608486031215613abd575f5ffd5b613ac78585613a4e565b925060408401356001600160401b03811115613ae1575f5ffd5b613aed86828701613a64565b9497909650939450505050565b80151581146113c1575f5ffd5b5f5f60408385031215613b18575f5ffd5b8235613b2381613a1f565b91506020830135613b3381613afa565b809150509250929050565b5f60208284031215613b4e575f5ffd5b5035919050565b5f60408284031215613b65575f5ffd5b6117188383613a4e565b5f5f60208385031215613b80575f5ffd5b82356001600160401b03811115613b95575f5ffd5b613ba185828601613a64565b90969095509350505050565b5f6101008284031215613a5e575f5ffd5b5f5f60408385031215613bcf575f5ffd5b82356001600160401b03811115613be4575f5ffd5b613bf085828601613bad565b9250506020830135613b3381613a1f565b803563ffffffff81168114612ce6575f5ffd5b5f5f60408385031215613c25575f5ffd5b82359150613c3560208401613c01565b90509250929050565b5f5f5f60408486031215613c50575f5ffd5b83356001600160401b03811115613c65575f5ffd5b613c7186828701613a64565b9094509250506020840135613c8581613a1f565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215613cd5575f5ffd5b61171882613c01565b5f60208284031215613cee575f5ffd5b813560ff81168114611718575f5ffd5b5f60208284031215613d0e575f5ffd5b81356001600160401b03811115613d23575f5ffd5b6137b184828501613bad565b5f5f60408385031215613d40575f5ffd5b8235613d4b81613a1f565b946020939093013593505050565b5f5f60408385031215613d6a575f5ffd5b8235613d7581613a1f565b91506020830135613b3381613a1f565b5f5f5f60408486031215613d97575f5ffd5b8335613da281613a1f565b925060208401356001600160401b03811115613ae1575f5ffd5b5f5f60608385031215613dcd575f5ffd5b8235613dd881613a1f565b9150613c358460208501613a4e565b803561ffff81168114612ce6575f5ffd5b5f60208284031215613e08575f5ffd5b61171882613de7565b5f5f60408385031215613e22575f5ffd5b8235613e2d81613a1f565b9150613c3560208401613de7565b5f5f5f60608486031215613e4d575f5ffd5b8335613e5881613a1f565b92506020840135613e6881613a1f565b9150613e7660408501613de7565b90509250925092565b5f5f5f5f5f60a08688031215613e93575f5ffd5b8535613e9e81613a1f565b9450602086013593506040860135613eb581613a1f565b9250613ec360608701613c01565b9150613ed160808701613de7565b90509295509295909350565b5f5f5f60808486031215613eef575f5ffd5b8335613efa81613a1f565b9250613f098560208601613a4e565b9150613e7660608501613de7565b8035613f2281613a1f565b6001600160a01b0316825263ffffffff613f3e60208301613c01565b1660208301525050565b6040810161137a8284613f17565b5f60208284031215613f66575f5ffd5b815161171881613afa565b634e487b7160e01b5f52603260045260245ffd5b5f823560be19833603018112613f99575f5ffd5b9190910192915050565b5f5f8335601e19843603018112613fb8575f5ffd5b83016020810192503590506001600160401b03811115613fd6575f5ffd5b8060061b3603821315613aa4575f5ffd5b8183526020830192505f815f5b8481101561404a57813561400781613a1f565b6001600160a01b0316865260208201356bffffffffffffffffffffffff8116808214614031575f5ffd5b6020880152506040958601959190910190600101613ff4565b5093949350505050565b5f5f8335601e19843603018112614069575f5ffd5b83016020810192503590506001600160401b03811115614087575f5ffd5b803603821315613aa4575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f6140c88283613fa3565b60c085526140da60c086018284613fe7565b91505060208301356140eb81613a1f565b6001600160a01b031660208501526141066040840184613fa3565b858303604087015280835290915f91906020015b8183101561415557833561412d81613a1f565b6001600160a01b0316815260208481013590820152604093840193600193909301920161411a565b61416160608701613c01565b63ffffffff81166060890152935061417b60808701613c01565b63ffffffff81166080890152935061419660a0870187614054565b9450925086810360a08801526138ba818585614095565b60018060a01b0384168152826020820152606060408201525f6141d360608301846140bd565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561137a5761137a6141dc565b61420d8185613f17565b826040820152608060608201525f6141d360808301846140bd565b8181038181111561137a5761137a6141dc565b5f81614249576142496141dc565b505f190190565b5f8235609e19833603018112613f99575f5ffd5b5f61426f8283613fa3565b60a0855261428160a086018284613fe7565b915050602083013561429281613a1f565b6001600160a01b031660208501526040838101359085015263ffffffff6142bb60608501613c01565b16606085015263ffffffff6142d260808501613c01565b1660808501528091505092915050565b60018060a01b0384168152826020820152606060408201525f6141d36060830184614264565b602081525f6117186020830184614264565b63ffffffff818116838216019081111561137a5761137a6141dc565b5f823560fe19833603018112613f99575f5ffd5b828152604060208201525f6137b160408301846140bd565b5f6040828403128015614373575f5ffd5b50604080519081016001600160401b03811182821017156143a257634e487b7160e01b5f52604160045260245ffd5b60405282356143b081613a1f565b81526143be60208401613c01565b60208201529392505050565b63ffffffff828116828216039081111561137a5761137a6141dc565b5f63ffffffff8216806143fb576143fb6141dc565b5f190192915050565b5f60208284031215614414575f5ffd5b5051919050565b60a081016144298287613f17565b63ffffffff94909416604082015261ffff92831660608201529116608090910152919050565b5f5f8335601e19843603018112614464575f5ffd5b8301803591506001600160401b0382111561447d575f5ffd5b6020019150600681901b3603821315613aa4575f5ffd5b5f5f8335601e198436030181126144a9575f5ffd5b8301803591506001600160401b038211156144c2575f5ffd5b6020019150600581901b3603821315613aa4575f5ffd5b5f5f8335601e198436030181126144ee575f5ffd5b8301803591506001600160401b03821115614507575f5ffd5b602001915036819003821315613aa4575f5ffd5b80516020808301519190811015613a5e575f1960209190910360031b1b16919050565b5f6020828403121561454e575f5ffd5b815161171881613a1f565b634e487b7160e01b5f52601260045260245ffd5b5f63ffffffff83168061458257614582614559565b8063ffffffff84160691505092915050565b5f826145a2576145a2614559565b500490565b5f82518060208501845e5f920191825250919050565b5f826145cb576145cb614559565b50069056fea264697066735822122017addec35ab3e2f446827c6467eb8cd1dc85fee1e287a978c43f77213e5cdd0d64736f6c634300081b0033", } // RewardsCoordinatorABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/SlashingLib/binding.go b/pkg/bindings/SlashingLib/binding.go index e9592ac7b3..b801b69c40 100644 --- a/pkg/bindings/SlashingLib/binding.go +++ b/pkg/bindings/SlashingLib/binding.go @@ -32,7 +32,7 @@ var ( // SlashingLibMetaData contains all meta data concerning the SlashingLib contract. var SlashingLibMetaData = &bind.MetaData{ ABI: "[{\"type\":\"error\",\"name\":\"InvalidDepositScalingFactor\",\"inputs\":[]}]", - Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220f8853b77cf1aa8562466cfac5db1fbb16b20cdd8e6b3539b8a027a4ac100b19c64736f6c634300081b0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220f72f70aa8e98e23dccc085223312b847e8da4498d9bcea40a5f6461473b053e664736f6c634300081b0033", } // SlashingLibABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/Snapshots/binding.go b/pkg/bindings/Snapshots/binding.go index 2c83ccf968..0157c0eb33 100644 --- a/pkg/bindings/Snapshots/binding.go +++ b/pkg/bindings/Snapshots/binding.go @@ -32,7 +32,7 @@ var ( // SnapshotsMetaData contains all meta data concerning the Snapshots contract. var SnapshotsMetaData = &bind.MetaData{ ABI: "[{\"type\":\"error\",\"name\":\"InvalidSnapshotOrdering\",\"inputs\":[]}]", - Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212200f8449cd6e3f11592ff53a455658ec6ffa3974fd1f0bde17cbd335fc7096fdb264736f6c634300081b0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220934dbea011a7b5c1af5e2494d9913302461af4e355aef9fdb16d2f4d46ac097964736f6c634300081b0033", } // SnapshotsABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/StrategyBase/binding.go b/pkg/bindings/StrategyBase/binding.go index e903e62a6d..6d4b6016eb 100644 --- a/pkg/bindings/StrategyBase/binding.go +++ b/pkg/bindings/StrategyBase/binding.go @@ -32,7 +32,7 @@ var ( // StrategyBaseMetaData contains all meta data concerning the StrategyBase contract. var StrategyBaseMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"newShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"explanation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_underlyingToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"shares\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlying\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlyingView\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalShares\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToShares\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToSharesView\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlying\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlyingView\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"amountOut\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ExchangeRateEmitted\",\"inputs\":[{\"name\":\"rate\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyTokenSet\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"decimals\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BalanceExceedsMaxTotalDeposits\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxPerDepositExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewSharesZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnderlyingToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TotalSharesExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalAmountExceedsTotalDeposits\",\"inputs\":[]}]", - Bin: "0x60e060405234801561000f575f5ffd5b5060405161152938038061152983398101604081905261002e916101b6565b80826001600160a01b038116610057576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b031660805261006c8161008d565b60a052506001600160a01b03831660c0526100856100d3565b5050506102e7565b5f5f829050601f815111156100c0578260405163305a27a960e01b81526004016100b7919061028c565b60405180910390fd5b80516100cb826102c1565b179392505050565b5f54610100900460ff161561013a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100b7565b5f5460ff90811614610189575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461019f575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101c8575f5ffd5b83516101d38161018b565b60208501519093506101e48161018b565b60408501519092506001600160401b038111156101ff575f5ffd5b8401601f8101861361020f575f5ffd5b80516001600160401b03811115610228576102286101a2565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610256576102566101a2565b60405281815282820160200188101561026d575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102e1575f198160200360031b1b821691505b50919050565b60805160a05160c0516111f56103345f395f81816101800152818161035d01528181610686015261070801525f61047d01525f818161024b015281816108b60152610c6c01526111f55ff3fe608060405234801561000f575f5ffd5b5060043610610132575f3560e01c80637a8b2637116100b4578063c4d66de811610079578063c4d66de81461029b578063ce7c2ac2146102ae578063d9caed12146102c1578063e3dae51c146102d4578063f3e73875146102e7578063fabc1cbc146102fa575f5ffd5b80637a8b263714610233578063886f1195146102465780638c8710191461026d5780638f6a624014610280578063ab5921e114610293575f5ffd5b806354fd4d50116100fa57806354fd4d50146101cc578063553ca5f8146101e1578063595c6a67146101f45780635ac86ab7146101fc5780635c975abb1461022b575f5ffd5b8063136439dd146101365780632495a5991461014b57806339b70e381461017b5780633a98ef39146101a257806347e7ef24146101b9575b5f5ffd5b610149610144366004610f6d565b61030d565b005b60325461015e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61015e7f000000000000000000000000000000000000000000000000000000000000000081565b6101ab60335481565b604051908152602001610172565b6101ab6101c7366004610f98565b610347565b6101d4610476565b6040516101729190610fc2565b6101ab6101ef366004610ff7565b6104a6565b6101496104b9565b61021b61020a366004611027565b6001805460ff9092161b9081161490565b6040519015158152602001610172565b6001546101ab565b6101ab610241366004610f6d565b6104cd565b61015e7f000000000000000000000000000000000000000000000000000000000000000081565b6101ab61027b366004610f6d565b610516565b6101ab61028e366004610ff7565b610520565b6101d461052d565b6101496102a9366004610ff7565b61054d565b6101ab6102bc366004610ff7565b61065f565b6101ab6102cf366004611042565b6106f1565b6101ab6102e2366004610f6d565b6107f3565b6101ab6102f5366004610f6d565b61082a565b610149610308366004610f6d565b610834565b6103156108a1565b600154818116811461033a5760405163c61dca5d60e01b815260040160405180910390fd5b61034382610944565b5050565b5f5f61035281610981565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461039b576040516348da714f60e01b815260040160405180910390fd5b6103a584846109b7565b6033545f6103b56103e883611094565b90505f6103e86103c36109e5565b6103cd9190611094565b90505f6103da87836110a7565b9050806103e784896110ba565b6103f191906110d1565b9550855f0361041357604051630c392ed360e11b815260040160405180910390fd5b61041d8685611094565b60338190556f4b3b4ca85a86c47a098a223fffffffff101561045257604051632f14e8a360e11b815260040160405180910390fd5b61046b826103e86033546104669190611094565b610a4f565b505050505092915050565b60606104a17f0000000000000000000000000000000000000000000000000000000000000000610a9b565b905090565b5f6104b36102418361065f565b92915050565b6104c16108a1565b6104cb5f19610944565b565b5f5f6103e86033546104df9190611094565b90505f6103e86104ed6109e5565b6104f79190611094565b90508161050485836110ba565b61050e91906110d1565b949350505050565b5f6104b3826107f3565b5f6104b36102f58361065f565b60606040518060800160405280604d8152602001611173604d9139905090565b5f54610100900460ff161580801561056b57505f54600160ff909116105b806105845750303b15801561058457505f5460ff166001145b6105ec5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561060d575f805461ff0019166101001790555b61061682610ad8565b8015610343575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa1580156106cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b391906110f0565b5f60016106fd81610981565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610746576040516348da714f60e01b815260040160405180910390fd5b610751858585610c23565b6033548084111561077557604051630b469df360e41b815260040160405180910390fd5b5f6107826103e883611094565b90505f6103e86107906109e5565b61079a9190611094565b9050816107a787836110ba565b6107b191906110d1565b94506107bd86846110a7565b6033556107dd6107cd86836110a7565b6103e86033546104669190611094565b6107e8888887610c56565b505050509392505050565b5f5f6103e86033546108059190611094565b90505f6103e86108136109e5565b61081d9190611094565b90508061050483866110ba565b5f6104b3826104cd565b61083c610c6a565b600154801982198116146108635760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610903573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109279190611107565b6104cb57604051631d77d47760e21b815260040160405180910390fd5b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b610996816001805460ff9092161b9081161490565b156109b45760405163840a48d560e01b815260040160405180910390fd5b50565b6032546001600160a01b0383811691161461034357604051630312abdd60e61b815260040160405180910390fd5b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a2b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a191906110f0565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610a8384670de0b6b3a76400006110ba565b610a8d91906110d1565b604051908152602001610653565b60605f610aa783610d1b565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f54610100900460ff16610b425760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105e3565b603280546001600160a01b0319166001600160a01b038316179055610b665f610944565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfc9190611126565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b6032546001600160a01b03838116911614610c5157604051630312abdd60e61b815260040160405180910390fd5b505050565b610c516001600160a01b0383168483610d42565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cea9190611141565b6001600160a01b0316336001600160a01b0316146104cb5760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f8111156104b357604051632cd44ac360e21b815260040160405180910390fd5b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610c51928692915f91610dd1918516908490610e50565b905080515f1480610df1575080806020019051810190610df19190611107565b610c515760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105e3565b606061050e84845f85855f5f866001600160a01b03168587604051610e75919061115c565b5f6040518083038185875af1925050503d805f8114610eaf576040519150601f19603f3d011682016040523d82523d5f602084013e610eb4565b606091505b5091509150610ec587838387610ed0565b979650505050505050565b60608315610f3e5782515f03610f37576001600160a01b0385163b610f375760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105e3565b508161050e565b61050e8383815115610f535781518083602001fd5b8060405162461bcd60e51b81526004016105e39190610fc2565b5f60208284031215610f7d575f5ffd5b5035919050565b6001600160a01b03811681146109b4575f5ffd5b5f5f60408385031215610fa9575f5ffd5b8235610fb481610f84565b946020939093013593505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611007575f5ffd5b813561101281610f84565b9392505050565b60ff811681146109b4575f5ffd5b5f60208284031215611037575f5ffd5b813561101281611019565b5f5f5f60608486031215611054575f5ffd5b833561105f81610f84565b9250602084013561106f81610f84565b929592945050506040919091013590565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104b3576104b3611080565b818103818111156104b3576104b3611080565b80820281158282048414176104b3576104b3611080565b5f826110eb57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611100575f5ffd5b5051919050565b5f60208284031215611117575f5ffd5b81518015158114611012575f5ffd5b5f60208284031215611136575f5ffd5b815161101281611019565b5f60208284031215611151575f5ffd5b815161101281610f84565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220fbcdc5c0118f575e2b48c480335e984140e110da489bb59245346f0ad0a97c7664736f6c634300081b0033", + Bin: "0x60e060405234801561000f575f5ffd5b5060405161152938038061152983398101604081905261002e916101b6565b80826001600160a01b038116610057576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b031660805261006c8161008d565b60a052506001600160a01b03831660c0526100856100d3565b5050506102e7565b5f5f829050601f815111156100c0578260405163305a27a960e01b81526004016100b7919061028c565b60405180910390fd5b80516100cb826102c1565b179392505050565b5f54610100900460ff161561013a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100b7565b5f5460ff90811614610189575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461019f575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101c8575f5ffd5b83516101d38161018b565b60208501519093506101e48161018b565b60408501519092506001600160401b038111156101ff575f5ffd5b8401601f8101861361020f575f5ffd5b80516001600160401b03811115610228576102286101a2565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610256576102566101a2565b60405281815282820160200188101561026d575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102e1575f198160200360031b1b821691505b50919050565b60805160a05160c0516111f56103345f395f81816101800152818161035d01528181610686015261070801525f61047d01525f818161024b015281816108b60152610c6c01526111f55ff3fe608060405234801561000f575f5ffd5b5060043610610132575f3560e01c80637a8b2637116100b4578063c4d66de811610079578063c4d66de81461029b578063ce7c2ac2146102ae578063d9caed12146102c1578063e3dae51c146102d4578063f3e73875146102e7578063fabc1cbc146102fa575f5ffd5b80637a8b263714610233578063886f1195146102465780638c8710191461026d5780638f6a624014610280578063ab5921e114610293575f5ffd5b806354fd4d50116100fa57806354fd4d50146101cc578063553ca5f8146101e1578063595c6a67146101f45780635ac86ab7146101fc5780635c975abb1461022b575f5ffd5b8063136439dd146101365780632495a5991461014b57806339b70e381461017b5780633a98ef39146101a257806347e7ef24146101b9575b5f5ffd5b610149610144366004610f6d565b61030d565b005b60325461015e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61015e7f000000000000000000000000000000000000000000000000000000000000000081565b6101ab60335481565b604051908152602001610172565b6101ab6101c7366004610f98565b610347565b6101d4610476565b6040516101729190610fc2565b6101ab6101ef366004610ff7565b6104a6565b6101496104b9565b61021b61020a366004611027565b6001805460ff9092161b9081161490565b6040519015158152602001610172565b6001546101ab565b6101ab610241366004610f6d565b6104cd565b61015e7f000000000000000000000000000000000000000000000000000000000000000081565b6101ab61027b366004610f6d565b610516565b6101ab61028e366004610ff7565b610520565b6101d461052d565b6101496102a9366004610ff7565b61054d565b6101ab6102bc366004610ff7565b61065f565b6101ab6102cf366004611042565b6106f1565b6101ab6102e2366004610f6d565b6107f3565b6101ab6102f5366004610f6d565b61082a565b610149610308366004610f6d565b610834565b6103156108a1565b600154818116811461033a5760405163c61dca5d60e01b815260040160405180910390fd5b61034382610944565b5050565b5f5f61035281610981565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461039b576040516348da714f60e01b815260040160405180910390fd5b6103a584846109b7565b6033545f6103b56103e883611094565b90505f6103e86103c36109e5565b6103cd9190611094565b90505f6103da87836110a7565b9050806103e784896110ba565b6103f191906110d1565b9550855f0361041357604051630c392ed360e11b815260040160405180910390fd5b61041d8685611094565b60338190556f4b3b4ca85a86c47a098a223fffffffff101561045257604051632f14e8a360e11b815260040160405180910390fd5b61046b826103e86033546104669190611094565b610a4f565b505050505092915050565b60606104a17f0000000000000000000000000000000000000000000000000000000000000000610a9b565b905090565b5f6104b36102418361065f565b92915050565b6104c16108a1565b6104cb5f19610944565b565b5f5f6103e86033546104df9190611094565b90505f6103e86104ed6109e5565b6104f79190611094565b90508161050485836110ba565b61050e91906110d1565b949350505050565b5f6104b3826107f3565b5f6104b36102f58361065f565b60606040518060800160405280604d8152602001611173604d9139905090565b5f54610100900460ff161580801561056b57505f54600160ff909116105b806105845750303b15801561058457505f5460ff166001145b6105ec5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561060d575f805461ff0019166101001790555b61061682610ad8565b8015610343575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa1580156106cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b391906110f0565b5f60016106fd81610981565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610746576040516348da714f60e01b815260040160405180910390fd5b610751858585610c23565b6033548084111561077557604051630b469df360e41b815260040160405180910390fd5b5f6107826103e883611094565b90505f6103e86107906109e5565b61079a9190611094565b9050816107a787836110ba565b6107b191906110d1565b94506107bd86846110a7565b6033556107dd6107cd86836110a7565b6103e86033546104669190611094565b6107e8888887610c56565b505050509392505050565b5f5f6103e86033546108059190611094565b90505f6103e86108136109e5565b61081d9190611094565b90508061050483866110ba565b5f6104b3826104cd565b61083c610c6a565b600154801982198116146108635760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610903573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109279190611107565b6104cb57604051631d77d47760e21b815260040160405180910390fd5b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b610996816001805460ff9092161b9081161490565b156109b45760405163840a48d560e01b815260040160405180910390fd5b50565b6032546001600160a01b0383811691161461034357604051630312abdd60e61b815260040160405180910390fd5b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a2b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a191906110f0565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610a8384670de0b6b3a76400006110ba565b610a8d91906110d1565b604051908152602001610653565b60605f610aa783610d1b565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f54610100900460ff16610b425760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016105e3565b603280546001600160a01b0319166001600160a01b038316179055610b665f610944565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfc9190611126565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b6032546001600160a01b03838116911614610c5157604051630312abdd60e61b815260040160405180910390fd5b505050565b610c516001600160a01b0383168483610d42565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cea9190611141565b6001600160a01b0316336001600160a01b0316146104cb5760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f8111156104b357604051632cd44ac360e21b815260040160405180910390fd5b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610c51928692915f91610dd1918516908490610e50565b905080515f1480610df1575080806020019051810190610df19190611107565b610c515760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105e3565b606061050e84845f85855f5f866001600160a01b03168587604051610e75919061115c565b5f6040518083038185875af1925050503d805f8114610eaf576040519150601f19603f3d011682016040523d82523d5f602084013e610eb4565b606091505b5091509150610ec587838387610ed0565b979650505050505050565b60608315610f3e5782515f03610f37576001600160a01b0385163b610f375760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105e3565b508161050e565b61050e8383815115610f535781518083602001fd5b8060405162461bcd60e51b81526004016105e39190610fc2565b5f60208284031215610f7d575f5ffd5b5035919050565b6001600160a01b03811681146109b4575f5ffd5b5f5f60408385031215610fa9575f5ffd5b8235610fb481610f84565b946020939093013593505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611007575f5ffd5b813561101281610f84565b9392505050565b60ff811681146109b4575f5ffd5b5f60208284031215611037575f5ffd5b813561101281611019565b5f5f5f60608486031215611054575f5ffd5b833561105f81610f84565b9250602084013561106f81610f84565b929592945050506040919091013590565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104b3576104b3611080565b818103818111156104b3576104b3611080565b80820281158282048414176104b3576104b3611080565b5f826110eb57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611100575f5ffd5b5051919050565b5f60208284031215611117575f5ffd5b81518015158114611012575f5ffd5b5f60208284031215611136575f5ffd5b815161101281611019565b5f60208284031215611151575f5ffd5b815161101281610f84565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220df3168aa618b503f49bfdd657dd79d216edd2d18d519b2d5bf302619d0cab6c264736f6c634300081b0033", } // StrategyBaseABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/StrategyBaseTVLLimits/binding.go b/pkg/bindings/StrategyBaseTVLLimits/binding.go index cd283cf09d..4bd64535ea 100644 --- a/pkg/bindings/StrategyBaseTVLLimits/binding.go +++ b/pkg/bindings/StrategyBaseTVLLimits/binding.go @@ -32,7 +32,7 @@ var ( // StrategyBaseTVLLimitsMetaData contains all meta data concerning the StrategyBaseTVLLimits contract. var StrategyBaseTVLLimitsMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"newShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"explanation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getTVLLimits\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_maxPerDeposit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_maxTotalDeposits\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_underlyingToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_underlyingToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"maxPerDeposit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxTotalDeposits\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setTVLLimits\",\"inputs\":[{\"name\":\"newMaxPerDeposit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"newMaxTotalDeposits\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"shares\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlying\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"sharesToUnderlyingView\",\"inputs\":[{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalShares\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToShares\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToSharesView\",\"inputs\":[{\"name\":\"amountUnderlying\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"underlyingToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlying\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"userUnderlyingView\",\"inputs\":[{\"name\":\"user\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amountShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"amountOut\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ExchangeRateEmitted\",\"inputs\":[{\"name\":\"rate\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxPerDepositUpdated\",\"inputs\":[{\"name\":\"previousValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MaxTotalDepositsUpdated\",\"inputs\":[{\"name\":\"previousValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"newValue\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyTokenSet\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"decimals\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BalanceExceedsMaxTotalDeposits\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxPerDepositExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NewSharesZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnderlyingToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TotalSharesExceedsMax\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WithdrawalAmountExceedsTotalDeposits\",\"inputs\":[]}]", - Bin: "0x60e060405234801561000f575f5ffd5b5060405161181738038061181783398101604081905261002e916101bc565b82828280826001600160a01b03811661005a576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b031660805261006f81610093565b60a052506001600160a01b03831660c0526100886100d9565b5050505050506102ed565b5f5f829050601f815111156100c6578260405163305a27a960e01b81526004016100bd9190610292565b60405180910390fd5b80516100d1826102c7565b179392505050565b5f54610100900460ff16156101405760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bd565b5f5460ff9081161461018f575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101a5575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101ce575f5ffd5b83516101d981610191565b60208501519093506101ea81610191565b60408501519092506001600160401b03811115610205575f5ffd5b8401601f81018613610215575f5ffd5b80516001600160401b0381111561022e5761022e6101a8565b604051601f8201601f19908116603f011681016001600160401b038111828210171561025c5761025c6101a8565b604052818152828201602001881015610273575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102e7575f198160200360031b1b821691505b50919050565b60805160a05160c0516114dd61033a5f395f81816101e801528181610417015281816107cf015261085101525f61053701525f81816102c5015281816109ec0152610b5401526114dd5ff3fe608060405234801561000f575f5ffd5b5060043610610187575f3560e01c80637a8b2637116100d9578063c4d66de811610093578063df6fadc11161006e578063df6fadc114610361578063e3dae51c1461037c578063f3e738751461038f578063fabc1cbc146103a2575f5ffd5b8063c4d66de814610328578063ce7c2ac21461033b578063d9caed121461034e575f5ffd5b80637a8b2637146102ad578063886f1195146102c05780638c871019146102e75780638f6a6240146102fa578063a6ab36f21461030d578063ab5921e114610320575f5ffd5b806347e7ef2411610144578063595c6a671161011f578063595c6a67146102655780635ac86ab71461026d5780635c975abb1461029c57806361b01b5d146102a4575f5ffd5b806347e7ef241461022a57806354fd4d501461023d578063553ca5f814610252575f5ffd5b806311c70c9d1461018b578063136439dd146101a05780632495a599146101b357806339b70e38146101e35780633a98ef391461020a57806343fe08b014610221575b5f5ffd5b61019e6101993660046111b1565b6103b5565b005b61019e6101ae3660046111d1565b6103cb565b6032546101c6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101c67f000000000000000000000000000000000000000000000000000000000000000081565b61021360335481565b6040519081526020016101da565b61021360645481565b6102136102383660046111fc565b610401565b610245610530565b6040516101da9190611226565b61021361026036600461125b565b610560565b61019e610573565b61028c61027b36600461128b565b6001805460ff9092161b9081161490565b60405190151581526020016101da565b600154610213565b61021360655481565b6102136102bb3660046111d1565b610587565b6101c67f000000000000000000000000000000000000000000000000000000000000000081565b6102136102f53660046111d1565b6105d0565b61021361030836600461125b565b6105da565b61019e61031b3660046112a6565b6105e7565b6102456106c2565b61019e61033636600461125b565b6106e2565b61021361034936600461125b565b6107a8565b61021361035c3660046112dc565b61083a565b606454606554604080519283526020830191909152016101da565b61021361038a3660046111d1565b61093c565b61021361039d3660046111d1565b610973565b61019e6103b03660046111d1565b61097d565b6103bd6109ea565b6103c78282610a9b565b5050565b6103d3610b3f565b60015481811681146103f85760405163c61dca5d60e01b815260040160405180910390fd5b6103c782610be2565b5f5f61040c81610c1f565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610455576040516348da714f60e01b815260040160405180910390fd5b61045f8484610c55565b6033545f61046f6103e88361132e565b90505f6103e861047d610cac565b610487919061132e565b90505f6104948783611341565b9050806104a18489611354565b6104ab919061136b565b9550855f036104cd57604051630c392ed360e11b815260040160405180910390fd5b6104d7868561132e565b60338190556f4b3b4ca85a86c47a098a223fffffffff101561050c57604051632f14e8a360e11b815260040160405180910390fd5b610525826103e8603354610520919061132e565b610d16565b505050505092915050565b606061055b7f0000000000000000000000000000000000000000000000000000000000000000610d62565b905090565b5f61056d6102bb836107a8565b92915050565b61057b610b3f565b6105855f19610be2565b565b5f5f6103e8603354610599919061132e565b90505f6103e86105a7610cac565b6105b1919061132e565b9050816105be8583611354565b6105c8919061136b565b949350505050565b5f61056d8261093c565b5f61056d61039d836107a8565b5f54610100900460ff161580801561060557505f54600160ff909116105b8061061e5750303b15801561061e57505f5460ff166001145b6106435760405162461bcd60e51b815260040161063a9061138a565b60405180910390fd5b5f805460ff191660011790558015610664575f805461ff0019166101001790555b61066e8484610a9b565b61067782610d9f565b80156106bc575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60606040518060800160405280604d815260200161145b604d9139905090565b5f54610100900460ff161580801561070057505f54600160ff909116105b806107195750303b15801561071957505f5460ff166001145b6107355760405162461bcd60e51b815260040161063a9061138a565b5f805460ff191660011790558015610756575f805461ff0019166101001790555b61075f82610d9f565b80156103c7575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa158015610816573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056d91906113d8565b5f600161084681610c1f565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461088f576040516348da714f60e01b815260040160405180910390fd5b61089a858585610eea565b603354808411156108be57604051630b469df360e41b815260040160405180910390fd5b5f6108cb6103e88361132e565b90505f6103e86108d9610cac565b6108e3919061132e565b9050816108f08783611354565b6108fa919061136b565b94506109068684611341565b6033556109266109168683611341565b6103e8603354610520919061132e565b610931888887610f1d565b505050509392505050565b5f5f6103e860335461094e919061132e565b90505f6103e861095c610cac565b610966919061132e565b9050806105be8386611354565b5f61056d82610587565b6109856109ea565b600154801982198116146109ac5760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6a91906113ef565b6001600160a01b0316336001600160a01b0316146105855760405163794821ff60e01b815260040160405180910390fd5b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a180821115610b345760405163052b07b760e21b815260040160405180910390fd5b606491909155606555565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610ba1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc5919061140a565b61058557604051631d77d47760e21b815260040160405180910390fd5b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b610c34816001805460ff9092161b9081161490565b15610c525760405163840a48d560e01b815260040160405180910390fd5b50565b606454811115610c785760405163052b07b760e21b815260040160405180910390fd5b606554610c83610cac565b1115610ca25760405163d86bae6760e01b815260040160405180910390fd5b6103c78282610f31565b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610cf2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055b91906113d8565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610d4a84670de0b6b3a7640000611354565b610d54919061136b565b60405190815260200161079c565b60605f610d6e83610f5f565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f54610100900460ff16610e095760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161063a565b603280546001600160a01b0319166001600160a01b038316179055610e2d5f610be2565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec39190611429565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b6032546001600160a01b03838116911614610f1857604051630312abdd60e61b815260040160405180910390fd5b505050565b610f186001600160a01b0383168483610f86565b6032546001600160a01b038381169116146103c757604051630312abdd60e61b815260040160405180910390fd5b5f60ff8216601f81111561056d57604051632cd44ac360e21b815260040160405180910390fd5b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610f18928692915f91611015918516908490611094565b905080515f1480611035575080806020019051810190611035919061140a565b610f185760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161063a565b60606105c884845f85855f5f866001600160a01b031685876040516110b99190611444565b5f6040518083038185875af1925050503d805f81146110f3576040519150601f19603f3d011682016040523d82523d5f602084013e6110f8565b606091505b509150915061110987838387611114565b979650505050505050565b606083156111825782515f0361117b576001600160a01b0385163b61117b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161063a565b50816105c8565b6105c883838151156111975781518083602001fd5b8060405162461bcd60e51b815260040161063a9190611226565b5f5f604083850312156111c2575f5ffd5b50508035926020909101359150565b5f602082840312156111e1575f5ffd5b5035919050565b6001600160a01b0381168114610c52575f5ffd5b5f5f6040838503121561120d575f5ffd5b8235611218816111e8565b946020939093013593505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561126b575f5ffd5b8135611276816111e8565b9392505050565b60ff81168114610c52575f5ffd5b5f6020828403121561129b575f5ffd5b81356112768161127d565b5f5f5f606084860312156112b8575f5ffd5b833592506020840135915060408401356112d1816111e8565b809150509250925092565b5f5f5f606084860312156112ee575f5ffd5b83356112f9816111e8565b92506020840135611309816111e8565b929592945050506040919091013590565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561056d5761056d61131a565b8181038181111561056d5761056d61131a565b808202811582820484141761056d5761056d61131a565b5f8261138557634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b5f602082840312156113e8575f5ffd5b5051919050565b5f602082840312156113ff575f5ffd5b8151611276816111e8565b5f6020828403121561141a575f5ffd5b81518015158114611276575f5ffd5b5f60208284031215611439575f5ffd5b81516112768161127d565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220b5189353252acc6682d17ff78d3874849daac64b0c661fd3c6f8dc71beff3f1064736f6c634300081b0033", + Bin: "0x60e060405234801561000f575f5ffd5b5060405161181738038061181783398101604081905261002e916101bc565b82828280826001600160a01b03811661005a576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b031660805261006f81610093565b60a052506001600160a01b03831660c0526100886100d9565b5050505050506102ed565b5f5f829050601f815111156100c6578260405163305a27a960e01b81526004016100bd9190610292565b60405180910390fd5b80516100d1826102c7565b179392505050565b5f54610100900460ff16156101405760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bd565b5f5460ff9081161461018f575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101a5575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101ce575f5ffd5b83516101d981610191565b60208501519093506101ea81610191565b60408501519092506001600160401b03811115610205575f5ffd5b8401601f81018613610215575f5ffd5b80516001600160401b0381111561022e5761022e6101a8565b604051601f8201601f19908116603f011681016001600160401b038111828210171561025c5761025c6101a8565b604052818152828201602001881015610273575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102e7575f198160200360031b1b821691505b50919050565b60805160a05160c0516114dd61033a5f395f81816101e801528181610417015281816107cf015261085101525f61053701525f81816102c5015281816109ec0152610b5401526114dd5ff3fe608060405234801561000f575f5ffd5b5060043610610187575f3560e01c80637a8b2637116100d9578063c4d66de811610093578063df6fadc11161006e578063df6fadc114610361578063e3dae51c1461037c578063f3e738751461038f578063fabc1cbc146103a2575f5ffd5b8063c4d66de814610328578063ce7c2ac21461033b578063d9caed121461034e575f5ffd5b80637a8b2637146102ad578063886f1195146102c05780638c871019146102e75780638f6a6240146102fa578063a6ab36f21461030d578063ab5921e114610320575f5ffd5b806347e7ef2411610144578063595c6a671161011f578063595c6a67146102655780635ac86ab71461026d5780635c975abb1461029c57806361b01b5d146102a4575f5ffd5b806347e7ef241461022a57806354fd4d501461023d578063553ca5f814610252575f5ffd5b806311c70c9d1461018b578063136439dd146101a05780632495a599146101b357806339b70e38146101e35780633a98ef391461020a57806343fe08b014610221575b5f5ffd5b61019e6101993660046111b1565b6103b5565b005b61019e6101ae3660046111d1565b6103cb565b6032546101c6906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101c67f000000000000000000000000000000000000000000000000000000000000000081565b61021360335481565b6040519081526020016101da565b61021360645481565b6102136102383660046111fc565b610401565b610245610530565b6040516101da9190611226565b61021361026036600461125b565b610560565b61019e610573565b61028c61027b36600461128b565b6001805460ff9092161b9081161490565b60405190151581526020016101da565b600154610213565b61021360655481565b6102136102bb3660046111d1565b610587565b6101c67f000000000000000000000000000000000000000000000000000000000000000081565b6102136102f53660046111d1565b6105d0565b61021361030836600461125b565b6105da565b61019e61031b3660046112a6565b6105e7565b6102456106c2565b61019e61033636600461125b565b6106e2565b61021361034936600461125b565b6107a8565b61021361035c3660046112dc565b61083a565b606454606554604080519283526020830191909152016101da565b61021361038a3660046111d1565b61093c565b61021361039d3660046111d1565b610973565b61019e6103b03660046111d1565b61097d565b6103bd6109ea565b6103c78282610a9b565b5050565b6103d3610b3f565b60015481811681146103f85760405163c61dca5d60e01b815260040160405180910390fd5b6103c782610be2565b5f5f61040c81610c1f565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610455576040516348da714f60e01b815260040160405180910390fd5b61045f8484610c55565b6033545f61046f6103e88361132e565b90505f6103e861047d610cac565b610487919061132e565b90505f6104948783611341565b9050806104a18489611354565b6104ab919061136b565b9550855f036104cd57604051630c392ed360e11b815260040160405180910390fd5b6104d7868561132e565b60338190556f4b3b4ca85a86c47a098a223fffffffff101561050c57604051632f14e8a360e11b815260040160405180910390fd5b610525826103e8603354610520919061132e565b610d16565b505050505092915050565b606061055b7f0000000000000000000000000000000000000000000000000000000000000000610d62565b905090565b5f61056d6102bb836107a8565b92915050565b61057b610b3f565b6105855f19610be2565b565b5f5f6103e8603354610599919061132e565b90505f6103e86105a7610cac565b6105b1919061132e565b9050816105be8583611354565b6105c8919061136b565b949350505050565b5f61056d8261093c565b5f61056d61039d836107a8565b5f54610100900460ff161580801561060557505f54600160ff909116105b8061061e5750303b15801561061e57505f5460ff166001145b6106435760405162461bcd60e51b815260040161063a9061138a565b60405180910390fd5b5f805460ff191660011790558015610664575f805461ff0019166101001790555b61066e8484610a9b565b61067782610d9f565b80156106bc575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60606040518060800160405280604d815260200161145b604d9139905090565b5f54610100900460ff161580801561070057505f54600160ff909116105b806107195750303b15801561071957505f5460ff166001145b6107355760405162461bcd60e51b815260040161063a9061138a565b5f805460ff191660011790558015610756575f805461ff0019166101001790555b61075f82610d9f565b80156103c7575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60405163fe243a1760e01b81526001600160a01b0382811660048301523060248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063fe243a1790604401602060405180830381865afa158015610816573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056d91906113d8565b5f600161084681610c1f565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461088f576040516348da714f60e01b815260040160405180910390fd5b61089a858585610eea565b603354808411156108be57604051630b469df360e41b815260040160405180910390fd5b5f6108cb6103e88361132e565b90505f6103e86108d9610cac565b6108e3919061132e565b9050816108f08783611354565b6108fa919061136b565b94506109068684611341565b6033556109266109168683611341565b6103e8603354610520919061132e565b610931888887610f1d565b505050509392505050565b5f5f6103e860335461094e919061132e565b90505f6103e861095c610cac565b610966919061132e565b9050806105be8386611354565b5f61056d82610587565b6109856109ea565b600154801982198116146109ac5760405163c61dca5d60e01b815260040160405180910390fd5b600182905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6a91906113ef565b6001600160a01b0316336001600160a01b0316146105855760405163794821ff60e01b815260040160405180910390fd5b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a180821115610b345760405163052b07b760e21b815260040160405180910390fd5b606491909155606555565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610ba1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc5919061140a565b61058557604051631d77d47760e21b815260040160405180910390fd5b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b610c34816001805460ff9092161b9081161490565b15610c525760405163840a48d560e01b815260040160405180910390fd5b50565b606454811115610c785760405163052b07b760e21b815260040160405180910390fd5b606554610c83610cac565b1115610ca25760405163d86bae6760e01b815260040160405180910390fd5b6103c78282610f31565b6032546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610cf2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055b91906113d8565b7fd2494f3479e5da49d386657c292c610b5b01df313d07c62eb0cfa49924a31be881610d4a84670de0b6b3a7640000611354565b610d54919061136b565b60405190815260200161079c565b60605f610d6e83610f5f565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f54610100900460ff16610e095760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161063a565b603280546001600160a01b0319166001600160a01b038316179055610e2d5f610be2565b7f1c540707b00eb5427b6b774fc799d756516a54aee108b64b327acc55af55750760325f9054906101000a90046001600160a01b0316826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec39190611429565b604080516001600160a01b03909316835260ff90911660208301520160405180910390a150565b6032546001600160a01b03838116911614610f1857604051630312abdd60e61b815260040160405180910390fd5b505050565b610f186001600160a01b0383168483610f86565b6032546001600160a01b038381169116146103c757604051630312abdd60e61b815260040160405180910390fd5b5f60ff8216601f81111561056d57604051632cd44ac360e21b815260040160405180910390fd5b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610f18928692915f91611015918516908490611094565b905080515f1480611035575080806020019051810190611035919061140a565b610f185760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161063a565b60606105c884845f85855f5f866001600160a01b031685876040516110b99190611444565b5f6040518083038185875af1925050503d805f81146110f3576040519150601f19603f3d011682016040523d82523d5f602084013e6110f8565b606091505b509150915061110987838387611114565b979650505050505050565b606083156111825782515f0361117b576001600160a01b0385163b61117b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161063a565b50816105c8565b6105c883838151156111975781518083602001fd5b8060405162461bcd60e51b815260040161063a9190611226565b5f5f604083850312156111c2575f5ffd5b50508035926020909101359150565b5f602082840312156111e1575f5ffd5b5035919050565b6001600160a01b0381168114610c52575f5ffd5b5f5f6040838503121561120d575f5ffd5b8235611218816111e8565b946020939093013593505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561126b575f5ffd5b8135611276816111e8565b9392505050565b60ff81168114610c52575f5ffd5b5f6020828403121561129b575f5ffd5b81356112768161127d565b5f5f5f606084860312156112b8575f5ffd5b833592506020840135915060408401356112d1816111e8565b809150509250925092565b5f5f5f606084860312156112ee575f5ffd5b83356112f9816111e8565b92506020840135611309816111e8565b929592945050506040919091013590565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561056d5761056d61131a565b8181038181111561056d5761056d61131a565b808202811582820484141761056d5761056d61131a565b5f8261138557634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b5f602082840312156113e8575f5ffd5b5051919050565b5f602082840312156113ff575f5ffd5b8151611276816111e8565b5f6020828403121561141a575f5ffd5b81518015158114611276575f5ffd5b5f60208284031215611439575f5ffd5b81516112768161127d565b5f82518060208501845e5f92019182525091905056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220b558327578c1929fb73bd404f32b72dd0129feaf61c7fcbe12bfa239d47edc6c64736f6c634300081b0033", } // StrategyBaseTVLLimitsABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/StrategyFactory/binding.go b/pkg/bindings/StrategyFactory/binding.go index 2cce339f7a..a0a03d4008 100644 --- a/pkg/bindings/StrategyFactory/binding.go +++ b/pkg/bindings/StrategyFactory/binding.go @@ -32,7 +32,7 @@ var ( // StrategyFactoryMetaData contains all meta data concerning the StrategyFactory contract. var StrategyFactoryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_strategyManager\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"blacklistTokens\",\"inputs\":[{\"name\":\"tokens\",\"type\":\"address[]\",\"internalType\":\"contractIERC20[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deployNewStrategy\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[{\"name\":\"newStrategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deployedStrategies\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_strategyBeacon\",\"type\":\"address\",\"internalType\":\"contractIBeacon\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isBlacklisted\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromWhitelist\",\"inputs\":[{\"name\":\"strategiesToRemoveFromWhitelist\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"strategyBeacon\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBeacon\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStrategyManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"whitelistStrategies\",\"inputs\":[{\"name\":\"strategiesToWhitelist\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyBeaconModified\",\"inputs\":[{\"name\":\"previousBeacon\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIBeacon\"},{\"name\":\"newBeacon\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIBeacon\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategySetForToken\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokenBlacklisted\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIERC20\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyBlacklisted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BlacklistedToken\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyAlreadyExists\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]}]", - Bin: "0x60e060405234801561000f575f5ffd5b50604051611b26380380611b2683398101604081905261002e916101b9565b80826001600160a01b038116610057576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b031660805261006c8161008d565b60a052506001600160a01b03831660c0526100856100d3565b5050506102ea565b5f5f829050601f815111156100c0578260405163305a27a960e01b81526004016100b7919061028f565b60405180910390fd5b80516100cb826102c4565b179392505050565b603354610100900460ff161561013b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100b7565b60335460ff9081161461018c576033805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101a2575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101cb575f5ffd5b83516101d68161018e565b60208501519093506101e78161018e565b60408501519092506001600160401b03811115610202575f5ffd5b8401601f81018613610212575f5ffd5b80516001600160401b0381111561022b5761022b6101a5565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610259576102596101a5565b604052818152828201602001881015610270575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102e4575f198160200360031b1b821691505b50919050565b60805160a05160c0516117e861033e5f395f818161014d0152818161055a01528181610764015281816108010152610a9901525f6105ca01525f818161023501528181610ae50152610d9601526117e85ff3fe608060405234801561000f575f5ffd5b506004361061011c575f3560e01c8063715018a6116100a9578063f0062d9a1161006e578063f0062d9a1461028e578063f2fde38b146102a0578063fabc1cbc146102b3578063fe38b32d146102c6578063fe575a87146102d9575f5ffd5b8063715018a614610228578063886f1195146102305780638da5cb5b14610257578063b768ebc914610268578063c350a1b51461027b575f5ffd5b8063581dfd65116100ef578063581dfd65146101a1578063595c6a67146101c95780635ac86ab7146101d15780635c975abb146102045780636b9b622914610215575f5ffd5b8063136439dd1461012057806323103c411461013557806339b70e381461014857806354fd4d501461018c575b5f5ffd5b61013361012e366004610e7f565b6102fb565b005b610133610143366004610ede565b610335565b61016f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101946105c3565b6040516101839190610f4b565b61016f6101af366004610f78565b60016020525f90815260409020546001600160a01b031681565b6101336105f3565b6101f46101df366004610f93565b609954600160ff9092169190911b9081161490565b6040519015158152602001610183565b609954604051908152602001610183565b61016f610223366004610f78565b610607565b6101336107d1565b61016f7f000000000000000000000000000000000000000000000000000000000000000081565b6066546001600160a01b031661016f565b610133610276366004610ede565b6107e2565b610133610289366004610fb3565b610869565b5f5461016f906001600160a01b031681565b6101336102ae366004610f78565b610994565b6101336102c1366004610e7f565b610a0d565b6101336102d4366004610ede565b610a7a565b6101f46102e7366004610f78565b60026020525f908152604090205460ff1681565b610303610ad0565b60995481811681146103285760405163c61dca5d60e01b815260040160405180910390fd5b61033182610b73565b5050565b61033d610bb0565b5f8167ffffffffffffffff81111561035757610357610ff2565b604051908082528060200260200182016040528015610380578160200160208202803683370190505b5090505f805b838110156105395760025f8686848181106103a3576103a3611006565b90506020020160208101906103b89190610f78565b6001600160a01b0316815260208101919091526040015f205460ff16156103f25760405163f53de75f60e01b815260040160405180910390fd5b600160025f87878581811061040957610409611006565b905060200201602081019061041e9190610f78565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f75519c51f39873ec0e27dd3bbc09549e4865a113f505393fb9eab5898f6418b385858381811061047857610478611006565b905060200201602081019061048d9190610f78565b6040516001600160a01b03909116815260200160405180910390a15f60015f8787858181106104be576104be611006565b90506020020160208101906104d39190610f78565b6001600160a01b03908116825260208201929092526040015f20541690508015610530578084848151811061050a5761050a611006565b6001600160a01b03909216602092830291909101909101528261052c8161101a565b9350505b50600101610386565b5080825280156105bd576040516316bb16b760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b5d8b5b89061058f90859060040161103e565b5f604051808303815f87803b1580156105a6575f5ffd5b505af11580156105b8573d5f5f3e3d5ffd5b505050505b50505050565b60606105ee7f0000000000000000000000000000000000000000000000000000000000000000610c0a565b905090565b6105fb610ad0565b6106055f19610b73565b565b5f5f61061281610c47565b6001600160a01b0383165f9081526002602052604090205460ff161561064b5760405163091867bd60e11b815260040160405180910390fd5b6001600160a01b038381165f9081526001602052604090205416156106835760405163c45546f760e01b815260040160405180910390fd5b5f8054604080516001600160a01b0387811660248084019190915283518084039091018152604490920183526020820180516001600160e01b031663189acdbd60e31b17905291519190921691906106da90610e72565b6106e5929190611089565b604051809103905ff0801580156106fe573d5f5f3e3d5ffd5b50905061070b8482610c72565b6040805160018082528183019092525f916020808301908036833701905050905081815f8151811061073f5761073f611006565b6001600160a01b039283166020918202929092010152604051632ef047f960e11b81527f000000000000000000000000000000000000000000000000000000000000000090911690635de08ff29061079b90849060040161103e565b5f604051808303815f87803b1580156107b2575f5ffd5b505af11580156107c4573d5f5f3e3d5ffd5b5093979650505050505050565b6107d9610bb0565b6106055f610cdc565b6107ea610bb0565b604051632ef047f960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635de08ff29061083890859085906004016110b4565b5f604051808303815f87803b15801561084f575f5ffd5b505af1158015610861573d5f5f3e3d5ffd5b505050505050565b603354610100900460ff16158080156108895750603354600160ff909116105b806108a35750303b1580156108a3575060335460ff166001145b61090b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6033805460ff19166001179055801561092e576033805461ff0019166101001790555b61093784610cdc565b61094083610b73565b61094982610d2d565b80156105bd576033805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61099c610bb0565b6001600160a01b038116610a015760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610902565b610a0a81610cdc565b50565b610a15610d94565b60995480198219811614610a3c5760405163c61dca5d60e01b815260040160405180910390fd5b609982905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b610a82610bb0565b6040516316bb16b760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b5d8b5b89061083890859085906004016110b4565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610b32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b569190611100565b61060557604051631d77d47760e21b815260040160405180910390fd5b609981905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6066546001600160a01b031633146106055760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610902565b60605f610c1683610e45565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b609954600160ff83161b90811603610a0a5760405163840a48d560e01b815260040160405180910390fd5b6001600160a01b038281165f8181526001602090815260409182902080546001600160a01b031916948616948517905581519283528201929092527f6852a55230ef089d785bce7ffbf757985de34026df90a87d7b4a6e56f95d251f910160405180910390a15050565b606680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54604080516001600160a01b03928316815291831660208301527fe21755962a7d7e100b59b9c3e4d4b54085b146313719955efb6a7a25c5c7feee910160405180910390a15f80546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e14919061111f565b6001600160a01b0316336001600160a01b0316146106055760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f811115610e6c57604051632cd44ac360e21b815260040160405180910390fd5b92915050565b6106788061113b83390190565b5f60208284031215610e8f575f5ffd5b5035919050565b5f5f83601f840112610ea6575f5ffd5b50813567ffffffffffffffff811115610ebd575f5ffd5b6020830191508360208260051b8501011115610ed7575f5ffd5b9250929050565b5f5f60208385031215610eef575f5ffd5b823567ffffffffffffffff811115610f05575f5ffd5b610f1185828601610e96565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610f5d6020830184610f1d565b9392505050565b6001600160a01b0381168114610a0a575f5ffd5b5f60208284031215610f88575f5ffd5b8135610f5d81610f64565b5f60208284031215610fa3575f5ffd5b813560ff81168114610f5d575f5ffd5b5f5f5f60608486031215610fc5575f5ffd5b8335610fd081610f64565b9250602084013591506040840135610fe781610f64565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f6001820161103757634e487b7160e01b5f52601160045260245ffd5b5060010190565b602080825282518282018190525f918401906040840190835b8181101561107e5783516001600160a01b0316835260209384019390920191600101611057565b509095945050505050565b6001600160a01b03831681526040602082018190525f906110ac90830184610f1d565b949350505050565b602080825281018290525f8360408301825b858110156110f65782356110d981610f64565b6001600160a01b03168252602092830192909101906001016110c6565b5095945050505050565b5f60208284031215611110575f5ffd5b81518015158114610f5d575f5ffd5b5f6020828403121561112f575f5ffd5b8151610f5d81610f6456fe6080604052604051610678380380610678833981016040819052610022916103ed565b61002d82825f610034565b5050610513565b61003d836100f1565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a25f8251118061007c5750805b156100ec576100ea836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906104af565b83610273565b505b505050565b6001600160a01b0381163b61015b5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101cd816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101be91906104af565b6001600160a01b03163b151590565b6102325760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610152565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029883836040518060600160405280602781526020016106516027913961029f565b9392505050565b60605f5f856001600160a01b0316856040516102bb91906104c8565b5f60405180830381855af49150503d805f81146102f3576040519150601f19603f3d011682016040523d82523d5f602084013e6102f8565b606091505b50909250905061030a86838387610314565b9695505050505050565b606083156103825782515f0361037b576001600160a01b0385163b61037b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610152565b508161038c565b61038c8383610394565b949350505050565b8151156103a45781518083602001fd5b8060405162461bcd60e51b815260040161015291906104de565b80516001600160a01b03811681146103d4575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156103fe575f5ffd5b610407836103be565b60208401519092506001600160401b03811115610422575f5ffd5b8301601f81018513610432575f5ffd5b80516001600160401b0381111561044b5761044b6103d9565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610479576104796103d9565b604052818152828201602001871015610490575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b5f602082840312156104bf575f5ffd5b610298826103be565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b610131806105205f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b60b3565b565b5f60527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015608c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019060ae919060d0565b905090565b365f5f375f5f365f845af43d5f5f3e80801560cc573d5ff35b3d5ffd5b5f6020828403121560df575f5ffd5b81516001600160a01b038116811460f4575f5ffd5b939250505056fea2646970667358221220f37d2ffd80ec7d14cc9a0f17394e9d97446c1f630de382043b1ed4ccacf6a7d464736f6c634300081b0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d78c244ace53c5c31768b17921cd19d2faf42aea79d884117408796b0539819564736f6c634300081b0033", + Bin: "0x60e060405234801561000f575f5ffd5b50604051611b26380380611b2683398101604081905261002e916101b9565b80826001600160a01b038116610057576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b031660805261006c8161008d565b60a052506001600160a01b03831660c0526100856100d3565b5050506102ea565b5f5f829050601f815111156100c0578260405163305a27a960e01b81526004016100b7919061028f565b60405180910390fd5b80516100cb826102c4565b179392505050565b603354610100900460ff161561013b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100b7565b60335460ff9081161461018c576033805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101a2575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101cb575f5ffd5b83516101d68161018e565b60208501519093506101e78161018e565b60408501519092506001600160401b03811115610202575f5ffd5b8401601f81018613610212575f5ffd5b80516001600160401b0381111561022b5761022b6101a5565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610259576102596101a5565b604052818152828201602001881015610270575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102e4575f198160200360031b1b821691505b50919050565b60805160a05160c0516117e861033e5f395f818161014d0152818161055a01528181610764015281816108010152610a9901525f6105ca01525f818161023501528181610ae50152610d9601526117e85ff3fe608060405234801561000f575f5ffd5b506004361061011c575f3560e01c8063715018a6116100a9578063f0062d9a1161006e578063f0062d9a1461028e578063f2fde38b146102a0578063fabc1cbc146102b3578063fe38b32d146102c6578063fe575a87146102d9575f5ffd5b8063715018a614610228578063886f1195146102305780638da5cb5b14610257578063b768ebc914610268578063c350a1b51461027b575f5ffd5b8063581dfd65116100ef578063581dfd65146101a1578063595c6a67146101c95780635ac86ab7146101d15780635c975abb146102045780636b9b622914610215575f5ffd5b8063136439dd1461012057806323103c411461013557806339b70e381461014857806354fd4d501461018c575b5f5ffd5b61013361012e366004610e7f565b6102fb565b005b610133610143366004610ede565b610335565b61016f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101946105c3565b6040516101839190610f4b565b61016f6101af366004610f78565b60016020525f90815260409020546001600160a01b031681565b6101336105f3565b6101f46101df366004610f93565b609954600160ff9092169190911b9081161490565b6040519015158152602001610183565b609954604051908152602001610183565b61016f610223366004610f78565b610607565b6101336107d1565b61016f7f000000000000000000000000000000000000000000000000000000000000000081565b6066546001600160a01b031661016f565b610133610276366004610ede565b6107e2565b610133610289366004610fb3565b610869565b5f5461016f906001600160a01b031681565b6101336102ae366004610f78565b610994565b6101336102c1366004610e7f565b610a0d565b6101336102d4366004610ede565b610a7a565b6101f46102e7366004610f78565b60026020525f908152604090205460ff1681565b610303610ad0565b60995481811681146103285760405163c61dca5d60e01b815260040160405180910390fd5b61033182610b73565b5050565b61033d610bb0565b5f8167ffffffffffffffff81111561035757610357610ff2565b604051908082528060200260200182016040528015610380578160200160208202803683370190505b5090505f805b838110156105395760025f8686848181106103a3576103a3611006565b90506020020160208101906103b89190610f78565b6001600160a01b0316815260208101919091526040015f205460ff16156103f25760405163f53de75f60e01b815260040160405180910390fd5b600160025f87878581811061040957610409611006565b905060200201602081019061041e9190610f78565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f75519c51f39873ec0e27dd3bbc09549e4865a113f505393fb9eab5898f6418b385858381811061047857610478611006565b905060200201602081019061048d9190610f78565b6040516001600160a01b03909116815260200160405180910390a15f60015f8787858181106104be576104be611006565b90506020020160208101906104d39190610f78565b6001600160a01b03908116825260208201929092526040015f20541690508015610530578084848151811061050a5761050a611006565b6001600160a01b03909216602092830291909101909101528261052c8161101a565b9350505b50600101610386565b5080825280156105bd576040516316bb16b760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b5d8b5b89061058f90859060040161103e565b5f604051808303815f87803b1580156105a6575f5ffd5b505af11580156105b8573d5f5f3e3d5ffd5b505050505b50505050565b60606105ee7f0000000000000000000000000000000000000000000000000000000000000000610c0a565b905090565b6105fb610ad0565b6106055f19610b73565b565b5f5f61061281610c47565b6001600160a01b0383165f9081526002602052604090205460ff161561064b5760405163091867bd60e11b815260040160405180910390fd5b6001600160a01b038381165f9081526001602052604090205416156106835760405163c45546f760e01b815260040160405180910390fd5b5f8054604080516001600160a01b0387811660248084019190915283518084039091018152604490920183526020820180516001600160e01b031663189acdbd60e31b17905291519190921691906106da90610e72565b6106e5929190611089565b604051809103905ff0801580156106fe573d5f5f3e3d5ffd5b50905061070b8482610c72565b6040805160018082528183019092525f916020808301908036833701905050905081815f8151811061073f5761073f611006565b6001600160a01b039283166020918202929092010152604051632ef047f960e11b81527f000000000000000000000000000000000000000000000000000000000000000090911690635de08ff29061079b90849060040161103e565b5f604051808303815f87803b1580156107b2575f5ffd5b505af11580156107c4573d5f5f3e3d5ffd5b5093979650505050505050565b6107d9610bb0565b6106055f610cdc565b6107ea610bb0565b604051632ef047f960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635de08ff29061083890859085906004016110b4565b5f604051808303815f87803b15801561084f575f5ffd5b505af1158015610861573d5f5f3e3d5ffd5b505050505050565b603354610100900460ff16158080156108895750603354600160ff909116105b806108a35750303b1580156108a3575060335460ff166001145b61090b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6033805460ff19166001179055801561092e576033805461ff0019166101001790555b61093784610cdc565b61094083610b73565b61094982610d2d565b80156105bd576033805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61099c610bb0565b6001600160a01b038116610a015760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610902565b610a0a81610cdc565b50565b610a15610d94565b60995480198219811614610a3c5760405163c61dca5d60e01b815260040160405180910390fd5b609982905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b610a82610bb0565b6040516316bb16b760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b5d8b5b89061083890859085906004016110b4565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610b32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b569190611100565b61060557604051631d77d47760e21b815260040160405180910390fd5b609981905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6066546001600160a01b031633146106055760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610902565b60605f610c1683610e45565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b609954600160ff83161b90811603610a0a5760405163840a48d560e01b815260040160405180910390fd5b6001600160a01b038281165f8181526001602090815260409182902080546001600160a01b031916948616948517905581519283528201929092527f6852a55230ef089d785bce7ffbf757985de34026df90a87d7b4a6e56f95d251f910160405180910390a15050565b606680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54604080516001600160a01b03928316815291831660208301527fe21755962a7d7e100b59b9c3e4d4b54085b146313719955efb6a7a25c5c7feee910160405180910390a15f80546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e14919061111f565b6001600160a01b0316336001600160a01b0316146106055760405163794821ff60e01b815260040160405180910390fd5b5f60ff8216601f811115610e6c57604051632cd44ac360e21b815260040160405180910390fd5b92915050565b6106788061113b83390190565b5f60208284031215610e8f575f5ffd5b5035919050565b5f5f83601f840112610ea6575f5ffd5b50813567ffffffffffffffff811115610ebd575f5ffd5b6020830191508360208260051b8501011115610ed7575f5ffd5b9250929050565b5f5f60208385031215610eef575f5ffd5b823567ffffffffffffffff811115610f05575f5ffd5b610f1185828601610e96565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610f5d6020830184610f1d565b9392505050565b6001600160a01b0381168114610a0a575f5ffd5b5f60208284031215610f88575f5ffd5b8135610f5d81610f64565b5f60208284031215610fa3575f5ffd5b813560ff81168114610f5d575f5ffd5b5f5f5f60608486031215610fc5575f5ffd5b8335610fd081610f64565b9250602084013591506040840135610fe781610f64565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f6001820161103757634e487b7160e01b5f52601160045260245ffd5b5060010190565b602080825282518282018190525f918401906040840190835b8181101561107e5783516001600160a01b0316835260209384019390920191600101611057565b509095945050505050565b6001600160a01b03831681526040602082018190525f906110ac90830184610f1d565b949350505050565b602080825281018290525f8360408301825b858110156110f65782356110d981610f64565b6001600160a01b03168252602092830192909101906001016110c6565b5095945050505050565b5f60208284031215611110575f5ffd5b81518015158114610f5d575f5ffd5b5f6020828403121561112f575f5ffd5b8151610f5d81610f6456fe6080604052604051610678380380610678833981016040819052610022916103ed565b61002d82825f610034565b5050610513565b61003d836100f1565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a25f8251118061007c5750805b156100ec576100ea836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e491906104af565b83610273565b505b505050565b6001600160a01b0381163b61015b5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101cd816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101be91906104af565b6001600160a01b03163b151590565b6102325760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610152565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029883836040518060600160405280602781526020016106516027913961029f565b9392505050565b60605f5f856001600160a01b0316856040516102bb91906104c8565b5f60405180830381855af49150503d805f81146102f3576040519150601f19603f3d011682016040523d82523d5f602084013e6102f8565b606091505b50909250905061030a86838387610314565b9695505050505050565b606083156103825782515f0361037b576001600160a01b0385163b61037b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610152565b508161038c565b61038c8383610394565b949350505050565b8151156103a45781518083602001fd5b8060405162461bcd60e51b815260040161015291906104de565b80516001600160a01b03811681146103d4575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156103fe575f5ffd5b610407836103be565b60208401519092506001600160401b03811115610422575f5ffd5b8301601f81018513610432575f5ffd5b80516001600160401b0381111561044b5761044b6103d9565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610479576104796103d9565b604052818152828201602001871015610490575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b5f602082840312156104bf575f5ffd5b610298826103be565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b610131806105205f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b60b3565b565b5f60527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015608c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019060ae919060d0565b905090565b365f5f375f5f365f845af43d5f5f3e80801560cc573d5ff35b3d5ffd5b5f6020828403121560df575f5ffd5b81516001600160a01b038116811460f4575f5ffd5b939250505056fea26469706673582212207573e4acc6548d8cd1e28bdca26daa72e4f1b0a60bbb765db580a0b95e2b21b464736f6c634300081b0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220262fd104eb8b8a554925cbc9fef53ed1f9cfdafce722bb6068ca57d6666e337c64736f6c634300081b0033", } // StrategyFactoryABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/StrategyManager/binding.go b/pkg/bindings/StrategyManager/binding.go index f7bdc78711..88bb793a0a 100644 --- a/pkg/bindings/StrategyManager/binding.go +++ b/pkg/bindings/StrategyManager/binding.go @@ -38,7 +38,7 @@ type OperatorSet struct { // StrategyManagerMetaData contains all meta data concerning the StrategyManager contract. var StrategyManagerMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_allocationManager\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"},{\"name\":\"_delegation\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DEFAULT_BURN_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEPOSIT_TYPEHASH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"addStrategiesToDepositWhitelist\",\"inputs\":[{\"name\":\"strategiesToWhitelist\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"allocationManager\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIAllocationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burnShares\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"calculateStrategyDepositDigestHash\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"clearBurnOrRedistributableShares\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"slashId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"clearBurnOrRedistributableSharesByStrategy\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"slashId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositIntoStrategy\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"depositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"depositIntoStrategyWithSignature\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"depositShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"domainSeparator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBurnOrRedistributableCount\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"slashId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBurnOrRedistributableShares\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"slashId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBurnOrRedistributableShares\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"slashId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBurnableShares\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDeposits\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPendingOperatorSets\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOperatorSet[]\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPendingSlashIds\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStakerStrategyList\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStrategiesWithBurnableShares\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"increaseBurnOrRedistributableShares\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"slashId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"sharesToBurn\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialStrategyWhitelister\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"nonces\",\"inputs\":[{\"name\":\"signer\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"nonce\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeDepositShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"depositSharesToRemove\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeStrategiesFromDepositWhitelist\",\"inputs\":[{\"name\":\"strategiesToRemoveFromWhitelist\",\"type\":\"address[]\",\"internalType\":\"contractIStrategy[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStrategyWhitelister\",\"inputs\":[{\"name\":\"newStrategyWhitelister\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakerDepositShares\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakerStrategyList\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"strategies\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"stakerStrategyListLength\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyIsWhitelistedForDeposit\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"}],\"outputs\":[{\"name\":\"whitelisted\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"strategyWhitelister\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdrawSharesAsTokens\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BurnOrRedistributableSharesDecreased\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"slashId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BurnOrRedistributableSharesIncreased\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"slashId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BurnableSharesDecreased\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"staker\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyAddedToDepositWhitelist\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyRemovedFromDepositWhitelist\",\"inputs\":[{\"name\":\"strategy\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIStrategy\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StrategyWhitelisterChanged\",\"inputs\":[{\"name\":\"previousAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CurrentlyPaused\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InputAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidNewPausedStatus\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MaxStrategiesExceeded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyDelegationManager\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyPauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyStrategyWhitelister\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyUnpauser\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SharesAmountTooHigh\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SharesAmountZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StakerAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyAlreadyInSlash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotFound\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StrategyNotWhitelisted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]}]", - Bin: "0x610100604052348015610010575f5ffd5b506040516139d73803806139d783398101604081905261002f916101bc565b80808585856001600160a01b03811661005b576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805291821660a0521660c05261007c81610093565b60e0525061008a90506100d9565b50505050610301565b5f5f829050601f815111156100c6578260405163305a27a960e01b81526004016100bd91906102a6565b60405180910390fd5b80516100d1826102db565b179392505050565b5f54610100900460ff16156101405760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bd565b5f5460ff9081161461018f575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101a5575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f608085870312156101cf575f5ffd5b84516101da81610191565b60208601519094506101eb81610191565b60408601519093506101fc81610191565b60608601519092506001600160401b03811115610217575f5ffd5b8501601f81018713610227575f5ffd5b80516001600160401b03811115610240576102406101a8565b604051601f8201601f19908116603f011681016001600160401b038111828210171561026e5761026e6101a8565b604052818152828201602001891015610285575f5ffd5b8160208401602083015e5f6020838301015280935050505092959194509250565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102fb575f198160200360031b1b821691505b50919050565b60805160a05160c05160e05161365d61037a5f395f81816110a8015261247401525f81816105fa015281816108c101528181610da30152818161103a0152818161125501526120a901525f81816105a001528181610815015261141a01525f81816104b601528181611aaa01526124e3015261365d5ff3fe608060405234801561000f575f5ffd5b506004361061026b575f3560e01c80637ecebe001161014b578063ca8aa7c7116100bf578063f2fde38b11610084578063f2fde38b1461062f578063f3b4a00014610642578063f698da251461064c578063fabc1cbc14610654578063fd98042314610667578063fe243a171461067a575f5ffd5b8063ca8aa7c71461059b578063cbc2bd62146105c2578063de44acb6146105d5578063df5cf723146105f5578063e7a050aa1461061c575f5ffd5b80638da5cb5b116101105780638da5cb5b1461052b57806394f649dd1461053c578063967fc0d21461054f5780639ac01d6114610562578063b5d8b5b814610575578063c665670214610588575f5ffd5b80637ecebe001461047f578063829fca731461049e578063886f1195146104b157806388c10299146104f05780638b8aac3c14610503575f5ffd5b806350ff7225116101e25780635de08ff2116101a75780635de08ff2146103fc578063663c1de41461040f578063715018a614610431578063724af4231461043957806376fb162b1461044c5780637def15641461045f575f5ffd5b806350ff72251461037c57806354fd4d50146103a4578063595c6a67146103b95780635ac86ab7146103c15780635c975abb146103f4575f5ffd5b806332e89ace1161023357806332e89ace146102f157806336a8c500146103045780633f292b081461031a5780633fb99ca51461032f57806348825e94146103425780634b6d5d6e14610369575f5ffd5b8063136439dd1461026f5780631794bb3c146102845780632d44def6146102975780632eae418c146102bd57806331f8fb4c146102d0575b5f5ffd5b61028261027d366004612e33565b6106a4565b005b610282610292366004612e5e565b6106de565b6102aa6102a5366004612eb2565b610804565b6040519081526020015b60405180910390f35b6102826102cb366004612ef0565b6108b6565b6102e36102de366004612f3e565b610982565b6040516102b4929190612fda565b6102aa6102ff36600461304b565b610b10565b61030c610b95565b6040516102b4929190613125565b610322610cb0565b6040516102b4919061317b565b61028261033d3660046131d8565b610d98565b6102aa7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61028261037736600461321c565b610ee0565b61038f61038a366004612e5e565b61102d565b604080519283526020830191909152016102b4565b6103ac6110a1565b6040516102b49190613265565b6102826110d1565b6103e46103cf366004613277565b609854600160ff9092169190911b9081161490565b60405190151581526020016102b4565b6098546102aa565b61028261040a366004613297565b6110e5565b6103e461041d36600461321c565b60d16020525f908152604090205460ff1681565b610282611238565b6102aa610447366004612e5e565b611249565b6102aa61045a366004612eb2565b6112a6565b61047261046d366004613306565b6112f5565b6040516102b49190613320565b6102aa61048d36600461321c565b60ca6020525f908152604090205481565b6102aa6104ac366004612f3e565b611327565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102b4565b6104726104fe366004612f3e565b611361565b6102aa61051136600461321c565b6001600160a01b03165f90815260ce602052604090205490565b6033546001600160a01b03166104d8565b6102e361054a36600461321c565b611498565b60cb546104d8906001600160a01b031681565b6102aa610570366004613332565b61160f565b610282610583366004613297565b6116a0565b61028261059636600461321c565b6117e7565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6104d86105d0366004613393565b61180a565b6105e86105e336600461321c565b61183e565b6040516102b491906133bd565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61062a366004612e5e565b6118b1565b61028261063d36600461321c565b6118e4565b6104d8620e16e481565b6102aa61195a565b610282610662366004612e33565b611a13565b6102aa61067536600461321c565b611a80565b6102aa6106883660046133cf565b60cd60209081525f928352604080842090915290825290205481565b6106ac611a95565b60985481811681146106d15760405163c61dca5d60e01b815260040160405180910390fd5b6106da82611b38565b5050565b5f54610100900460ff16158080156106fc57505f54600160ff909116105b806107155750303b15801561071557505f5460ff166001145b61077d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561079e575f805461ff0019166101001790555b6107a782611b38565b6107b084611b75565b6107b983611bc6565b80156107fe575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f61080d611c2f565b6108a38484847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630f3df50e896040518263ffffffff1660e01b815260040161085f919061344f565b602060405180830381865afa15801561087a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089e919061345d565b611c88565b90506108af6001606555565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108ff5760405163f739589b60e01b815260040160405180910390fd5b610907611c2f565b604051636ce5768960e11b81526001600160a01b0384169063d9caed129061093790879086908690600401613478565b6020604051808303815f875af1158015610953573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610977919061349c565b506107fe6001606555565b6060805f60d7816109a061099b368990038901896134b3565b611e90565b81526020019081526020015f205f8581526020019081526020015f2090505f6109c882611ef3565b90505f81516001600160401b038111156109e4576109e4613007565b604051908082528060200260200182016040528015610a0d578160200160208202803683370190505b5090505f82516001600160401b03811115610a2a57610a2a613007565b604051908082528060200260200182016040528015610a53578160200160208202803683370190505b5090505f5b8351811015610b0057838181518110610a7357610a7361350f565b6020026020010151838281518110610a8d57610a8d61350f565b60200260200101906001600160a01b031690816001600160a01b031681525050610ad9848281518110610ac257610ac261350f565b602002602001015186611eff90919063ffffffff16565b9050828281518110610aed57610aed61350f565b6020908102919091010152600101610a58565b50909450925050505b9250929050565b5f5f610b1b81611f23565b610b23611c2f565b6001600160a01b0385165f90815260ca6020526040902054610b5486610b4d818c8c8c878c61160f565b8688611f4e565b6001600160a01b0386165f90815260ca60205260409020600182019055610b7d868a8a8a611fa0565b925050610b8a6001606555565b509695505050505050565b6060805f610ba360d461210d565b90505f816001600160401b03811115610bbe57610bbe613007565b604051908082528060200260200182016040528015610be7578160200160208202803683370190505b5090505f826001600160401b03811115610c0357610c03613007565b604051908082528060200260200182016040528015610c2c578160200160208202803683370190505b5090505f5b83811015610ca5575f5f610c4660d484612117565b9150915081858481518110610c5d57610c5d61350f565b60200260200101906001600160a01b031690816001600160a01b03168152505080848481518110610c9057610c9061350f565b60209081029190910101525050600101610c31565b509094909350915050565b60605f610cbd60d8612125565b90505f816001600160401b03811115610cd857610cd8613007565b604051908082528060200260200182016040528015610d1c57816020015b604080518082019091525f8082526020820152815260200190600190039081610cf65790505b5090505f5b82811015610d9157610d6c610d3760d88361212e565b604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b828281518110610d7e57610d7e61350f565b6020908102919091010152600101610d21565b5092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610de15760405163f739589b60e01b815260040160405180910390fd5b610de9611c2f565b5f60d781610dff61099b368990038901896134b3565b815260208082019290925260409081015f90812087825290925290209050610e28818484612139565b610e455760405163ca354fa360e01b815260040160405180910390fd5b610e62610e5a61099b368890038801886134b3565b60d89061214e565b50610e978460da5f610e7c61099b368b90038b018b6134b3565b81526020019081526020015f2061214e90919063ffffffff16565b507f5f5209798bbac45a16d2dc3bc67319fab26ee00153916d6f07b69f8a134a1e8b85858585604051610ecd9493929190613523565b60405180910390a1506107fe6001606555565b610ee8611c2f565b5f610ef460d483611eff565b915050610f0260d483612159565b50604080516001600160a01b0384168152602081018390527fd9d082c3ec4f3a3ffa55c324939a06407f5fbcb87d5e0ce3b9508c92c84ed839910160405180910390a1801561101f57816001600160a01b031663d9caed12620e16e4846001600160a01b0316632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fbe919061345d565b846040518463ffffffff1660e01b8152600401610fdd93929190613478565b6020604051808303815f875af1158015610ff9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101d919061349c565b505b5061102a6001606555565b50565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110785760405163f739589b60e01b815260040160405180910390fd5b611080611c2f565b61108b85858561216d565b915091506110996001606555565b935093915050565b60606110cc7f00000000000000000000000000000000000000000000000000000000000000006122d5565b905090565b6110d9611a95565b6110e35f19611b38565b565b60cb546001600160a01b03163314611110576040516320ba3ff960e21b815260040160405180910390fd5b611118611c2f565b805f5b8181101561122c5760d15f8585848181106111385761113861350f565b905060200201602081019061114d919061321c565b6001600160a01b0316815260208101919091526040015f205460ff1661122457600160d15f8686858181106111845761118461350f565b9050602002016020810190611199919061321c565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8484838181106111f3576111f361350f565b9050602002016020810190611208919061321c565b6040516001600160a01b03909116815260200160405180910390a15b60010161111b565b50506106da6001606555565b611240612312565b6110e35f611b75565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112935760405163f739589b60e01b815260040160405180910390fd5b61129b611c2f565b6108a384848461236c565b5f806112eb8360d7836112c161099b368b90038b018b6134b3565b81526020019081526020015f205f8781526020019081526020015f20611eff90919063ffffffff16565b9695505050505050565b606061132160da5f61130f61099b368790038701876134b3565b81526020019081526020015f2061241a565b92915050565b5f6108af60d78261134061099b368890038801886134b3565b81526020019081526020015f205f8481526020019081526020015f2061210d565b606061136b611c2f565b5f6113a560d78261138461099b368990038901896134b3565b81526020019081526020015f205f8581526020019081526020015f20611ef3565b80519091505f816001600160401b038111156113c3576113c3613007565b6040519080825280602002602001820160405280156113ec578160200160208202803683370190505b5090505f5b828110156114895761146487878684815181106114105761141061350f565b60200260200101517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630f3df50e8c6040518263ffffffff1660e01b815260040161085f919061344f565b8282815181106114765761147661350f565b60209081029190910101526001016113f1565b50925050506113216001606555565b6001600160a01b0381165f90815260ce6020526040812054606091829190816001600160401b038111156114ce576114ce613007565b6040519080825280602002602001820160405280156114f7578160200160208202803683370190505b5090505f5b82811015611585576001600160a01b0386165f90815260cd6020908152604080832060ce909252822080549192918490811061153a5761153a61350f565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205482518390839081106115725761157261350f565b60209081029190910101526001016114fc565b5060ce5f866001600160a01b03166001600160a01b031681526020019081526020015f2081818054806020026020016040519081016040528092919081815260200182805480156115fd57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116115df575b50505050509150935093505050915091565b604080517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922460208201526001600160a01b03808916928201929092528187166060820152908516608082015260a0810184905260c0810183905260e081018290525f90611695906101000160405160208183030381529060405280519060200120612426565b979650505050505050565b60cb546001600160a01b031633146116cb576040516320ba3ff960e21b815260040160405180910390fd5b6116d3611c2f565b805f5b8181101561122c5760d15f8585848181106116f3576116f361350f565b9050602002016020810190611708919061321c565b6001600160a01b0316815260208101919091526040015f205460ff16156117df575f60d15f86868581811061173f5761173f61350f565b9050602002016020810190611754919061321c565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba0308484838181106117ae576117ae61350f565b90506020020160208101906117c3919061321c565b6040516001600160a01b03909116815260200160405180910390a15b6001016116d6565b6117ef612312565b6117f7611c2f565b61180081611bc6565b61102a6001606555565b60ce602052815f5260405f208181548110611823575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6001600160a01b0381165f90815260ce60209081526040918290208054835181840281018401909452808452606093928301828280156118a557602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611887575b50505050509050919050565b5f5f6118bc81611f23565b6118c4611c2f565b6118d033868686611fa0565b91506118dc6001606555565b509392505050565b6118ec612312565b6001600160a01b0381166119515760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610774565b61102a81611b75565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea6119c761246c565b805160209182012060408051928301949094529281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b611a1b6124e1565b60985480198219811614611a425760405163c61dca5d60e01b815260040160405180910390fd5b609882905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f5f611a8d60d484611eff565b949350505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611af7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1b9190613555565b6110e357604051631d77d47760e21b815260040160405180910390fd5b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b600260655403611c815760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610774565b6002606555565b5f8060d781611c9f61099b368a90038a018a6134b3565b815260208082019290925260409081015f90812088825290925281209150611cc78286611eff565b9150611cd590508286612159565b505f8115611dec57856001600160a01b031663d9caed1286886001600160a01b0316632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d4d919061345d565b856040518463ffffffff1660e01b8152600401611d6c93929190613478565b6020604051808303815f875af1158015611d88573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dac919061349c565b90507fe6413aa0c789e437b0a06bf64b20926584f066c79a2d8b80a759c85472f7b0af88888885604051611de39493929190613523565b60405180910390a15b5f611df684611ef3565b519050805f03611e8457611e348860da5f611e1961099b368f90038f018f6134b3565b81526020019081526020015f2061259290919063ffffffff16565b50611e5f60da5f611e4d61099b368e90038e018e6134b3565b81526020019081526020015f20612125565b5f03611e8457611e82611e7a61099b368c90038c018c6134b3565b60d890612592565b505b50979650505050505050565b5f815f0151826020015163ffffffff16604051602001611edb92919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261132190613574565b60605f6108af8361259d565b5f808080611f16866001600160a01b0387166125a8565b9097909650945050505050565b609854600160ff83161b9081160361102a5760405163840a48d560e01b815260040160405180910390fd5b42811015611f6f57604051630819bdcd60e01b815260040160405180910390fd5b611f836001600160a01b03851684846125e0565b6107fe57604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b0383165f90815260d16020526040812054849060ff16611fda57604051632efd965160e11b815260040160405180910390fd5b611fef6001600160a01b038516338786612634565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303815f875af115801561203b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061205f919061349c565b91505f5f61206e88888661216d565b604051631e328e7960e11b81526001600160a01b038b811660048301528a8116602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b1580156120ec575f5ffd5b505af11580156120fe573d5f5f3e3d5ffd5b50505050505050949350505050565b5f6113218261268c565b5f808080611f168686612696565b5f611321825490565b5f6108af83836126bf565b5f611a8d846001600160a01b038516846126e5565b5f6108af8383612701565b5f6108af836001600160a01b03841661274d565b5f806001600160a01b038516612196576040516316f2ccc960e01b815260040160405180910390fd5b825f036121b6576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038086165f90815260cd602090815260408083209388168352929052908120549081900361225c576001600160a01b0386165f90815260ce60209081526040909120541061221e576040516301a1443960e31b815260040160405180910390fd5b6001600160a01b038681165f90815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169187169190911790555b61226684826135ab565b6001600160a01b038088165f90815260cd60209081526040808320938a16835292905281902091909155517f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f62906122c290889088908890613478565b60405180910390a1959294509192505050565b60605f6122e183612769565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6033546001600160a01b031633146110e35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610774565b5f815f0361238d576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038085165f90815260cd6020908152604080832093871683529290522054808311156123d357604051634b18b19360e01b815260040160405180910390fd5b6123dd83826135be565b6001600160a01b038087165f90815260cd602090815260408083209389168352929052908120829055909150819003611a8d57611a8d8585612790565b60605f6108af8361290e565b5f61242f61195a565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b60605f6124987f00000000000000000000000000000000000000000000000000000000000000006122d5565b9050805f815181106124ac576124ac61350f565b016020908101516040516001600160f81b03199091169181019190915260210160405160208183030381529060405291505090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561253d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612561919061345d565b6001600160a01b0316336001600160a01b0316146110e35760405163794821ff60e01b815260040160405180910390fd5b5f6108af8383612966565b60606113218261241a565b5f8181526002830160205260408120548190806125d5576125c98585612a49565b92505f9150610b099050565b600192509050610b09565b5f5f5f6125ed8585612a54565b90925090505f816004811115612605576126056135d1565b1480156126235750856001600160a01b0316826001600160a01b0316145b806112eb57506112eb868686612a93565b6107fe846323b872dd60e01b85858560405160240161265593929190613478565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612b7a565b5f61132182612125565b5f80806126a3858561212e565b5f81815260029690960160205260409095205494959350505050565b5f825f0182815481106126d4576126d461350f565b905f5260205f200154905092915050565b5f8281526002840160205260408120829055611a8d848461214e565b5f81815260018301602052604081205461274657508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611321565b505f611321565b5f81815260028301602052604081208190556108af8383612592565b5f60ff8216601f81111561132157604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b0382165f90815260ce6020526040812054905b818110156128a2576001600160a01b038481165f90815260ce60205260409020805491851691839081106127e0576127e061350f565b5f918252602090912001546001600160a01b03160361289a576001600160a01b0384165f90815260ce60205260409020805461281e906001906135be565b8154811061282e5761282e61350f565b5f9182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061286a5761286a61350f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506128a2565b6001016127aa565b8181036128c257604051632df15a4160e11b815260040160405180910390fd5b6001600160a01b0384165f90815260ce602052604090208054806128e8576128e86135e5565b5f8281526020902081015f1990810180546001600160a01b031916905501905550505050565b6060815f018054806020026020016040519081016040528092919081815260200182805480156118a557602002820191905f5260205f20905b8154815260200190600101908083116129475750505050509050919050565b5f8181526001830160205260408120548015612a40575f6129886001836135be565b85549091505f9061299b906001906135be565b90508181146129fa575f865f0182815481106129b9576129b961350f565b905f5260205f200154905080875f0184815481106129d9576129d961350f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612a0b57612a0b6135e5565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611321565b5f915050611321565b5f6108af8383612c52565b5f5f8251604103612a88576020830151604084015160608501515f1a612a7c87828585612c69565b94509450505050610b09565b505f90506002610b09565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401612abb9291906135f9565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612af99190613611565b5f60405180830381855afa9150503d805f8114612b31576040519150601f19603f3d011682016040523d82523d5f602084013e612b36565b606091505b5091509150818015612b4a57506020815110155b80156112eb57508051630b135d3f60e11b90612b6f908301602090810190840161349c565b149695505050505050565b5f612bce826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612d269092919063ffffffff16565b905080515f1480612bee575080806020019051810190612bee9190613555565b612c4d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610774565b505050565b5f81815260018301602052604081205415156108af565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612c9e57505f90506003612d1d565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612cef573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116612d17575f60019250925050612d1d565b91505f90505b94509492505050565b6060611a8d84845f85855f5f866001600160a01b03168587604051612d4b9190613611565b5f6040518083038185875af1925050503d805f8114612d85576040519150601f19603f3d011682016040523d82523d5f602084013e612d8a565b606091505b50915091506116958783838760608315612e045782515f03612dfd576001600160a01b0385163b612dfd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610774565b5081611a8d565b611a8d8383815115612e195781518083602001fd5b8060405162461bcd60e51b81526004016107749190613265565b5f60208284031215612e43575f5ffd5b5035919050565b6001600160a01b038116811461102a575f5ffd5b5f5f5f60608486031215612e70575f5ffd5b8335612e7b81612e4a565b92506020840135612e8b81612e4a565b929592945050506040919091013590565b5f60408284031215612eac575f5ffd5b50919050565b5f5f5f60808486031215612ec4575f5ffd5b612ece8585612e9c565b9250604084013591506060840135612ee581612e4a565b809150509250925092565b5f5f5f5f60808587031215612f03575f5ffd5b8435612f0e81612e4a565b93506020850135612f1e81612e4a565b92506040850135612f2e81612e4a565b9396929550929360600135925050565b5f5f60608385031215612f4f575f5ffd5b612f598484612e9c565b946040939093013593505050565b5f8151808452602084019350602083015f5b82811015612fa05781516001600160a01b0316865260209586019590910190600101612f79565b5093949350505050565b5f8151808452602084019350602083015f5b82811015612fa0578151865260209586019590910190600101612fbc565b604081525f612fec6040830185612f67565b8281036020840152612ffe8185612faa565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561304357613043613007565b604052919050565b5f5f5f5f5f5f60c08789031215613060575f5ffd5b863561306b81612e4a565b9550602087013561307b81612e4a565b945060408701359350606087013561309281612e4a565b92506080870135915060a08701356001600160401b038111156130b3575f5ffd5b8701601f810189136130c3575f5ffd5b80356001600160401b038111156130dc576130dc613007565b6130ef601f8201601f191660200161301b565b8181528a6020838501011115613103575f5ffd5b816020840160208301375f602083830101528093505050509295509295509295565b604080825283519082018190525f9060208501906060840190835b818110156131675783516001600160a01b0316835260209384019390920191600101613140565b505083810360208501526112eb8186612faa565b602080825282518282018190525f918401906040840190835b818110156131cd57835180516001600160a01b0316845260209081015163ffffffff168185015290930192604090920191600101613194565b509095945050505050565b5f5f5f5f60a085870312156131eb575f5ffd5b6131f58686612e9c565b935060408501359250606085013561320c81612e4a565b9396929550929360800135925050565b5f6020828403121561322c575f5ffd5b81356108af81612e4a565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6108af6020830184613237565b5f60208284031215613287575f5ffd5b813560ff811681146108af575f5ffd5b5f5f602083850312156132a8575f5ffd5b82356001600160401b038111156132bd575f5ffd5b8301601f810185136132cd575f5ffd5b80356001600160401b038111156132e2575f5ffd5b8560208260051b84010111156132f6575f5ffd5b6020919091019590945092505050565b5f60408284031215613316575f5ffd5b6108af8383612e9c565b602081525f6108af6020830184612faa565b5f5f5f5f5f5f60c08789031215613347575f5ffd5b863561335281612e4a565b9550602087013561336281612e4a565b9450604087013561337281612e4a565b959894975094956060810135955060808101359460a0909101359350915050565b5f5f604083850312156133a4575f5ffd5b82356133af81612e4a565b946020939093013593505050565b602081525f6108af6020830184612f67565b5f5f604083850312156133e0575f5ffd5b82356133eb81612e4a565b915060208301356133fb81612e4a565b809150509250929050565b803563ffffffff81168114613419575f5ffd5b919050565b803561342981612e4a565b6001600160a01b0316825263ffffffff61344560208301613406565b1660208301525050565b60408101611321828461341e565b5f6020828403121561346d575f5ffd5b81516108af81612e4a565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156134ac575f5ffd5b5051919050565b5f60408284031280156134c4575f5ffd5b50604080519081016001600160401b03811182821017156134e7576134e7613007565b60405282356134f581612e4a565b815261350360208401613406565b60208201529392505050565b634e487b7160e01b5f52603260045260245ffd5b60a08101613531828761341e565b60408201949094526001600160a01b03929092166060830152608090910152919050565b5f60208284031215613565575f5ffd5b815180151581146108af575f5ffd5b80516020808301519190811015612eac575f1960209190910360031b1b16919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561132157611321613597565b8181038181111561132157611321613597565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b828152604060208201525f611a8d6040830184613237565b5f82518060208501845e5f92019182525091905056fea264697066735822122051ad62e459ea065f2ef5780551bb5733a88f61bf29f219bce24fe29a3658744d64736f6c634300081b0033", + Bin: "0x610100604052348015610010575f5ffd5b506040516139d73803806139d783398101604081905261002f916101bc565b80808585856001600160a01b03811661005b576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805291821660a0521660c05261007c81610093565b60e0525061008a90506100d9565b50505050610301565b5f5f829050601f815111156100c6578260405163305a27a960e01b81526004016100bd91906102a6565b60405180910390fd5b80516100d1826102db565b179392505050565b5f54610100900460ff16156101405760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bd565b5f5460ff9081161461018f575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101a5575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f608085870312156101cf575f5ffd5b84516101da81610191565b60208601519094506101eb81610191565b60408601519093506101fc81610191565b60608601519092506001600160401b03811115610217575f5ffd5b8501601f81018713610227575f5ffd5b80516001600160401b03811115610240576102406101a8565b604051601f8201601f19908116603f011681016001600160401b038111828210171561026e5761026e6101a8565b604052818152828201602001891015610285575f5ffd5b8160208401602083015e5f6020838301015280935050505092959194509250565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102fb575f198160200360031b1b821691505b50919050565b60805160a05160c05160e05161365d61037a5f395f81816110a8015261247401525f81816105fa015281816108c101528181610da30152818161103a0152818161125501526120a901525f81816105a001528181610815015261141a01525f81816104b601528181611aaa01526124e3015261365d5ff3fe608060405234801561000f575f5ffd5b506004361061026b575f3560e01c80637ecebe001161014b578063ca8aa7c7116100bf578063f2fde38b11610084578063f2fde38b1461062f578063f3b4a00014610642578063f698da251461064c578063fabc1cbc14610654578063fd98042314610667578063fe243a171461067a575f5ffd5b8063ca8aa7c71461059b578063cbc2bd62146105c2578063de44acb6146105d5578063df5cf723146105f5578063e7a050aa1461061c575f5ffd5b80638da5cb5b116101105780638da5cb5b1461052b57806394f649dd1461053c578063967fc0d21461054f5780639ac01d6114610562578063b5d8b5b814610575578063c665670214610588575f5ffd5b80637ecebe001461047f578063829fca731461049e578063886f1195146104b157806388c10299146104f05780638b8aac3c14610503575f5ffd5b806350ff7225116101e25780635de08ff2116101a75780635de08ff2146103fc578063663c1de41461040f578063715018a614610431578063724af4231461043957806376fb162b1461044c5780637def15641461045f575f5ffd5b806350ff72251461037c57806354fd4d50146103a4578063595c6a67146103b95780635ac86ab7146103c15780635c975abb146103f4575f5ffd5b806332e89ace1161023357806332e89ace146102f157806336a8c500146103045780633f292b081461031a5780633fb99ca51461032f57806348825e94146103425780634b6d5d6e14610369575f5ffd5b8063136439dd1461026f5780631794bb3c146102845780632d44def6146102975780632eae418c146102bd57806331f8fb4c146102d0575b5f5ffd5b61028261027d366004612e33565b6106a4565b005b610282610292366004612e5e565b6106de565b6102aa6102a5366004612eb2565b610804565b6040519081526020015b60405180910390f35b6102826102cb366004612ef0565b6108b6565b6102e36102de366004612f3e565b610982565b6040516102b4929190612fda565b6102aa6102ff36600461304b565b610b10565b61030c610b95565b6040516102b4929190613125565b610322610cb0565b6040516102b4919061317b565b61028261033d3660046131d8565b610d98565b6102aa7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61028261037736600461321c565b610ee0565b61038f61038a366004612e5e565b61102d565b604080519283526020830191909152016102b4565b6103ac6110a1565b6040516102b49190613265565b6102826110d1565b6103e46103cf366004613277565b609854600160ff9092169190911b9081161490565b60405190151581526020016102b4565b6098546102aa565b61028261040a366004613297565b6110e5565b6103e461041d36600461321c565b60d16020525f908152604090205460ff1681565b610282611238565b6102aa610447366004612e5e565b611249565b6102aa61045a366004612eb2565b6112a6565b61047261046d366004613306565b6112f5565b6040516102b49190613320565b6102aa61048d36600461321c565b60ca6020525f908152604090205481565b6102aa6104ac366004612f3e565b611327565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102b4565b6104726104fe366004612f3e565b611361565b6102aa61051136600461321c565b6001600160a01b03165f90815260ce602052604090205490565b6033546001600160a01b03166104d8565b6102e361054a36600461321c565b611498565b60cb546104d8906001600160a01b031681565b6102aa610570366004613332565b61160f565b610282610583366004613297565b6116a0565b61028261059636600461321c565b6117e7565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6104d86105d0366004613393565b61180a565b6105e86105e336600461321c565b61183e565b6040516102b491906133bd565b6104d87f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61062a366004612e5e565b6118b1565b61028261063d36600461321c565b6118e4565b6104d8620e16e481565b6102aa61195a565b610282610662366004612e33565b611a13565b6102aa61067536600461321c565b611a80565b6102aa6106883660046133cf565b60cd60209081525f928352604080842090915290825290205481565b6106ac611a95565b60985481811681146106d15760405163c61dca5d60e01b815260040160405180910390fd5b6106da82611b38565b5050565b5f54610100900460ff16158080156106fc57505f54600160ff909116105b806107155750303b15801561071557505f5460ff166001145b61077d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff19166001179055801561079e575f805461ff0019166101001790555b6107a782611b38565b6107b084611b75565b6107b983611bc6565b80156107fe575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b5f61080d611c2f565b6108a38484847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630f3df50e896040518263ffffffff1660e01b815260040161085f919061344f565b602060405180830381865afa15801561087a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089e919061345d565b611c88565b90506108af6001606555565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108ff5760405163f739589b60e01b815260040160405180910390fd5b610907611c2f565b604051636ce5768960e11b81526001600160a01b0384169063d9caed129061093790879086908690600401613478565b6020604051808303815f875af1158015610953573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610977919061349c565b506107fe6001606555565b6060805f60d7816109a061099b368990038901896134b3565b611e90565b81526020019081526020015f205f8581526020019081526020015f2090505f6109c882611ef3565b90505f81516001600160401b038111156109e4576109e4613007565b604051908082528060200260200182016040528015610a0d578160200160208202803683370190505b5090505f82516001600160401b03811115610a2a57610a2a613007565b604051908082528060200260200182016040528015610a53578160200160208202803683370190505b5090505f5b8351811015610b0057838181518110610a7357610a7361350f565b6020026020010151838281518110610a8d57610a8d61350f565b60200260200101906001600160a01b031690816001600160a01b031681525050610ad9848281518110610ac257610ac261350f565b602002602001015186611eff90919063ffffffff16565b9050828281518110610aed57610aed61350f565b6020908102919091010152600101610a58565b50909450925050505b9250929050565b5f5f610b1b81611f23565b610b23611c2f565b6001600160a01b0385165f90815260ca6020526040902054610b5486610b4d818c8c8c878c61160f565b8688611f4e565b6001600160a01b0386165f90815260ca60205260409020600182019055610b7d868a8a8a611fa0565b925050610b8a6001606555565b509695505050505050565b6060805f610ba360d461210d565b90505f816001600160401b03811115610bbe57610bbe613007565b604051908082528060200260200182016040528015610be7578160200160208202803683370190505b5090505f826001600160401b03811115610c0357610c03613007565b604051908082528060200260200182016040528015610c2c578160200160208202803683370190505b5090505f5b83811015610ca5575f5f610c4660d484612117565b9150915081858481518110610c5d57610c5d61350f565b60200260200101906001600160a01b031690816001600160a01b03168152505080848481518110610c9057610c9061350f565b60209081029190910101525050600101610c31565b509094909350915050565b60605f610cbd60d8612125565b90505f816001600160401b03811115610cd857610cd8613007565b604051908082528060200260200182016040528015610d1c57816020015b604080518082019091525f8082526020820152815260200190600190039081610cf65790505b5090505f5b82811015610d9157610d6c610d3760d88361212e565b604080518082019091525f80825260208201525060408051808201909152606082901c815263ffffffff909116602082015290565b828281518110610d7e57610d7e61350f565b6020908102919091010152600101610d21565b5092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610de15760405163f739589b60e01b815260040160405180910390fd5b610de9611c2f565b5f60d781610dff61099b368990038901896134b3565b815260208082019290925260409081015f90812087825290925290209050610e28818484612139565b610e455760405163ca354fa360e01b815260040160405180910390fd5b610e62610e5a61099b368890038801886134b3565b60d89061214e565b50610e978460da5f610e7c61099b368b90038b018b6134b3565b81526020019081526020015f2061214e90919063ffffffff16565b507f5f5209798bbac45a16d2dc3bc67319fab26ee00153916d6f07b69f8a134a1e8b85858585604051610ecd9493929190613523565b60405180910390a1506107fe6001606555565b610ee8611c2f565b5f610ef460d483611eff565b915050610f0260d483612159565b50604080516001600160a01b0384168152602081018390527fd9d082c3ec4f3a3ffa55c324939a06407f5fbcb87d5e0ce3b9508c92c84ed839910160405180910390a1801561101f57816001600160a01b031663d9caed12620e16e4846001600160a01b0316632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fbe919061345d565b846040518463ffffffff1660e01b8152600401610fdd93929190613478565b6020604051808303815f875af1158015610ff9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101d919061349c565b505b5061102a6001606555565b50565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110785760405163f739589b60e01b815260040160405180910390fd5b611080611c2f565b61108b85858561216d565b915091506110996001606555565b935093915050565b60606110cc7f00000000000000000000000000000000000000000000000000000000000000006122d5565b905090565b6110d9611a95565b6110e35f19611b38565b565b60cb546001600160a01b03163314611110576040516320ba3ff960e21b815260040160405180910390fd5b611118611c2f565b805f5b8181101561122c5760d15f8585848181106111385761113861350f565b905060200201602081019061114d919061321c565b6001600160a01b0316815260208101919091526040015f205460ff1661122457600160d15f8686858181106111845761118461350f565b9050602002016020810190611199919061321c565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8484838181106111f3576111f361350f565b9050602002016020810190611208919061321c565b6040516001600160a01b03909116815260200160405180910390a15b60010161111b565b50506106da6001606555565b611240612312565b6110e35f611b75565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112935760405163f739589b60e01b815260040160405180910390fd5b61129b611c2f565b6108a384848461236c565b5f806112eb8360d7836112c161099b368b90038b018b6134b3565b81526020019081526020015f205f8781526020019081526020015f20611eff90919063ffffffff16565b9695505050505050565b606061132160da5f61130f61099b368790038701876134b3565b81526020019081526020015f2061241a565b92915050565b5f6108af60d78261134061099b368890038801886134b3565b81526020019081526020015f205f8481526020019081526020015f2061210d565b606061136b611c2f565b5f6113a560d78261138461099b368990038901896134b3565b81526020019081526020015f205f8581526020019081526020015f20611ef3565b80519091505f816001600160401b038111156113c3576113c3613007565b6040519080825280602002602001820160405280156113ec578160200160208202803683370190505b5090505f5b828110156114895761146487878684815181106114105761141061350f565b60200260200101517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630f3df50e8c6040518263ffffffff1660e01b815260040161085f919061344f565b8282815181106114765761147661350f565b60209081029190910101526001016113f1565b50925050506113216001606555565b6001600160a01b0381165f90815260ce6020526040812054606091829190816001600160401b038111156114ce576114ce613007565b6040519080825280602002602001820160405280156114f7578160200160208202803683370190505b5090505f5b82811015611585576001600160a01b0386165f90815260cd6020908152604080832060ce909252822080549192918490811061153a5761153a61350f565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205482518390839081106115725761157261350f565b60209081029190910101526001016114fc565b5060ce5f866001600160a01b03166001600160a01b031681526020019081526020015f2081818054806020026020016040519081016040528092919081815260200182805480156115fd57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116115df575b50505050509150935093505050915091565b604080517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922460208201526001600160a01b03808916928201929092528187166060820152908516608082015260a0810184905260c0810183905260e081018290525f90611695906101000160405160208183030381529060405280519060200120612426565b979650505050505050565b60cb546001600160a01b031633146116cb576040516320ba3ff960e21b815260040160405180910390fd5b6116d3611c2f565b805f5b8181101561122c5760d15f8585848181106116f3576116f361350f565b9050602002016020810190611708919061321c565b6001600160a01b0316815260208101919091526040015f205460ff16156117df575f60d15f86868581811061173f5761173f61350f565b9050602002016020810190611754919061321c565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba0308484838181106117ae576117ae61350f565b90506020020160208101906117c3919061321c565b6040516001600160a01b03909116815260200160405180910390a15b6001016116d6565b6117ef612312565b6117f7611c2f565b61180081611bc6565b61102a6001606555565b60ce602052815f5260405f208181548110611823575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6001600160a01b0381165f90815260ce60209081526040918290208054835181840281018401909452808452606093928301828280156118a557602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611887575b50505050509050919050565b5f5f6118bc81611f23565b6118c4611c2f565b6118d033868686611fa0565b91506118dc6001606555565b509392505050565b6118ec612312565b6001600160a01b0381166119515760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610774565b61102a81611b75565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea6119c761246c565b805160209182012060408051928301949094529281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b611a1b6124e1565b60985480198219811614611a425760405163c61dca5d60e01b815260040160405180910390fd5b609882905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f5f611a8d60d484611eff565b949350505050565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611af7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1b9190613555565b6110e357604051631d77d47760e21b815260040160405180910390fd5b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b600260655403611c815760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610774565b6002606555565b5f8060d781611c9f61099b368a90038a018a6134b3565b815260208082019290925260409081015f90812088825290925281209150611cc78286611eff565b9150611cd590508286612159565b505f8115611dec57856001600160a01b031663d9caed1286886001600160a01b0316632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d4d919061345d565b856040518463ffffffff1660e01b8152600401611d6c93929190613478565b6020604051808303815f875af1158015611d88573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dac919061349c565b90507fe6413aa0c789e437b0a06bf64b20926584f066c79a2d8b80a759c85472f7b0af88888885604051611de39493929190613523565b60405180910390a15b5f611df684611ef3565b519050805f03611e8457611e348860da5f611e1961099b368f90038f018f6134b3565b81526020019081526020015f2061259290919063ffffffff16565b50611e5f60da5f611e4d61099b368e90038e018e6134b3565b81526020019081526020015f20612125565b5f03611e8457611e82611e7a61099b368c90038c018c6134b3565b60d890612592565b505b50979650505050505050565b5f815f0151826020015163ffffffff16604051602001611edb92919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261132190613574565b60605f6108af8361259d565b5f808080611f16866001600160a01b0387166125a8565b9097909650945050505050565b609854600160ff83161b9081160361102a5760405163840a48d560e01b815260040160405180910390fd5b42811015611f6f57604051630819bdcd60e01b815260040160405180910390fd5b611f836001600160a01b03851684846125e0565b6107fe57604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b0383165f90815260d16020526040812054849060ff16611fda57604051632efd965160e11b815260040160405180910390fd5b611fef6001600160a01b038516338786612634565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303815f875af115801561203b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061205f919061349c565b91505f5f61206e88888661216d565b604051631e328e7960e11b81526001600160a01b038b811660048301528a8116602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b1580156120ec575f5ffd5b505af11580156120fe573d5f5f3e3d5ffd5b50505050505050949350505050565b5f6113218261268c565b5f808080611f168686612696565b5f611321825490565b5f6108af83836126bf565b5f611a8d846001600160a01b038516846126e5565b5f6108af8383612701565b5f6108af836001600160a01b03841661274d565b5f806001600160a01b038516612196576040516316f2ccc960e01b815260040160405180910390fd5b825f036121b6576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038086165f90815260cd602090815260408083209388168352929052908120549081900361225c576001600160a01b0386165f90815260ce60209081526040909120541061221e576040516301a1443960e31b815260040160405180910390fd5b6001600160a01b038681165f90815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169187169190911790555b61226684826135ab565b6001600160a01b038088165f90815260cd60209081526040808320938a16835292905281902091909155517f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f62906122c290889088908890613478565b60405180910390a1959294509192505050565b60605f6122e183612769565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6033546001600160a01b031633146110e35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610774565b5f815f0361238d576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038085165f90815260cd6020908152604080832093871683529290522054808311156123d357604051634b18b19360e01b815260040160405180910390fd5b6123dd83826135be565b6001600160a01b038087165f90815260cd602090815260408083209389168352929052908120829055909150819003611a8d57611a8d8585612790565b60605f6108af8361290e565b5f61242f61195a565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b60605f6124987f00000000000000000000000000000000000000000000000000000000000000006122d5565b9050805f815181106124ac576124ac61350f565b016020908101516040516001600160f81b03199091169181019190915260210160405160208183030381529060405291505090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561253d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612561919061345d565b6001600160a01b0316336001600160a01b0316146110e35760405163794821ff60e01b815260040160405180910390fd5b5f6108af8383612966565b60606113218261241a565b5f8181526002830160205260408120548190806125d5576125c98585612a49565b92505f9150610b099050565b600192509050610b09565b5f5f5f6125ed8585612a54565b90925090505f816004811115612605576126056135d1565b1480156126235750856001600160a01b0316826001600160a01b0316145b806112eb57506112eb868686612a93565b6107fe846323b872dd60e01b85858560405160240161265593929190613478565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612b7a565b5f61132182612125565b5f80806126a3858561212e565b5f81815260029690960160205260409095205494959350505050565b5f825f0182815481106126d4576126d461350f565b905f5260205f200154905092915050565b5f8281526002840160205260408120829055611a8d848461214e565b5f81815260018301602052604081205461274657508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611321565b505f611321565b5f81815260028301602052604081208190556108af8383612592565b5f60ff8216601f81111561132157604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b0382165f90815260ce6020526040812054905b818110156128a2576001600160a01b038481165f90815260ce60205260409020805491851691839081106127e0576127e061350f565b5f918252602090912001546001600160a01b03160361289a576001600160a01b0384165f90815260ce60205260409020805461281e906001906135be565b8154811061282e5761282e61350f565b5f9182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061286a5761286a61350f565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506128a2565b6001016127aa565b8181036128c257604051632df15a4160e11b815260040160405180910390fd5b6001600160a01b0384165f90815260ce602052604090208054806128e8576128e86135e5565b5f8281526020902081015f1990810180546001600160a01b031916905501905550505050565b6060815f018054806020026020016040519081016040528092919081815260200182805480156118a557602002820191905f5260205f20905b8154815260200190600101908083116129475750505050509050919050565b5f8181526001830160205260408120548015612a40575f6129886001836135be565b85549091505f9061299b906001906135be565b90508181146129fa575f865f0182815481106129b9576129b961350f565b905f5260205f200154905080875f0184815481106129d9576129d961350f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612a0b57612a0b6135e5565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611321565b5f915050611321565b5f6108af8383612c52565b5f5f8251604103612a88576020830151604084015160608501515f1a612a7c87828585612c69565b94509450505050610b09565b505f90506002610b09565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401612abb9291906135f9565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612af99190613611565b5f60405180830381855afa9150503d805f8114612b31576040519150601f19603f3d011682016040523d82523d5f602084013e612b36565b606091505b5091509150818015612b4a57506020815110155b80156112eb57508051630b135d3f60e11b90612b6f908301602090810190840161349c565b149695505050505050565b5f612bce826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612d269092919063ffffffff16565b905080515f1480612bee575080806020019051810190612bee9190613555565b612c4d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610774565b505050565b5f81815260018301602052604081205415156108af565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612c9e57505f90506003612d1d565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612cef573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116612d17575f60019250925050612d1d565b91505f90505b94509492505050565b6060611a8d84845f85855f5f866001600160a01b03168587604051612d4b9190613611565b5f6040518083038185875af1925050503d805f8114612d85576040519150601f19603f3d011682016040523d82523d5f602084013e612d8a565b606091505b50915091506116958783838760608315612e045782515f03612dfd576001600160a01b0385163b612dfd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610774565b5081611a8d565b611a8d8383815115612e195781518083602001fd5b8060405162461bcd60e51b81526004016107749190613265565b5f60208284031215612e43575f5ffd5b5035919050565b6001600160a01b038116811461102a575f5ffd5b5f5f5f60608486031215612e70575f5ffd5b8335612e7b81612e4a565b92506020840135612e8b81612e4a565b929592945050506040919091013590565b5f60408284031215612eac575f5ffd5b50919050565b5f5f5f60808486031215612ec4575f5ffd5b612ece8585612e9c565b9250604084013591506060840135612ee581612e4a565b809150509250925092565b5f5f5f5f60808587031215612f03575f5ffd5b8435612f0e81612e4a565b93506020850135612f1e81612e4a565b92506040850135612f2e81612e4a565b9396929550929360600135925050565b5f5f60608385031215612f4f575f5ffd5b612f598484612e9c565b946040939093013593505050565b5f8151808452602084019350602083015f5b82811015612fa05781516001600160a01b0316865260209586019590910190600101612f79565b5093949350505050565b5f8151808452602084019350602083015f5b82811015612fa0578151865260209586019590910190600101612fbc565b604081525f612fec6040830185612f67565b8281036020840152612ffe8185612faa565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561304357613043613007565b604052919050565b5f5f5f5f5f5f60c08789031215613060575f5ffd5b863561306b81612e4a565b9550602087013561307b81612e4a565b945060408701359350606087013561309281612e4a565b92506080870135915060a08701356001600160401b038111156130b3575f5ffd5b8701601f810189136130c3575f5ffd5b80356001600160401b038111156130dc576130dc613007565b6130ef601f8201601f191660200161301b565b8181528a6020838501011115613103575f5ffd5b816020840160208301375f602083830101528093505050509295509295509295565b604080825283519082018190525f9060208501906060840190835b818110156131675783516001600160a01b0316835260209384019390920191600101613140565b505083810360208501526112eb8186612faa565b602080825282518282018190525f918401906040840190835b818110156131cd57835180516001600160a01b0316845260209081015163ffffffff168185015290930192604090920191600101613194565b509095945050505050565b5f5f5f5f60a085870312156131eb575f5ffd5b6131f58686612e9c565b935060408501359250606085013561320c81612e4a565b9396929550929360800135925050565b5f6020828403121561322c575f5ffd5b81356108af81612e4a565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6108af6020830184613237565b5f60208284031215613287575f5ffd5b813560ff811681146108af575f5ffd5b5f5f602083850312156132a8575f5ffd5b82356001600160401b038111156132bd575f5ffd5b8301601f810185136132cd575f5ffd5b80356001600160401b038111156132e2575f5ffd5b8560208260051b84010111156132f6575f5ffd5b6020919091019590945092505050565b5f60408284031215613316575f5ffd5b6108af8383612e9c565b602081525f6108af6020830184612faa565b5f5f5f5f5f5f60c08789031215613347575f5ffd5b863561335281612e4a565b9550602087013561336281612e4a565b9450604087013561337281612e4a565b959894975094956060810135955060808101359460a0909101359350915050565b5f5f604083850312156133a4575f5ffd5b82356133af81612e4a565b946020939093013593505050565b602081525f6108af6020830184612f67565b5f5f604083850312156133e0575f5ffd5b82356133eb81612e4a565b915060208301356133fb81612e4a565b809150509250929050565b803563ffffffff81168114613419575f5ffd5b919050565b803561342981612e4a565b6001600160a01b0316825263ffffffff61344560208301613406565b1660208301525050565b60408101611321828461341e565b5f6020828403121561346d575f5ffd5b81516108af81612e4a565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f602082840312156134ac575f5ffd5b5051919050565b5f60408284031280156134c4575f5ffd5b50604080519081016001600160401b03811182821017156134e7576134e7613007565b60405282356134f581612e4a565b815261350360208401613406565b60208201529392505050565b634e487b7160e01b5f52603260045260245ffd5b60a08101613531828761341e565b60408201949094526001600160a01b03929092166060830152608090910152919050565b5f60208284031215613565575f5ffd5b815180151581146108af575f5ffd5b80516020808301519190811015612eac575f1960209190910360031b1b16919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561132157611321613597565b8181038181111561132157611321613597565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b828152604060208201525f611a8d6040830184613237565b5f82518060208501845e5f92019182525091905056fea26469706673582212200ff9eede575454cb6fa0ed8d668d35008dfe530f8c5e03454b93576133b1c85164736f6c634300081b0033", } // StrategyManagerABI is the input ABI used to generate the binding from. diff --git a/pkg/bindings/TaskMailbox/binding.go b/pkg/bindings/TaskMailbox/binding.go index 7a17b33ca9..9ea5182409 100644 --- a/pkg/bindings/TaskMailbox/binding.go +++ b/pkg/bindings/TaskMailbox/binding.go @@ -120,8 +120,8 @@ type OperatorSet struct { // TaskMailboxMetaData contains all meta data concerning the TaskMailbox contract. var TaskMailboxMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_bn254CertificateVerifier\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ecdsaCertificateVerifier\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_maxTaskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"BN254_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ECDSA_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_TASK_SLA\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createTask\",\"inputs\":[{\"name\":\"taskParams\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.TaskParams\",\"components\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"feeSplit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"feeSplitCollector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBN254CertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getECDSACertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIECDSACertificateVerifierTypes.ECDSACertificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sig\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskInfo\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Task\",\"components\":[{\"name\":\"creator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"creationTime\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"isFeeRefunded\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"executorOperatorSetTaskConfig\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskStatus\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"_feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"operatorSetKey\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"isRegistered\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"refundFee\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerExecutorOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"isRegistered\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplit\",\"inputs\":[{\"name\":\"_feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplitCollector\",\"inputs\":[{\"name\":\"_feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"submitResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"isRegistered\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetTaskConfigSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"config\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeRefunded\",\"inputs\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitCollectorSet\",\"inputs\":[{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitSet\",\"inputs\":[{\"name\":\"feeSplit\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskCreated\",\"inputs\":[{\"name\":\"creator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"},{\"name\":\"taskDeadline\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskVerified\",\"inputs\":[{\"name\":\"aggregator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyCertificateSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetTaskConfigNotSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeAlreadyRefunded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusValue\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCurveType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeReceiver\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeSplit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidMessageHash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSetOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidReferenceTimestamp\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskCreator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskStatus\",\"inputs\":[{\"name\":\"expected\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"actual\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}]},{\"type\":\"error\",\"name\":\"OnlyRefundCollector\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PayloadIsEmpty\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TaskSLAExceedsMaximum\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ThresholdNotMet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampAtCreation\",\"inputs\":[]}]", - Bin: "0x610100604052348015610010575f5ffd5b50604051615c6e380380615c6e83398101604081905261002f9161019b565b6001600160a01b03808516608052831660a0526001600160601b03821660c052806100598161006e565b60e052506100656100b4565b505050506102e6565b5f5f829050601f815111156100a1578260405163305a27a960e01b8152600401610098919061028b565b60405180910390fd5b80516100ac826102c0565b179392505050565b5f54610100900460ff161561011b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610098565b5f5460ff9081161461016a575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114610182575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f608085870312156101ae575f5ffd5b6101b78561016c565b93506101c56020860161016c565b60408601519093506001600160601b03811681146101e1575f5ffd5b60608601519092506001600160401b038111156101fc575f5ffd5b8501601f8101871361020c575f5ffd5b80516001600160401b0381111561022557610225610187565b604051601f8201601f19908116603f011681016001600160401b038111828210171561025357610253610187565b60405281815282820160200189101561026a575f5ffd5b8160208401602083015e5f6020838301015280935050505092959194509250565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102e0575f198160200360031b1b821691505b50919050565b60805160a05160c05160e05161592461034a5f395f611a8301525f818161033a0152612ebe01525f818161025201528181613233015281816138450152613a6801525f818161039f015281816131f301528181613773015261399501526159245ff3fe608060405234801561000f575f5ffd5b5060043610610153575f3560e01c8063678fbdb3116100bf578063b869416611610079578063b869416614610322578063d3e043aa14610335578063f2fde38b14610374578063f741e81a14610387578063f7424fc91461039a578063fa2c0b37146103c1575f5ffd5b8063678fbdb3146102b05780636bf6fad5146102c3578063708c0db9146102e3578063715018a6146102f65780638da5cb5b146102fe578063a5fabc811461030f575f5ffd5b806349acd8841161011057806349acd8841461021a5780634ad52e021461022d57806354743ad21461024d57806354fd4d501461027457806362fee0371461027c5780636373ea691461028f575f5ffd5b80631270a892146101575780631a20c505146101805780631ae370eb146101b15780631fb66f5d146101c45780632bf6cc79146101e5578063468c07a014610205575b5f5ffd5b61016a610165366004614215565b6103f3565b60405161017791906142ca565b60405180910390f35b609b54610199906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610177565b61016a6101bf366004614527565b61041c565b6101d76101d2366004614666565b61042f565b604051908152602001610177565b6101f86101f33660046146db565b610dd8565b604051610177919061471a565b610218610213366004614737565b611284565b005b61021861022836600461475f565b611298565b61024061023b3660046146db565b6114e3565b604051610177919061487b565b6101997f000000000000000000000000000000000000000000000000000000000000000081565b61016a611a7c565b61016a61028a3660046146db565b611aac565b609b5461029d9061ffff1681565b60405161ffff9091168152602001610177565b6102186102be3660046149c6565b611fa9565b6102d66102d13660046149e1565b611fba565b60405161017791906149fb565b6102186102f1366004614a0d565b6121ce565b6102186122ff565b6033546001600160a01b0316610199565b61021861031d366004614a55565b612312565b6102186103303660046146db565b612bee565b61035c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160601b039091168152602001610177565b6102186103823660046149c6565b612e20565b610218610395366004614b47565b612e96565b6101997f000000000000000000000000000000000000000000000000000000000000000081565b6103e36103cf3660046146db565b60996020525f908152604090205460ff1681565b6040519015158152602001610177565b6060816040516020016104069190614c72565b6040516020818303038152906040529050919050565b6060816040516020016104069190614df6565b5f6104386130cb565b5f8260400151511161045d57604051636b1a1b6960e11b815260040160405180910390fd5b60995f61046d8460200151613124565b815260208101919091526040015f205460ff1661049d5760405163c292b29760e01b815260040160405180910390fd5b5f609a5f6104ae8560200151613124565b815260208082019290925260409081015f20815160e08101835281546001600160a01b038082168352600160a01b918290046001600160601b03169583019590955260018301549485169382019390935292909160608401910460ff16600281111561051c5761051c6146f2565b600281111561052d5761052d6146f2565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff16600181111561056e5761056e6146f2565b600181111561057f5761057f6146f2565b815260200160018201805461059390614e08565b80601f01602080910402602001604051908101604052809291908181526020018280546105bf90614e08565b801561060a5780601f106105e15761010080835404028352916020019161060a565b820191905f5260205f20905b8154815290600101906020018083116105ed57829003601f168201915b505050505081525050815260200160058201805461062790614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461065390614e08565b801561069e5780601f106106755761010080835404028352916020019161069e565b820191905f5260205f20905b81548152906001019060200180831161068157829003601f168201915b50505050508152505090506106b28161318d565b6106cf576040516314b0a41d60e11b815260040160405180910390fd5b5f6106dd82606001516131d6565b90505f816001600160a01b0316635ddb9b5b86602001516040518263ffffffff1660e01b81526004016107109190614e5e565b602060405180830381865afa15801561072b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074f9190614e6c565b90505f826001600160a01b0316636141879e87602001516040518263ffffffff1660e01b81526004016107829190614e5e565b602060405180830381865afa15801561079d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c19190614e6c565b905063ffffffff811615806107fd57506107db8183614e9b565b63ffffffff1684602001516001600160601b0316426107fa9190614eb7565b11155b61081a5760405163640fcd6b60e11b815260040160405180910390fd5b508251604051630a3fc61360e31b81526001600160a01b03909116906351fe30989061084c9033908990600401614f05565b5f6040518083038186803b158015610862575f5ffd5b505afa158015610874573d5f5f3e3d5ffd5b50508451604051637036693f60e11b81525f93506001600160a01b03909116915063e06cd27e906108a9908990600401614f28565b602060405180830381865afa1580156108c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e89190614f3a565b90505f6097543046896040516020016109049493929190614f55565b604051602081830303815290604052805190602001209050609754600161092b9190614eb7565b609755604080516101c081019091523381526020810161094a42613270565b6001600160601b03908116825260208a81018051516001600160a01b039081168386015292871660408501528b5190921660608401529051015163ffffffff166080820152609b5461ffff1660a082015260c001600181525f602080830182905263ffffffff80881660408086019190915260608086018c90528d8201516080808801919091528251808601845286815260a0808901919091528351808701855287815260c09889015289875260988652958390208851958901516001600160601b03908116600160a01b9081026001600160a01b03988916178355948a0151938a0151168402928616929092176001830155870151600282018054968901519789015161ffff16600160c01b0261ffff60c01b19989095169093026001600160c01b0319909616941693909317939093179384168117835560e0850151919391929160ff60d01b1990911662ffffff60c01b1990911617600160d01b836003811115610ab957610ab96146f2565b02179055506101008201516002808301805461012086015163ffffffff16600160e01b026001600160e01b03941515600160d81b02949094166001600160d81b039091161792909217909155610140830151805160208201516001600160601b0316600160a01b9081026001600160a01b0392831617600386019081556040840151600487018054919094166001600160a01b031982168117855560608601519596929594936001600160a81b031990921617918490811115610b7e57610b7e6146f2565b021790555060808201516002820180546001600160a01b0319166001600160a01b0390921691909117905560a08201518051600383018054909190829060ff191660018381811115610bd257610bd26146f2565b021790555060208201516001820190610beb9082614fd6565b50505060c08201516005820190610c029082614fd6565b5050506101608201516009820190610c1a9082614fd6565b50610180820151600a820190610c309082614fd6565b506101a0820151600b820190610c469082614fd6565b50505060408501516001600160a01b031615801590610c6d57505f826001600160601b0316115b15610ce85760808501516001600160a01b0316610c9d57604051633480121760e21b815260040160405180910390fd5b86516001600160a01b0316610cc557604051633480121760e21b815260040160405180910390fd5b6040850151610ce8906001600160a01b031633306001600160601b0386166132db565b8451604051629c5c4560e41b8152600481018390526001600160a01b03909116906309c5c450906024015f604051808303815f87803b158015610d29575f5ffd5b505af1158015610d3b573d5f5f3e3d5ffd5b5050505086602001515f01516001600160a01b031681336001600160a01b03167f33add0b01e02278be5459fbfa3274aee699ec47f4ee7236b59e7a2c8b5000c268a6020015160200151878c5f0151888c602001516001600160601b031642610da49190614eb7565b8f60400151604051610dbb96959493929190615090565b60405180910390a4945050505050610dd36001606555565b919050565b5f81815260986020908152604080832081516101c08101835281546001600160a01b038082168352600160a01b918290046001600160601b03908116968401969096526001840154808216958401959095529381900490941660608201526002820154928316608082015292820463ffffffff1660a0840152600160c01b820461ffff1660c084015283929160e0830190600160d01b900460ff166003811115610e8457610e846146f2565b6003811115610e9557610e956146f2565b8152600282810154600160d81b810460ff9081161515602080860191909152600160e01b90920463ffffffff16604080860191909152805160e0810182526003870180546001600160a01b038082168452600160a01b918290046001600160601b03169684019690965260048901549586169383019390935260609687019691959094918601939290910490911690811115610f3357610f336146f2565b6002811115610f4457610f446146f2565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff166001811115610f8557610f856146f2565b6001811115610f9657610f966146f2565b8152602001600182018054610faa90614e08565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd690614e08565b80156110215780601f10610ff857610100808354040283529160200191611021565b820191905f5260205f20905b81548152906001019060200180831161100457829003601f168201915b505050505081525050815260200160058201805461103e90614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461106a90614e08565b80156110b55780601f1061108c576101008083540402835291602001916110b5565b820191905f5260205f20905b81548152906001019060200180831161109857829003601f168201915b50505050508152505081526020016009820180546110d290614e08565b80601f01602080910402602001604051908101604052809291908181526020018280546110fe90614e08565b80156111495780601f1061112057610100808354040283529160200191611149565b820191905f5260205f20905b81548152906001019060200180831161112c57829003601f168201915b50505050508152602001600a8201805461116290614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461118e90614e08565b80156111d95780601f106111b0576101008083540402835291602001916111d9565b820191905f5260205f20905b8154815290600101906020018083116111bc57829003601f168201915b50505050508152602001600b820180546111f290614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461121e90614e08565b80156112695780601f1061124057610100808354040283529160200191611269565b820191905f5260205f20905b81548152906001019060200180831161124c57829003601f168201915b505050505081525050905061127d8161334d565b9392505050565b61128c6133a8565b61129581613402565b50565b5f609a5f6112a585613124565b815260208082019290925260409081015f20815160e08101835281546001600160a01b038082168352600160a01b918290046001600160601b03169583019590955260018301549485169382019390935292909160608401910460ff166002811115611313576113136146f2565b6002811115611324576113246146f2565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff166001811115611365576113656146f2565b6001811115611376576113766146f2565b815260200160018201805461138a90614e08565b80601f01602080910402602001604051908101604052809291908181526020018280546113b690614e08565b80156114015780601f106113d857610100808354040283529160200191611401565b820191905f5260205f20905b8154815290600101906020018083116113e457829003601f168201915b505050505081525050815260200160058201805461141e90614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461144a90614e08565b80156114955780601f1061146c57610100808354040283529160200191611495565b820191905f5260205f20905b81548152906001019060200180831161147857829003601f168201915b50505050508152505090506114a98161318d565b6114c6576040516314b0a41d60e11b815260040160405180910390fd5b6114d4838260600151613473565b6114de8383613514565b505050565b6114eb613ff5565b5f82815260986020908152604080832081516101c08101835281546001600160a01b038082168352600160a01b918290046001600160601b03908116968401969096526001840154808216958401959095529381900490941660608201526002820154928316608082015292820463ffffffff1660a0840152600160c01b820461ffff1660c08401529060e0830190600160d01b900460ff166003811115611595576115956146f2565b60038111156115a6576115a66146f2565b8152600282810154600160d81b810460ff9081161515602080860191909152600160e01b90920463ffffffff16604080860191909152805160e0810182526003870180546001600160a01b038082168452600160a01b918290046001600160601b03169684019690965260048901549586169383019390935260609687019691959094918601939290910490911690811115611644576116446146f2565b6002811115611655576116556146f2565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff166001811115611696576116966146f2565b60018111156116a7576116a76146f2565b81526020016001820180546116bb90614e08565b80601f01602080910402602001604051908101604052809291908181526020018280546116e790614e08565b80156117325780601f1061170957610100808354040283529160200191611732565b820191905f5260205f20905b81548152906001019060200180831161171557829003601f168201915b505050505081525050815260200160058201805461174f90614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461177b90614e08565b80156117c65780601f1061179d576101008083540402835291602001916117c6565b820191905f5260205f20905b8154815290600101906020018083116117a957829003601f168201915b50505050508152505081526020016009820180546117e390614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461180f90614e08565b801561185a5780601f106118315761010080835404028352916020019161185a565b820191905f5260205f20905b81548152906001019060200180831161183d57829003601f168201915b50505050508152602001600a8201805461187390614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461189f90614e08565b80156118ea5780601f106118c1576101008083540402835291602001916118ea565b820191905f5260205f20905b8154815290600101906020018083116118cd57829003601f168201915b50505050508152602001600b8201805461190390614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461192f90614e08565b801561197a5780601f106119515761010080835404028352916020019161197a565b820191905f5260205f20905b81548152906001019060200180831161195d57829003601f168201915b5050505050815250509050604051806101c00160405280825f01516001600160a01b0316815260200182602001516001600160601b0316815260200182604001516001600160a01b0316815260200182606001516001600160601b0316815260200182608001516001600160a01b031681526020018260a0015163ffffffff1681526020018260c0015161ffff168152602001611a168361334d565b6003811115611a2757611a276146f2565b81526020018261010001511515815260200182610120015163ffffffff168152602001826101400151815260200182610160015181526020018261018001518152602001826101a00151815250915050919050565b6060611aa77f00000000000000000000000000000000000000000000000000000000000000006135a5565b905090565b5f81815260986020908152604080832081516101c08101835281546001600160a01b038082168352600160a01b918290046001600160601b0390811696840196909652600184015480821695840195909552938190049094166060808301919091526002830154938416608083015293830463ffffffff1660a0820152600160c01b830461ffff1660c08201529293929160e0830190600160d01b900460ff166003811115611b5d57611b5d6146f2565b6003811115611b6e57611b6e6146f2565b8152600282810154600160d81b810460ff9081161515602080860191909152600160e01b90920463ffffffff16604080860191909152805160e0810182526003870180546001600160a01b038082168452600160a01b918290046001600160601b03169684019690965260048901549586169383019390935260609687019691959094918601939290910490911690811115611c0c57611c0c6146f2565b6002811115611c1d57611c1d6146f2565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff166001811115611c5e57611c5e6146f2565b6001811115611c6f57611c6f6146f2565b8152602001600182018054611c8390614e08565b80601f0160208091040260200160405190810160405280929190818152602001828054611caf90614e08565b8015611cfa5780601f10611cd157610100808354040283529160200191611cfa565b820191905f5260205f20905b815481529060010190602001808311611cdd57829003601f168201915b5050505050815250508152602001600582018054611d1790614e08565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4390614e08565b8015611d8e5780601f10611d6557610100808354040283529160200191611d8e565b820191905f5260205f20905b815481529060010190602001808311611d7157829003601f168201915b5050505050815250508152602001600982018054611dab90614e08565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd790614e08565b8015611e225780601f10611df957610100808354040283529160200191611e22565b820191905f5260205f20905b815481529060010190602001808311611e0557829003601f168201915b50505050508152602001600a82018054611e3b90614e08565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6790614e08565b8015611eb25780601f10611e8957610100808354040283529160200191611eb2565b820191905f5260205f20905b815481529060010190602001808311611e9557829003601f168201915b50505050508152602001600b82018054611ecb90614e08565b80601f0160208091040260200160405190810160405280929190818152602001828054611ef790614e08565b8015611f425780601f10611f1957610100808354040283529160200191611f42565b820191905f5260205f20905b815481529060010190602001808311611f2557829003601f168201915b50505050508152505090505f611f578261334d565b90506002816003811115611f6d57611f6d6146f2565b146002829091611f9b57604051634091b18960e11b8152600401611f929291906150e9565b60405180910390fd5b5050506101a0015192915050565b611fb16133a8565b611295816135e2565b611fc2614068565b609a5f611fce84613124565b815260208082019290925260409081015f20815160e08101835281546001600160a01b038082168352600160a01b918290046001600160601b03169583019590955260018301549485169382019390935292909160608401910460ff16600281111561203c5761203c6146f2565b600281111561204d5761204d6146f2565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff16600181111561208e5761208e6146f2565b600181111561209f5761209f6146f2565b81526020016001820180546120b390614e08565b80601f01602080910402602001604051908101604052809291908181526020018280546120df90614e08565b801561212a5780601f106121015761010080835404028352916020019161212a565b820191905f5260205f20905b81548152906001019060200180831161210d57829003601f168201915b505050505081525050815260200160058201805461214790614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461217390614e08565b80156121be5780601f10612195576101008083540402835291602001916121be565b820191905f5260205f20905b8154815290600101906020018083116121a157829003601f168201915b5050505050815250509050919050565b5f54610100900460ff16158080156121ec57505f54600160ff909116105b806122055750303b15801561220557505f5460ff166001145b6122685760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401611f92565b5f805460ff191660011790558015612289575f805461ff0019166101001790555b61229161365c565b61229961368a565b6122a2846136b8565b6122ab83613402565b6122b4826135e2565b80156122f9575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6123076133a8565b6123105f6136b8565b565b61231a6130cb565b5f83815260986020908152604080832081516101c08101835281546001600160a01b038082168352600160a01b918290046001600160601b03908116968401969096526001840154808216958401959095529381900490941660608201526002820154928316608082015292820463ffffffff1660a0840152600160c01b820461ffff1660c084015292916127be91849060e0830190600160d01b900460ff1660038111156123cb576123cb6146f2565b60038111156123dc576123dc6146f2565b8152600282810154600160d81b810460ff9081161515602080860191909152600160e01b90920463ffffffff16604080860191909152805160e0810182526003870180546001600160a01b038082168452600160a01b918290046001600160601b0316968401969096526004890154958616938301939093526060968701969195909491860193929091049091169081111561247a5761247a6146f2565b600281111561248b5761248b6146f2565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff1660018111156124cc576124cc6146f2565b60018111156124dd576124dd6146f2565b81526020016001820180546124f190614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461251d90614e08565b80156125685780601f1061253f57610100808354040283529160200191612568565b820191905f5260205f20905b81548152906001019060200180831161254b57829003601f168201915b505050505081525050815260200160058201805461258590614e08565b80601f01602080910402602001604051908101604052809291908181526020018280546125b190614e08565b80156125fc5780601f106125d3576101008083540402835291602001916125fc565b820191905f5260205f20905b8154815290600101906020018083116125df57829003601f168201915b505050505081525050815260200160098201805461261990614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461264590614e08565b80156126905780601f1061266757610100808354040283529160200191612690565b820191905f5260205f20905b81548152906001019060200180831161267357829003601f168201915b50505050508152602001600a820180546126a990614e08565b80601f01602080910402602001604051908101604052809291908181526020018280546126d590614e08565b80156127205780601f106126f757610100808354040283529160200191612720565b820191905f5260205f20905b81548152906001019060200180831161270357829003601f168201915b50505050508152602001600b8201805461273990614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461276590614e08565b80156127b05780601f10612787576101008083540402835291602001916127b0565b820191905f5260205f20905b81548152906001019060200180831161279357829003601f168201915b50505050508152505061334d565b905060018160038111156127d4576127d46146f2565b1460018290916127f957604051634091b18960e11b8152600401611f929291906150e9565b50508154600160a01b90046001600160601b0316421161282c5760405163015a4b7560e51b815260040160405180910390fd5b600382015460405163ba33565d60e01b81526001600160a01b039091169063ba33565d90612864903390899089908990600401615104565b5f6040518083038186803b15801561287a575f5ffd5b505afa15801561288c573d5f5f3e3d5ffd5b50506040805180820182526001808701546001600160a01b03168252600287015463ffffffff600160a01b91829004166020840152600488015484518086019095526006890180549497506129c6965060ff92909104821694939092849291909116908111156128fe576128fe6146f2565b600181111561290f5761290f6146f2565b815260200160018201805461292390614e08565b80601f016020809104026020016040519081016040528092919081815260200182805461294f90614e08565b801561299a5780601f106129715761010080835404028352916020019161299a565b820191905f5260205f20905b81548152906001019060200180831161297d57829003601f168201915b505050919092525050506002860154875160208901208591600160e01b900463ffffffff16908a613709565b60028301805460ff60d01b1916600160d11b179055600a83016129e98682614fd6565b50600b83016129f88582614fd6565b5060048301546001600160a01b031615801590612a2857506001830154600160a01b90046001600160601b031615155b15612b1757600283015460018401545f91612a779161271091612a6891600160c01b90910461ffff16906001600160601b03600160a01b9091041661513c565b612a729190615153565b613270565b90506001600160601b03811615612ab757609b546004850154612ab7916001600160a01b039182169162010000909104166001600160601b038416613b2b565b60018401545f90612ad9908390600160a01b90046001600160601b0316615172565b90506001600160601b03811615612b145760058501546004860154612b14916001600160a01b0391821691166001600160601b038416613b2b565b50505b6003830154604051637041233f60e11b8152336004820152602481018890526001600160a01b039091169063e082467e906044015f604051808303815f87803b158015612b62575f5ffd5b505af1158015612b74573d5f5f3e3d5ffd5b505050600184015460028501546040516001600160a01b039092169250889133917f659f23b2e7edf490e5fd6561c5148691ed0375ed7ddd3ab1bcfcfdbec4f209a991612bd99163ffffffff600160a01b9091041690600a8a0190600b8b0190615210565b60405180910390a45050506114de6001606555565b612bf66130cb565b5f81815260986020526040902060028101546001600160a01b03163314612c30576040516370f43cb760e01b815260040160405180910390fd5b6002810154600160d81b900460ff1615612c5d57604051633e3d786960e01b815260040160405180910390fd5b604080516101c08101825282546001600160a01b038082168352600160a01b918290046001600160601b03908116602085015260018601548083169585019590955293829004909316606083015260028401549283166080830152820463ffffffff1660a0820152600160c01b820461ffff1660c08201525f91612cfe9190849060e0830190600160d01b900460ff1660038111156123cb576123cb6146f2565b90506003816003811115612d1457612d146146f2565b146003829091612d3957604051634091b18960e11b8152600401611f929291906150e9565b505060028201805460ff60d81b1916600160d81b17905560048201546001600160a01b031615801590612d7f57506001820154600160a01b90046001600160601b031615155b15612dbb57600282015460018301546004840154612dbb926001600160a01b0391821692911690600160a01b90046001600160601b0316613b2b565b60028201546001830154604051600160a01b9091046001600160601b0316815284916001600160a01b0316907fe3ed40d31808582f7a92a30beacc0ec788d5091407ec6c10c1b999b3f317aea39060200160405180910390a350506112956001606555565b612e286133a8565b6001600160a01b038116612e8d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611f92565b611295816136b8565b612e9f8161318d565b612ebc576040516314b0a41d60e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160601b031681602001516001600160601b03161115612f135760405163a7cf966560e01b815260040160405180910390fd5b612f208160a00151613b5b565b612f2e828260600151613473565b80609a5f612f3b85613124565b815260208082019290925260409081015f208351928401516001600160601b0316600160a01b9081026001600160a01b0394851617825591840151600182018054919094166001600160a01b03198216811785556060860151929492936001600160a81b03199092161790836002811115612fb857612fb86146f2565b021790555060808201516002820180546001600160a01b0319166001600160a01b0390921691909117905560a08201518051600383018054909190829060ff19166001838181111561300c5761300c6146f2565b0217905550602082015160018201906130259082614fd6565b50505060c0820151600582019061303c9082614fd6565b50905050816020015163ffffffff16825f01516001600160a01b0316336001600160a01b03167f7cd76abd4025a20959a1b20f7c1536e3894a0735cd8de0215dde803ddea7f2d28460405161309191906149fb565b60405180910390a460995f6130a584613124565b815260208101919091526040015f205460ff166130c7576130c7826001613514565b5050565b60026065540361311d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611f92565b6002606555565b5f815f0151826020015163ffffffff1660405160200161316f92919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b60405160208183030381529060405261318790615240565b92915050565b5f80826060015160028111156131a5576131a56146f2565b141580156131bc575081516001600160a01b031615155b8015613187575050602001516001600160601b0316151590565b5f60028260028111156131eb576131eb6146f2565b0361321757507f0000000000000000000000000000000000000000000000000000000000000000919050565b600182600281111561322b5761322b6146f2565b0361325757507f0000000000000000000000000000000000000000000000000000000000000000919050565b60405163fdea7c0960e01b815260040160405180910390fd5b5f6001600160601b038211156132d75760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401611f92565b5090565b6040516001600160a01b03808516602483015283166044820152606481018290526122f99085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613c1a565b6001606555565b5f60018260e001516003811115613366576133666146f2565b14801561339357508161014001516020015182602001516133879190615263565b6001600160601b031642115b156133a057506003919050565b5060e0015190565b6033546001600160a01b031633146123105760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611f92565b61271061ffff8216111561342957604051630601f69760e01b815260040160405180910390fd5b609b805461ffff191661ffff83169081179091556040519081527f886b2cfcb151fd8b19ed902cc88f4a06dd9fe351a4a9ab93f33fe84abc157edf9060200160405180910390a150565b5f61347d826131d6565b6040516304240c4960e51b815290915033906001600160a01b038316906384818920906134ae908790600401614e5e565b602060405180830381865afa1580156134c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134ed9190615282565b6001600160a01b0316146114de576040516342ecfee960e11b815260040160405180910390fd5b8060995f61352185613124565b81526020019081526020015f205f6101000a81548160ff021916908315150217905550816020015163ffffffff16825f01516001600160a01b0316336001600160a01b03167f48b63f21a1eb9dd6880e196de6d7db3fbd0c282b74f1298dcb4cf53472298f3984604051613599911515815260200190565b60405180910390a45050565b60605f6135b183613ced565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b03811661360957604051630863a45360e11b815260040160405180910390fd5b609b805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f262aa27c244f6f0088cb3092548a0adcaddedf459070a9ccab2dc6a07abe701d905f90a250565b5f54610100900460ff166136825760405162461bcd60e51b8152600401611f929061529d565b612310613d14565b5f54610100900460ff166136b05760405162461bcd60e51b8152600401611f929061529d565b612310613d43565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8551600181111561371d5761371d6146f2565b036138c5576002866002811115613736576137366146f2565b036137f3575f818060200190518101906137509190615548565b905061375d818585613d69565b6040516280b71560e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063080b7150906137aa908890859060040161561a565b5f604051808303815f875af11580156137c5573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526137ec9190810190615639565b5050613b23565b6001866002811115613807576138076146f2565b03613257575f81806020019051810190613821919061566a565b905061382e818585613df3565b6040516380c7d3f360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906380c7d3f39061387c90889085906004016156e3565b5f60405180830381865afa158015613896573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526138bd9190810190615766565b505050613b23565b6001855160018111156138da576138da6146f2565b03613b0a575f85602001518060200190518101906138f891906157c9565b6040805160018082528183019092529192505f91906020808301908036833701905050905081815f81518110613930576139306157e4565b61ffff909216602092830291909101909101525f6002896002811115613958576139586146f2565b03613a16575f848060200190518101906139729190615548565b905061397f818888613d69565b604051625f5e5d60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063017d7974906139ce908b9085908890600401615836565b6020604051808303815f875af11580156139ea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a0e9190615867565b915050613aec565b6001896002811115613a2a57613a2a6146f2565b03613257575f84806020019051810190613a44919061566a565b9050613a51818888613df3565b604051630606d12160e51b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c0da242090613aa1908b9085908890600401615882565b5f60405180830381865afa158015613abb573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613ae291908101906158a1565b509150613aec9050565b806138bd576040516359fa4a9360e01b815260040160405180910390fd5b6040516347d3772160e11b815260040160405180910390fd5b505050505050565b6040516001600160a01b0383166024820152604481018290526114de90849063a9059cbb60e01b9060640161330f565b5f81516001811115613b6f57613b6f6146f2565b03613b98576020810151511561129557604051631501e04760e21b815260040160405180910390fd5b600181516001811115613bad57613bad6146f2565b03613b0a57806020015151602014613bd857604051631501e04760e21b815260040160405180910390fd5b5f8160200151806020019051810190613bf191906157c9565b905061271061ffff821611156130c757604051631501e04760e21b815260040160405180910390fd5b5f613c6e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613e6b9092919063ffffffff16565b905080515f1480613c8e575080806020019051810190613c8e9190615867565b6114de5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611f92565b5f60ff8216601f81111561318757604051632cd44ac360e21b815260040160405180910390fd5b5f54610100900460ff16613d3a5760405162461bcd60e51b8152600401611f929061529d565b612310336136b8565b5f54610100900460ff166133465760405162461bcd60e51b8152600401611f929061529d565b8163ffffffff16835f015163ffffffff1614613d9857604051634534032960e01b815260040160405180910390fd5b80836020015114613dbc57604051638b56642d60e01b815260040160405180910390fd5b604083015151158015613dd55750604083015160200151155b156114de57604051637a8a1dbd60e11b815260040160405180910390fd5b8163ffffffff16835f015163ffffffff1614613e2257604051634534032960e01b815260040160405180910390fd5b80836020015114613e4657604051638b56642d60e01b815260040160405180910390fd5b5f836040015151116114de57604051637a8a1dbd60e11b815260040160405180910390fd5b6060613e7984845f85613e81565b949350505050565b606082471015613ee25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401611f92565b5f5f866001600160a01b03168587604051613efd91906158d8565b5f6040518083038185875af1925050503d805f8114613f37576040519150601f19603f3d011682016040523d82523d5f602084013e613f3c565b606091505b5091509150613f4d87838387613f58565b979650505050505050565b60608315613fc65782515f03613fbf576001600160a01b0385163b613fbf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611f92565b5081613e79565b613e798383815115613fdb5781518083602001fd5b8060405162461bcd60e51b8152600401611f9291906142ca565b604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c081018290529060e082019081525f60208201819052604082015260600161404d614068565b81526020016060815260200160608152602001606081525090565b6040805160e0810182525f8082526020820181905291810182905290606082019081525f602082015260400161409c6140a9565b8152602001606081525090565b60408051808201909152805f61409c565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156140f0576140f06140ba565b60405290565b604080519081016001600160401b03811182821017156140f0576140f06140ba565b60405160a081016001600160401b03811182821017156140f0576140f06140ba565b60405160e081016001600160401b03811182821017156140f0576140f06140ba565b604051601f8201601f191681016001600160401b0381118282101715614184576141846140ba565b604052919050565b63ffffffff81168114611295575f5ffd5b5f6001600160401b038211156141b5576141b56140ba565b50601f01601f191660200190565b5f82601f8301126141d2575f5ffd5b81356141e56141e08261419d565b61415c565b8181528460208386010111156141f9575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215614225575f5ffd5b81356001600160401b0381111561423a575f5ffd5b82016060818503121561424b575f5ffd5b6142536140ce565b813561425e8161418c565b81526020828101359082015260408201356001600160401b03811115614282575f5ffd5b61428e868285016141c3565b604083015250949350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61127d602083018461429c565b5f604082840312156142ec575f5ffd5b6142f46140f6565b823581526020928301359281019290925250919050565b5f82601f83011261431a575f5ffd5b614324604061415c565b806040840185811115614335575f5ffd5b845b8181101561434f578035845260209384019301614337565b509095945050505050565b5f6001600160401b03821115614372576143726140ba565b5060051b60200190565b5f82601f83011261438b575f5ffd5b81356143996141e08261435a565b8082825260208201915060208360051b8601019250858311156143ba575f5ffd5b602085015b8381101561451d5780356001600160401b038111156143dc575f5ffd5b86016060818903601f190112156143f1575f5ffd5b6143f96140ce565b60208201356144078161418c565b815260408201356001600160401b03811115614421575f5ffd5b6144308a6020838601016141c3565b60208301525060608201356001600160401b0381111561444e575f5ffd5b6020818401019250506060828a031215614466575f5ffd5b61446e6140f6565b6144788a846142dc565b815260408301356001600160401b03811115614492575f5ffd5b80840193505089601f8401126144a6575f5ffd5b82356144b46141e08261435a565b8082825260208201915060208360051b87010192508c8311156144d5575f5ffd5b6020860195505b828610156144f75785358252602095860195909101906144dc565b8060208501525050508060408301525080855250506020830192506020810190506143bf565b5095945050505050565b5f60208284031215614537575f5ffd5b81356001600160401b0381111561454c575f5ffd5b820180840361012081121561455f575f5ffd5b614567614118565b82356145728161418c565b81526020838101359082015261458b86604085016142dc565b60408201526080607f19830112156145a1575f5ffd5b6145a96140f6565b91506145b8866080850161430b565b82526145c78660c0850161430b565b602083015281606082015261010083013591506001600160401b038211156145ed575f5ffd5b6145f98683850161437c565b608082015295945050505050565b6001600160a01b0381168114611295575f5ffd5b8035610dd381614607565b5f60408284031215614636575f5ffd5b61463e6140f6565b9050813561464b81614607565b8152602082013561465b8161418c565b602082015292915050565b5f60208284031215614676575f5ffd5b81356001600160401b0381111561468b575f5ffd5b82016080818503121561469c575f5ffd5b6146a46140ce565b81356146af81614607565b81526146be8560208401614626565b602082015260608201356001600160401b03811115614282575f5ffd5b5f602082840312156146eb575f5ffd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b60048110614716576147166146f2565b9052565b602081016131878284614706565b61ffff81168114611295575f5ffd5b5f60208284031215614747575f5ffd5b813561127d81614728565b8015158114611295575f5ffd5b5f5f60608385031215614770575f5ffd5b61477a8484614626565b9150604083013561478a81614752565b809150509250929050565b60038110614716576147166146f2565b5f8151600281106147b8576147b86146f2565b80845250602082015160406020850152613e79604085018261429c565b80516001600160a01b031682526020808201516001600160601b0316908301526040808201515f91614811908501826001600160a01b03169052565b5060608201516148246060850182614795565b50608082015161483f60808501826001600160a01b03169052565b5060a082015160e060a085015261485960e08501826147a5565b905060c083015184820360c0860152614872828261429c565b95945050505050565b602081526148956020820183516001600160a01b03169052565b5f60208301516148b060408401826001600160601b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160601b03811660808401525060808301516001600160a01b03811660a08401525060a083015163ffffffff811660c08401525060c083015161ffff811660e08401525060e0830151614925610100840182614706565b506101008301518015156101208401525061012083015163ffffffff8116610140840152506101408301516101c06101608401526149676101e08401826147d5565b9050610160840151601f1984830301610180850152614986828261429c565b915050610180840151601f19848303016101a08501526149a6828261429c565b9150506101a0840151601f19848303016101c0850152614872828261429c565b5f602082840312156149d6575f5ffd5b813561127d81614607565b5f604082840312156149f1575f5ffd5b61127d8383614626565b602081525f61127d60208301846147d5565b5f5f5f60608486031215614a1f575f5ffd5b8335614a2a81614607565b92506020840135614a3a81614728565b91506040840135614a4a81614607565b809150509250925092565b5f5f5f60608486031215614a67575f5ffd5b8335925060208401356001600160401b03811115614a83575f5ffd5b614a8f868287016141c3565b92505060408401356001600160401b03811115614aaa575f5ffd5b614ab6868287016141c3565b9150509250925092565b6001600160601b0381168114611295575f5ffd5b8035610dd381614ac0565b803560038110610dd3575f5ffd5b5f60408284031215614afd575f5ffd5b614b056140f6565b9050813560028110614b15575f5ffd5b815260208201356001600160401b03811115614b2f575f5ffd5b614b3b848285016141c3565b60208301525092915050565b5f5f60608385031215614b58575f5ffd5b614b628484614626565b915060408301356001600160401b03811115614b7c575f5ffd5b830160e08186031215614b8d575f5ffd5b614b9561413a565b614b9e8261461b565b8152614bac60208301614ad4565b6020820152614bbd6040830161461b565b6040820152614bce60608301614adf565b6060820152614bdf6080830161461b565b608082015260a08201356001600160401b03811115614bfc575f5ffd5b614c0887828501614aed565b60a08301525060c08201356001600160401b03811115614c26575f5ffd5b614c32878285016141c3565b60c08301525080925050509250929050565b63ffffffff8151168252602081015160208301525f604082015160606040850152613e79606085018261429c565b602081525f61127d6020830184614c44565b805f5b60028110156122f9578151845260209384019390910190600101614c87565b5f610120830163ffffffff8351168452602083015160208501526040830151614cdc604086018280518252602090810151910152565b506060830151614cf0608086018251614c84565b60200151614d0160c0860182614c84565b506080830151610120610100860152818151808452610140870191506101408160051b88010193506020830192505f5b81811015614dea5761013f19888603018352835163ffffffff8151168652602081015160606020880152614d68606088018261429c565b905060408201519150868103604088015260608101614d9282845180518252602090810151910152565b6020928301516060604084015280518083529301925f92608001905b80841015614dd15784518252602082019150602085019450600184019350614dae565b5097505050602094850194939093019250600101614d31565b50929695505050505050565b602081525f61127d6020830184614ca6565b600181811c90821680614e1c57607f821691505b602082108103614e3a57634e487b7160e01b5f52602260045260245ffd5b50919050565b80516001600160a01b0316825260209081015163ffffffff16910152565b604081016131878284614e40565b5f60208284031215614e7c575f5ffd5b815161127d8161418c565b634e487b7160e01b5f52601160045260245ffd5b63ffffffff818116838216019081111561318757613187614e87565b8082018082111561318757613187614e87565b80516001600160a01b031682526020808201515f91614eeb90850182614e40565b50604082015160806060850152613e79608085018261429c565b6001600160a01b03831681526040602082018190525f90613e7990830184614eca565b602081525f61127d6020830184614eca565b5f60208284031215614f4a575f5ffd5b815161127d81614ac0565b84815260018060a01b0384166020820152826040820152608060608201525f614f816080830184614eca565b9695505050505050565b601f8211156114de57805f5260205f20601f840160051c81016020851015614fb05750805b601f840160051c820191505b81811015614fcf575f8155600101614fbc565b5050505050565b81516001600160401b03811115614fef57614fef6140ba565b61500381614ffd8454614e08565b84614f8b565b6020601f821160018114615035575f831561501e5750848201515b5f19600385901b1c1916600184901b178455614fcf565b5f84815260208120601f198516915b828110156150645787850151825560209485019460019092019101615044565b508482101561508157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b63ffffffff8716815263ffffffff8616602082015260018060a01b03851660408201526001600160601b038416606082015282608082015260c060a08201525f6150dd60c083018461429c565b98975050505050505050565b604081016150f78285614706565b61127d6020830184614706565b60018060a01b0385168152836020820152608060408201525f61512a608083018561429c565b8281036060840152613f4d818561429c565b808202811582820484141761318757613187614e87565b5f8261516d57634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160601b03828116828216039081111561318757613187614e87565b5f815461519d81614e08565b8085526001821680156151b757600181146151d357615207565b60ff1983166020870152602082151560051b8701019350615207565b845f5260205f205f5b838110156151fe5781546020828a0101526001820191506020810190506151dc565b87016020019450505b50505092915050565b63ffffffff84168152606060208201525f61522e6060830185615191565b8281036040840152614f818185615191565b80516020808301519190811015614e3a575f1960209190910360031b1b16919050565b6001600160601b03818116838216019081111561318757613187614e87565b5f60208284031215615292575f5ffd5b815161127d81614607565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f604082840312156152f8575f5ffd5b6153006140f6565b825181526020928301519281019290925250919050565b5f82601f830112615326575f5ffd5b615330604061415c565b806040840185811115615341575f5ffd5b845b8181101561434f578051845260209384019301615343565b5f82601f83011261536a575f5ffd5b81516153786141e08261419d565b81815284602083860101111561538c575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f8301126153b7575f5ffd5b81516153c56141e08261435a565b8082825260208201915060208360051b8601019250858311156153e6575f5ffd5b602085015b8381101561451d5780518352602092830192016153eb565b5f82601f830112615412575f5ffd5b81516154206141e08261435a565b8082825260208201915060208360051b860101925085831115615441575f5ffd5b602085015b8381101561451d5780516001600160401b03811115615463575f5ffd5b86016060818903601f19011215615478575f5ffd5b6154806140ce565b602082015161548e8161418c565b815260408201516001600160401b038111156154a8575f5ffd5b6154b78a60208386010161535b565b60208301525060608201516001600160401b038111156154d5575f5ffd5b6020818401019250506060828a0312156154ed575f5ffd5b6154f56140f6565b6154ff8a846152e8565b815260408301516001600160401b03811115615519575f5ffd5b6155258b8286016153a8565b602083015250806040830152508085525050602083019250602081019050615446565b5f60208284031215615558575f5ffd5b81516001600160401b0381111561556d575f5ffd5b8201808403610120811215615580575f5ffd5b615588614118565b82516155938161418c565b8152602083810151908201526155ac86604085016152e8565b60408201526080607f19830112156155c2575f5ffd5b6155ca6140f6565b91506155d98660808501615317565b82526155e88660c08501615317565b602083015281606082015261010083015191506001600160401b0382111561560e575f5ffd5b6145f986838501615403565b6156248184614e40565b606060408201525f613e796060830184614ca6565b5f60208284031215615649575f5ffd5b81516001600160401b0381111561565e575f5ffd5b613e79848285016153a8565b5f6020828403121561567a575f5ffd5b81516001600160401b0381111561568f575f5ffd5b8201606081850312156156a0575f5ffd5b6156a86140ce565b81516156b38161418c565b81526020828101519082015260408201516001600160401b038111156156d7575f5ffd5b61428e8682850161535b565b6156ed8184614e40565b606060408201525f613e796060830184614c44565b5f82601f830112615711575f5ffd5b815161571f6141e08261435a565b8082825260208201915060208360051b860101925085831115615740575f5ffd5b602085015b8381101561451d57805161575881614607565b835260209283019201615745565b5f5f60408385031215615777575f5ffd5b82516001600160401b0381111561578c575f5ffd5b615798858286016153a8565b92505060208301516001600160401b038111156157b3575f5ffd5b6157bf85828601615702565b9150509250929050565b5f602082840312156157d9575f5ffd5b815161127d81614728565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602084019350602083015f5b8281101561582c57815161ffff1686526020958601959091019060010161580a565b5093949350505050565b6158408185614e40565b608060408201525f6158556080830185614ca6565b8281036060840152614f8181856157f8565b5f60208284031215615877575f5ffd5b815161127d81614752565b61588c8185614e40565b608060408201525f6158556080830185614c44565b5f5f604083850312156158b2575f5ffd5b82516158bd81614752565b60208401519092506001600160401b038111156157b3575f5ffd5b5f82518060208501845e5f92019182525091905056fea2646970667358221220416f2b704892a86e86023f485641a06bf647a2faa607247d145a9d00644fac5164736f6c634300081b0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_bn254CertificateVerifier\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ecdsaCertificateVerifier\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_maxTaskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"_version\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"BN254_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ECDSA_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_TASK_SLA\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createTask\",\"inputs\":[{\"name\":\"taskParams\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.TaskParams\",\"components\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"feeSplit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"feeSplitCollector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBN254CertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getECDSACertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIECDSACertificateVerifierTypes.ECDSACertificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sig\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMessageHash\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getTaskInfo\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Task\",\"components\":[{\"name\":\"creator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"creationTime\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"isFeeRefunded\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"executorOperatorSetTaskConfig\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskStatus\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"_feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"operatorSetKey\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"isRegistered\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"refundFee\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerExecutorOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"isRegistered\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplit\",\"inputs\":[{\"name\":\"_feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplitCollector\",\"inputs\":[{\"name\":\"_feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"submitResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"isRegistered\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetTaskConfigSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"config\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeRefunded\",\"inputs\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitCollectorSet\",\"inputs\":[{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitSet\",\"inputs\":[{\"name\":\"feeSplit\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskCreated\",\"inputs\":[{\"name\":\"creator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"},{\"name\":\"taskDeadline\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskVerified\",\"inputs\":[{\"name\":\"aggregator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyCertificateSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetTaskConfigNotSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeAlreadyRefunded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusValue\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCurveType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeReceiver\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeSplit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidMessageHash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSetOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidReferenceTimestamp\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidShortString\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskCreator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskStatus\",\"inputs\":[{\"name\":\"expected\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"actual\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}]},{\"type\":\"error\",\"name\":\"OnlyRefundCollector\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PayloadIsEmpty\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StringTooLong\",\"inputs\":[{\"name\":\"str\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"TaskSLAExceedsMaximum\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ThresholdNotMet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampAtCreation\",\"inputs\":[]}]", + Bin: "0x610100604052348015610010575f5ffd5b50604051615d1b380380615d1b83398101604081905261002f9161019b565b6001600160a01b03808516608052831660a0526001600160601b03821660c052806100598161006e565b60e052506100656100b4565b505050506102e6565b5f5f829050601f815111156100a1578260405163305a27a960e01b8152600401610098919061028b565b60405180910390fd5b80516100ac826102c0565b179392505050565b5f54610100900460ff161561011b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610098565b5f5460ff9081161461016a575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114610182575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f608085870312156101ae575f5ffd5b6101b78561016c565b93506101c56020860161016c565b60408601519093506001600160601b03811681146101e1575f5ffd5b60608601519092506001600160401b038111156101fc575f5ffd5b8501601f8101871361020c575f5ffd5b80516001600160401b0381111561022557610225610187565b604051601f8201601f19908116603f011681016001600160401b038111828210171561025357610253610187565b60405281815282820160200189101561026a575f5ffd5b8160208401602083015e5f6020838301015280935050505092959194509250565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102e0575f198160200360031b1b821691505b50919050565b60805160a05160c05160e0516159d161034a5f395f611ae301525f81816103670152612f2001525f818161027f0152818161328f015281816138a10152613ac401525f81816103cc0152818161324f015281816137cf01526139f101526159d15ff3fe608060405234801561000f575f5ffd5b506004361061016d575f3560e01c80636373ea69116100d9578063a5fabc8111610093578063f2fde38b1161006e578063f2fde38b146103a1578063f741e81a146103b4578063f7424fc9146103c7578063fa2c0b37146103ee575f5ffd5b8063a5fabc811461033c578063b86941661461034f578063d3e043aa14610362575f5ffd5b80636373ea69146102bc578063678fbdb3146102dd5780636bf6fad5146102f0578063708c0db914610310578063715018a6146103235780638da5cb5b1461032b575f5ffd5b8063468c07a01161012a578063468c07a01461023257806349acd884146102475780634ad52e021461025a57806354743ad21461027a57806354fd4d50146102a157806362fee037146102a9575f5ffd5b80631270a892146101715780631a20c5051461019a5780631ae370eb146101cb5780631fb66f5d146101de5780632bf6cc79146101ff57806337eaa1041461021f575b5f5ffd5b61018461017f366004614271565b610420565b6040516101919190614326565b60405180910390f35b609b546101b3906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610191565b6101846101d9366004614583565b610449565b6101f16101ec3660046146c2565b61045c565b604051908152602001610191565b61021261020d366004614737565b610e05565b6040516101919190614776565b6101f161022d366004614784565b6112b1565b6102456102403660046147d6565b6112e4565b005b6102456102553660046147fe565b6112f8565b61026d610268366004614737565b611543565b604051610191919061491a565b6101b37f000000000000000000000000000000000000000000000000000000000000000081565b610184611adc565b6101846102b7366004614737565b611b0c565b609b546102ca9061ffff1681565b60405161ffff9091168152602001610191565b6102456102eb366004614a65565b612009565b6103036102fe366004614a80565b61201a565b6040516101919190614a9a565b61024561031e366004614aac565b61222e565b61024561235f565b6033546001600160a01b03166101b3565b61024561034a366004614af4565b612372565b61024561035d366004614737565b612c50565b6103897f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160601b039091168152602001610191565b6102456103af366004614a65565b612e82565b6102456103c2366004614be6565b612ef8565b6101b37f000000000000000000000000000000000000000000000000000000000000000081565b6104106103fc366004614737565b60996020525f908152604090205460ff1681565b6040519015158152602001610191565b6060816040516020016104339190614d11565b6040516020818303038152906040529050919050565b6060816040516020016104339190614e95565b5f61046561312d565b5f8260400151511161048a57604051636b1a1b6960e11b815260040160405180910390fd5b60995f61049a8460200151613186565b815260208101919091526040015f205460ff166104ca5760405163c292b29760e01b815260040160405180910390fd5b5f609a5f6104db8560200151613186565b815260208082019290925260409081015f20815160e08101835281546001600160a01b038082168352600160a01b918290046001600160601b03169583019590955260018301549485169382019390935292909160608401910460ff1660028111156105495761054961474e565b600281111561055a5761055a61474e565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff16600181111561059b5761059b61474e565b60018111156105ac576105ac61474e565b81526020016001820180546105c090614ea7565b80601f01602080910402602001604051908101604052809291908181526020018280546105ec90614ea7565b80156106375780601f1061060e57610100808354040283529160200191610637565b820191905f5260205f20905b81548152906001019060200180831161061a57829003601f168201915b505050505081525050815260200160058201805461065490614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461068090614ea7565b80156106cb5780601f106106a2576101008083540402835291602001916106cb565b820191905f5260205f20905b8154815290600101906020018083116106ae57829003601f168201915b50505050508152505090506106df816131e9565b6106fc576040516314b0a41d60e11b815260040160405180910390fd5b5f61070a8260600151613232565b90505f816001600160a01b0316635ddb9b5b86602001516040518263ffffffff1660e01b815260040161073d9190614efd565b602060405180830381865afa158015610758573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077c9190614f0b565b90505f826001600160a01b0316636141879e87602001516040518263ffffffff1660e01b81526004016107af9190614efd565b602060405180830381865afa1580156107ca573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ee9190614f0b565b905063ffffffff8116158061082a57506108088183614f3a565b63ffffffff1684602001516001600160601b0316426108279190614f56565b11155b6108475760405163640fcd6b60e11b815260040160405180910390fd5b508251604051630a3fc61360e31b81526001600160a01b03909116906351fe3098906108799033908990600401614fa4565b5f6040518083038186803b15801561088f575f5ffd5b505afa1580156108a1573d5f5f3e3d5ffd5b50508451604051637036693f60e11b81525f93506001600160a01b03909116915063e06cd27e906108d6908990600401614fc7565b602060405180830381865afa1580156108f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109159190614fd9565b90505f6097543046896040516020016109319493929190614ff4565b60405160208183030381529060405280519060200120905060975460016109589190614f56565b609755604080516101c0810190915233815260208101610977426132cc565b6001600160601b03908116825260208a81018051516001600160a01b039081168386015292871660408501528b5190921660608401529051015163ffffffff166080820152609b5461ffff1660a082015260c001600181525f602080830182905263ffffffff80881660408086019190915260608086018c90528d8201516080808801919091528251808601845286815260a0808901919091528351808701855287815260c09889015289875260988652958390208851958901516001600160601b03908116600160a01b9081026001600160a01b03988916178355948a0151938a0151168402928616929092176001830155870151600282018054968901519789015161ffff16600160c01b0261ffff60c01b19989095169093026001600160c01b0319909616941693909317939093179384168117835560e0850151919391929160ff60d01b1990911662ffffff60c01b1990911617600160d01b836003811115610ae657610ae661474e565b02179055506101008201516002808301805461012086015163ffffffff16600160e01b026001600160e01b03941515600160d81b02949094166001600160d81b039091161792909217909155610140830151805160208201516001600160601b0316600160a01b9081026001600160a01b0392831617600386019081556040840151600487018054919094166001600160a01b031982168117855560608601519596929594936001600160a81b031990921617918490811115610bab57610bab61474e565b021790555060808201516002820180546001600160a01b0319166001600160a01b0390921691909117905560a08201518051600383018054909190829060ff191660018381811115610bff57610bff61474e565b021790555060208201516001820190610c189082615075565b50505060c08201516005820190610c2f9082615075565b5050506101608201516009820190610c479082615075565b50610180820151600a820190610c5d9082615075565b506101a0820151600b820190610c739082615075565b50505060408501516001600160a01b031615801590610c9a57505f826001600160601b0316115b15610d155760808501516001600160a01b0316610cca57604051633480121760e21b815260040160405180910390fd5b86516001600160a01b0316610cf257604051633480121760e21b815260040160405180910390fd5b6040850151610d15906001600160a01b031633306001600160601b038616613337565b8451604051629c5c4560e41b8152600481018390526001600160a01b03909116906309c5c450906024015f604051808303815f87803b158015610d56575f5ffd5b505af1158015610d68573d5f5f3e3d5ffd5b5050505086602001515f01516001600160a01b031681336001600160a01b03167f33add0b01e02278be5459fbfa3274aee699ec47f4ee7236b59e7a2c8b5000c268a6020015160200151878c5f0151888c602001516001600160601b031642610dd19190614f56565b8f60400151604051610de89695949392919061512f565b60405180910390a4945050505050610e006001606555565b919050565b5f81815260986020908152604080832081516101c08101835281546001600160a01b038082168352600160a01b918290046001600160601b03908116968401969096526001840154808216958401959095529381900490941660608201526002820154928316608082015292820463ffffffff1660a0840152600160c01b820461ffff1660c084015283929160e0830190600160d01b900460ff166003811115610eb157610eb161474e565b6003811115610ec257610ec261474e565b8152600282810154600160d81b810460ff9081161515602080860191909152600160e01b90920463ffffffff16604080860191909152805160e0810182526003870180546001600160a01b038082168452600160a01b918290046001600160601b03169684019690965260048901549586169383019390935260609687019691959094918601939290910490911690811115610f6057610f6061474e565b6002811115610f7157610f7161474e565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff166001811115610fb257610fb261474e565b6001811115610fc357610fc361474e565b8152602001600182018054610fd790614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461100390614ea7565b801561104e5780601f106110255761010080835404028352916020019161104e565b820191905f5260205f20905b81548152906001019060200180831161103157829003601f168201915b505050505081525050815260200160058201805461106b90614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461109790614ea7565b80156110e25780601f106110b9576101008083540402835291602001916110e2565b820191905f5260205f20905b8154815290600101906020018083116110c557829003601f168201915b50505050508152505081526020016009820180546110ff90614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461112b90614ea7565b80156111765780601f1061114d57610100808354040283529160200191611176565b820191905f5260205f20905b81548152906001019060200180831161115957829003601f168201915b50505050508152602001600a8201805461118f90614ea7565b80601f01602080910402602001604051908101604052809291908181526020018280546111bb90614ea7565b80156112065780601f106111dd57610100808354040283529160200191611206565b820191905f5260205f20905b8154815290600101906020018083116111e957829003601f168201915b50505050508152602001600b8201805461121f90614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461124b90614ea7565b80156112965780601f1061126d57610100808354040283529160200191611296565b820191905f5260205f20905b81548152906001019060200180831161127957829003601f168201915b50505050508152505090506112aa816133a9565b9392505050565b5f82826040516020016112c5929190615188565b6040516020818303038152906040528051906020012090505b92915050565b6112ec613404565b6112f58161345e565b50565b5f609a5f61130585613186565b815260208082019290925260409081015f20815160e08101835281546001600160a01b038082168352600160a01b918290046001600160601b03169583019590955260018301549485169382019390935292909160608401910460ff1660028111156113735761137361474e565b60028111156113845761138461474e565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff1660018111156113c5576113c561474e565b60018111156113d6576113d661474e565b81526020016001820180546113ea90614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461141690614ea7565b80156114615780601f1061143857610100808354040283529160200191611461565b820191905f5260205f20905b81548152906001019060200180831161144457829003601f168201915b505050505081525050815260200160058201805461147e90614ea7565b80601f01602080910402602001604051908101604052809291908181526020018280546114aa90614ea7565b80156114f55780601f106114cc576101008083540402835291602001916114f5565b820191905f5260205f20905b8154815290600101906020018083116114d857829003601f168201915b5050505050815250509050611509816131e9565b611526576040516314b0a41d60e11b815260040160405180910390fd5b6115348382606001516134cf565b61153e8383613570565b505050565b61154b614051565b5f82815260986020908152604080832081516101c08101835281546001600160a01b038082168352600160a01b918290046001600160601b03908116968401969096526001840154808216958401959095529381900490941660608201526002820154928316608082015292820463ffffffff1660a0840152600160c01b820461ffff1660c08401529060e0830190600160d01b900460ff1660038111156115f5576115f561474e565b60038111156116065761160661474e565b8152600282810154600160d81b810460ff9081161515602080860191909152600160e01b90920463ffffffff16604080860191909152805160e0810182526003870180546001600160a01b038082168452600160a01b918290046001600160601b031696840196909652600489015495861693830193909352606096870196919590949186019392909104909116908111156116a4576116a461474e565b60028111156116b5576116b561474e565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff1660018111156116f6576116f661474e565b60018111156117075761170761474e565b815260200160018201805461171b90614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461174790614ea7565b80156117925780601f1061176957610100808354040283529160200191611792565b820191905f5260205f20905b81548152906001019060200180831161177557829003601f168201915b50505050508152505081526020016005820180546117af90614ea7565b80601f01602080910402602001604051908101604052809291908181526020018280546117db90614ea7565b80156118265780601f106117fd57610100808354040283529160200191611826565b820191905f5260205f20905b81548152906001019060200180831161180957829003601f168201915b505050505081525050815260200160098201805461184390614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461186f90614ea7565b80156118ba5780601f10611891576101008083540402835291602001916118ba565b820191905f5260205f20905b81548152906001019060200180831161189d57829003601f168201915b50505050508152602001600a820180546118d390614ea7565b80601f01602080910402602001604051908101604052809291908181526020018280546118ff90614ea7565b801561194a5780601f106119215761010080835404028352916020019161194a565b820191905f5260205f20905b81548152906001019060200180831161192d57829003601f168201915b50505050508152602001600b8201805461196390614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461198f90614ea7565b80156119da5780601f106119b1576101008083540402835291602001916119da565b820191905f5260205f20905b8154815290600101906020018083116119bd57829003601f168201915b5050505050815250509050604051806101c00160405280825f01516001600160a01b0316815260200182602001516001600160601b0316815260200182604001516001600160a01b0316815260200182606001516001600160601b0316815260200182608001516001600160a01b031681526020018260a0015163ffffffff1681526020018260c0015161ffff168152602001611a76836133a9565b6003811115611a8757611a8761474e565b81526020018261010001511515815260200182610120015163ffffffff168152602001826101400151815260200182610160015181526020018261018001518152602001826101a00151815250915050919050565b6060611b077f0000000000000000000000000000000000000000000000000000000000000000613601565b905090565b5f81815260986020908152604080832081516101c08101835281546001600160a01b038082168352600160a01b918290046001600160601b0390811696840196909652600184015480821695840195909552938190049094166060808301919091526002830154938416608083015293830463ffffffff1660a0820152600160c01b830461ffff1660c08201529293929160e0830190600160d01b900460ff166003811115611bbd57611bbd61474e565b6003811115611bce57611bce61474e565b8152600282810154600160d81b810460ff9081161515602080860191909152600160e01b90920463ffffffff16604080860191909152805160e0810182526003870180546001600160a01b038082168452600160a01b918290046001600160601b03169684019690965260048901549586169383019390935260609687019691959094918601939290910490911690811115611c6c57611c6c61474e565b6002811115611c7d57611c7d61474e565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff166001811115611cbe57611cbe61474e565b6001811115611ccf57611ccf61474e565b8152602001600182018054611ce390614ea7565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0f90614ea7565b8015611d5a5780601f10611d3157610100808354040283529160200191611d5a565b820191905f5260205f20905b815481529060010190602001808311611d3d57829003601f168201915b5050505050815250508152602001600582018054611d7790614ea7565b80601f0160208091040260200160405190810160405280929190818152602001828054611da390614ea7565b8015611dee5780601f10611dc557610100808354040283529160200191611dee565b820191905f5260205f20905b815481529060010190602001808311611dd157829003601f168201915b5050505050815250508152602001600982018054611e0b90614ea7565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3790614ea7565b8015611e825780601f10611e5957610100808354040283529160200191611e82565b820191905f5260205f20905b815481529060010190602001808311611e6557829003601f168201915b50505050508152602001600a82018054611e9b90614ea7565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec790614ea7565b8015611f125780601f10611ee957610100808354040283529160200191611f12565b820191905f5260205f20905b815481529060010190602001808311611ef557829003601f168201915b50505050508152602001600b82018054611f2b90614ea7565b80601f0160208091040260200160405190810160405280929190818152602001828054611f5790614ea7565b8015611fa25780601f10611f7957610100808354040283529160200191611fa2565b820191905f5260205f20905b815481529060010190602001808311611f8557829003601f168201915b50505050508152505090505f611fb7826133a9565b90506002816003811115611fcd57611fcd61474e565b146002829091611ffb57604051634091b18960e11b8152600401611ff29291906151a0565b60405180910390fd5b5050506101a0015192915050565b612011613404565b6112f58161363e565b6120226140c4565b609a5f61202e84613186565b815260208082019290925260409081015f20815160e08101835281546001600160a01b038082168352600160a01b918290046001600160601b03169583019590955260018301549485169382019390935292909160608401910460ff16600281111561209c5761209c61474e565b60028111156120ad576120ad61474e565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff1660018111156120ee576120ee61474e565b60018111156120ff576120ff61474e565b815260200160018201805461211390614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461213f90614ea7565b801561218a5780601f106121615761010080835404028352916020019161218a565b820191905f5260205f20905b81548152906001019060200180831161216d57829003601f168201915b50505050508152505081526020016005820180546121a790614ea7565b80601f01602080910402602001604051908101604052809291908181526020018280546121d390614ea7565b801561221e5780601f106121f55761010080835404028352916020019161221e565b820191905f5260205f20905b81548152906001019060200180831161220157829003601f168201915b5050505050815250509050919050565b5f54610100900460ff161580801561224c57505f54600160ff909116105b806122655750303b15801561226557505f5460ff166001145b6122c85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401611ff2565b5f805460ff1916600117905580156122e9575f805461ff0019166101001790555b6122f16136b8565b6122f96136e6565b61230284613714565b61230b8361345e565b6123148261363e565b8015612359575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b612367613404565b6123705f613714565b565b61237a61312d565b5f83815260986020908152604080832081516101c08101835281546001600160a01b038082168352600160a01b918290046001600160601b03908116968401969096526001840154808216958401959095529381900490941660608201526002820154928316608082015292820463ffffffff1660a0840152600160c01b820461ffff1660c0840152929161281e91849060e0830190600160d01b900460ff16600381111561242b5761242b61474e565b600381111561243c5761243c61474e565b8152600282810154600160d81b810460ff9081161515602080860191909152600160e01b90920463ffffffff16604080860191909152805160e0810182526003870180546001600160a01b038082168452600160a01b918290046001600160601b031696840196909652600489015495861693830193909352606096870196919590949186019392909104909116908111156124da576124da61474e565b60028111156124eb576124eb61474e565b815260028201546001600160a01b0316602082015260408051808201825260038401805492909301929091829060ff16600181111561252c5761252c61474e565b600181111561253d5761253d61474e565b815260200160018201805461255190614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461257d90614ea7565b80156125c85780601f1061259f576101008083540402835291602001916125c8565b820191905f5260205f20905b8154815290600101906020018083116125ab57829003601f168201915b50505050508152505081526020016005820180546125e590614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461261190614ea7565b801561265c5780601f106126335761010080835404028352916020019161265c565b820191905f5260205f20905b81548152906001019060200180831161263f57829003601f168201915b505050505081525050815260200160098201805461267990614ea7565b80601f01602080910402602001604051908101604052809291908181526020018280546126a590614ea7565b80156126f05780601f106126c7576101008083540402835291602001916126f0565b820191905f5260205f20905b8154815290600101906020018083116126d357829003601f168201915b50505050508152602001600a8201805461270990614ea7565b80601f016020809104026020016040519081016040528092919081815260200182805461273590614ea7565b80156127805780601f1061275757610100808354040283529160200191612780565b820191905f5260205f20905b81548152906001019060200180831161276357829003601f168201915b50505050508152602001600b8201805461279990614ea7565b80601f01602080910402602001604051908101604052809291908181526020018280546127c590614ea7565b80156128105780601f106127e757610100808354040283529160200191612810565b820191905f5260205f20905b8154815290600101906020018083116127f357829003601f168201915b5050505050815250506133a9565b905060018160038111156128345761283461474e565b14600182909161285957604051634091b18960e11b8152600401611ff29291906151a0565b50508154600160a01b90046001600160601b0316421161288c5760405163015a4b7560e51b815260040160405180910390fd5b600382015460405163ba33565d60e01b81526001600160a01b039091169063ba33565d906128c49033908990899089906004016151bb565b5f6040518083038186803b1580156128da575f5ffd5b505afa1580156128ec573d5f5f3e3d5ffd5b50506040805180820182526001808701546001600160a01b03168252600287015463ffffffff600160a01b9182900416602084015260048801548451808601909552600689018054949750612a28965060ff929091048216949390928492919091169081111561295e5761295e61474e565b600181111561296f5761296f61474e565b815260200160018201805461298390614ea7565b80601f01602080910402602001604051908101604052809291908181526020018280546129af90614ea7565b80156129fa5780601f106129d1576101008083540402835291602001916129fa565b820191905f5260205f20905b8154815290600101906020018083116129dd57829003601f168201915b5050509190925250505060028601548490600160e01b900463ffffffff16612a228b8a6112b1565b8a613765565b60028301805460ff60d01b1916600160d11b179055600a8301612a4b8682615075565b50600b8301612a5a8582615075565b5060048301546001600160a01b031615801590612a8a57506001830154600160a01b90046001600160601b031615155b15612b7957600283015460018401545f91612ad99161271091612aca91600160c01b90910461ffff16906001600160601b03600160a01b909104166151f3565b612ad4919061520a565b6132cc565b90506001600160601b03811615612b1957609b546004850154612b19916001600160a01b039182169162010000909104166001600160601b038416613b87565b60018401545f90612b3b908390600160a01b90046001600160601b0316615229565b90506001600160601b03811615612b765760058501546004860154612b76916001600160a01b0391821691166001600160601b038416613b87565b50505b6003830154604051637041233f60e11b8152336004820152602481018890526001600160a01b039091169063e082467e906044015f604051808303815f87803b158015612bc4575f5ffd5b505af1158015612bd6573d5f5f3e3d5ffd5b505050600184015460028501546040516001600160a01b039092169250889133917f659f23b2e7edf490e5fd6561c5148691ed0375ed7ddd3ab1bcfcfdbec4f209a991612c3b9163ffffffff600160a01b9091041690600a8a0190600b8b01906152c7565b60405180910390a450505061153e6001606555565b612c5861312d565b5f81815260986020526040902060028101546001600160a01b03163314612c92576040516370f43cb760e01b815260040160405180910390fd5b6002810154600160d81b900460ff1615612cbf57604051633e3d786960e01b815260040160405180910390fd5b604080516101c08101825282546001600160a01b038082168352600160a01b918290046001600160601b03908116602085015260018601548083169585019590955293829004909316606083015260028401549283166080830152820463ffffffff1660a0820152600160c01b820461ffff1660c08201525f91612d609190849060e0830190600160d01b900460ff16600381111561242b5761242b61474e565b90506003816003811115612d7657612d7661474e565b146003829091612d9b57604051634091b18960e11b8152600401611ff29291906151a0565b505060028201805460ff60d81b1916600160d81b17905560048201546001600160a01b031615801590612de157506001820154600160a01b90046001600160601b031615155b15612e1d57600282015460018301546004840154612e1d926001600160a01b0391821692911690600160a01b90046001600160601b0316613b87565b60028201546001830154604051600160a01b9091046001600160601b0316815284916001600160a01b0316907fe3ed40d31808582f7a92a30beacc0ec788d5091407ec6c10c1b999b3f317aea39060200160405180910390a350506112f56001606555565b612e8a613404565b6001600160a01b038116612eef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611ff2565b6112f581613714565b612f01816131e9565b612f1e576040516314b0a41d60e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160601b031681602001516001600160601b03161115612f755760405163a7cf966560e01b815260040160405180910390fd5b612f828160a00151613bb7565b612f908282606001516134cf565b80609a5f612f9d85613186565b815260208082019290925260409081015f208351928401516001600160601b0316600160a01b9081026001600160a01b0394851617825591840151600182018054919094166001600160a01b03198216811785556060860151929492936001600160a81b0319909216179083600281111561301a5761301a61474e565b021790555060808201516002820180546001600160a01b0319166001600160a01b0390921691909117905560a08201518051600383018054909190829060ff19166001838181111561306e5761306e61474e565b0217905550602082015160018201906130879082615075565b50505060c0820151600582019061309e9082615075565b50905050816020015163ffffffff16825f01516001600160a01b0316336001600160a01b03167f7cd76abd4025a20959a1b20f7c1536e3894a0735cd8de0215dde803ddea7f2d2846040516130f39190614a9a565b60405180910390a460995f61310784613186565b815260208101919091526040015f205460ff1661312957613129826001613570565b5050565b60026065540361317f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611ff2565b6002606555565b5f815f0151826020015163ffffffff166040516020016131d192919060609290921b6bffffffffffffffffffffffff1916825260a01b6001600160a01b031916601482015260200190565b6040516020818303038152906040526112de906152f7565b5f80826060015160028111156132015761320161474e565b14158015613218575081516001600160a01b031615155b80156112de575050602001516001600160601b0316151590565b5f60028260028111156132475761324761474e565b0361327357507f0000000000000000000000000000000000000000000000000000000000000000919050565b60018260028111156132875761328761474e565b036132b357507f0000000000000000000000000000000000000000000000000000000000000000919050565b60405163fdea7c0960e01b815260040160405180910390fd5b5f6001600160601b038211156133335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401611ff2565b5090565b6040516001600160a01b03808516602483015283166044820152606481018290526123599085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613c76565b6001606555565b5f60018260e0015160038111156133c2576133c261474e565b1480156133ef57508161014001516020015182602001516133e3919061531a565b6001600160601b031642115b156133fc57506003919050565b5060e0015190565b6033546001600160a01b031633146123705760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611ff2565b61271061ffff8216111561348557604051630601f69760e01b815260040160405180910390fd5b609b805461ffff191661ffff83169081179091556040519081527f886b2cfcb151fd8b19ed902cc88f4a06dd9fe351a4a9ab93f33fe84abc157edf9060200160405180910390a150565b5f6134d982613232565b6040516304240c4960e51b815290915033906001600160a01b0383169063848189209061350a908790600401614efd565b602060405180830381865afa158015613525573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135499190615339565b6001600160a01b03161461153e576040516342ecfee960e11b815260040160405180910390fd5b8060995f61357d85613186565b81526020019081526020015f205f6101000a81548160ff021916908315150217905550816020015163ffffffff16825f01516001600160a01b0316336001600160a01b03167f48b63f21a1eb9dd6880e196de6d7db3fbd0c282b74f1298dcb4cf53472298f39846040516135f5911515815260200190565b60405180910390a45050565b60605f61360d83613d49565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b03811661366557604051630863a45360e11b815260040160405180910390fd5b609b805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f262aa27c244f6f0088cb3092548a0adcaddedf459070a9ccab2dc6a07abe701d905f90a250565b5f54610100900460ff166136de5760405162461bcd60e51b8152600401611ff290615354565b612370613d70565b5f54610100900460ff1661370c5760405162461bcd60e51b8152600401611ff290615354565b612370613d9f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f855160018111156137795761377961474e565b036139215760028660028111156137925761379261474e565b0361384f575f818060200190518101906137ac91906155ff565b90506137b9818585613dc5565b6040516280b71560e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063080b71509061380690889085906004016156d1565b5f604051808303815f875af1158015613821573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261384891908101906156f0565b5050613b7f565b60018660028111156138635761386361474e565b036132b3575f8180602001905181019061387d9190615721565b905061388a818585613e4f565b6040516380c7d3f360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906380c7d3f3906138d8908890859060040161579a565b5f60405180830381865afa1580156138f2573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613919919081019061581d565b505050613b7f565b6001855160018111156139365761393661474e565b03613b66575f85602001518060200190518101906139549190615876565b6040805160018082528183019092529192505f91906020808301908036833701905050905081815f8151811061398c5761398c615891565b61ffff909216602092830291909101909101525f60028960028111156139b4576139b461474e565b03613a72575f848060200190518101906139ce91906155ff565b90506139db818888613dc5565b604051625f5e5d60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063017d797490613a2a908b90859088906004016158e3565b6020604051808303815f875af1158015613a46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a6a9190615914565b915050613b48565b6001896002811115613a8657613a8661474e565b036132b3575f84806020019051810190613aa09190615721565b9050613aad818888613e4f565b604051630606d12160e51b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c0da242090613afd908b908590889060040161592f565b5f60405180830381865afa158015613b17573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613b3e919081019061594e565b509150613b489050565b80613919576040516359fa4a9360e01b815260040160405180910390fd5b6040516347d3772160e11b815260040160405180910390fd5b505050505050565b6040516001600160a01b03831660248201526044810182905261153e90849063a9059cbb60e01b9060640161336b565b5f81516001811115613bcb57613bcb61474e565b03613bf457602081015151156112f557604051631501e04760e21b815260040160405180910390fd5b600181516001811115613c0957613c0961474e565b03613b6657806020015151602014613c3457604051631501e04760e21b815260040160405180910390fd5b5f8160200151806020019051810190613c4d9190615876565b905061271061ffff8216111561312957604051631501e04760e21b815260040160405180910390fd5b5f613cca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613ec79092919063ffffffff16565b905080515f1480613cea575080806020019051810190613cea9190615914565b61153e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611ff2565b5f60ff8216601f8111156112de57604051632cd44ac360e21b815260040160405180910390fd5b5f54610100900460ff16613d965760405162461bcd60e51b8152600401611ff290615354565b61237033613714565b5f54610100900460ff166133a25760405162461bcd60e51b8152600401611ff290615354565b8163ffffffff16835f015163ffffffff1614613df457604051634534032960e01b815260040160405180910390fd5b80836020015114613e1857604051638b56642d60e01b815260040160405180910390fd5b604083015151158015613e315750604083015160200151155b1561153e57604051637a8a1dbd60e11b815260040160405180910390fd5b8163ffffffff16835f015163ffffffff1614613e7e57604051634534032960e01b815260040160405180910390fd5b80836020015114613ea257604051638b56642d60e01b815260040160405180910390fd5b5f8360400151511161153e57604051637a8a1dbd60e11b815260040160405180910390fd5b6060613ed584845f85613edd565b949350505050565b606082471015613f3e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401611ff2565b5f5f866001600160a01b03168587604051613f599190615985565b5f6040518083038185875af1925050503d805f8114613f93576040519150601f19603f3d011682016040523d82523d5f602084013e613f98565b606091505b5091509150613fa987838387613fb4565b979650505050505050565b606083156140225782515f0361401b576001600160a01b0385163b61401b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611ff2565b5081613ed5565b613ed583838151156140375781518083602001fd5b8060405162461bcd60e51b8152600401611ff29190614326565b604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c081018290529060e082019081525f6020820181905260408201526060016140a96140c4565b81526020016060815260200160608152602001606081525090565b6040805160e0810182525f8082526020820181905291810182905290606082019081525f60208201526040016140f8614105565b8152602001606081525090565b60408051808201909152805f6140f8565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561414c5761414c614116565b60405290565b604080519081016001600160401b038111828210171561414c5761414c614116565b60405160a081016001600160401b038111828210171561414c5761414c614116565b60405160e081016001600160401b038111828210171561414c5761414c614116565b604051601f8201601f191681016001600160401b03811182821017156141e0576141e0614116565b604052919050565b63ffffffff811681146112f5575f5ffd5b5f6001600160401b0382111561421157614211614116565b50601f01601f191660200190565b5f82601f83011261422e575f5ffd5b813561424161423c826141f9565b6141b8565b818152846020838601011115614255575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215614281575f5ffd5b81356001600160401b03811115614296575f5ffd5b8201606081850312156142a7575f5ffd5b6142af61412a565b81356142ba816141e8565b81526020828101359082015260408201356001600160401b038111156142de575f5ffd5b6142ea8682850161421f565b604083015250949350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6112aa60208301846142f8565b5f60408284031215614348575f5ffd5b614350614152565b823581526020928301359281019290925250919050565b5f82601f830112614376575f5ffd5b61438060406141b8565b806040840185811115614391575f5ffd5b845b818110156143ab578035845260209384019301614393565b509095945050505050565b5f6001600160401b038211156143ce576143ce614116565b5060051b60200190565b5f82601f8301126143e7575f5ffd5b81356143f561423c826143b6565b8082825260208201915060208360051b860101925085831115614416575f5ffd5b602085015b838110156145795780356001600160401b03811115614438575f5ffd5b86016060818903601f1901121561444d575f5ffd5b61445561412a565b6020820135614463816141e8565b815260408201356001600160401b0381111561447d575f5ffd5b61448c8a60208386010161421f565b60208301525060608201356001600160401b038111156144aa575f5ffd5b6020818401019250506060828a0312156144c2575f5ffd5b6144ca614152565b6144d48a84614338565b815260408301356001600160401b038111156144ee575f5ffd5b80840193505089601f840112614502575f5ffd5b823561451061423c826143b6565b8082825260208201915060208360051b87010192508c831115614531575f5ffd5b6020860195505b82861015614553578535825260209586019590910190614538565b80602085015250505080604083015250808552505060208301925060208101905061441b565b5095945050505050565b5f60208284031215614593575f5ffd5b81356001600160401b038111156145a8575f5ffd5b82018084036101208112156145bb575f5ffd5b6145c3614174565b82356145ce816141e8565b8152602083810135908201526145e78660408501614338565b60408201526080607f19830112156145fd575f5ffd5b614605614152565b91506146148660808501614367565b82526146238660c08501614367565b602083015281606082015261010083013591506001600160401b03821115614649575f5ffd5b614655868385016143d8565b608082015295945050505050565b6001600160a01b03811681146112f5575f5ffd5b8035610e0081614663565b5f60408284031215614692575f5ffd5b61469a614152565b905081356146a781614663565b815260208201356146b7816141e8565b602082015292915050565b5f602082840312156146d2575f5ffd5b81356001600160401b038111156146e7575f5ffd5b8201608081850312156146f8575f5ffd5b61470061412a565b813561470b81614663565b815261471a8560208401614682565b602082015260608201356001600160401b038111156142de575f5ffd5b5f60208284031215614747575f5ffd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b600481106147725761477261474e565b9052565b602081016112de8284614762565b5f5f60408385031215614795575f5ffd5b8235915060208301356001600160401b038111156147b1575f5ffd5b6147bd8582860161421f565b9150509250929050565b61ffff811681146112f5575f5ffd5b5f602082840312156147e6575f5ffd5b81356112aa816147c7565b80151581146112f5575f5ffd5b5f5f6060838503121561480f575f5ffd5b6148198484614682565b91506040830135614829816147f1565b809150509250929050565b600381106147725761477261474e565b5f8151600281106148575761485761474e565b80845250602082015160406020850152613ed560408501826142f8565b80516001600160a01b031682526020808201516001600160601b0316908301526040808201515f916148b0908501826001600160a01b03169052565b5060608201516148c36060850182614834565b5060808201516148de60808501826001600160a01b03169052565b5060a082015160e060a08501526148f860e0850182614844565b905060c083015184820360c086015261491182826142f8565b95945050505050565b602081526149346020820183516001600160a01b03169052565b5f602083015161494f60408401826001600160601b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160601b03811660808401525060808301516001600160a01b03811660a08401525060a083015163ffffffff811660c08401525060c083015161ffff811660e08401525060e08301516149c4610100840182614762565b506101008301518015156101208401525061012083015163ffffffff8116610140840152506101408301516101c0610160840152614a066101e0840182614874565b9050610160840151601f1984830301610180850152614a2582826142f8565b915050610180840151601f19848303016101a0850152614a4582826142f8565b9150506101a0840151601f19848303016101c085015261491182826142f8565b5f60208284031215614a75575f5ffd5b81356112aa81614663565b5f60408284031215614a90575f5ffd5b6112aa8383614682565b602081525f6112aa6020830184614874565b5f5f5f60608486031215614abe575f5ffd5b8335614ac981614663565b92506020840135614ad9816147c7565b91506040840135614ae981614663565b809150509250925092565b5f5f5f60608486031215614b06575f5ffd5b8335925060208401356001600160401b03811115614b22575f5ffd5b614b2e8682870161421f565b92505060408401356001600160401b03811115614b49575f5ffd5b614b558682870161421f565b9150509250925092565b6001600160601b03811681146112f5575f5ffd5b8035610e0081614b5f565b803560038110610e00575f5ffd5b5f60408284031215614b9c575f5ffd5b614ba4614152565b9050813560028110614bb4575f5ffd5b815260208201356001600160401b03811115614bce575f5ffd5b614bda8482850161421f565b60208301525092915050565b5f5f60608385031215614bf7575f5ffd5b614c018484614682565b915060408301356001600160401b03811115614c1b575f5ffd5b830160e08186031215614c2c575f5ffd5b614c34614196565b614c3d82614677565b8152614c4b60208301614b73565b6020820152614c5c60408301614677565b6040820152614c6d60608301614b7e565b6060820152614c7e60808301614677565b608082015260a08201356001600160401b03811115614c9b575f5ffd5b614ca787828501614b8c565b60a08301525060c08201356001600160401b03811115614cc5575f5ffd5b614cd18782850161421f565b60c08301525080925050509250929050565b63ffffffff8151168252602081015160208301525f604082015160606040850152613ed560608501826142f8565b602081525f6112aa6020830184614ce3565b805f5b6002811015612359578151845260209384019390910190600101614d26565b5f610120830163ffffffff8351168452602083015160208501526040830151614d7b604086018280518252602090810151910152565b506060830151614d8f608086018251614d23565b60200151614da060c0860182614d23565b506080830151610120610100860152818151808452610140870191506101408160051b88010193506020830192505f5b81811015614e895761013f19888603018352835163ffffffff8151168652602081015160606020880152614e0760608801826142f8565b905060408201519150868103604088015260608101614e3182845180518252602090810151910152565b6020928301516060604084015280518083529301925f92608001905b80841015614e705784518252602082019150602085019450600184019350614e4d565b5097505050602094850194939093019250600101614dd0565b50929695505050505050565b602081525f6112aa6020830184614d45565b600181811c90821680614ebb57607f821691505b602082108103614ed957634e487b7160e01b5f52602260045260245ffd5b50919050565b80516001600160a01b0316825260209081015163ffffffff16910152565b604081016112de8284614edf565b5f60208284031215614f1b575f5ffd5b81516112aa816141e8565b634e487b7160e01b5f52601160045260245ffd5b63ffffffff81811683821601908111156112de576112de614f26565b808201808211156112de576112de614f26565b80516001600160a01b031682526020808201515f91614f8a90850182614edf565b50604082015160806060850152613ed560808501826142f8565b6001600160a01b03831681526040602082018190525f90613ed590830184614f69565b602081525f6112aa6020830184614f69565b5f60208284031215614fe9575f5ffd5b81516112aa81614b5f565b84815260018060a01b0384166020820152826040820152608060608201525f6150206080830184614f69565b9695505050505050565b601f82111561153e57805f5260205f20601f840160051c8101602085101561504f5750805b601f840160051c820191505b8181101561506e575f815560010161505b565b5050505050565b81516001600160401b0381111561508e5761508e614116565b6150a28161509c8454614ea7565b8461502a565b6020601f8211600181146150d4575f83156150bd5750848201515b5f19600385901b1c1916600184901b17845561506e565b5f84815260208120601f198516915b8281101561510357878501518255602094850194600190920191016150e3565b508482101561512057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b63ffffffff8716815263ffffffff8616602082015260018060a01b03851660408201526001600160601b038416606082015282608082015260c060a08201525f61517c60c08301846142f8565b98975050505050505050565b828152604060208201525f613ed560408301846142f8565b604081016151ae8285614762565b6112aa6020830184614762565b60018060a01b0385168152836020820152608060408201525f6151e160808301856142f8565b8281036060840152613fa981856142f8565b80820281158282048414176112de576112de614f26565b5f8261522457634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160601b0382811682821603908111156112de576112de614f26565b5f815461525481614ea7565b80855260018216801561526e576001811461528a576152be565b60ff1983166020870152602082151560051b87010193506152be565b845f5260205f205f5b838110156152b55781546020828a010152600182019150602081019050615293565b87016020019450505b50505092915050565b63ffffffff84168152606060208201525f6152e56060830185615248565b82810360408401526150208185615248565b80516020808301519190811015614ed9575f1960209190910360031b1b16919050565b6001600160601b0381811683821601908111156112de576112de614f26565b5f60208284031215615349575f5ffd5b81516112aa81614663565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f604082840312156153af575f5ffd5b6153b7614152565b825181526020928301519281019290925250919050565b5f82601f8301126153dd575f5ffd5b6153e760406141b8565b8060408401858111156153f8575f5ffd5b845b818110156143ab5780518452602093840193016153fa565b5f82601f830112615421575f5ffd5b815161542f61423c826141f9565b818152846020838601011115615443575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f83011261546e575f5ffd5b815161547c61423c826143b6565b8082825260208201915060208360051b86010192508583111561549d575f5ffd5b602085015b838110156145795780518352602092830192016154a2565b5f82601f8301126154c9575f5ffd5b81516154d761423c826143b6565b8082825260208201915060208360051b8601019250858311156154f8575f5ffd5b602085015b838110156145795780516001600160401b0381111561551a575f5ffd5b86016060818903601f1901121561552f575f5ffd5b61553761412a565b6020820151615545816141e8565b815260408201516001600160401b0381111561555f575f5ffd5b61556e8a602083860101615412565b60208301525060608201516001600160401b0381111561558c575f5ffd5b6020818401019250506060828a0312156155a4575f5ffd5b6155ac614152565b6155b68a8461539f565b815260408301516001600160401b038111156155d0575f5ffd5b6155dc8b82860161545f565b6020830152508060408301525080855250506020830192506020810190506154fd565b5f6020828403121561560f575f5ffd5b81516001600160401b03811115615624575f5ffd5b8201808403610120811215615637575f5ffd5b61563f614174565b825161564a816141e8565b815260208381015190820152615663866040850161539f565b60408201526080607f1983011215615679575f5ffd5b615681614152565b915061569086608085016153ce565b825261569f8660c085016153ce565b602083015281606082015261010083015191506001600160401b038211156156c5575f5ffd5b614655868385016154ba565b6156db8184614edf565b606060408201525f613ed56060830184614d45565b5f60208284031215615700575f5ffd5b81516001600160401b03811115615715575f5ffd5b613ed58482850161545f565b5f60208284031215615731575f5ffd5b81516001600160401b03811115615746575f5ffd5b820160608185031215615757575f5ffd5b61575f61412a565b815161576a816141e8565b81526020828101519082015260408201516001600160401b0381111561578e575f5ffd5b6142ea86828501615412565b6157a48184614edf565b606060408201525f613ed56060830184614ce3565b5f82601f8301126157c8575f5ffd5b81516157d661423c826143b6565b8082825260208201915060208360051b8601019250858311156157f7575f5ffd5b602085015b8381101561457957805161580f81614663565b8352602092830192016157fc565b5f5f6040838503121561582e575f5ffd5b82516001600160401b03811115615843575f5ffd5b61584f8582860161545f565b92505060208301516001600160401b0381111561586a575f5ffd5b6147bd858286016157b9565b5f60208284031215615886575f5ffd5b81516112aa816147c7565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602084019350602083015f5b828110156158d957815161ffff168652602095860195909101906001016158b7565b5093949350505050565b6158ed8185614edf565b608060408201525f6159026080830185614d45565b828103606084015261502081856158a5565b5f60208284031215615924575f5ffd5b81516112aa816147f1565b6159398185614edf565b608060408201525f6159026080830185614ce3565b5f5f6040838503121561595f575f5ffd5b825161596a816147f1565b60208401519092506001600160401b0381111561586a575f5ffd5b5f82518060208501845e5f92019182525091905056fea264697066735822122099f18466f6b06e40b9c04a196f23aa8ca171882301c7541ecb6407796eee978764736f6c634300081b0033", } // TaskMailboxABI is the input ABI used to generate the binding from. @@ -539,6 +539,37 @@ func (_TaskMailbox *TaskMailboxCallerSession) GetExecutorOperatorSetTaskConfig(o return _TaskMailbox.Contract.GetExecutorOperatorSetTaskConfig(&_TaskMailbox.CallOpts, operatorSet) } +// GetMessageHash is a free data retrieval call binding the contract method 0x37eaa104. +// +// Solidity: function getMessageHash(bytes32 taskHash, bytes result) pure returns(bytes32) +func (_TaskMailbox *TaskMailboxCaller) GetMessageHash(opts *bind.CallOpts, taskHash [32]byte, result []byte) ([32]byte, error) { + var out []interface{} + err := _TaskMailbox.contract.Call(opts, &out, "getMessageHash", taskHash, result) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetMessageHash is a free data retrieval call binding the contract method 0x37eaa104. +// +// Solidity: function getMessageHash(bytes32 taskHash, bytes result) pure returns(bytes32) +func (_TaskMailbox *TaskMailboxSession) GetMessageHash(taskHash [32]byte, result []byte) ([32]byte, error) { + return _TaskMailbox.Contract.GetMessageHash(&_TaskMailbox.CallOpts, taskHash, result) +} + +// GetMessageHash is a free data retrieval call binding the contract method 0x37eaa104. +// +// Solidity: function getMessageHash(bytes32 taskHash, bytes result) pure returns(bytes32) +func (_TaskMailbox *TaskMailboxCallerSession) GetMessageHash(taskHash [32]byte, result []byte) ([32]byte, error) { + return _TaskMailbox.Contract.GetMessageHash(&_TaskMailbox.CallOpts, taskHash, result) +} + // GetTaskInfo is a free data retrieval call binding the contract method 0x4ad52e02. // // Solidity: function getTaskInfo(bytes32 taskHash) view returns((address,uint96,address,uint96,address,uint32,uint16,uint8,bool,uint32,(address,uint96,address,uint8,address,(uint8,bytes),bytes),bytes,bytes,bytes)) diff --git a/pkg/bindings/TaskMailboxStorage/binding.go b/pkg/bindings/TaskMailboxStorage/binding.go index adfd9ae1a6..441b6e66b1 100644 --- a/pkg/bindings/TaskMailboxStorage/binding.go +++ b/pkg/bindings/TaskMailboxStorage/binding.go @@ -120,7 +120,7 @@ type OperatorSet struct { // TaskMailboxStorageMetaData contains all meta data concerning the TaskMailboxStorage contract. var TaskMailboxStorageMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"BN254_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ECDSA_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_TASK_SLA\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createTask\",\"inputs\":[{\"name\":\"taskParams\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.TaskParams\",\"components\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"feeSplit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"feeSplitCollector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBN254CertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getECDSACertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIECDSACertificateVerifierTypes.ECDSACertificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sig\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskInfo\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Task\",\"components\":[{\"name\":\"creator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"creationTime\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"isFeeRefunded\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"executorOperatorSetTaskConfig\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskStatus\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"operatorSetKey\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"isRegistered\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"refundFee\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerExecutorOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"isRegistered\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplit\",\"inputs\":[{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplitCollector\",\"inputs\":[{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"submitResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"isRegistered\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetTaskConfigSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"config\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeRefunded\",\"inputs\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitCollectorSet\",\"inputs\":[{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitSet\",\"inputs\":[{\"name\":\"feeSplit\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskCreated\",\"inputs\":[{\"name\":\"creator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"},{\"name\":\"taskDeadline\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskVerified\",\"inputs\":[{\"name\":\"aggregator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyCertificateSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetTaskConfigNotSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeAlreadyRefunded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusValue\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCurveType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeReceiver\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeSplit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidMessageHash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSetOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidReferenceTimestamp\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskCreator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskStatus\",\"inputs\":[{\"name\":\"expected\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"actual\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}]},{\"type\":\"error\",\"name\":\"OnlyRefundCollector\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PayloadIsEmpty\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TaskSLAExceedsMaximum\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ThresholdNotMet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampAtCreation\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"BN254_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ECDSA_CERTIFICATE_VERIFIER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_TASK_SLA\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint96\",\"internalType\":\"uint96\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createTask\",\"inputs\":[{\"name\":\"taskParams\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.TaskParams\",\"components\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"feeSplit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"feeSplitCollector\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getBN254CertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254Certificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"signature\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"nonSignerWitnesses\",\"type\":\"tuple[]\",\"internalType\":\"structIBN254CertificateVerifierTypes.BN254OperatorInfoWitness[]\",\"components\":[{\"name\":\"operatorIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"operatorInfoProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operatorInfo\",\"type\":\"tuple\",\"internalType\":\"structIOperatorTableCalculatorTypes.BN254OperatorInfo\",\"components\":[{\"name\":\"pubkey\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"weights\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}]}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getECDSACertificateBytes\",\"inputs\":[{\"name\":\"cert\",\"type\":\"tuple\",\"internalType\":\"structIECDSACertificateVerifierTypes.ECDSACertificate\",\"components\":[{\"name\":\"referenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sig\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMessageHash\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getTaskInfo\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Task\",\"components\":[{\"name\":\"creator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"creationTime\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"isFeeRefunded\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"executorOperatorSetTaskConfig\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"payload\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTaskStatus\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"operatorSetKey\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"isRegistered\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"refundFee\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerExecutorOperatorSet\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"isRegistered\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setExecutorOperatorSetTaskConfig\",\"inputs\":[{\"name\":\"operatorSet\",\"type\":\"tuple\",\"internalType\":\"structOperatorSet\",\"components\":[{\"name\":\"avs\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"id\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]},{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplit\",\"inputs\":[{\"name\":\"feeSplit\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeSplitCollector\",\"inputs\":[{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"submitResult\",\"inputs\":[{\"name\":\"taskHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetRegistered\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"isRegistered\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutorOperatorSetTaskConfigSet\",\"inputs\":[{\"name\":\"caller\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":true,\"internalType\":\"uint32\"},{\"name\":\"config\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structITaskMailboxTypes.ExecutorOperatorSetTaskConfig\",\"components\":[{\"name\":\"taskHook\",\"type\":\"address\",\"internalType\":\"contractIAVSTaskHook\"},{\"name\":\"taskSLA\",\"type\":\"uint96\",\"internalType\":\"uint96\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"curveType\",\"type\":\"uint8\",\"internalType\":\"enumIKeyRegistrarTypes.CurveType\"},{\"name\":\"feeCollector\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"consensus\",\"type\":\"tuple\",\"internalType\":\"structITaskMailboxTypes.Consensus\",\"components\":[{\"name\":\"consensusType\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.ConsensusType\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"taskMetadata\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeRefunded\",\"inputs\":[{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitCollectorSet\",\"inputs\":[{\"name\":\"feeSplitCollector\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSplitSet\",\"inputs\":[{\"name\":\"feeSplit\",\"type\":\"uint16\",\"indexed\":false,\"internalType\":\"uint16\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskCreated\",\"inputs\":[{\"name\":\"creator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"operatorTableReferenceTimestamp\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"refundCollector\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"avsFee\",\"type\":\"uint96\",\"indexed\":false,\"internalType\":\"uint96\"},{\"name\":\"taskDeadline\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"payload\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TaskVerified\",\"inputs\":[{\"name\":\"aggregator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"taskHash\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"avs\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"executorOperatorSetId\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"executorCert\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"result\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CertificateStale\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyCertificateSignature\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutorOperatorSetTaskConfigNotSet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FeeAlreadyRefunded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidAddressZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidConsensusValue\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCurveType\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeReceiver\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidFeeSplit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidMessageHash\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidOperatorSetOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidReferenceTimestamp\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskCreator\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTaskStatus\",\"inputs\":[{\"name\":\"expected\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"},{\"name\":\"actual\",\"type\":\"uint8\",\"internalType\":\"enumITaskMailboxTypes.TaskStatus\"}]},{\"type\":\"error\",\"name\":\"OnlyRefundCollector\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PayloadIsEmpty\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TaskSLAExceedsMaximum\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ThresholdNotMet\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TimestampAtCreation\",\"inputs\":[]}]", } // TaskMailboxStorageABI is the input ABI used to generate the binding from. @@ -517,6 +517,37 @@ func (_TaskMailboxStorage *TaskMailboxStorageCallerSession) GetExecutorOperatorS return _TaskMailboxStorage.Contract.GetExecutorOperatorSetTaskConfig(&_TaskMailboxStorage.CallOpts, operatorSet) } +// GetMessageHash is a free data retrieval call binding the contract method 0x37eaa104. +// +// Solidity: function getMessageHash(bytes32 taskHash, bytes result) pure returns(bytes32) +func (_TaskMailboxStorage *TaskMailboxStorageCaller) GetMessageHash(opts *bind.CallOpts, taskHash [32]byte, result []byte) ([32]byte, error) { + var out []interface{} + err := _TaskMailboxStorage.contract.Call(opts, &out, "getMessageHash", taskHash, result) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetMessageHash is a free data retrieval call binding the contract method 0x37eaa104. +// +// Solidity: function getMessageHash(bytes32 taskHash, bytes result) pure returns(bytes32) +func (_TaskMailboxStorage *TaskMailboxStorageSession) GetMessageHash(taskHash [32]byte, result []byte) ([32]byte, error) { + return _TaskMailboxStorage.Contract.GetMessageHash(&_TaskMailboxStorage.CallOpts, taskHash, result) +} + +// GetMessageHash is a free data retrieval call binding the contract method 0x37eaa104. +// +// Solidity: function getMessageHash(bytes32 taskHash, bytes result) pure returns(bytes32) +func (_TaskMailboxStorage *TaskMailboxStorageCallerSession) GetMessageHash(taskHash [32]byte, result []byte) ([32]byte, error) { + return _TaskMailboxStorage.Contract.GetMessageHash(&_TaskMailboxStorage.CallOpts, taskHash, result) +} + // GetTaskInfo is a free data retrieval call binding the contract method 0x4ad52e02. // // Solidity: function getTaskInfo(bytes32 taskHash) view returns((address,uint96,address,uint96,address,uint32,uint16,uint8,bool,uint32,(address,uint96,address,uint8,address,(uint8,bytes),bytes),bytes,bytes,bytes))