0 txs
0 calls
constructor
constructor(string _suffix)
functions
bridgeContract
viewfunction bridgeContract() view returns (address)
bridgedTokenAddress
viewfunction bridgedTokenAddress(address _nativeToken) view returns (address)
getBridgeInterfacesVersion
purefunction getBridgeInterfacesVersion() pure returns (uint64 major, uint64 minor, uint64 patch)
getBridgeMode
purefunction getBridgeMode() pure returns (bytes4 _data)
isBridgedTokenDeployAcknowledged
viewfunction isBridgedTokenDeployAcknowledged(address _token) view returns (bool)
isInitialized
viewfunction isInitialized() view returns (bool)
isRegisteredAsNativeToken
viewfunction isRegisteredAsNativeToken(address _token) view returns (bool)
isTokenBridgingAllowed
viewfunction isTokenBridgingAllowed(address _token) view returns (bool)
isTokenExecutionAllowed
viewfunction isTokenExecutionAllowed(address _token) view returns (bool)
isTokenRegistered
viewfunction isTokenRegistered(address _token) view returns (bool)
mediatorContractOnOtherSide
viewfunction mediatorContractOnOtherSide() view returns (address)
mediatorOwns
viewfunction mediatorOwns(address _token, uint256 _tokenId) view returns (bool)
messageFixed
viewfunction messageFixed(bytes32 _messageId) view returns (bool)
nativeTokenAddress
viewfunction nativeTokenAddress(address _bridgedToken) view returns (address)
owner
viewfunction owner() view returns (address)
requestGasLimit
viewfunction requestGasLimit() view returns (uint256)
tokenImage
viewfunction tokenImage() view returns (address)
deployAndHandleBridgedNFT
nonpayablefunction deployAndHandleBridgedNFT(address _token, string _name, string _symbol, address _recipient, uint256 _tokenId, string _tokenURI)
disableTokenBridging
nonpayablefunction disableTokenBridging(address _token, bool _disable)
disableTokenExecution
nonpayablefunction disableTokenExecution(address _token, bool _disable)
fixFailedMessage
nonpayablefunction fixFailedMessage(bytes32 _messageId)
fixMediatorBalance
nonpayablefunction fixMediatorBalance(address _token, address _receiver, uint256 _tokenId)
handleBridgedNFT
nonpayablefunction handleBridgedNFT(address _token, address _recipient, uint256 _tokenId, string _tokenURI)
handleNativeNFT
nonpayablefunction handleNativeNFT(address _token, address _recipient, uint256 _tokenId)
initialize
nonpayablefunction initialize(address _bridgeContract, address _mediatorContract, uint256 _requestGasLimit, address _owner, address _image) returns (bool)
onERC721Received
nonpayablefunction onERC721Received(address, address _from, uint256 _tokenId, bytes _data) returns (bytes4)
relayToken
nonpayablefunction relayToken(address token, address _receiver, uint256 _tokenId)
relayToken
nonpayablefunction relayToken(address token, uint256 _tokenId)
requestFailedMessageFix
nonpayablefunction requestFailedMessageFix(bytes32 _messageId)
setBridgeContract
nonpayablefunction setBridgeContract(address _bridgeContract)
setCustomMetadata
nonpayablefunction setCustomMetadata(address _token, string _name, string _symbol)
setCustomTokenAddressPair
nonpayablefunction setCustomTokenAddressPair(address _nativeToken, address _bridgedToken)
setMediatorContractOnOtherSide
nonpayablefunction setMediatorContractOnOtherSide(address _mediatorContract)
setRequestGasLimit
nonpayablefunction setRequestGasLimit(uint256 _gasLimit)
setTokenImage
nonpayablefunction setTokenImage(address _image)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
FailedMessageFixed
event FailedMessageFixed(bytes32 indexed messageId, address token, address recipient, uint256 value)
NewTokenRegistered
event NewTokenRegistered(address indexed nativeToken, address indexed bridgedToken)
OwnershipTransferred
event OwnershipTransferred(address previousOwner, address newOwner)
TokenBridgingDisabled
event TokenBridgingDisabled(address indexed token, bool disabled)
TokenExecutionDisabled
event TokenExecutionDisabled(address indexed token, bool disabled)
TokensBridged
event TokensBridged(address indexed token, address indexed recipient, uint256 tokenId, bytes32 indexed messageId)
TokensBridgingInitiated
event TokensBridgingInitiated(address indexed token, address indexed sender, uint256 tokenId, bytes32 indexed messageId)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b5060405162003ef538038062003ef5833981810160405260208110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b5060405250505080602081511115620000fe57600080fd5b602081015160a052516080525060805160a051613dc66200012f600039806125485250806125cf5250613dc66000f3fe60806040523480156200001157600080fd5b5060043610620002505760003560e01c80639a4a43951162000141578063d79ca76e11620000bd578063f2fde38b1162000087578063f2fde38b1462000961578063f3b83791146200098a578063f4ec76d914620009aa578063fb0a6f3014620009d3578063fbc547ce1462000a045762000250565b8063d79ca76e14620007df578063e1e5e8031462000818578063e3ae398414620008ef578063efb947f314620009285762000250565b8063be3b625b116200010b578063be3b625b1462000757578063c1aef4f21462000773578063c2173d43146200077d578063cba002b914620007a6578063cd59658314620007d55762000250565b80639a4a439514620006a95780639cb7595a14620006c9578063ae813e9f14620006ff578063b7dbbf8714620007285762000250565b80633c91b10511620001d157806361c04f84116200019b57806361c04f8414620006125780636cb44972146200063b5780636e5d6bea146200066c578063871c076014620006955780638da5cb5b146200069f5762000250565b80633c91b1051462000480578063437764df14620005bf5780634ce5cff414620005c95780635933998214620005f25762000250565b80631fa2195f116200021f5780631fa2195f146200038257806326aa101f14620003ab5780632d70061f14620003e857806333e1a223146200042d578063392e53cd14620004765762000250565b80630950d51514620002555780630b26cf6614620002775780630b71a4a714620002a0578063150b7a0214620002d1575b600080fd5b62000275600480360360208110156200026d57600080fd5b503562000a98565b005b62000275600480360360208110156200028f57600080fd5b50356001600160a01b031662000b50565b6200027560048036036040811015620002b857600080fd5b506001600160a01b038135811691602001351662000b86565b6200036560048036036080811015620002e957600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156200032457600080fd5b8201836020820111156200033757600080fd5b803590602001918460018302840111600160201b831117156200035957600080fd5b50909250905062000c0a565b604080516001600160e01b03199092168252519081900360200190f35b62000275600480360360208110156200039a57600080fd5b50356001600160a01b031662000c81565b620003d460048036036020811015620003c357600080fd5b50356001600160a01b031662000cb4565b604080519115158252519081900360200190f35b62000411600480360360208110156200040057600080fd5b50356001600160a01b031662000ce9565b604080516001600160a01b039092168252519081900360200190f35b620003d4600480360360a08110156200044557600080fd5b506001600160a01b038135811691602081013582169160408201359160608101358216916080909101351662000d4f565b620003d462000ed8565b62000275600480360360c08110156200049857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115620004c357600080fd5b820183602082011115620004d657600080fd5b803590602001918460018302840111600160201b83111715620004f857600080fd5b919390929091602081019035600160201b8111156200051657600080fd5b8201836020820111156200052957600080fd5b803590602001918460018302840111600160201b831117156200054b57600080fd5b919390926001600160a01b03833516926020810135929190606081019060400135600160201b8111156200057e57600080fd5b8201836020820111156200059157600080fd5b803590602001918460018302840111600160201b83111715620005b357600080fd5b50909250905062000f29565b6200036562001164565b620003d460048036036020811015620005e157600080fd5b50356001600160a01b03166200116f565b620003d4600480360360208110156200060a57600080fd5b503562001206565b62000411600480360360208110156200062a57600080fd5b50356001600160a01b031662001259565b62000275600480360360408110156200065357600080fd5b506001600160a01b0381351690602001351515620012c2565b62000275600480360360208110156200068457600080fd5b50356001600160a01b0316620013bd565b62000411620013f0565b6200041162001447565b6200027560048036036020811015620006c157600080fd5b50356200149e565b620006d3620016a0565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b620003d4600480360360208110156200071757600080fd5b50356001600160a01b0316620016ab565b62000275600480360360408110156200074057600080fd5b506001600160a01b03813516906020013562001709565b6200076162001716565b60408051918252519081900360200190f35b6200041162001764565b620003d4600480360360208110156200079557600080fd5b50356001600160a01b0316620017bb565b620003d460048036036040811015620007be57600080fd5b506001600160a01b03813516906020013562001818565b620004116200187b565b6200027560048036036060811015620007f757600080fd5b506001600160a01b03813581169160208101359091169060400135620018d2565b62000275600480360360608110156200083057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156200085b57600080fd5b8201836020820111156200086e57600080fd5b803590602001918460018302840111600160201b831117156200089057600080fd5b919390929091602081019035600160201b811115620008ae57600080fd5b820183602082011115620008c157600080fd5b803590602001918460018302840111600160201b83111715620008e357600080fd5b509092509050620018e4565b62000275600480360360608110156200090757600080fd5b506001600160a01b03813581169160208101359091169060400135620019d6565b62000275600480360360608110156200094057600080fd5b506001600160a01b0381358116916020810135909116906040013562001a11565b62000275600480360360208110156200097957600080fd5b50356001600160a01b031662001b90565b6200027560048036036020811015620009a257600080fd5b503562001bc3565b620003d460048036036020811015620009c257600080fd5b50356001600160a01b031662001bf6565b6200027560048036036040811015620009eb57600080fd5b506001600160a01b038135169060200135151562001c85565b620002756004803603608081101562000a1c57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111562000a5757600080fd5b82018360208201111562000a6a57600080fd5b803590602001918460018302840111600160201b8311171562000a8c57600080fd5b50909250905062001d7f565b62000aa262001db5565b62000aad8162001206565b1562000ab857600080fd5b600062000ac58262001e68565b9050600062000ad48362001ec1565b9050600062000ae38462001f1e565b905062000af08462001f6d565b62000afd83838362001fc6565b604080516001600160a01b03808616825284166020820152808201839052905185917f07b5483b8e4bd8ea240a474d5117738350e7d431e3668c48a97910b0b397796a919081900360600190a250505050565b62000b5a62001447565b6001600160a01b0316336001600160a01b03161462000b7857600080fd5b62000b838162001fea565b50565b62000b9062001447565b6001600160a01b0316336001600160a01b03161462000bae57600080fd5b62000bb98162002069565b62000bc357600080fd5b62000bce8162000cb4565b1562000bd957600080fd5b600062000be68362000ce9565b6001600160a01b03161462000bfa57600080fd5b62000c068282620020a6565b5050565b600062000c16620021a1565b62000c6a5762000c6a338662000c638887878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250620021c692505050565b87620021ea565b506001600160e01b03196000351695945050505050565b62000c8b62001447565b6001600160a01b0316336001600160a01b03161462000ca957600080fd5b62000b8381620022d3565b600062000cc182620017bb565b8062000ce15750600062000cd58362001259565b6001600160a01b031614155b90505b919050565b604080516f686f6d65546f6b656e4164647265737360801b60208083019190915260609390931b6001600160601b03191660308201528151808203602401815260449091018252805190830120600090815260029092529020546001600160a01b031690565b60408051600481526024810182526020810180516001600160e01b03166337ef410160e11b1781529151815160009384936060933093919290918291908083835b6020831062000db15780518252601f19909201916020918201910162000d90565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811462000e13576040519150601f19603f3d011682016040523d82523d6000602084013e62000e18565b606091505b509150915081158062000e5757508051602014801562000e57575080806020019051602081101562000e4957600080fd5b50516001600160a01b031633145b8062000e6257503330145b62000e6c57600080fd5b62000e7662000ed8565b1562000e8157600080fd5b62000e8c8862001fea565b62000e978762002352565b62000ea286620023bc565b62000ead8562002420565b62000eb884620022d3565b62000ec2620024eb565b62000ecc62000ed8565b98975050505050505050565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc5460ff1690565b62000f3362001db5565b600062000f408a62000ce9565b90506001600160a01b0381166200113b57606089898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815293945060609392508b91508a9081908401838280828437600092019190915250508451929350505062000fe557600081511162000fdc57600080fd5b80915062000fef565b805162000fef5750805b62000ff962001764565b620010048362002542565b82306040516200101490620037bb565b80856001600160a01b031681526020018060200180602001846001600160a01b03168152602001838103835286818151815260200191508051906020019080838360005b838110156200107257818101518382015260200162001058565b50505050905090810190601f168015620010a05780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015620010d5578181015183820152602001620010bb565b50505050905090810190601f168015620011035780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f08015801562001129573d6000803e3d6000fd5b509250620011388c84620020a6565b50505b6200114a8160008787620025f9565b620011588185858562002677565b50505050505050505050565b63329ff0f760e21b90565b6040805170195e1958dd5d1a5bdb911a5cd8589b1959607a1b6020808301919091526001600160601b0319606085901b1660318301528251602581840301815260459092018352815191810191909120600090815260049091529081205460ff168080620011e457506001600160a01b038316155b15620011f35715905062000ce4565b620011ff60006200116f565b9392505050565b604080516b1b595cdcd859d9519a5e195960a21b602080830191909152602c80830185905283518084039091018152604c909201835281519181019190912060009081526004909152205460ff16919050565b6040805172666f726569676e546f6b656e4164647265737360681b60208083019190915260609390931b6001600160601b03191660338201528151808203602701815260479091018252805190830120600090815260029092529020546001600160a01b031690565b620012cc62001447565b6001600160a01b0316336001600160a01b031614620012ea57600080fd5b6001600160a01b0382161580620013075750620013078262000cb4565b6200131157600080fd5b6040805170195e1958dd5d1a5bdb911a5cd8589b1959607a1b6020808301919091526001600160601b0319606086901b16603183015282516025818403018152604583018085528151918301919091206000908152600490925290839020805485151560ff199091168117909155905290516001600160a01b038416917f7eaed571869fda346fbb60c26259a8598b4943b8e15079704be1a499d7729055919081900360650190a25050565b620013c762001447565b6001600160a01b0316336001600160a01b031614620013e557600080fd5b62000b838162002352565b7f98aa806e31e94a687a31c65769cb99670064dd7f5a87526da075c5fb4eab988060005260026020527f0c1206883be66049a02d4937078367c00b3d71dd1a9465df969363c6ddeac96d546001600160a01b031690565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e546001600160a01b031690565b6000620014aa6200187b565b9050806001600160a01b031663cb08a10c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015620014f157600080fd5b505afa15801562001506573d6000803e3d6000fd5b505050506040513d60208110156200151d57600080fd5b5051156200152a57600080fd5b306001600160a01b0316816001600160a01b0316633f9a8e7e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200157957600080fd5b505afa1580156200158e573d6000803e3d6000fd5b505050506040513d6020811015620015a557600080fd5b50516001600160a01b031614620015bb57600080fd5b620015c5620013f0565b6001600160a01b0316816001600160a01b0316634a610b04846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200161357600080fd5b505afa15801562001628573d6000803e3d6000fd5b505050506040513d60208110156200163f57600080fd5b50516001600160a01b0316146200165557600080fd5b6040805160248082018590528251808303909101815260449091019091526020810180516001600160e01b0316630950d51560e01b1790526200169a81600062002718565b50505050565b600260006001909192565b604080516e1d1bdad95b949959da5cdd195c9959608a1b60208083019190915260609390931b6001600160601b031916602f820152815180820360230181526043909101825280519083012060009081529182905290205460021490565b62000c068233836200282f565b7f2dfd6c9f781bb6bbb5369c114e949b69ebb440ef3d4dd6b2836225eb1dc3a2be60009081526020527f2de0d2cdc19d356cb53b5984f91bfd3b31fe0c678a0d190a6db39274bb34753f5490565b7f20b8ca26cc94f39fab299954184cf3a9bd04f69543e4f454fab299f015b8130f60005260026020527f0c25bd6cb8545e46227bc56e841bd085538c74351fb22e98acdfbe596b353cfb546001600160a01b031690565b604080516e1d1bdad95b949959da5cdd195c9959608a1b60208083019190915260609390931b6001600160601b031916602f8201528151808203602301815260439091018252805190830120600090815291829052902054151590565b604080516b6d65646961746f724f776e7360a01b602080830191909152606085811b6001600160601b031916602c8401528284018590528351808403850181529201835281519181019190912060009081526004909152205460ff165b92915050565b7f811bbb11e8899da471f0e69a3ed55090fc90215227fc5fb1cb0d6e962ea7b74f60005260026020527fb4ed64697d3ef8518241966f7c6f28b0d72f20f51198717d198d2d55076c593d546001600160a01b031690565b620018df8383836200282f565b505050565b620018ee62001447565b6001600160a01b0316336001600160a01b0316146200190c57600080fd5b6040805169637573746f6d4e616d6560b01b6020808301919091526001600160601b0319606089901b16602a8301528251601e818403018152603e909201835281519181019190912060009081526001909152206200196d908585620037c9565b50604080516b18dd5cdd1bdb54de5b589bdb60a21b6020808301919091526001600160601b0319606089901b16602c83015282518083038201815291830183528151918101919091206000908152600190915220620019ce908383620037c9565b505050505050565b620019e062001db5565b620019eb83620017bb565b620019f557600080fd5b62001a02836002620028d8565b620018df8360018484620025f9565b306001600160a01b0316636fde82026040518163ffffffff1660e01b815260040160206040518083038186803b15801562001a4b57600080fd5b505afa15801562001a60573d6000803e3d6000fd5b505050506040513d602081101562001a7757600080fd5b50516001600160a01b0316331462001a8e57600080fd5b62001a9983620017bb565b62001aa357600080fd5b62001aaf838262001818565b1562001aba57600080fd5b306001600160a01b0316836001600160a01b0316636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801562001b0957600080fd5b505afa15801562001b1e573d6000803e3d6000fd5b505050506040513d602081101562001b3557600080fd5b50516001600160a01b03161462001b4b57600080fd5b62001b598382600162002993565b606062001b68848484620029ff565b9050600062001b7982600162002718565b905062001b898186868662002e1e565b5050505050565b62001b9a62001447565b6001600160a01b0316336001600160a01b03161462001bb857600080fd5b62000b838162002420565b62001bcd62001447565b6001600160a01b0316336001600160a01b03161462001beb57600080fd5b62000b8381620023bc565b604080516f189c9a5919da5b99d11a5cd8589b195960821b6020808301919091526001600160601b0319606085901b1660308301528251602481840301815260449092018352815191810191909120600090815260049091529081205460ff16808062001c6a57506001600160a01b038316155b1562001c795715905062000ce4565b620011ff600062001bf6565b62001c8f62001447565b6001600160a01b0316336001600160a01b03161462001cad57600080fd5b6001600160a01b038216158062001cca575062001cca8262000cb4565b62001cd457600080fd5b604080516f189c9a5919da5b99d11a5cd8589b195960821b6020808301919091526001600160601b0319606086901b16603083015282516024818403018152604483018085528151918301919091206000908152600490925290839020805485151560ff199091168117909155905290516001600160a01b038416917fbeecfafc3eb3de7b89bd034a6a32944da5b2e4972cc6875eaa57b0727642188f919081900360640190a25050565b62001d8962001db5565b600062001d968662000ce9565b905062001da78160008787620025f9565b620019ce8185858562002677565b600062001dc16200187b565b9050336001600160a01b0382161462001dd957600080fd5b62001de3620013f0565b6001600160a01b0316816001600160a01b031663d67bdd256040518163ffffffff1660e01b815260040160206040518083038186803b15801562001e2657600080fd5b505afa15801562001e3b573d6000803e3d6000fd5b505050506040513d602081101562001e5257600080fd5b50516001600160a01b03161462000b8357600080fd5b604080516b36b2b9b9b0b3b2aa37b5b2b760a11b602080830191909152602c80830185905283518084039091018152604c90920183528151918101919091206000908152600290915220546001600160a01b0316919050565b604080516f1b595cdcd859d9549958da5c1a595b9d60821b602080830191909152603080830185905283518084039091018152605090920183528151918101919091206000908152600290915220546001600160a01b0316919050565b604080516b6d65737361676556616c756560a01b602080830191909152602c80830185905283518084039091018152604c90920183528151918101919091206000908152908190522054919050565b604080516b1b595cdcd859d9519a5e195960a21b602080830191909152602c8083019490945282518083039094018452604c9091018252825192810192909220600090815260049092529020805460ff19166001179055565b620018df83600062001fd88262001259565b6001600160a01b031614848462002ea9565b62001ff58162002069565b62001fff57600080fd5b7f811bbb11e8899da471f0e69a3ed55090fc90215227fc5fb1cb0d6e962ea7b74f60005260026020527fb4ed64697d3ef8518241966f7c6f28b0d72f20f51198717d198d2d55076c593d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906200209e57508115155b949350505050565b604080516f686f6d65546f6b656e4164647265737360801b6020808301919091526001600160601b0319606086811b82166030850152845160248186030181526044850186528051908401206000908152600280855286822080546001600160a01b03808b166001600160a01b0319928316811790935572666f726569676e546f6b656e4164647265737360681b60648a0152948a901b90951660778801528751606b818903018152608b909701808952875197870197909720835294529485208054909216908716908117909155909290917f78d063210f4fb6b4cc932390bb8045fa2465e51349590182dab8b9e84c57a6ee9190a35050565b7f6168652c307c1e813ca11cfb3a601f1cf3b22452021a5052d8b05f1f1f8a3e925490565b805182901562001875578151601414620021df57600080fd5b620011ff8262002f8e565b306001600160a01b0316846001600160a01b0316636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200223957600080fd5b505afa1580156200224e573d6000803e3d6000fd5b505050506040513d60208110156200226557600080fd5b50516001600160a01b0316146200227b57600080fd5b620022868462000cb4565b620022985762002298846001620028d8565b6060620022a7858484620029ff565b90506000620022c382620022bd88888862002f95565b62002718565b9050620019ce8187878662002e1e565b620022de8162002069565b620022e857600080fd5b7f20b8ca26cc94f39fab299954184cf3a9bd04f69543e4f454fab299f015b8130f60005260026020527f0c25bd6cb8545e46227bc56e841bd085538c74351fb22e98acdfbe596b353cfb80546001600160a01b0319166001600160a01b0392909216919091179055565b7f98aa806e31e94a687a31c65769cb99670064dd7f5a87526da075c5fb4eab988060005260026020527f0c1206883be66049a02d4937078367c00b3d71dd1a9465df969363c6ddeac96d80546001600160a01b0319166001600160a01b0392909216919091179055565b620023c662002f9e565b811115620023d357600080fd5b7f2dfd6c9f781bb6bbb5369c114e949b69ebb440ef3d4dd6b2836225eb1dc3a2be60009081526020527f2de0d2cdc19d356cb53b5984f91bfd3b31fe0c678a0d190a6db39274bb34753f55565b6001600160a01b0381166200243457600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e06200245f62001447565b604080516001600160a01b03928316815291841660208301528051918290030190a17f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e80546001600160a01b0319166001600160a01b0392909216919091179055565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc805460ff19166001179055565b606080827f00000000000000000000000000000000000000000000000000000000000000006040516020018083805190602001908083835b602083106200259b5780518252601f1990920191602091820191016200257a565b51815160209384036101000a60001901801990921691161790529201938452506040805180850381529390910190525093517f0000000000000000000000000000000000000000000000000000000000000000018452509192915050565b62002604846200116f565b6200260e57600080fd5b6200261c8484848462002ea9565b6200262662003016565b826001600160a01b0316856001600160a01b03167f9afd47907e25028cdaca89d193518c302bbb128617d5a992c5abd45815526593846040518082815260200191505060405180910390a450505050565b80156200169a5760408051630588253160e21b81526004810185815260248201928352604482018490526001600160a01b0387169263162094c492879287928792606401848480828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b158015620026f957600080fd5b505af11580156200270e573d6000803e3d6000fd5b5050505050505050565b6000620027246200187b565b6001600160a01b031663dc8601b36200273c620013f0565b856200274762001716565b6040518463ffffffff1660e01b815260040180846001600160a01b0316815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015620027aa57818101518382015260200162002790565b50505050905090810190601f168015620027d85780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015620027fa57600080fd5b505af11580156200280f573d6000803e3d6000fd5b505050506040513d60208110156200282657600080fd5b50519392505050565b62002839620021a1565b156200284457600080fd5b6200285060016200305b565b604080516323b872dd60e01b81523360048201523060248201526044810183905290516001600160a01b038516916323b872dd91606480830192600092919082900301818387803b158015620028a557600080fd5b505af1158015620028ba573d6000803e3d6000fd5b50505050620028ca60006200305b565b620018df83338484620021ea565b604080516e1d1bdad95b949959da5cdd195c9959608a1b6020808301919091526001600160601b0319606086901b16602f83015282516023818403018152604390920183528151918101919091206000908152908190522054811462000c0657604080516e1d1bdad95b949959da5cdd195c9959608a1b60208083019190915260609490941b6001600160601b031916602f820152815180820360230181526043909101825280519084012060009081529283905290912055565b604080516b6d65646961746f724f776e7360a01b602080830191909152606095861b6001600160601b031916602c830152818301949094528151808203830181529401815283519383019390932060009081526004909252919020805460ff1916911515919091179055565b60606001600160a01b0383161580159062002a35575062002a1f620013f0565b6001600160a01b0316836001600160a01b031614155b62002a3f57600080fd5b600062002a4c8562001259565b90506001600160a01b03811662002d665762002a6b8584600162002993565b606062002a7986856200307f565b905062002a8686620016ab565b1562002b715763fbc547ce60e01b8686868460405160240180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101562002afe57818101518382015260200162002ae4565b50505050905090810190601f16801562002b2c5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199099169890981790975250949750620011ff9650505050505050565b606062002b7e8762003255565b9050606062002b8d88620034eb565b905060008251118062002ba1575060008151115b62002bab57600080fd5b633c91b10560e01b8883838a8a8860405160240180876001600160a01b031681526020018060200180602001866001600160a01b0316815260200185815260200180602001848103845289818151815260200191508051906020019080838360005b8381101562002c2757818101518382015260200162002c0d565b50505050905090810190601f16801562002c555780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b8381101562002c8a57818101518382015260200162002c70565b50505050905090810190601f16801562002cb85780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b8381101562002ced57818101518382015260200162002cd3565b50505050905090810190601f16801562002d1b5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909d169c909c17909b5250989d50620011ff9c50505050505050505050505050565b846001600160a01b03166342966c68846040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801562002dad57600080fd5b505af115801562002dc2573d6000803e3d6000fd5b5050604080516001600160a01b03948516602482015293871660448501526064808501879052815180860390910181526084909401905250506020810180516001600160e01b03166338eb8e6160e21b17905290509392505050565b62002e298362001bf6565b62002e3357600080fd5b62002e3f848462003690565b62002e4b8483620036fc565b62002e5784826200376c565b83826001600160a01b0316846001600160a01b03167f59a9a8027b9c87b961e254899821c9a276b5efc35d1f7409ea4f291470f1629a846040518082815260200191505060405180910390a450505050565b821562002f365762002ebe8482600062002993565b604080516323b872dd60e01b81523060048201526001600160a01b038481166024830152604482018490529151918616916323b872dd9160648082019260009290919082900301818387803b15801562002f1757600080fd5b505af115801562002f2c573d6000803e3d6000fd5b505050506200169a565b836001600160a01b03166340c10f1983836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015620026f957600080fd5b6014015190565b60019392505050565b600062002faa6200187b565b6001600160a01b031663e5789d036040518163ffffffff1660e01b815260040160206040518083038186803b15801562002fe357600080fd5b505afa15801562002ff8573d6000803e3d6000fd5b505050506040513d60208110156200300f57600080fd5b5051905090565b6000620030226200187b565b6001600160a01b031663669f618b6040518163ffffffff1660e01b815260040160206040518083038186803b15801562002fe357600080fd5b7f6168652c307c1e813ca11cfb3a601f1cf3b22452021a5052d8b05f1f1f8a3e9255565b60408051602480820184905282518083039091018152604490910182526020810180516001600160e01b031663c87b56dd60e01b1781529151815160609360009385936001600160a01b03891693919290918291908083835b60208310620030f95780518252601f199092019160209182019101620030d8565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146200315b576040519150601f19603f3d011682016040523d82523d6000602084013e62003160565b606091505b5091509150816200318157604051806020016040528060008152506200324c565b8080602001905160208110156200319757600080fd5b8101908080516040519392919084600160201b821115620031b757600080fd5b908301906020820185811115620031cd57600080fd5b8251600160201b811182820188101715620031e757600080fd5b82525081516020918201929091019080838360005b8381101562003216578181015183820152602001620031fc565b50505050905090810190601f168015620032445780820380516001836020036101000a031916815260200191505b506040525050505b95945050505050565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b1781529151815160609360009385936001600160a01b03881693919290918291908083835b60208310620032c05780518252601f1990920191602091820191016200329f565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811462003322576040519150601f19603f3d011682016040523d82523d6000602084013e62003327565b606091505b50915091508162003418576040805169637573746f6d4e616d6560b01b602080830191909152606087901b6001600160601b031916602a8301528251808303601e018152603e83018085528151918301919091206000908152600180845290859020805460029281161561010002600019011691909104601f81018490049093028401605e9081019095528282529093909201828280156200340d5780601f10620033e1576101008083540402835291602001916200340d565b820191906000526020600020905b815481529060010190602001808311620033ef57829003601f168201915b50505050506200209e565b8080602001905160208110156200342e57600080fd5b8101908080516040519392919084600160201b8211156200344e57600080fd5b9083019060208201858111156200346457600080fd5b8251600160201b8111828201881017156200347e57600080fd5b82525081516020918201929091019080838360005b83811015620034ad57818101518382015260200162003493565b50505050905090810190601f168015620034db5780820380516001836020036101000a031916815260200191505b5060405250505092505050919050565b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b1781529151815160609360009385936001600160a01b03881693919290918291908083835b60208310620035565780518252601f19909201916020918201910162003535565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114620035b8576040519150601f19603f3d011682016040523d82523d6000602084013e620035bd565b606091505b5091509150816200341857600160008560405160200180806b18dd5cdd1bdb54de5b589bdb60a21b815250600c01826001600160a01b031660601b81526014019150506040516020818303038152906040528051906020012081526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156200340d5780601f10620033e1576101008083540402835291602001916200340d565b604080516b36b2b9b9b0b3b2aa37b5b2b760a11b602080830191909152602c8083019590955282518083039095018552604c90910182528351938101939093206000908152600290935290912080546001600160a01b0319166001600160a01b03909216919091179055565b604080516f1b595cdcd859d9549958da5c1a595b9d60821b60208083019190915260308083019590955282518083039095018552605090910182528351938101939093206000908152600290935290912080546001600160a01b0319166001600160a01b03909216919091179055565b604080516b6d65737361676556616c756560a01b602080830191909152602c8083019590955282518083039095018552604c909101825283519381019390932060009081529283905290912055565b61051b806200387683390190565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200380157600085556200384c565b82601f106200381c5782800160ff198235161785556200384c565b828001600101855582156200384c579182015b828111156200384c5782358255916020019190600101906200382f565b506200385a9291506200385e565b5090565b5b808211156200385a57600081556001016200385f56fe608060405234801561001057600080fd5b5060405161051b38038061051b8339818101604052608081101561003357600080fd5b81516020830180516040519294929383019291908464010000000082111561005a57600080fd5b90830190602082018581111561006f57600080fd5b825164010000000081118282018810171561008957600080fd5b82525081516020918201929091019080838360005b838110156100b657818101518382015260200161009e565b50505050905090810190601f1680156100e35780820380516001836020036101000a031916815260200191505b506040526020018051604051939291908464010000000082111561010657600080fd5b90830190602082018581111561011b57600080fd5b825164010000000081118282018810171561013557600080fd5b82525081516020918201929091019080838360005b8381101561016257818101518382015260200161014a565b50505050905090810190601f16801561018f5780820380516001836020036101000a031916815260200191505b506040526020908101517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc87905585519093506101d29250600691860190610210565b5081516101e6906007906020850190610210565b50600a80546001600160a01b0319166001600160a01b0392909216919091179055506102b1915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282610246576000855561028c565b82601f1061025f57805160ff191683800117855561028c565b8280016001018555821561028c579182015b8281111561028c578251825591602001919060010190610271565b5061029892915061029c565b5090565b5b80821115610298576000815560010161029d565b61025b806102c06000396000f3fe6080604052600436106100295760003560e01c80635c60da1b14610072578063d784d426146100a3575b60006100336100d8565b90506001600160a01b03811661004857600080fd5b60405136600082376000803683855af43d82016040523d6000833e80801561006e573d83f35b3d83fd5b34801561007e57600080fd5b506100876100d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100af57600080fd5b506100d6600480360360208110156100c657600080fd5b50356001600160a01b03166100fd565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b600a546001600160a01b03163314806101975750600a60009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561015f57600080fd5b505afa158015610173573d6000803e3d6000fd5b505050506040513d602081101561018957600080fd5b50516001600160a01b031633145b6101a057600080fd5b6001600160a01b0381166101b357600080fd5b6101bc816101e9565b6101c557600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061021d57508115155b94935050505056fea26469706673582212207b0be25740a234a754838ac5b6d569b2eb442e300fbfec2221c4cb62a3efa44e64736f6c63430007050033a2646970667358221220aa1b09b66604209f713b0ea4b04cf7c70dabd35b286d605a33cb87e26b6c0c3964736f6c634300070500330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a2066726f6d207844616900000000000000000000000000000000000000000000