UNPKG

@mantleio/contracts

Version:
468 lines (467 loc) 38.5 kB
{ "_format": "hh-sol-artifact-1", "contractName": "L1StandardBridge", "sourceName": "contracts/L1/messaging/L1StandardBridge.sol", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_l1Token", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_l2Token", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "ERC20DepositInitiated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_l1Token", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_l2Token", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "ERC20WithdrawalFinalized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "ETHDepositInitiated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "ETHWithdrawalFinalized", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_l1Token", "type": "address" }, { "internalType": "address", "name": "_l2Token", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint32", "name": "_l2Gas", "type": "uint32" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "depositERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_l1Token", "type": "address" }, { "internalType": "address", "name": "_l2Token", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint32", "name": "_l2Gas", "type": "uint32" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "depositERC20To", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_l2Gas", "type": "uint32" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "depositETH", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint32", "name": "_l2Gas", "type": "uint32" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "depositETHTo", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "deposits", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "donateETH", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_l1Token", "type": "address" }, { "internalType": "address", "name": "_l2Token", "type": "address" }, { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "finalizeERC20Withdrawal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "finalizeETHWithdrawal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "finalizeMantleWithdrawal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_l1messenger", "type": "address" }, { "internalType": "address", "name": "_l2TokenBridge", "type": "address" }, { "internalType": "address", "name": "_l1MantleAddress", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "l1MantleAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "l2TokenBridge", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "messenger", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b0319169055611b96806100306000396000f3fe6080604052600436106100d65760003560e01c80638f601f661161007f578063a9f9e67511610059578063a9f9e675146102d9578063b1a1a882146102f9578063c0c53b8b1461030c578063f82b418e1461032c57600080fd5b80638f601f661461026057806391c49bf8146102a65780639a2ac6d5146102c657600080fd5b806358a997f6116100b057806358a997f614610220578063838b2520146102405780638b4c40b01461019c57600080fd5b80631532ec34146101a357806333151848146101c35780633cb747bf1461020057600080fd5b3661019e57333b1561012f5760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f41000000000000000000000000000000000060448201526064015b60405180910390fd5b32331461017e5760405162461bcd60e51b815260206004820152601b60248201527f6d73672e73656e646572206973206e6f74207473206f726967696e00000000006044820152606401610126565b61019c333362030d406040518060200160405280600081525061034c565b005b600080fd5b3480156101af57600080fd5b5061019c6101be366004611574565b610453565b3480156101cf57600080fd5b506002546101e3906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561020c57600080fd5b506000546101e3906001600160a01b031681565b34801561022c57600080fd5b5061019c61023b366004611600565b61073a565b34801561024c57600080fd5b5061019c61025b366004611683565b6107f0565b34801561026c57600080fd5b5061029861027b366004611719565b600360209081526000928352604080842090915290825290205481565b6040519081526020016101f7565b3480156102b257600080fd5b506001546101e3906001600160a01b031681565b61019c6102d4366004611752565b610809565b3480156102e557600080fd5b5061019c6102f43660046117b5565b610851565b61019c61030736600461182e565b610aca565b34801561031857600080fd5b5061019c610327366004611881565b610baf565b34801561033857600080fd5b5061019c610347366004611574565b610c85565b600063662a633a60e01b600073deaddeaddeaddeaddeaddeaddeaddeaddead11118787348760405160240161038696959493929190611924565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526001549091506103ff906001600160a01b03168483610e60565b836001600160a01b0316856001600160a01b03167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f233485604051610444929190611972565b60405180910390a35050505050565b6001546001600160a01b03166104716000546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146104f75760405162461bcd60e51b815260206004820152602e60248201527f42564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e746963617465640000000000000000000000000000000000006064820152608401610126565b806001600160a01b03166105136000546001600160a01b031690565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610583919061198b565b6001600160a01b0316146105ff5760405162461bcd60e51b815260206004820152603060248201527f42564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610126565b604080516000808252602082019092526001600160a01b03871690869060405161062991906119a8565b60006040518083038185875af1925050503d8060008114610666576040519150601f19603f3d011682016040523d82523d6000602084013e61066b565b606091505b50509050806106e25760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c65640000000000000000000000006064820152608401610126565b856001600160a01b0316876001600160a01b03167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e631878787604051610729939291906119ef565b60405180910390a350505050505050565b333b156107895760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f4100000000000000000000000000000000006044820152606401610126565b3233146107d85760405162461bcd60e51b815260206004820152601b60248201527f6d73672e73656e646572206973206e6f74207473206f726967696e00000000006044820152606401610126565b6107e88686333388888888610edb565b505050505050565b6108008787338888888888610edb565b50505050505050565b61084b33858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061034c92505050565b50505050565b6001546001600160a01b031661086f6000546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146108f55760405162461bcd60e51b815260206004820152602e60248201527f42564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e746963617465640000000000000000000000000000000000006064820152608401610126565b806001600160a01b03166109116000546001600160a01b031690565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561094957600080fd5b505afa15801561095d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610981919061198b565b6001600160a01b0316146109fd5760405162461bcd60e51b815260206004820152603060248201527f42564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610126565b6001600160a01b038089166000908152600360209081526040808320938b1683529290522054610a2e908590611a41565b6001600160a01b03808a166000818152600360209081526040808320948d1683529390529190912091909155610a659086866111a3565b856001600160a01b0316876001600160a01b0316896001600160a01b03167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b388888888604051610ab89493929190611a58565b60405180910390a45050505050505050565b333b15610b195760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f4100000000000000000000000000000000006044820152606401610126565b323314610b685760405162461bcd60e51b815260206004820152601b60248201527f6d73672e73656e646572206973206e6f74207473206f726967696e00000000006044820152606401610126565b610baa33338585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061034c92505050565b505050565b6000546001600160a01b031615610c2e5760405162461bcd60e51b815260206004820152602660248201527f436f6e74726163742068617320616c7265616479206265656e20696e6974696160448201527f6c697a65642e00000000000000000000000000000000000000000000000000006064820152608401610126565b600080546001600160a01b039485167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617909155600180549385169382169390931790925560028054919093169116179055565b6001546001600160a01b0316610ca36000546001600160a01b031690565b6001600160a01b0316336001600160a01b031614610d295760405162461bcd60e51b815260206004820152602e60248201527f42564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e746963617465640000000000000000000000000000000000006064820152608401610126565b806001600160a01b0316610d456000546001600160a01b031690565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7d57600080fd5b505afa158015610d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db5919061198b565b6001600160a01b031614610e315760405162461bcd60e51b815260206004820152603060248201527f42564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610126565b6002546107e8906001600160a01b031673deaddeaddeaddeaddeaddeaddeaddeaddead00008888888888610851565b6000546040517f3dbb202b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690633dbb202b90610ead90869085908790600401611a8b565b600060405180830381600087803b158015610ec757600080fd5b505af1158015610800573d6000803e3d6000fd5b610ef06001600160a01b03891687308761124c565b6002546060906001600160a01b038a811691161415611042576001600160a01b03881673deaddeaddeaddeaddeaddeaddeaddeaddead000014610f755760405162461bcd60e51b815260206004820152601460248201527f556e6d61746368656420746f6b656e20706169720000000000000000000000006044820152606401610126565b6040517f662a633a0000000000000000000000000000000000000000000000000000000090610fdc90733c3a81e81dc49a522a592e7622a7e711c06bf3549073deaddeaddeaddeaddeaddeaddeaddeaddead0000908b908b908b908a908a90602401611ac3565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290506110e3565b6040517f662a633a0000000000000000000000000000000000000000000000000000000090611081908b908b908b908b908b908a908a90602401611ac3565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290505b6001546110fa906001600160a01b03168583610e60565b6001600160a01b03808a166000908152600360209081526040808320938c168352929052205461112b908690611b13565b6001600160a01b03808b1660008181526003602090815260408083208e86168085529252918290209490945551918a1692917f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d039690611190908b908b908a908a90611a58565b60405180910390a4505050505050505050565b6040516001600160a01b038316602482015260448101829052610baa9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261129d565b6040516001600160a01b038085166024830152831660448201526064810182905261084b9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016111e8565b60006112f2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113829092919063ffffffff16565b805190915015610baa57808060200190518101906113109190611b2b565b610baa5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610126565b6060611391848460008561139b565b90505b9392505050565b6060824710156114135760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610126565b843b6114615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610126565b600080866001600160a01b0316858760405161147d91906119a8565b60006040518083038185875af1925050503d80600081146114ba576040519150601f19603f3d011682016040523d82523d6000602084013e6114bf565b606091505b50915091506114cf8282866114da565b979650505050505050565b606083156114e9575081611394565b8251156114f95782518084602001fd5b8160405162461bcd60e51b81526004016101269190611b4d565b6001600160a01b038116811461152857600080fd5b50565b60008083601f84011261153d57600080fd5b50813567ffffffffffffffff81111561155557600080fd5b60208301915083602082850101111561156d57600080fd5b9250929050565b60008060008060006080868803121561158c57600080fd5b853561159781611513565b945060208601356115a781611513565b935060408601359250606086013567ffffffffffffffff8111156115ca57600080fd5b6115d68882890161152b565b969995985093965092949392505050565b803563ffffffff811681146115fb57600080fd5b919050565b60008060008060008060a0878903121561161957600080fd5b863561162481611513565b9550602087013561163481611513565b945060408701359350611649606088016115e7565b9250608087013567ffffffffffffffff81111561166557600080fd5b61167189828a0161152b565b979a9699509497509295939492505050565b600080600080600080600060c0888a03121561169e57600080fd5b87356116a981611513565b965060208801356116b981611513565b955060408801356116c981611513565b9450606088013593506116de608089016115e7565b925060a088013567ffffffffffffffff8111156116fa57600080fd5b6117068a828b0161152b565b989b979a50959850939692959293505050565b6000806040838503121561172c57600080fd5b823561173781611513565b9150602083013561174781611513565b809150509250929050565b6000806000806060858703121561176857600080fd5b843561177381611513565b9350611781602086016115e7565b9250604085013567ffffffffffffffff81111561179d57600080fd5b6117a98782880161152b565b95989497509550505050565b600080600080600080600060c0888a0312156117d057600080fd5b87356117db81611513565b965060208801356117eb81611513565b955060408801356117fb81611513565b9450606088013561180b81611513565b93506080880135925060a088013567ffffffffffffffff8111156116fa57600080fd5b60008060006040848603121561184357600080fd5b61184c846115e7565b9250602084013567ffffffffffffffff81111561186857600080fd5b6118748682870161152b565b9497909650939450505050565b60008060006060848603121561189657600080fd5b83356118a181611513565b925060208401356118b181611513565b915060408401356118c181611513565b809150509250925092565b60005b838110156118e75781810151838201526020016118cf565b8381111561084b5750506000910152565b600081518084526119108160208601602086016118cc565b601f01601f19169290920160200192915050565b60006001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261196660c08301846118f8565b98975050505050505050565b82815260406020820152600061139160408301846118f8565b60006020828403121561199d57600080fd5b815161139481611513565b600082516119ba8184602087016118cc565b9190910192915050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b838152604060208201526000611a096040830184866119c4565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611a5357611a53611a12565b500390565b6001600160a01b0385168152836020820152606060408201526000611a816060830184866119c4565b9695505050505050565b6001600160a01b0384168152606060208201526000611aad60608301856118f8565b905063ffffffff83166040830152949350505050565b60006001600160a01b03808a1683528089166020840152808816604084015280871660608401525084608083015260c060a0830152611b0660c0830184866119c4565b9998505050505050505050565b60008219821115611b2657611b26611a12565b500190565b600060208284031215611b3d57600080fd5b8151801515811461139457600080fd5b60208152600061139460208301846118f856fea264697066735822122086b6236e82088f57cf4503489313ac1f4dd3793af44ced8d2a9c3e676d8c169464736f6c63430008090033", "deployedBytecode": "0x6080604052600436106100d65760003560e01c80638f601f661161007f578063a9f9e67511610059578063a9f9e675146102d9578063b1a1a882146102f9578063c0c53b8b1461030c578063f82b418e1461032c57600080fd5b80638f601f661461026057806391c49bf8146102a65780639a2ac6d5146102c657600080fd5b806358a997f6116100b057806358a997f614610220578063838b2520146102405780638b4c40b01461019c57600080fd5b80631532ec34146101a357806333151848146101c35780633cb747bf1461020057600080fd5b3661019e57333b1561012f5760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f41000000000000000000000000000000000060448201526064015b60405180910390fd5b32331461017e5760405162461bcd60e51b815260206004820152601b60248201527f6d73672e73656e646572206973206e6f74207473206f726967696e00000000006044820152606401610126565b61019c333362030d406040518060200160405280600081525061034c565b005b600080fd5b3480156101af57600080fd5b5061019c6101be366004611574565b610453565b3480156101cf57600080fd5b506002546101e3906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561020c57600080fd5b506000546101e3906001600160a01b031681565b34801561022c57600080fd5b5061019c61023b366004611600565b61073a565b34801561024c57600080fd5b5061019c61025b366004611683565b6107f0565b34801561026c57600080fd5b5061029861027b366004611719565b600360209081526000928352604080842090915290825290205481565b6040519081526020016101f7565b3480156102b257600080fd5b506001546101e3906001600160a01b031681565b61019c6102d4366004611752565b610809565b3480156102e557600080fd5b5061019c6102f43660046117b5565b610851565b61019c61030736600461182e565b610aca565b34801561031857600080fd5b5061019c610327366004611881565b610baf565b34801561033857600080fd5b5061019c610347366004611574565b610c85565b600063662a633a60e01b600073deaddeaddeaddeaddeaddeaddeaddeaddead11118787348760405160240161038696959493929190611924565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526001549091506103ff906001600160a01b03168483610e60565b836001600160a01b0316856001600160a01b03167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f233485604051610444929190611972565b60405180910390a35050505050565b6001546001600160a01b03166104716000546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146104f75760405162461bcd60e51b815260206004820152602e60248201527f42564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e746963617465640000000000000000000000000000000000006064820152608401610126565b806001600160a01b03166105136000546001600160a01b031690565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610583919061198b565b6001600160a01b0316146105ff5760405162461bcd60e51b815260206004820152603060248201527f42564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610126565b604080516000808252602082019092526001600160a01b03871690869060405161062991906119a8565b60006040518083038185875af1925050503d8060008114610666576040519150601f19603f3d011682016040523d82523d6000602084013e61066b565b606091505b50509050806106e25760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c65640000000000000000000000006064820152608401610126565b856001600160a01b0316876001600160a01b03167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e631878787604051610729939291906119ef565b60405180910390a350505050505050565b333b156107895760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f4100000000000000000000000000000000006044820152606401610126565b3233146107d85760405162461bcd60e51b815260206004820152601b60248201527f6d73672e73656e646572206973206e6f74207473206f726967696e00000000006044820152606401610126565b6107e88686333388888888610edb565b505050505050565b6108008787338888888888610edb565b50505050505050565b61084b33858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061034c92505050565b50505050565b6001546001600160a01b031661086f6000546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146108f55760405162461bcd60e51b815260206004820152602e60248201527f42564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e746963617465640000000000000000000000000000000000006064820152608401610126565b806001600160a01b03166109116000546001600160a01b031690565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561094957600080fd5b505afa15801561095d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610981919061198b565b6001600160a01b0316146109fd5760405162461bcd60e51b815260206004820152603060248201527f42564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610126565b6001600160a01b038089166000908152600360209081526040808320938b1683529290522054610a2e908590611a41565b6001600160a01b03808a166000818152600360209081526040808320948d1683529390529190912091909155610a659086866111a3565b856001600160a01b0316876001600160a01b0316896001600160a01b03167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b388888888604051610ab89493929190611a58565b60405180910390a45050505050505050565b333b15610b195760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f4100000000000000000000000000000000006044820152606401610126565b323314610b685760405162461bcd60e51b815260206004820152601b60248201527f6d73672e73656e646572206973206e6f74207473206f726967696e00000000006044820152606401610126565b610baa33338585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061034c92505050565b505050565b6000546001600160a01b031615610c2e5760405162461bcd60e51b815260206004820152602660248201527f436f6e74726163742068617320616c7265616479206265656e20696e6974696160448201527f6c697a65642e00000000000000000000000000000000000000000000000000006064820152608401610126565b600080546001600160a01b039485167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617909155600180549385169382169390931790925560028054919093169116179055565b6001546001600160a01b0316610ca36000546001600160a01b031690565b6001600160a01b0316336001600160a01b031614610d295760405162461bcd60e51b815260206004820152602e60248201527f42564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e746963617465640000000000000000000000000000000000006064820152608401610126565b806001600160a01b0316610d456000546001600160a01b031690565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7d57600080fd5b505afa158015610d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db5919061198b565b6001600160a01b031614610e315760405162461bcd60e51b815260206004820152603060248201527f42564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610126565b6002546107e8906001600160a01b031673deaddeaddeaddeaddeaddeaddeaddeaddead00008888888888610851565b6000546040517f3dbb202b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690633dbb202b90610ead90869085908790600401611a8b565b600060405180830381600087803b158015610ec757600080fd5b505af1158015610800573d6000803e3d6000fd5b610ef06001600160a01b03891687308761124c565b6002546060906001600160a01b038a811691161415611042576001600160a01b03881673deaddeaddeaddeaddeaddeaddeaddeaddead000014610f755760405162461bcd60e51b815260206004820152601460248201527f556e6d61746368656420746f6b656e20706169720000000000000000000000006044820152606401610126565b6040517f662a633a0000000000000000000000000000000000000000000000000000000090610fdc90733c3a81e81dc49a522a592e7622a7e711c06bf3549073deaddeaddeaddeaddeaddeaddeaddeaddead0000908b908b908b908a908a90602401611ac3565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290506110e3565b6040517f662a633a0000000000000000000000000000000000000000000000000000000090611081908b908b908b908b908b908a908a90602401611ac3565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290505b6001546110fa906001600160a01b03168583610e60565b6001600160a01b03808a166000908152600360209081526040808320938c168352929052205461112b908690611b13565b6001600160a01b03808b1660008181526003602090815260408083208e86168085529252918290209490945551918a1692917f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d039690611190908b908b908a908a90611a58565b60405180910390a4505050505050505050565b6040516001600160a01b038316602482015260448101829052610baa9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261129d565b6040516001600160a01b038085166024830152831660448201526064810182905261084b9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016111e8565b60006112f2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113829092919063ffffffff16565b805190915015610baa57808060200190518101906113109190611b2b565b610baa5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610126565b6060611391848460008561139b565b90505b9392505050565b6060824710156114135760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610126565b843b6114615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610126565b600080866001600160a01b0316858760405161147d91906119a8565b60006040518083038185875af1925050503d80600081146114ba576040519150601f19603f3d011682016040523d82523d6000602084013e6114bf565b606091505b50915091506114cf8282866114da565b979650505050505050565b606083156114e9575081611394565b8251156114f95782518084602001fd5b8160405162461bcd60e51b81526004016101269190611b4d565b6001600160a01b038116811461152857600080fd5b50565b60008083601f84011261153d57600080fd5b50813567ffffffffffffffff81111561155557600080fd5b60208301915083602082850101111561156d57600080fd5b9250929050565b60008060008060006080868803121561158c57600080fd5b853561159781611513565b945060208601356115a781611513565b935060408601359250606086013567ffffffffffffffff8111156115ca57600080fd5b6115d68882890161152b565b969995985093965092949392505050565b803563ffffffff811681146115fb57600080fd5b919050565b60008060008060008060a0878903121561161957600080fd5b863561162481611513565b9550602087013561163481611513565b945060408701359350611649606088016115e7565b9250608087013567ffffffffffffffff81111561166557600080fd5b61167189828a0161152b565b979a9699509497509295939492505050565b600080600080600080600060c0888a03121561169e57600080fd5b87356116a981611513565b965060208801356116b981611513565b955060408801356116c981611513565b9450606088013593506116de608089016115e7565b925060a088013567ffffffffffffffff8111156116fa57600080fd5b6117068a828b0161152b565b989b979a50959850939692959293505050565b6000806040838503121561172c57600080fd5b823561173781611513565b9150602083013561174781611513565b809150509250929050565b6000806000806060858703121561176857600080fd5b843561177381611513565b9350611781602086016115e7565b9250604085013567ffffffffffffffff81111561179d57600080fd5b6117a98782880161152b565b95989497509550505050565b600080600080600080600060c0888a0312156117d057600080fd5b87356117db81611513565b965060208801356117eb81611513565b955060408801356117fb81611513565b9450606088013561180b81611513565b93506080880135925060a088013567ffffffffffffffff8111156116fa57600080fd5b60008060006040848603121561184357600080fd5b61184c846115e7565b9250602084013567ffffffffffffffff81111561186857600080fd5b6118748682870161152b565b9497909650939450505050565b60008060006060848603121561189657600080fd5b83356118a181611513565b925060208401356118b181611513565b915060408401356118c181611513565b809150509250925092565b60005b838110156118e75781810151838201526020016118cf565b8381111561084b5750506000910152565b600081518084526119108160208601602086016118cc565b601f01601f19169290920160200192915050565b60006001600160a01b0380891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261196660c08301846118f8565b98975050505050505050565b82815260406020820152600061139160408301846118f8565b60006020828403121561199d57600080fd5b815161139481611513565b600082516119ba8184602087016118cc565b9190910192915050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b838152604060208201526000611a096040830184866119c4565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611a5357611a53611a12565b500390565b6001600160a01b0385168152836020820152606060408201526000611a816060830184866119c4565b9695505050505050565b6001600160a01b0384168152606060208201526000611aad60608301856118f8565b905063ffffffff83166040830152949350505050565b60006001600160a01b03808a1683528089166020840152808816604084015280871660608401525084608083015260c060a0830152611b0660c0830184866119c4565b9998505050505050505050565b60008219821115611b2657611b26611a12565b500190565b600060208284031215611b3d57600080fd5b8151801515811461139457600080fd5b60208152600061139460208301846118f856fea264697066735822122086b6236e82088f57cf4503489313ac1f4dd3793af44ced8d2a9c3e676d8c169464736f6c63430008090033", "linkReferences": {}, "deployedLinkReferences": {} }