0 txs
21 calls
constructor
No constructor.
functions
baseFees
viewfunction baseFees(uint256) view returns (uint256)
chainId
viewfunction chainId() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultGasLimit
viewfunction defaultGasLimit() view returns (uint256)
estimateFee
viewfunction estimateFee(uint256 targetChainId, uint256 gasLimit) view returns (uint256 fee)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
maxGasLimit
viewfunction maxGasLimit() view returns (uint256)
maxMessageLength
viewfunction maxMessageLength() view returns (uint256)
messageExecuted
viewfunction messageExecuted(bytes32) view returns (bool)
messageGasLimit
viewfunction messageGasLimit(bytes32) view returns (uint256)
minGasLimit
viewfunction minGasLimit() view returns (uint256)
nonces
viewfunction nonces(uint256, uint256, address, address) view returns (uint256)
signatureVerifier
viewfunction signatureVerifier() view returns (address)
supportedDstChains
viewfunction supportedDstChains(uint256) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
wanchainStoremanAdminSC
viewfunction wanchainStoremanAdminSC() view returns (address)
batchSetBaseFees
nonpayablefunction batchSetBaseFees(uint256[] _targetChainIds, uint256[] _baseFees)
dispatchMessage
payablefunction dispatchMessage(uint256 toChainId, address to, bytes data) payable returns (bytes32 messageId)
dispatchMessageBatch
payablefunction dispatchMessageBatch(uint256 toChainId, tuple[] messages) payable returns (bytes32 messageId)
dispatchMessageV2
nonpayablefunction dispatchMessageV2(uint256 toChainId, address to, uint256 gasLimit, bytes data) returns (bytes32 messageId)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address admin, address _cross)
receiveBatchMessage
nonpayablefunction receiveBatchMessage(bytes32 messageId, uint256 sourceChainId, address sourceContract, tuple[] messages, uint256 gasLimit, bytes32 smgID, bytes r, bytes32 s)
receiveMessage
nonpayablefunction receiveMessage(bytes32 messageId, uint256 sourceChainId, address sourceContract, address targetContract, bytes messageData, uint256 gasLimit, bytes32 smgID, bytes r, bytes32 s)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setGasLimit
nonpayablefunction setGasLimit(uint256 _maxGasLimit, uint256 _minGasLimit, uint256 _defaultGasLimit)
setMaxMessageLength
nonpayablefunction setMaxMessageLength(uint256 _maxMessageLength)
setSignatureVerifier
nonpayablefunction setSignatureVerifier(address _signatureVerifier)
setSupportedDstChains
nonpayablefunction setSupportedDstChains(uint256[] targetChainIds, bool[] supported)
withdrawFee
nonpayablefunction withdrawFee(address _to)
events
Initialized
event Initialized(uint8 version)
MessageBatchDispatched
event MessageBatchDispatched(bytes32 indexed messageId, address indexed from, uint256 indexed toChainId, (address to, bytes data)[] messages)
MessageDispatched
event MessageDispatched(bytes32 indexed messageId, address indexed from, uint256 indexed toChainId, address to, bytes data)
MessageDispatchedV2
event MessageDispatchedV2(bytes32 messageId, address sender, uint256 toChainId, address to, uint256 gasLimit, bytes data)
MessageIdExecuted
event MessageIdExecuted(uint256 indexed fromChainId, bytes32 indexed messageId)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
MessageBatchFailure
error MessageBatchFailure(bytes32 messageId, uint256 messageIndex, bytes errorData)
MessageFailure
error MessageFailure(bytes32 messageId, bytes errorData)
MessageIdAlreadyExecuted
error MessageIdAlreadyExecuted(bytes32 messageId)
SignatureVerifyFailed
error SignatureVerifyFailed(bytes32 smgID, bytes32 sigHash, bytes r, bytes32 s)
StoremanGroupNotReady
error StoremanGroupNotReady(bytes32 smgID, uint256 status, uint256 timestamp, uint256 startTime, uint256 endTime)
creation bytecode
0x608060405234801561001057600080fd5b506001600255612c63806100256000396000f3fe6080604052600436106101e25760003560e01c806391d1485411610102578063b408be9711610095578063e7a0af7811610064578063e7a0af78146105ab578063ea93a509146105db578063fde919f61461060b578063fe39827b1461062b57600080fd5b8063b408be9714610513578063d547741f14610533578063e01fdc0f14610553578063e08a66051461058b57600080fd5b80639c11bc30116100d15780639c11bc3014610491578063a1f64b31146104b1578063a20c51a9146104de578063a217fddf146104fe57600080fd5b806391d148541461042557806395368d2e14610445578063993a34ed1461045b5780639a8a05921461047b57600080fd5b806336568abe1161017a5780635aeb4d77116101495780635aeb4d77146103855780635e45da231461039b5780635f1dd82c146103b15780637e391277146103f857600080fd5b806336568abe146103055780633abda09814610325578063485cc955146103455780634918f53c1461036557600080fd5b80631ac3ddeb116101b65780631ac3ddeb1461027f5780631d1d4e291461029f578063248a9ca3146102b55780632f2ff15d146102e557600080fd5b8062e1d8d0146101e757806301ffc9a71461021a57806318d9f08c1461024a578063196148f61461025d575b600080fd5b3480156101f357600080fd5b50610207610202366004611e0d565b61063e565b6040519081526020015b60405180910390f35b34801561022657600080fd5b5061023a610235366004611e2f565b6106e7565b6040519015158152602001610211565b610207610258366004611ea4565b61071c565b34801561026957600080fd5b5061027d610278366004611eef565b6108f8565b005b34801561028b57600080fd5b5061027d61029a366004611f30565b61092d565b3480156102ab57600080fd5b5061020760075481565b3480156102c157600080fd5b506102076102d0366004611f4d565b60009081526020819052604090206001015490565b3480156102f157600080fd5b5061027d610300366004611f66565b61098d565b34801561031157600080fd5b5061027d610320366004611f66565b6109b7565b34801561033157600080fd5b5061027d610340366004611f96565b610a31565b34801561035157600080fd5b5061027d610360366004612001565b610b10565b34801561037157600080fd5b5061027d610380366004612070565b610e56565b34801561039157600080fd5b5061020760055481565b3480156103a757600080fd5b5061020760045481565b3480156103bd57600080fd5b506102076103cc366004612125565b600d60209081526000948552604080862082529385528385208152918452828420909152825290205481565b34801561040457600080fd5b50610207610413366004611f4d565b600b6020526000908152604090205481565b34801561043157600080fd5b5061023a610440366004611f66565b610f36565b34801561045157600080fd5b5061020760065481565b34801561046757600080fd5b5061020761047636600461216f565b610f5f565b34801561048757600080fd5b5061020760035481565b34801561049d57600080fd5b5061027d6104ac366004611f4d565b611082565b3480156104bd57600080fd5b506102076104cc366004611f4d565b600c6020526000908152604090205481565b3480156104ea57600080fd5b5061027d6104f9366004611f96565b6110ae565b34801561050a57600080fd5b50610207600081565b34801561051f57600080fd5b5061027d61052e3660046121d8565b6111a7565b34801561053f57600080fd5b5061027d61054e366004611f66565b6112c3565b34801561055f57600080fd5b50600954610573906001600160a01b031681565b6040516001600160a01b039091168152602001610211565b34801561059757600080fd5b5061027d6105a6366004611f30565b6112e8565b3480156105b757600080fd5b5061023a6105c6366004611f4d565b600e6020526000908152604090205460ff1681565b3480156105e757600080fd5b5061023a6105f6366004611f4d565b600a6020526000908152604090205460ff1681565b34801561061757600080fd5b50600854610573906001600160a01b031681565b6102076106393660046122ab565b611331565b6000828152600e602052604081205460ff166106755760405162461bcd60e51b815260040161066c906122fa565b60405180910390fd5b6004548211156106975760405162461bcd60e51b815260040161066c90612343565b6005548210156106c4576005546000848152600b60205260409020546106bd919061239e565b90506106e1565b6000838152600b60205260409020546106de90839061239e565b90505b92915050565b60006001600160e01b03198216637965db0b60e01b14806106e157506301ffc9a760e01b6001600160e01b03198316146106e1565b60006107266114bb565b6000848152600e602052604090205460ff166107545760405162461bcd60e51b815260040161066c906122fa565b6000848152600b6020526040902054600554610770919061239e565b3410156107b95760405162461bcd60e51b8152602060048201526017602482015276576d62476174657761793a2046656520746f6f206c6f7760481b604482015260640161066c565b8160006107c586611512565b905060005b82811015610893576000610841888888858181106107ea576107ea6123b5565b90506020028101906107fc91906123cb565b61080a906020810190611f30565b89898681811061081c5761081c6123b5565b905060200281019061082e91906123cb565b61083c9060208101906123eb565b611548565b90508160000361085357809450610880565b60408051602081018790529081018290526060016040516020818303038152906040528051906020012094505b508061088b81612431565b9150506107ca565b506000838152600c602052604090819020829055518690339085907f3e3e2584727d15a9c4d210e85682b829bdbe8c083632dbe0d61b59ad0c5b4ff1906108dd908a908a9061253f565b60405180910390a450506108f16001600255565b9392505050565b610903600033610f36565b61091f5760405162461bcd60e51b815260040161066c90612553565b600492909255600555600655565b610938600033610f36565b6109545760405162461bcd60e51b815260040161066c90612553565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610989573d6000803e3d6000fd5b5050565b6000828152602081905260409020600101546109a881611627565b6109b28383611634565b505050565b6001600160a01b0381163314610a275760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161066c565b61098982826116b8565b610a3c600033610f36565b610a585760405162461bcd60e51b815260040161066c90612553565b828114610aa35760405162461bcd60e51b815260206004820152601960248201527815db5891d85d195dd85e4e88125b9d985b1a59081a5b9c1d5d603a1b604482015260640161066c565b60005b83811015610b0957828282818110610ac057610ac06123b5565b90506020020135600b6000878785818110610add57610add6123b5565b905060200201358152602001908152602001600020819055508080610b0190612431565b915050610aa6565b5050505050565b600154610100900460ff1615808015610b2d57506001805460ff16105b80610b465750303b158015610b4657506001805460ff16145b610ba95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161066c565b6001805460ff1916811790558015610bcb576001805461ff0019166101001790555b6001600160a01b038316610c2b5760405162461bcd60e51b815260206004820152602160248201527f576d62476174657761793a20496e76616c69642061646d696e206164647265736044820152607360f81b606482015260840161066c565b600080836001600160a01b03166373e29b0d6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610c6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c909190612595565b6040805163b179e1e760e01b81529051949750909550600094506001600160a01b0389169363b179e1e79350600480830193506020928290030181865afa158015610cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d03919061260a565b905080600003610d485760405162461bcd60e51b815260206004820152601060248201526f636861696e496420697320656d70747960801b604482015260640161066c565b846001600160a01b03166373e29b0d6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610d86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daa9190612595565b50505060038390555050627a1200600455620249f0600555620f4240600655612710600755600880546001600160a01b038085166001600160a01b0319928316179092556009805492861692909116919091179055610e0a600087611634565b50505080156109b2576001805461ff00191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60008a8a8a6003548b8b604051602001610e7596959493929190612623565b604051602081830303815290604052805190602001209050610eeb604051806080016040528083815260200187815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200184905261171d565b610f298b60405180608001604052808d81526020018c6001600160a01b031681526020018b8b90610f1c91906126f8565b815260200189905261182c565b5050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610f696114bb565b6000868152600e602052604090205460ff16610f975760405162461bcd60e51b815260040161066c906122fa565b600454841115610fb95760405162461bcd60e51b815260040161066c90612343565b60055484101561100b5760405162461bcd60e51b815260206004820152601d60248201527f576d62476174657761793a20476173206c696d697420746f6f206c6f77000000604482015260640161066c565b61101786868585611548565b6000818152600c602052604090819020869055519091507fdf60d693bd2b9319588e19840fc60e738990b044dd0cd7cf3216f2b4121ace749061106790839033908a908a908a908a908a906127fe565b60405180910390a16110796001600255565b95945050505050565b61108d600033610f36565b6110a95760405162461bcd60e51b815260040161066c90612553565b600755565b6110b9600033610f36565b6110d55760405162461bcd60e51b815260040161066c90612553565b8281146111205760405162461bcd60e51b815260206004820152601960248201527815db5891d85d195dd85e4e88125b9d985b1a59081a5b9c1d5d603a1b604482015260640161066c565b60005b83811015610b095782828281811061113d5761113d6123b5565b9050602002016020810190611152919061285a565b600e6000878785818110611168576111686123b5565b90506020020135815260200190815260200160002060006101000a81548160ff021916908315150217905550808061119f90612431565b915050611123565b60008b8b8b6003548c8c8c6040516020016111c89796959493929190612877565b60405160208183030381529060405280519060200120905061123e604051806080016040528083815260200187815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200184905261171d565b6112b58c6040518060a001604052808e81526020018d6001600160a01b031681526020018c6001600160a01b031681526020018b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020018990526119c8565b505050505050505050505050565b6000828152602081905260409020600101546112de81611627565b6109b283836116b8565b6112f3600033610f36565b61130f5760405162461bcd60e51b815260040161066c90612553565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600061133b6114bb565b6000858152600e602052604090205460ff166113695760405162461bcd60e51b815260040161066c906122fa565b6000858152600b6020526040902054600554611385919061239e565b3410156113ce5760405162461bcd60e51b8152602060048201526017602482015276576d62476174657761793a2046656520746f6f206c6f7760481b604482015260640161066c565b6000858152600b60205260409020546004546113ea919061239e565b3411156114395760405162461bcd60e51b815260206004820152601960248201527f576d62476174657761793a2046656520746f6f206c6172676500000000000000604482015260640161066c565b600061144486611512565b905061145286868686611548565b6000818152600c602052604090819020839055519092508690339084907fe2f8f20ddbedfce5eb59a8b930077e7f4906a01300b9318db5f90d1c96c7b6d4906114a0908a908a908a906128b8565b60405180910390a4506114b36001600255565b949350505050565b600280540361150c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161066c565b60028055565b6000818152600b6020526040812054810361152f57505060065490565b6000828152600b60205260409020546106e190346128dd565b6003546000908152600d60209081526040808320878452825280832033845282528083206001600160a01b038716845290915281208054829190829061158d90612431565b91829055506007549091508311156115e75760405162461bcd60e51b815260206004820152601c60248201527f576d62476174657761793a204d65737361676520746f6f206c6f6e6700000000604482015260640161066c565b60035433878787878660405160200161160697969594939291906128ff565b60405160208183030381529060405280519060200120915050949350505050565b6116318133611b0a565b50565b61163e8282610f36565b610989576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556116743390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6116c28282610f36565b15610989576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000606061172e8360200151611b63565b60208181015160408084015188820151808501519083015160085460608c01518c518651631161eded60e21b8152600481018c9052602481019290925260448201889052606482018690526084820185905260a4820184905260c48201529451989a509698509396919590946001600160a01b0390911692634587b7b49260e4808301939282900301816000875af11580156117ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f2919061294b565b61182357602087015187516040808a015160608b01519151635d2d123b60e11b815261066c949392906004016129b8565b50505050505050565b6000828152600a602052604090205460ff161561185f5760405163153bf81360e31b81526004810183905260240161066c565b6000828152600a6020526040808220805460ff1916600117905582015151905b81811015611995578260400151818151811061189d5761189d6123b5565b6020026020010151600001516001600160a01b0316633a1a5b765a856040015184815181106118ce576118ce6123b5565b60200260200101516020015187876000015188602001516040518663ffffffff1660e01b815260040161190494939291906129e8565b600060405180830381600088803b15801561191e57600080fd5b5087f193505050508015611930575060015b611983573d80801561195e576040519150601f19603f3d011682016040523d82523d6000602084013e611963565b606091505b508482826040516307ee0b0760e31b815260040161066c93929190612a20565b8061198d81612431565b91505061187f565b82516040518591907e769f3f82cb2a521c5b72f211aff687dae3cebd0b4631790417d1b17e15689a90600090a350505050565b6000828152600a602052604090205460ff16156119fb5760405163153bf81360e31b81526004810183905260240161066c565b6000828152600a6020908152604091829020805460ff1916600117905582820151608084015160608501518551938601519451631d0d2dbb60e11b81526001600160a01b0390931694633a1a5b76949293611a5c93899290916004016129e8565b600060405180830381600088803b158015611a7657600080fd5b5087f193505050508015611a88575060015b611ad9573d808015611ab6576040519150601f19603f3d011682016040523d82523d6000602084013e611abb565b606091505b508281604051632f9c844f60e21b815260040161066c929190612a3f565b80516040518391907e769f3f82cb2a521c5b72f211aff687dae3cebd0b4631790417d1b17e15689a90600090a35050565b611b148282610f36565b61098957611b2181611c60565b611b2c836020611c72565b604051602001611b3d929190612a58565b60408051601f198184030181529082905262461bcd60e51b825261066c91600401612acd565b6009546040516344cefb6960e01b8152600481018390526000916060918391829182916001600160a01b0316906344cefb6990602401600060405180830381865afa158015611bb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bde9190810190612b3b565b949e50919c50969a50985090965060059550611bfb945050505050565b60ff168360ff16148015611c0f5750814210155b8015611c1b5750804211155b611c58576040516320b0fccf60e01b81526004810187905260ff84166024820152426044820152606481018390526084810182905260a40161066c565b505050915091565b60606106e16001600160a01b03831660145b60606000611c8183600261239e565b611c8c906002612c03565b6001600160401b03811115611ca357611ca3612663565b6040519080825280601f01601f191660200182016040528015611ccd576020820181803683370190505b509050600360fc1b81600081518110611ce857611ce86123b5565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611d1757611d176123b5565b60200101906001600160f81b031916908160001a9053506000611d3b84600261239e565b611d46906001612c03565b90505b6001811115611dbe576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611d7a57611d7a6123b5565b1a60f81b828281518110611d9057611d906123b5565b60200101906001600160f81b031916908160001a90535060049490941c93611db781612c16565b9050611d49565b5083156106de5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161066c565b60008060408385031215611e2057600080fd5b50508035926020909101359150565b600060208284031215611e4157600080fd5b81356001600160e01b0319811681146106de57600080fd5b60008083601f840112611e6b57600080fd5b5081356001600160401b03811115611e8257600080fd5b6020830191508360208260051b8501011115611e9d57600080fd5b9250929050565b600080600060408486031215611eb957600080fd5b8335925060208401356001600160401b03811115611ed657600080fd5b611ee286828701611e59565b9497909650939450505050565b600080600060608486031215611f0457600080fd5b505081359360208301359350604090920135919050565b6001600160a01b038116811461163157600080fd5b600060208284031215611f4257600080fd5b81356106de81611f1b565b600060208284031215611f5f57600080fd5b5035919050565b60008060408385031215611f7957600080fd5b823591506020830135611f8b81611f1b565b809150509250929050565b60008060008060408587031215611fac57600080fd5b84356001600160401b0380821115611fc357600080fd5b611fcf88838901611e59565b90965094506020870135915080821115611fe857600080fd5b50611ff587828801611e59565b95989497509550505050565b6000806040838503121561201457600080fd5b823561201f81611f1b565b91506020830135611f8b81611f1b565b60008083601f84011261204157600080fd5b5081356001600160401b0381111561205857600080fd5b602083019150836020828501011115611e9d57600080fd5b6000806000806000806000806000806101008b8d03121561209057600080fd5b8a35995060208b0135985060408b01356120a981611f1b565b975060608b01356001600160401b03808211156120c557600080fd5b6120d18e838f01611e59565b909950975060808d0135965060a08d0135955060c08d01359150808211156120f857600080fd5b506121058d828e0161202f565b9150809450508092505060e08b013590509295989b9194979a5092959850565b6000806000806080858703121561213b57600080fd5b8435935060208501359250604085013561215481611f1b565b9150606085013561216481611f1b565b939692955090935050565b60008060008060006080868803121561218757600080fd5b85359450602086013561219981611f1b565b93506040860135925060608601356001600160401b038111156121bb57600080fd5b6121c78882890161202f565b969995985093965092949392505050565b60008060008060008060008060008060006101208c8e0312156121fa57600080fd5b8b359a5060208c0135995061221260408d0135611f1b565b60408c0135985061222660608d0135611f1b565b60608c013597506001600160401b038060808e0135111561224657600080fd5b6122568e60808f01358f0161202f565b909850965060a08d0135955060c08d0135945060e08d013581101561227a57600080fd5b5061228b8d60e08e01358e0161202f565b81945080935050506101008c013590509295989b509295989b9093969950565b600080600080606085870312156122c157600080fd5b8435935060208501356122d381611f1b565b925060408501356001600160401b038111156122ee57600080fd5b611ff58782880161202f565b60208082526029908201527f576d62476174657761793a20556e737570706f727465642064657374696e617460408201526834b7b71031b430b4b760b91b606082015260800190565b60208082526025908201527f576d62476174657761793a20476173206c696d69742065786365656473206d6160408201526478696d756d60d81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106e1576106e1612388565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126123e157600080fd5b9190910192915050565b6000808335601e1984360301811261240257600080fd5b8301803591506001600160401b0382111561241c57600080fd5b602001915036819003821315611e9d57600080fd5b60006001820161244357612443612388565b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b81835260006020808501808196508560051b810191508460005b878110156125325782840389528135603e198836030181126124ae57600080fd5b8701604081356124bd81611f1b565b6001600160a01b031686528187013536839003601e190181126124df57600080fd5b9091018681019190356001600160401b038111156124fc57600080fd5b80360383131561250b57600080fd5b818888015261251d828801828561244a565b9b88019b96505050918501915060010161248d565b5091979650505050505050565b6020815260006114b3602083018486612473565b60208082526022908201527f576d62476174657761793a2043616c6c6572206973206e6f7420616e2061646d60408201526134b760f11b606082015260800190565b600080600080600060a086880312156125ad57600080fd5b85516125b881611f1b565b60208701519095506125c981611f1b565b60408701519094506125da81611f1b565b60608701519093506125eb81611f1b565b60808701519092506125fc81611f1b565b809150509295509295909350565b60006020828403121561261c57600080fd5b5051919050565b86815285602082015260018060a01b038516604082015283606082015260a06080820152600061265760a083018486612473565b98975050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561269b5761269b612663565b60405290565b604051601f8201601f191681016001600160401b03811182821017156126c9576126c9612663565b604052919050565b60006001600160401b038211156126ea576126ea612663565b50601f01601f191660200190565b60006001600160401b038084111561271257612712612663565b8360051b60206127238183016126a1565b86815291850191818101903684111561273b57600080fd5b865b848110156127f2578035868111156127555760008081fd5b880160403682900312156127695760008081fd5b612771612679565b813561277c81611f1b565b815281860135888111156127905760008081fd5b919091019036601f8301126127a55760008081fd5b81356127b86127b3826126d1565b6126a1565b81815236888386010111156127cd5760008081fd5b818885018983013760009181018801919091528187015284525091830191830161273d565b50979650505050505050565b8781526001600160a01b03878116602083015260408201879052851660608201526080810184905260c060a0820181905260009061283f908301848661244a565b9998505050505050505050565b801515811461163157600080fd5b60006020828403121561286c57600080fd5b81356106de8161284c565b878152602081018790526001600160a01b038681166040830152606082018690528416608082015260c060a0820181905260009061283f908301848661244a565b6001600160a01b0384168152604060208201819052600090611079908301848661244a565b6000826128fa57634e487b7160e01b600052601260045260246000fd5b500490565b87815260006bffffffffffffffffffffffff19808960601b166020840152876034840152808760601b166054840152508385606884013750606892019182015260880195945050505050565b60006020828403121561295d57600080fd5b81516106de8161284c565b60005b8381101561298357818101518382015260200161296b565b50506000910152565b600081518084526129a4816020860160208601612968565b601f01601f19169290920160200192915050565b8481528360208201526080604082015260006129d7608083018561298c565b905082606083015295945050505050565b6080815260006129fb608083018761298c565b60208301959095525060408101929092526001600160a01b0316606090910152919050565b838152826020820152606060408201526000611079606083018461298c565b8281526040602082015260006114b3604083018461298c565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612a90816017850160208801612968565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612ac1816028840160208801612968565b01602801949350505050565b6020815260006106de602083018461298c565b805160ff81168114612af157600080fd5b919050565b600082601f830112612b0757600080fd5b8151612b156127b3826126d1565b818152846020838601011115612b2a57600080fd5b6114b3826020830160208701612968565b60008060008060008060008060008060006101608c8e031215612b5d57600080fd5b8b519a50612b6d60208d01612ae0565b995060408c0151985060608c0151975060808c0151965060a08c0151955060c08c0151945060e08c01516001600160401b03811115612bab57600080fd5b612bb78e828f01612af6565b9450506101008c01516001600160401b03811115612bd457600080fd5b612be08e828f01612af6565b9350506101208c015191506101408c015190509295989b509295989b9093969950565b808201808211156106e1576106e1612388565b600081612c2557612c25612388565b50600019019056fea2646970667358221220677dc15c73232fb02c8e641d26c03e5e8409e519ffb8304146e2e61fcd6c524564736f6c63430008120033