0 txs
505 calls
constructor
constructor(address admin, address _wormhole, address _wormholeRelayer, address _bridgeRouter, address _refundAddress)
functions
bridgeRouter
viewfunction bridgeRouter() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultAdmin
viewfunction defaultAdmin() view returns (address)
defaultAdminDelay
viewfunction defaultAdminDelay() view returns (uint48)
defaultAdminDelayIncreaseWait
viewfunction defaultAdminDelayIncreaseWait() view returns (uint48)
getChainAdapter
viewfunction getChainAdapter(uint16 chainId) view returns (uint16 wormholeChainId, bytes32 adapterAddress)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getSendFee
viewfunction getSendFee(tuple message) view returns (uint256 fee)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isChainAvailable
viewfunction isChainAvailable(uint16 chainId) view returns (bool)
MANAGER_ROLE
viewfunction MANAGER_ROLE() view returns (bytes32)
owner
viewfunction owner() view returns (address)
pendingDefaultAdmin
viewfunction pendingDefaultAdmin() view returns (address newAdmin, uint48 schedule)
pendingDefaultAdminDelay
viewfunction pendingDefaultAdminDelay() view returns (uint48 newDelay, uint48 schedule)
refundAddress
viewfunction refundAddress() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
wormhole
viewfunction wormhole() view returns (address)
wormholeRelayer
viewfunction wormholeRelayer() view returns (address)
acceptDefaultAdminTransfer
nonpayablefunction acceptDefaultAdminTransfer()
addChain
nonpayablefunction addChain(uint16 folksChainId, uint16 wormholeChainId, bytes32 adapterAddress)
beginDefaultAdminTransfer
nonpayablefunction beginDefaultAdminTransfer(address newAdmin)
cancelDefaultAdminTransfer
nonpayablefunction cancelDefaultAdminTransfer()
changeDefaultAdminDelay
nonpayablefunction changeDefaultAdminDelay(uint48 newDelay)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
receiveWormholeMessages
payablefunction receiveWormholeMessages(bytes payload, bytes[], bytes32 sourceAddress, uint16 sourceChain, bytes32 deliveryHash) payable
removeChain
nonpayablefunction removeChain(uint16 folksChainId)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
rollbackDefaultAdminDelay
nonpayablefunction rollbackDefaultAdminDelay()
sendMessage
payablefunction sendMessage(tuple message) payable
setRefundAddress
nonpayablefunction setRefundAddress(address _refundAddress)
events
DefaultAdminDelayChangeCanceled
event DefaultAdminDelayChangeCanceled()
DefaultAdminDelayChangeScheduled
event DefaultAdminDelayChangeScheduled(uint48 newDelay, uint48 effectSchedule)
DefaultAdminTransferCanceled
event DefaultAdminTransferCanceled()
DefaultAdminTransferScheduled
event DefaultAdminTransferScheduled(address indexed newAdmin, uint48 acceptSchedule)
ReceiveMessage
event ReceiveMessage(bytes32 indexed messageId, bytes32 adapterAddress)
ReceiveMessage
event ReceiveMessage(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)
SendMessage
event SendMessage(bytes32 operationId, ((uint16 adapterId, uint16 returnAdapterId, uint256 receiverValue, uint256 gasLimit, uint256 returnGasLimit) params, bytes32 sender, uint16 destinationChainId, bytes32 handler, bytes payload, uint64 finalityLevel, bytes extraArgs) message)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlEnforcedDefaultAdminDelay
error AccessControlEnforcedDefaultAdminDelay(uint48 schedule)
AccessControlEnforcedDefaultAdminRules
error AccessControlEnforcedDefaultAdminRules()
AccessControlInvalidDefaultAdmin
error AccessControlInvalidDefaultAdmin(address defaultAdmin)
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
ChainAlreadyAdded
error ChainAlreadyAdded(uint16 chainId)
ChainUnavailable
error ChainUnavailable(uint16 chainId)
EmptyExtraArgs
error EmptyExtraArgs()
InvalidBridgeRouter
error InvalidBridgeRouter(address router)
InvalidFinalityLevel
error InvalidFinalityLevel(uint64 finalityLevel)
InvalidMessageSender
error InvalidMessageSender(bytes32 sourceAddress)
InvalidReceivedAmount
error InvalidReceivedAmount(uint256 expected, uint256 actual)
InvalidTokenAddress
error InvalidTokenAddress(bytes32 token)
InvalidWormholeRelayer
error InvalidWormholeRelayer(address sender)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
UnsupportedExtraArgs
error UnsupportedExtraArgs()
UnsupportedFinalityLevel
error UnsupportedFinalityLevel(uint64 finalityLevel)
creation bytecode
0x60e06040523480156200001157600080fd5b50604051620025e7380380620025e783398101604081905262000034916200023d565b62015180856001600160a01b0381166200006857604051636116401160e11b81526000600482015260240160405180910390fd5b600180546001600160d01b0316600160d01b65ffffffffffff8516021790556200009460008262000100565b5050506001600160a01b0384811660805283811660a05282811660c052600580546001600160a01b031916918316919091179055620000f47faf290d8680820aad922855f39b306097b20e28774d6c1ad35a20325630c3a02c8662000100565b505050505050620002bd565b600082620001615760006200011d6002546001600160a01b031690565b6001600160a01b0316146200014557604051631fe1e13d60e11b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0384161790555b6200016d838362000176565b90505b92915050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166200021b576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620001d23390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000170565b50600062000170565b6001600160a01b03811681146200023a57600080fd5b50565b600080600080600060a086880312156200025657600080fd5b8551620002638162000224565b6020870151909550620002768162000224565b6040870151909450620002898162000224565b60608701519093506200029c8162000224565b6080870151909250620002af8162000224565b809150509295509295909350565b60805160a05160c0516122c96200031e6000396000818161034d015281816106d70152610c3101526000818161060c0152818161077f015281816107d501528181610b150152610e010152600081816104620152610e7a01526122c96000f3fe6080604052600436106101d85760003560e01c8063649a5ec711610102578063cc8463c811610095578063d547741f11610064578063d547741f146105c5578063d602b9fd146105e5578063da25b725146105fa578063ec87621c1461062e57600080fd5b8063cc8463c814610540578063cdadae1514610555578063cefc142914610575578063cf6eefb71461058a57600080fd5b806391d14854116100d157806391d14854146104b7578063a1eda53c146104d7578063a217fddf1461050b578063b69500301461052057600080fd5b8063649a5ec71461043057806384acd1bb1461045057806384ef8ffc146104845780638da5cb5b146104a257600080fd5b80632f2ff15d1161017a5780634719162311610149578063471916231461038f5780634e4e3e99146103c3578063529dca32146103fd578063634e93da1461041057600080fd5b80632f2ff15d146102fb57806336568abe1461031b57806341af5b521461033b57806346c026aa1461036f57600080fd5b80630cb61f6c116101b65780630cb61f6c1461025257806315b75bea1461028a5780631a5e23b2146102aa578063248a9ca3146102bd57600080fd5b806301ffc9a7146101dd578063022d63fb146102125780630aa6220b1461023b575b600080fd5b3480156101e957600080fd5b506101fd6101f8366004611a29565b610650565b60405190151581526020015b60405180910390f35b34801561021e57600080fd5b50620697805b60405165ffffffffffff9091168152602001610209565b34801561024757600080fd5b5061025061067b565b005b34801561025e57600080fd5b50600554610272906001600160a01b031681565b6040516001600160a01b039091168152602001610209565b34801561029657600080fd5b506102506102a5366004611a68565b610691565b6102506102b8366004611c19565b6106cc565b3480156102c957600080fd5b506102ed6102d8366004611cf6565b60009081526020819052604090206001015490565b604051908152602001610209565b34801561030757600080fd5b50610250610316366004611d0f565b610953565b34801561032757600080fd5b50610250610336366004611d0f565b61097f565b34801561034757600080fd5b506102727f000000000000000000000000000000000000000000000000000000000000000081565b34801561037b57600080fd5b5061025061038a366004611d3f565b610a26565b34801561039b57600080fd5b506101fd6103aa366004611d3f565b61ffff1660009081526003602052604090205460ff1690565b3480156103cf57600080fd5b506103e36103de366004611d3f565b610a8c565b6040805161ffff9093168352602083019190915201610209565b61025061040b366004611d5a565b610b0a565b34801561041c57600080fd5b5061025061042b366004611a68565b610cf9565b34801561043c57600080fd5b5061025061044b366004611e63565b610d0d565b34801561045c57600080fd5b506102727f000000000000000000000000000000000000000000000000000000000000000081565b34801561049057600080fd5b506002546001600160a01b0316610272565b3480156104ae57600080fd5b50610272610d21565b3480156104c357600080fd5b506101fd6104d2366004611d0f565b610d3a565b3480156104e357600080fd5b506104ec610d63565b6040805165ffffffffffff938416815292909116602083015201610209565b34801561051757600080fd5b506102ed600081565b34801561052c57600080fd5b506102ed61053b366004611c19565b610db7565b34801561054c57600080fd5b50610224610f0c565b34801561056157600080fd5b50610250610570366004611e8b565b610f6b565b34801561058157600080fd5b5061025061103e565b34801561059657600080fd5b5061059f61107e565b604080516001600160a01b03909316835265ffffffffffff909116602083015201610209565b3480156105d157600080fd5b506102506105e0366004611d0f565b61109f565b3480156105f157600080fd5b506102506110c7565b34801561060657600080fd5b506102727f000000000000000000000000000000000000000000000000000000000000000081565b34801561063a57600080fd5b506102ed60008051602061227483398151915281565b60006001600160e01b031982166318a4c3c360e11b14806106755750610675826110da565b92915050565b60006106868161110f565b61068e611119565b50565b6000805160206122748339815191526106a98161110f565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461071c5760405163a188704960e01b81523360048201526024015b60405180910390fd5b60008061072c8360400151610a8c565b60c08501515191935091501561075557604051637902f38d60e01b815260040160405180910390fd5b600061076084611126565b905060006107718560a00151611169565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016633a2c767d348787878b600001516040015160008d60000151606001518d600560009054906101000a90046001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166324320c9f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610831573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108559190611ec7565b6040805160008082526020820190925290610898565b604080516060810182526000808252602080830182905292820152825260001990920191018161086b5790505b508e6040518d63ffffffff1660e01b81526004016108c09b9a99989796959493929190611f34565b60206040518083038185885af11580156108de573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109039190612010565b90507fe67eb503cf485234ab302b4fc4367bde84537b766699b3ba2d023f44ce8af3018167ffffffffffffffff1660001b8760405161094392919061202d565b60405180910390a1505050505050565b8161097157604051631fe1e13d60e11b815260040160405180910390fd5b61097b828261118a565b5050565b8115801561099a57506002546001600160a01b038281169116145b15610a1c576000806109aa61107e565b90925090506001600160a01b0382161515806109cc575065ffffffffffff8116155b806109df57504265ffffffffffff821610155b15610a07576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610713565b50506001805465ffffffffffff60a01b191690555b61097b82826111b5565b600080516020612274833981519152610a3e8161110f565b6000610a4983610a8c565b5061ffff9384166000908152600360209081526040808320805462ffffff191681556001018390559290951681526004909452909220805461ffff191690555050565b61ffff80821660009081526003602090815260408083208151606081018352815460ff811615158083526101009091049096169381019390935260010154908201529091829190610af657604051636b08447560e11b815261ffff85166004820152602401610713565b806020015192508060400151915050915091565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b585760405160016214fd6160e11b03198152336004820152602401610713565b61ffff8083166000908152600460205260408120549091169080610b7b83610a8c565b915091508161ffff168561ffff1614610bad57604051636b08447560e11b815261ffff84166004820152602401610713565b858114610bd05760405163936e893360e01b815260048101879052602401610713565b600080610bdc8a6111ed565b9150915060006040518060e001604052808881526020018761ffff1681526020018460400151815260200184606001518152602001838152602001846000015161ffff168152602001846020015181525090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639292086d34836040518363ffffffff1660e01b8152600401610c7c9190612100565b6000604051808303818588803b158015610c9557600080fd5b505af1158015610ca9573d6000803e3d6000fd5b505050505080600001517fef755efc39fc0fd58b606933986b425bf5fdd819668b05ecd388afaee9d00a8985604051610ce491815260200190565b60405180910390a25050505050505050505050565b6000610d048161110f565b61097b826112aa565b6000610d188161110f565b61097b8261131d565b6000610d356002546001600160a01b031690565b905090565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600254600090600160d01b900465ffffffffffff168015158015610d8f57504265ffffffffffff821610155b610d9b57600080610daf565b600254600160a01b900465ffffffffffff16815b915091509091565b600080610dc78360400151610a8c565b508351604080820151606090920151905163c23ee3c360e01b815261ffff84166004820152602481019290925260448201529091506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23ee3c3906064016040805180830381865afa158015610e4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e739190612170565b50809150507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa9190612194565b610f0490826121c3565b949350505050565b600254600090600160d01b900465ffffffffffff168015158015610f3757504265ffffffffffff8216105b610f5257600154600160d01b900465ffffffffffff16610f65565b600254600160a01b900465ffffffffffff165b91505090565b600080516020612274833981519152610f838161110f565b61ffff841660009081526003602052604090205460ff168015610fbf57604051636e2cfa3b60e01b815261ffff86166004820152602401610713565b505060408051606081018252600180825261ffff9485166020808401828152848601968752978716600081815260038352868120955186549a5162ffffff19909b1690151562ffff001916176101009a909916999099029790971784559451929091019190915584526004909152909120805461ffff19169091179055565b600061104861107e565b509050336001600160a01b0382161461107657604051636116401160e11b8152336004820152602401610713565b61068e61138d565b6001546001600160a01b03811691600160a01b90910465ffffffffffff1690565b816110bd57604051631fe1e13d60e11b815260040160405180910390fd5b61097b8282611426565b60006110d28161110f565b61068e61144b565b60006001600160e01b03198216637965db0b60e01b148061067557506301ffc9a760e01b6001600160e01b0319831614610675565b61068e8133611456565b61112460008061148f565b565b805160208082015160809283015182850151606086810151958701516040519196611153969092016121d6565b6040516020818303038152906040529050919050565b600067ffffffffffffffff82161561118257600f610675565b60c892915050565b6000828152602081905260409020600101546111a58161110f565b6111af838361154f565b50505050565b6001600160a01b03811633146111de5760405163334bd91960e11b815260040160405180910390fd5b6111e882826115be565b505050565b6040805160808101825260008082526020820181905291810182905260608101919091526060600061121f84826115fb565b61ffff1683526112306002826121c3565b905061123c8482611658565b60208085019190915261124f90826121c3565b905061125b84826116b6565b604084015261126b6020826121c3565b905061127784826116b6565b60608401526112876020826121c3565b90506112a28182865161129a919061221b565b86919061170b565b915050915091565b60006112b4610f0c565b6112bd42611818565b6112c7919061222e565b90506112d3828261184f565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b6000611328826118ce565b61133142611818565b61133b919061222e565b9050611347828261148f565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b910160405180910390a15050565b60008061139861107e565b915091506113ad8165ffffffffffff16151590565b15806113c157504265ffffffffffff821610155b156113e9576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610713565b61140560006114006002546001600160a01b031690565b6115be565b5061141160008361154f565b5050600180546001600160d01b031916905550565b6000828152602081905260409020600101546114418161110f565b6111af83836115be565b61112460008061184f565b6114608282610d3a565b61097b5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610713565b600254600160d01b900465ffffffffffff168015611512574265ffffffffffff821610156114e857600254600180546001600160d01b0316600160a01b90920465ffffffffffff16600160d01b02919091179055611512565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec590600090a15b50600280546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b6000826115ad57600061156a6002546001600160a01b031690565b6001600160a01b03161461159157604051631fe1e13d60e11b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0384161790555b6115b78383611916565b9392505050565b6000821580156115db57506002546001600160a01b038381169116145b156115f157600280546001600160a01b03191690555b6115b783836119a8565b60006116088260026121c3565b8351101561164f5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606401610713565b50016002015190565b60006116658260206121c3565b835110156116ad5760405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606401610713565b50016020015190565b60006116c38260206121c3565b835110156116ad5760405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606401610713565b60608161171981601f6121c3565b10156117585760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610713565b61176282846121c3565b845110156117a65760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610713565b6060821580156117c5576040519150600082526020820160405261180f565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156117fe5780518352602092830192016117e6565b5050858452601f01601f1916604052505b50949350505050565b600065ffffffffffff82111561184b576040516306dfcc6560e41b81526030600482015260248101839052604401610713565b5090565b600061185961107e565b6001805465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617179055915061189b90508165ffffffffffff16151590565b156111e8576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510990600090a1505050565b6000806118d9610f0c565b90508065ffffffffffff168365ffffffffffff1611611901576118fc8382612254565b6115b7565b6115b765ffffffffffff841662069780611a13565b60006119228383610d3a565b6119a0576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556119583390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610675565b506000610675565b60006119b48383610d3a565b156119a0576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610675565b6000818310611a2257816115b7565b5090919050565b600060208284031215611a3b57600080fd5b81356001600160e01b0319811681146115b757600080fd5b6001600160a01b038116811461068e57600080fd5b600060208284031215611a7a57600080fd5b81356115b781611a53565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715611abe57611abe611a85565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611aed57611aed611a85565b604052919050565b803561ffff81168114611b0757600080fd5b919050565b600060a08284031215611b1e57600080fd5b60405160a0810181811067ffffffffffffffff82111715611b4157611b41611a85565b604052905080611b5083611af5565b8152611b5e60208401611af5565b60208201526040830135604082015260608301356060820152608083013560808201525092915050565b600082601f830112611b9957600080fd5b813567ffffffffffffffff811115611bb357611bb3611a85565b611bc6601f8201601f1916602001611ac4565b818152846020838601011115611bdb57600080fd5b816020850160208301376000918101602001919091529392505050565b67ffffffffffffffff8116811461068e57600080fd5b8035611b0781611bf8565b600060208284031215611c2b57600080fd5b813567ffffffffffffffff80821115611c4357600080fd5b908301906101608286031215611c5857600080fd5b611c60611a9b565b611c6a8684611b0c565b815260a08301356020820152611c8260c08401611af5565b604082015260e0830135606082015261010083013582811115611ca457600080fd5b611cb087828601611b88565b608083015250611cc36101208401611c0e565b60a082015261014083013582811115611cdb57600080fd5b611ce787828601611b88565b60c08301525095945050505050565b600060208284031215611d0857600080fd5b5035919050565b60008060408385031215611d2257600080fd5b823591506020830135611d3481611a53565b809150509250929050565b600060208284031215611d5157600080fd5b6115b782611af5565b600080600080600060a08688031215611d7257600080fd5b853567ffffffffffffffff80821115611d8a57600080fd5b611d9689838a01611b88565b9650602091508188013581811115611dad57600080fd5b8801601f81018a13611dbe57600080fd5b803582811115611dd057611dd0611a85565b8060051b611ddf858201611ac4565b918252828101850191858101908d841115611df957600080fd5b86850192505b83831015611e3557823586811115611e175760008081fd5b611e258f8983890101611b88565b8352509186019190860190611dff565b809a505050505050505060408601359250611e5260608701611af5565b949793965091946080013592915050565b600060208284031215611e7557600080fd5b813565ffffffffffff811681146115b757600080fd5b600080600060608486031215611ea057600080fd5b611ea984611af5565b9250611eb760208501611af5565b9150604084013590509250925092565b600060208284031215611ed957600080fd5b81516115b781611a53565b60005b83811015611eff578181015183820152602001611ee7565b50506000910152565b60008151808452611f20816020860160208601611ee4565b601f01601f19169290920160200192915050565b600061ffff808e168352602060018060a01b03808f16828601526101606040860152611f6461016086018f611f08565b606086018e9052608086018d905260a086018c90528a841660c087015289821660e08701529088166101008601528481036101208601528651808252908201908288019060005b81811015611fe9578251805187168552858101518686015260409081015167ffffffffffffffff169085015260609093019291840191600101611fab565b50505060ff86166101408601529250612000915050565b9c9b505050505050505050505050565b60006020828403121561202257600080fd5b81516115b781611bf8565b828152604060208201526000825161ffff8082511660408501528060208301511660608501525060408101516080840152606081015160a0840152608081015160c084015250602083015160e0830152604083015161209361010084018261ffff169052565b5060608301516101208301526080830151610160806101408501526120bc6101a0850183611f08565b915060a08501516120d88286018267ffffffffffffffff169052565b505060c0840151838203603f19016101808501526120f68282611f08565b9695505050505050565b60208152815160208201526000602083015161ffff808216604085015260408501516060850152606085015160808501526080850151915060e060a085015261214d610100850183611f08565b91508060a08601511660c08501525060c084015160e08401528091505092915050565b6000806040838503121561218357600080fd5b505080516020909101519092909150565b6000602082840312156121a657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610675576106756121ad565b61ffff60f01b8660f01b1681528460028201528360228201528260428201526000825161220a816062850160208701611ee4565b919091016062019695505050505050565b81810381811115610675576106756121ad565b65ffffffffffff81811683821601908082111561224d5761224d6121ad565b5092915050565b65ffffffffffff82811682821603908082111561224d5761224d6121ad56feaf290d8680820aad922855f39b306097b20e28774d6c1ad35a20325630c3a02ca26469706673582212203a34ec39ede457b45ef78e9afad099438f6b9e175de6d2befa061313497ae4ab64736f6c634300081700330000000000000000000000004095f3c4bf6d6505bd32cffe0918863ebb6b2df20000000000000000000000007a4b5a56256163f07b2c80a7ca55abe66c4ec4d700000000000000000000000027428dd2d3dd32a4d7f7c497eaaa23130d894911000000000000000000000000df34f43ba8045cab5c8a9a7589d5b5066c708af30000000000000000000000004095f3c4bf6d6505bd32cffe0918863ebb6b2df2