0 txs
0 calls
constructor
constructor(string name_, string symbol_, uint8 decimals_)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
bridges
viewfunction bridges(address) view returns (uint256 cap, uint256 total)
decimals
viewfunction decimals() view returns (uint8)
getOwner
viewfunction getOwner() view returns (address)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burn
nonpayablefunction burn(address _from, uint256 _amount) returns (bool)
burn
nonpayablefunction burn(uint256 _amount) returns (bool)
burnFrom
nonpayablefunction burnFrom(address _from, uint256 _amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
mint
nonpayablefunction mint(address _to, uint256 _amount) returns (bool)
newMechanism
nonpayablefunction newMechanism(address _to, uint256 _amount) returns (bool)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateBridgeSupplyCap
nonpayablefunction updateBridgeSupplyCap(address _bridge, uint256 _cap)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
BridgeSupplyCapUpdated
event BridgeSupplyCapUpdated(address bridge, uint256 supplyCap)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620028d7380380620028d7833981810160405281019062000037919062000297565b82828160039080519060200190620000519291906200015e565b5080600490805190602001906200006a9291906200015e565b5050506200007e336200009860201b60201c565b8060ff1660808160ff1660f81b81525050505050620004b6565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200016c90620003c1565b90600052602060002090601f016020900481019282620001905760008555620001dc565b82601f10620001ab57805160ff1916838001178555620001dc565b82800160010185558215620001dc579182015b82811115620001db578251825591602001919060010190620001be565b5b509050620001eb9190620001ef565b5090565b5b808211156200020a576000816000905550600101620001f0565b5090565b6000620002256200021f8462000348565b6200031f565b9050828152602081018484840111156200023e57600080fd5b6200024b8482856200038b565b509392505050565b600082601f8301126200026557600080fd5b8151620002778482602086016200020e565b91505092915050565b60008151905062000291816200049c565b92915050565b600080600060608486031215620002ad57600080fd5b600084015167ffffffffffffffff811115620002c857600080fd5b620002d68682870162000253565b935050602084015167ffffffffffffffff811115620002f457600080fd5b620003028682870162000253565b9250506040620003158682870162000280565b9150509250925092565b60006200032b6200033e565b9050620003398282620003f7565b919050565b6000604051905090565b600067ffffffffffffffff8211156200036657620003656200045c565b5b62000371826200048b565b9050602081019050919050565b600060ff82169050919050565b60005b83811015620003ab5780820151818401526020810190506200038e565b83811115620003bb576000848401525b50505050565b60006002820490506001821680620003da57607f821691505b60208210811415620003f157620003f06200042d565b5b50919050565b62000402826200048b565b810181811067ffffffffffffffff821117156200042457620004236200045c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b620004a7816200037e565b8114620004b357600080fd5b50565b60805160f81c612402620004d5600039600061058b01526124026000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806379cc6790116100b8578063a457c2d71161007c578063a457c2d71461038c578063a9059cbb146103bc578063ced67f0c146103ec578063dd62ed3e1461041d578063dfca36351461044d578063f2fde38b1461047d57610137565b806379cc6790146102d2578063893d20e8146103025780638da5cb5b1461032057806395d89b411461033e5780639dc29fac1461035c57610137565b806339509351116100ff57806339509351146101f657806340c10f191461022657806342966c68146102565780634ce2f71a1461028657806370a08231146102a257610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806323b872dd146101a8578063313ce567146101d8575b600080fd5b610144610499565b6040516101519190611bb1565b60405180910390f35b610174600480360381019061016f919061186b565b61052b565b6040516101819190611b96565b60405180910390f35b61019261054e565b60405161019f9190611db3565b60405180910390f35b6101c260048036038101906101bd919061181c565b610558565b6040516101cf9190611b96565b60405180910390f35b6101e0610587565b6040516101ed9190611df7565b60405180910390f35b610210600480360381019061020b919061186b565b6105af565b60405161021d9190611b96565b60405180910390f35b610240600480360381019061023b919061186b565b610659565b60405161024d9190611b96565b60405180910390f35b610270600480360381019061026b91906118a7565b61075f565b60405161027d9190611b96565b60405180910390f35b6102a0600480360381019061029b919061186b565b610774565b005b6102bc60048036038101906102b791906117b7565b61086d565b6040516102c99190611db3565b60405180910390f35b6102ec60048036038101906102e7919061186b565b6108b5565b6040516102f99190611b96565b60405180910390f35b61030a6108c9565b6040516103179190611b52565b60405180910390f35b6103286108d8565b6040516103359190611b52565b60405180910390f35b610346610902565b6040516103539190611bb1565b60405180910390f35b6103766004803603810190610371919061186b565b610994565b6040516103839190611b96565b60405180910390f35b6103a660048036038101906103a1919061186b565b6109a8565b6040516103b39190611b96565b60405180910390f35b6103d660048036038101906103d1919061186b565b610a92565b6040516103e39190611b96565b60405180910390f35b610406600480360381019061040191906117b7565b610ab5565b604051610414929190611dce565b60405180910390f35b610437600480360381019061043291906117e0565b610ad9565b6040516104449190611db3565b60405180910390f35b6104676004803603810190610462919061186b565b610b60565b6040516104749190611b96565b60405180910390f35b610497600480360381019061049291906117b7565b610beb565b005b6060600380546104a890611f40565b80601f01602080910402602001604051908101604052809291908181526020018280546104d490611f40565b80156105215780601f106104f657610100808354040283529160200191610521565b820191906000526020600020905b81548152906001019060200180831161050457829003601f168201915b5050505050905090565b600080610536610cdc565b9050610543818585610ce4565b600191505092915050565b6000600254905090565b600080610563610cdc565b9050610570858285610eaf565b61057b858585610f3b565b60019150509392505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806105ba610cdc565b905061064e818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106499190611e2e565b610ce4565b600191505092915050565b600080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154116106e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106db90611c93565b60405180910390fd5b828160010160008282546106f89190611e2e565b9250508190555080600001548160010154111561074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074190611c13565b60405180910390fd5b61075484846111bc565b600191505092915050565b600061076b338361131c565b60019050919050565b3373ffffffffffffffffffffffffffffffffffffffff166107936108d8565b73ffffffffffffffffffffffffffffffffffffffff16146107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611cf3565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055507f59e1e4348943de408b89af8ab71e502ea722dd41efd1ff4a3548c60e83e91c608282604051610861929190611b6d565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006108c183836114f3565b905092915050565b60006108d36108d8565b905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461091190611f40565b80601f016020809104026020016040519081016040528092919081815260200182805461093d90611f40565b801561098a5780601f1061095f5761010080835404028352916020019161098a565b820191906000526020600020905b81548152906001019060200180831161096d57829003601f168201915b5050505050905090565b60006109a083836114f3565b905092915050565b6000806109b3610cdc565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7090611d73565b60405180910390fd5b610a868286868403610ce4565b60019250505092915050565b600080610a9d610cdc565b9050610aaa818585610f3b565b600191505092915050565b60066020528060005260406000206000915090508060000154908060010154905082565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60003373ffffffffffffffffffffffffffffffffffffffff16610b816108d8565b73ffffffffffffffffffffffffffffffffffffffff1614610bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bce90611cf3565b60405180910390fd5b610be183836115cd565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610c0a6108d8565b73ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790611cf3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790611c53565b60405180910390fd5b610cd9816116bd565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4b90611d53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb90611c73565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ea29190611db3565b60405180910390a3505050565b6000610ebb8484610ad9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f355781811015610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90611cb3565b60405180910390fd5b610f348484848403610ce4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290611d33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561101b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101290611bd3565b60405180910390fd5b611026838383611783565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a390611cd3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461113f9190611e2e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111a39190611db3565b60405180910390a36111b6848484611788565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390611d93565b60405180910390fd5b61123860008383611783565b806002600082825461124a9190611e2e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461129f9190611e2e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113049190611db3565b60405180910390a361131860008383611788565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138390611d13565b60405180910390fd5b61139882600083611783565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590611c33565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546114759190611e84565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114da9190611db3565b60405180910390a36114ee83600084611788565b505050565b600080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154118061154e575060008160010154115b156115ad57828160010154101561159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190611bf3565b60405180910390fd5b8281600101600082825403925050819055505b6115b8843385610eaf565b6115c2848461131c565b600191505092915050565b6115d960008383611783565b80600260008282546115eb9190611e2e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116409190611e2e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116a59190611db3565b60405180910390a36116b960008383611788565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b60008135905061179c8161239e565b92915050565b6000813590506117b1816123b5565b92915050565b6000602082840312156117c957600080fd5b60006117d78482850161178d565b91505092915050565b600080604083850312156117f357600080fd5b60006118018582860161178d565b92505060206118128582860161178d565b9150509250929050565b60008060006060848603121561183157600080fd5b600061183f8682870161178d565b93505060206118508682870161178d565b9250506040611861868287016117a2565b9150509250925092565b6000806040838503121561187e57600080fd5b600061188c8582860161178d565b925050602061189d858286016117a2565b9150509250929050565b6000602082840312156118b957600080fd5b60006118c7848285016117a2565b91505092915050565b6118d981611eb8565b82525050565b6118e881611eca565b82525050565b60006118f982611e12565b6119038185611e1d565b9350611913818560208601611f0d565b61191c81611fd0565b840191505092915050565b6000611934602383611e1d565b915061193f82611fe1565b604082019050919050565b6000611957601c83611e1d565b915061196282612030565b602082019050919050565b600061197a601983611e1d565b915061198582612059565b602082019050919050565b600061199d602283611e1d565b91506119a882612082565b604082019050919050565b60006119c0602683611e1d565b91506119cb826120d1565b604082019050919050565b60006119e3602283611e1d565b91506119ee82612120565b604082019050919050565b6000611a06600e83611e1d565b9150611a118261216f565b602082019050919050565b6000611a29601d83611e1d565b9150611a3482612198565b602082019050919050565b6000611a4c602683611e1d565b9150611a57826121c1565b604082019050919050565b6000611a6f602083611e1d565b9150611a7a82612210565b602082019050919050565b6000611a92602183611e1d565b9150611a9d82612239565b604082019050919050565b6000611ab5602583611e1d565b9150611ac082612288565b604082019050919050565b6000611ad8602483611e1d565b9150611ae3826122d7565b604082019050919050565b6000611afb602583611e1d565b9150611b0682612326565b604082019050919050565b6000611b1e601f83611e1d565b9150611b2982612375565b602082019050919050565b611b3d81611ef6565b82525050565b611b4c81611f00565b82525050565b6000602082019050611b6760008301846118d0565b92915050565b6000604082019050611b8260008301856118d0565b611b8f6020830184611b34565b9392505050565b6000602082019050611bab60008301846118df565b92915050565b60006020820190508181036000830152611bcb81846118ee565b905092915050565b60006020820190508181036000830152611bec81611927565b9050919050565b60006020820190508181036000830152611c0c8161194a565b9050919050565b60006020820190508181036000830152611c2c8161196d565b9050919050565b60006020820190508181036000830152611c4c81611990565b9050919050565b60006020820190508181036000830152611c6c816119b3565b9050919050565b60006020820190508181036000830152611c8c816119d6565b9050919050565b60006020820190508181036000830152611cac816119f9565b9050919050565b60006020820190508181036000830152611ccc81611a1c565b9050919050565b60006020820190508181036000830152611cec81611a3f565b9050919050565b60006020820190508181036000830152611d0c81611a62565b9050919050565b60006020820190508181036000830152611d2c81611a85565b9050919050565b60006020820190508181036000830152611d4c81611aa8565b9050919050565b60006020820190508181036000830152611d6c81611acb565b9050919050565b60006020820190508181036000830152611d8c81611aee565b9050919050565b60006020820190508181036000830152611dac81611b11565b9050919050565b6000602082019050611dc86000830184611b34565b92915050565b6000604082019050611de36000830185611b34565b611df06020830184611b34565b9392505050565b6000602082019050611e0c6000830184611b43565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611e3982611ef6565b9150611e4483611ef6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e7957611e78611f72565b5b828201905092915050565b6000611e8f82611ef6565b9150611e9a83611ef6565b925082821015611ead57611eac611f72565b5b828203905092915050565b6000611ec382611ed6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611f2b578082015181840152602081019050611f10565b83811115611f3a576000848401525b50505050565b60006002820490506001821680611f5857607f821691505b60208210811415611f6c57611f6b611fa1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6578636565647320627269646765206d696e74656420616d6f756e7400000000600082015250565b7f657863656564732062726964676520737570706c792063617000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f696e76616c69642063616c6c6572000000000000000000000000000000000000600082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6123a781611eb8565b81146123b257600080fd5b50565b6123be81611ef6565b81146123c957600080fd5b5056fea264697066735822122052a1ee1a008eefed26be51e43e57e0181904aaf037848f102f9d2877463e0d5d64736f6c63430008020033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000b506f6c6b6142726964676500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035042520000000000000000000000000000000000000000000000000000000000