@tokamak-network/thanos-contracts
Version:
722 lines • 90.7 kB
JSON
{
"abi": [
{
"type": "constructor",
"inputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "BATCH_INBOX_SLOT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "L1_CROSS_DOMAIN_MESSENGER_SLOT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "L1_ERC_721_BRIDGE_SLOT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "L1_STANDARD_BRIDGE_SLOT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "L2_OUTPUT_ORACLE_SLOT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "NATIVE_TOKEN_ADDRESS_SLOT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "OPTIMISM_MINTABLE_ERC20_FACTORY_SLOT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "OPTIMISM_PORTAL_SLOT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "START_BLOCK_SLOT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "UNSAFE_BLOCK_SIGNER_SLOT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "VERSION",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "batchInbox",
"inputs": [],
"outputs": [
{
"name": "addr_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "batcherHash",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "gasLimit",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "initialize",
"inputs": [
{
"name": "_owner",
"type": "address",
"internalType": "address"
},
{
"name": "_overhead",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_scalar",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_batcherHash",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "_gasLimit",
"type": "uint64",
"internalType": "uint64"
},
{
"name": "_unsafeBlockSigner",
"type": "address",
"internalType": "address"
},
{
"name": "_config",
"type": "tuple",
"internalType": "struct ResourceMetering.ResourceConfig",
"components": [
{
"name": "maxResourceLimit",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "elasticityMultiplier",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "baseFeeMaxChangeDenominator",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "minimumBaseFee",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "systemTxMaxGas",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "maximumBaseFee",
"type": "uint128",
"internalType": "uint128"
}
]
},
{
"name": "_batchInbox",
"type": "address",
"internalType": "address"
},
{
"name": "_addresses",
"type": "tuple",
"internalType": "struct SystemConfig.Addresses",
"components": [
{
"name": "l1CrossDomainMessenger",
"type": "address",
"internalType": "address"
},
{
"name": "l1ERC721Bridge",
"type": "address",
"internalType": "address"
},
{
"name": "l1StandardBridge",
"type": "address",
"internalType": "address"
},
{
"name": "l2OutputOracle",
"type": "address",
"internalType": "address"
},
{
"name": "optimismPortal",
"type": "address",
"internalType": "address"
},
{
"name": "optimismMintableERC20Factory",
"type": "address",
"internalType": "address"
},
{
"name": "nativeTokenAddress",
"type": "address",
"internalType": "address"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "l1CrossDomainMessenger",
"inputs": [],
"outputs": [
{
"name": "addr_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "l1ERC721Bridge",
"inputs": [],
"outputs": [
{
"name": "addr_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "l1StandardBridge",
"inputs": [],
"outputs": [
{
"name": "addr_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "l2OutputOracle",
"inputs": [],
"outputs": [
{
"name": "addr_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "minimumGasLimit",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "nativeTokenAddress",
"inputs": [],
"outputs": [
{
"name": "addr_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "optimismMintableERC20Factory",
"inputs": [],
"outputs": [
{
"name": "addr_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "optimismPortal",
"inputs": [],
"outputs": [
{
"name": "addr_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "overhead",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "owner",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "renounceOwnership",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "resourceConfig",
"inputs": [],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct ResourceMetering.ResourceConfig",
"components": [
{
"name": "maxResourceLimit",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "elasticityMultiplier",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "baseFeeMaxChangeDenominator",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "minimumBaseFee",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "systemTxMaxGas",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "maximumBaseFee",
"type": "uint128",
"internalType": "uint128"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "scalar",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "setBatcherHash",
"inputs": [
{
"name": "_batcherHash",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setGasConfig",
"inputs": [
{
"name": "_overhead",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_scalar",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setGasLimit",
"inputs": [
{
"name": "_gasLimit",
"type": "uint64",
"internalType": "uint64"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setResourceConfig",
"inputs": [
{
"name": "_config",
"type": "tuple",
"internalType": "struct ResourceMetering.ResourceConfig",
"components": [
{
"name": "maxResourceLimit",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "elasticityMultiplier",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "baseFeeMaxChangeDenominator",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "minimumBaseFee",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "systemTxMaxGas",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "maximumBaseFee",
"type": "uint128",
"internalType": "uint128"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setUnsafeBlockSigner",
"inputs": [
{
"name": "_unsafeBlockSigner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "startBlock",
"inputs": [],
"outputs": [
{
"name": "startBlock_",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "transferOwnership",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "unsafeBlockSigner",
"inputs": [],
"outputs": [
{
"name": "addr_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "version",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "event",
"name": "ConfigUpdate",
"inputs": [
{
"name": "version",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "updateType",
"type": "uint8",
"indexed": true,
"internalType": "enum SystemConfig.UpdateType"
},
{
"name": "data",
"type": "bytes",
"indexed": false,
"internalType": "bytes"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Initialized",
"inputs": [
{
"name": "version",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OwnershipTransferred",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
}
],
"address": "0xF36462eD80f073ed965C5D0eB68A8C597062642b",
"args": [],
"bytecode": "0x60806040523480156200001157600080fd5b506200004962000032600160008051602062002aca83398151915262000c38565b60001b600019620000d160201b62000e941760201c565b6040805160c080820183526001808352602080840182905260028486015260006060808601829052608080870183905260a0808801849052885160e081018a528481529485018490529784018390529083018290528201819052948101859052918201849052620000cb9361dead9390928392839290918391908290620000d5565b62000d5b565b9055565b600054600390610100900460ff16158015620000f8575060005460ff8083169116105b620001615760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805461ffff191660ff8316176101001790556200017f620004ed565b6200018a8a62000555565b6200019587620005d4565b620001a1898962000626565b620001ac866200068a565b620001e37f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0886620000d160201b62000e941760201c565b620002296200021460017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc59862000c38565b60001b84620000d160201b62000e941760201c565b620002736200025a60017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce958063762000c38565b60001b8360000151620000d160201b62000e941760201c565b620002bd620002a460017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a862000c38565b60001b8360200151620000d160201b62000e941760201c565b62000307620002ee60017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad637762000c38565b60001b8360400151620000d160201b62000e941760201c565b620003516200033860017fe52a667f71ec761b9b381c7b76ca9b852adf7e8905da0e0ad49986a0a687181662000c38565b60001b8360600151620000d160201b62000e941760201c565b6200039b6200038260017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad62000c38565b60001b8360800151620000d160201b62000e941760201c565b620003e5620003cc60017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d62000c38565b60001b8360a00151620000d160201b62000e941760201c565b6200042f6200041660017fe1e3a95fb10ed56538cc130c2250de9823e7716d1142b8521655d7f7317b8ef162000c38565b60001b8360c00151620000d160201b62000e941760201c565b6200043962000727565b620004448462000798565b6200044e62000adc565b6001600160401b0316866001600160401b03161015620004a05760405162461bcd60e51b815260206004820152601f602482015260008051602062002a6a833981519152604482015260640162000158565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050505050505050565b600054610100900460ff16620005495760405162461bcd60e51b815260206004820152602b602482015260008051602062002aaa83398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000158565b6200055362000b09565b565b6200055f62000b70565b6001600160a01b038116620005c65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000158565b620005d18162000bcc565b50565b60678190556040805160208082018490528251808303909101815290820190915260005b600060008051602062002a8a833981519152836040516200061a919062000c52565b60405180910390a35050565b60658290556066819055604080516020810184905290810182905260009060600160408051601f1981840301815291905290506001600060008051602062002a8a833981519152836040516200067d919062000c52565b60405180910390a3505050565b6200069462000adc565b6001600160401b0316816001600160401b03161015620006e65760405162461bcd60e51b815260206004820152601f602482015260008051602062002a6a833981519152604482015260640162000158565b606880546001600160401b0319166001600160401b0383169081179091556040805160208082019390935281518082039093018352810190526002620005f8565b6200075b62000747600160008051602062002aca83398151915262000c38565b60001b62000c1e60201b62000e981760201c565b60000362000553576200055362000783600160008051602062002aca83398151915262000c38565b60001b43620000d160201b62000e941760201c565b8060a001516001600160801b0316816060015163ffffffff161115620008275760405162461bcd60e51b815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d617820626173650000000000000000000000606482015260840162000158565b6001816040015160ff1611620008985760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201526e65206c6172676572207468616e203160881b606482015260840162000158565b606854608082015182516001600160401b0390921691620008ba919062000caa565b63ffffffff161115620008ff5760405162461bcd60e51b815260206004820152601f602482015260008051602062002a6a833981519152604482015260640162000158565b6000816020015160ff1611620009705760405162461bcd60e51b815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201526e06965722063616e6e6f74206265203608c1b606482015260840162000158565b8051602082015163ffffffff82169160ff909116906200099290829062000cd5565b6200099e919062000d07565b63ffffffff161462000a195760405162461bcd60e51b815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d6974000000000000000000606482015260840162000158565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff96871664ffffffffff199095169490941764010000000060ff948516021764ffffffffff60281b191665010000000000939092169290920263ffffffff60301b19161766010000000000009185169190910217600160501b600160f01b0319166a01000000000000000000009390941692909202600160701b600160f01b03191692909217600160701b6001600160801b0390921691909102179055565b60695460009062000b049063ffffffff6a010000000000000000000082048116911662000d36565b905090565b600054610100900460ff1662000b655760405162461bcd60e51b815260206004820152602b602482015260008051602062002aaa83398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000158565b620005533362000bcc565b6033546001600160a01b03163314620005535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000158565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b5490565b634e487b7160e01b600052601160045260246000fd5b60008282101562000c4d5762000c4d62000c22565b500390565b600060208083528351808285015260005b8181101562000c815785810183015185820160400152820162000c63565b8181111562000c94576000604083870101525b50601f01601f1916929092016040019392505050565b600063ffffffff80831681851680830382111562000ccc5762000ccc62000c22565b01949350505050565b600063ffffffff8084168062000cfb57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b600063ffffffff8083168185168183048111821515161562000d2d5762000d2d62000c22565b02949350505050565b60006001600160401b0382811684821680830382111562000ccc5762000ccc62000c22565b611cff8062000d6b6000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80638da5cb5b11610160578063cc731b02116100d8578063f45e65d81161008c578063f8c68de011610071578063f8c68de0146105dd578063fd32aa0f146105e5578063ffa1ad74146105ed57600080fd5b8063f45e65d8146105c0578063f68016b7146105c957600080fd5b8063e0e2016d116100bd578063e0e2016d1461059c578063e81b2c6d146105a4578063f2fde38b146105ad57600080fd5b8063cc731b0214610460578063dac6e63a1461059457600080fd5b8063b40a817c1161012f578063c4e8ddfa11610114578063c4e8ddfa14610432578063c71973f61461043a578063c9b26f611461044d57600080fd5b8063b40a817c14610417578063bc49ce5f1461042a57600080fd5b80638da5cb5b146103d6578063935f029e146103f45780639b7d7f0a14610407578063a71198691461040f57600080fd5b80634c1e843d116101f357806354fd4d50116101c257806361d15768116101a757806361d15768146103be578063697844c6146103c6578063715018a6146103ce57600080fd5b806354fd4d501461036d5780635d73369c146103b657600080fd5b80634c1e843d146103235780634d0047ee146103365780634d9f15591461033e5780634f16540b1461034657600080fd5b806318d139181161024a5780631fd19ee11161022f5780631fd19ee1146102f257806348cd4cb1146102fa5780634add321d1461030257600080fd5b806318d13918146102d557806319f5cea8146102ea57600080fd5b806306c926571461027c578063078f29cf146102975780630a49cb03146102c45780630c18c162146102cc575b600080fd5b6102846105f5565b6040519081526020015b60405180910390f35b61029f610623565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161028e565b61029f61065c565b61028460655481565b6102e86102e336600461182c565b61068c565b005b6102846106a0565b61029f6106cb565b6102846106f5565b61030a610725565b60405167ffffffffffffffff909116815260200161028e565b6102e86103313660046119bc565b61074b565b61029f610b36565b61029f610b66565b6102847f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0881565b6103a96040518060400160405280600681526020017f312e31322e30000000000000000000000000000000000000000000000000000081525081565b60405161028e9190611b66565b610284610b96565b610284610bc1565b610284610bec565b6102e8610c17565b60335473ffffffffffffffffffffffffffffffffffffffff1661029f565b6102e8610402366004611b79565b610c2b565b61029f610c41565b61029f610c71565b6102e8610425366004611b9b565b610ca1565b610284610cb2565b61029f610cdd565b6102e8610448366004611bb6565b610d0d565b6102e861045b366004611bd2565b610d1e565b6105246040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260695463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b60405161028e9190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b61029f610d2f565b610284610d5f565b61028460675481565b6102e86105bb36600461182c565b610d8a565b61028460665481565b60685461030a9067ffffffffffffffff1681565b610284610e3e565b610284610e69565b610284600081565b61062060017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d611c1a565b81565b600061065761065360017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377611c1a565b5490565b905090565b600061065761065360017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad611c1a565b610694610e9c565b61069d81610f1d565b50565b61062060017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8611c1a565b60006106577f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c085490565b600061065761065360017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0611c1a565b6069546000906106579063ffffffff6a0100000000000000000000820481169116611c31565b600054600390610100900460ff1615801561076d575060005460ff8083169116105b6107fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610837610fda565b6108408a610d8a565b61084987611079565b61085389896110a1565b61085c86611132565b6108857f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08869055565b6108b86108b360017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598611c1a565b849055565b6108ec6108e660017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637611c1a565b83519055565b61092361091a60017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8611c1a565b60208401519055565b61095a61095160017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377611c1a565b60408401519055565b61099161098860017fe52a667f71ec761b9b381c7b76ca9b852adf7e8905da0e0ad49986a0a6871816611c1a565b60608401519055565b6109c86109bf60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad611c1a565b60808401519055565b6109ff6109f660017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d611c1a565b60a08401519055565b610a36610a2d60017fe1e3a95fb10ed56538cc130c2250de9823e7716d1142b8521655d7f7317b8ef1611c1a565b60c08401519055565b610a3e611210565b610a4784611278565b610a4f610725565b67ffffffffffffffff168667ffffffffffffffff161015610acc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016107f5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050505050505050565b600061065761065360017fe1e3a95fb10ed56538cc130c2250de9823e7716d1142b8521655d7f7317b8ef1611c1a565b600061065761065360017fe52a667f71ec761b9b381c7b76ca9b852adf7e8905da0e0ad49986a0a6871816611c1a565b61062060017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637611c1a565b61062060017fe52a667f71ec761b9b381c7b76ca9b852adf7e8905da0e0ad49986a0a6871816611c1a565b61062060017fe1e3a95fb10ed56538cc130c2250de9823e7716d1142b8521655d7f7317b8ef1611c1a565b610c1f610e9c565b610c2960006116ec565b565b610c33610e9c565b610c3d82826110a1565b5050565b600061065761065360017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d611c1a565b600061065761065360017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637611c1a565b610ca9610e9c565b61069d81611132565b61062060017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598611c1a565b600061065761065360017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8611c1a565b610d15610e9c565b61069d81611278565b610d26610e9c565b61069d81611079565b600061065761065360017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598611c1a565b61062060017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0611c1a565b610d92610e9c565b73ffffffffffffffffffffffffffffffffffffffff8116610e35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107f5565b61069d816116ec565b61062060017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377611c1a565b61062060017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad611c1a565b9055565b5490565b60335473ffffffffffffffffffffffffffffffffffffffff163314610c29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107f5565b610f467f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08829055565b6040805173ffffffffffffffffffffffffffffffffffffffff8316602082015260009101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060035b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051610fce9190611b66565b60405180910390a35050565b600054610100900460ff16611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107f5565b610c29611763565b6067819055604080516020808201849052825180830390910181529082019091526000610f9d565b606582905560668190556040805160208101849052908101829052600090606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529050600160007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be836040516111259190611b66565b60405180910390a3505050565b61113a610725565b67ffffffffffffffff168167ffffffffffffffff1610156111b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016107f5565b606880547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040805160208082019390935281518082039093018352810190526002610f9d565b61123e61065360017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0611c1a565b600003610c2957610c2961127360017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0611c1a565b439055565b8060a001516fffffffffffffffffffffffffffffffff16816060015163ffffffff161115611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d61782062617365000000000000000000000060648201526084016107f5565b6001816040015160ff16116113bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65206c6172676572207468616e2031000000000000000000000000000000000060648201526084016107f5565b6068546080820151825167ffffffffffffffff909216916113e09190611c5d565b63ffffffff16111561144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016107f5565b6000816020015160ff16116114e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201527f6965722063616e6e6f742062652030000000000000000000000000000000000060648201526084016107f5565b8051602082015163ffffffff82169160ff90911690611505908290611c7c565b61150f9190611cc6565b63ffffffff16146115a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d697400000000000000000060648201526084016107f5565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166117fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107f5565b610c29336116ec565b803573ffffffffffffffffffffffffffffffffffffffff8116811461182757600080fd5b919050565b60006020828403121561183e57600080fd5b61184782611803565b9392505050565b803567ffffffffffffffff8116811461182757600080fd5b60405160e0810167ffffffffffffffff811182821017156118b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803563ffffffff8116811461182757600080fd5b803560ff8116811461182757600080fd5b600060c082840312156118ed57600080fd5b60405160c0810181811067ffffffffffffffff82111715611937577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052905080611946836118b6565b8152611954602084016118ca565b6020820152611965604084016118ca565b6040820152611976606084016118b6565b6060820152611987608084016118b6565b608082015260a08301356fffffffffffffffffffffffffffffffff811681146119af57600080fd5b60a0919091015292915050565b6000806000806000806000806000898b036102808112156119dc57600080fd5b6119e58b611803565b995060208b0135985060408b0135975060608b01359650611a0860808c0161184e565b9550611a1660a08c01611803565b9450611a258c60c08d016118db565b9350611a346101808c01611803565b925060e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6082011215611a6657600080fd5b50611a6f611866565b611a7c6101a08c01611803565b8152611a8b6101c08c01611803565b6020820152611a9d6101e08c01611803565b6040820152611aaf6102008c01611803565b6060820152611ac16102208c01611803565b6080820152611ad36102408c01611803565b60a0820152611ae56102608c01611803565b60c0820152809150509295985092959850929598565b6000815180845260005b81811015611b2157602081850181015186830182015201611b05565b81811115611b33576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006118476020830184611afb565b60008060408385031215611b8c57600080fd5b50508035926020909101359150565b600060208284031215611bad57600080fd5b6118478261184e565b600060c08284031215611bc857600080fd5b61184783836118db565b600060208284031215611be457600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611c2c57611c2c611beb565b500390565b600067ffffffffffffffff808316818516808303821115611c5457611c54611beb565b01949350505050565b600063ffffffff808316818516808303821115611c5457611c54611beb565b600063ffffffff80841680611cba577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600063ffffffff80831681851681830481118215151615611ce957611ce9611beb565b0294935050505056fea164736f6c634300080f000a53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f77001d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069a11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102775760003560e01c80638da5cb5b11610160578063cc731b02116100d8578063f45e65d81161008c578063f8c68de011610071578063f8c68de0146105dd578063fd32aa0f146105e5578063ffa1ad74146105ed57600080fd5b8063f45e65d8146105c0578063f68016b7146105c957600080fd5b8063e0e2016d116100bd578063e0e2016d1461059c578063e81b2c6d146105a4578063f2fde38b146105ad57600080fd5b8063cc731b0214610460578063dac6e63a1461059457600080fd5b8063b40a817c1161012f578063c4e8ddfa11610114578063c4e8ddfa14610432578063c71973f61461043a578063c9b26f611461044d57600080fd5b8063b40a817c14610417578063bc49ce5f1461042a57600080fd5b80638da5cb5b146103d6578063935f029e146103f45780639b7d7f0a14610407578063a71198691461040f57600080fd5b80634c1e843d116101f357806354fd4d50116101c257806361d15768116101a757806361d15768146103be578063697844c6146103c6578063715018a6146103ce57600080fd5b806354fd4d501461036d5780635d73369c146103b657600080fd5b80634c1e843d146103235780634d0047ee146103365780634d9f15591461033e5780634f16540b1461034657600080fd5b806318d139181161024a5780631fd19ee11161022f5780631fd19ee1146102f257806348cd4cb1146102fa5780634add321d1461030257600080fd5b806318d13918146102d557806319f5cea8146102ea57600080fd5b806306c926571461027c578063078f29cf146102975780630a49cb03146102c45780630c18c162146102cc575b600080fd5b6102846105f5565b6040519081526020015b60405180910390f35b61029f610623565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161028e565b61029f61065c565b61028460655481565b6102e86102e336600461182c565b61068c565b005b6102846106a0565b61029f6106cb565b6102846106f5565b61030a610725565b60405167ffffffffffffffff909116815260200161028e565b6102e86103313660046119bc565b61074b565b61029f610b36565b61029f610b66565b6102847f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c0881565b6103a96040518060400160405280600681526020017f312e31322e30000000000000000000000000000000000000000000000000000081525081565b60405161028e9190611b66565b610284610b96565b610284610bc1565b610284610bec565b6102e8610c17565b60335473ffffffffffffffffffffffffffffffffffffffff1661029f565b6102e8610402366004611b79565b610c2b565b61029f610c41565b61029f610c71565b6102e8610425366004611b9b565b610ca1565b610284610cb2565b61029f610cdd565b6102e8610448366004611bb6565b610d0d565b6102e861045b366004611bd2565b610d1e565b6105246040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260695463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b60405161028e9190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b61029f610d2f565b610284610d5f565b61028460675481565b6102e86105bb36600461182c565b610d8a565b61028460665481565b60685461030a9067ffffffffffffffff1681565b610284610e3e565b610284610e69565b610284600081565b61062060017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d611c1a565b81565b600061065761065360017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377611c1a565b5490565b905090565b600061065761065360017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad611c1a565b610694610e9c565b61069d81610f1d565b50565b61062060017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8611c1a565b60006106577f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c085490565b600061065761065360017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0611c1a565b6069546000906106579063ffffffff6a0100000000000000000000820481169116611c31565b600054600390610100900460ff1615801561076d575060005460ff8083169116105b6107fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055610837610fda565b6108408a610d8a565b61084987611079565b61085389896110a1565b61085c86611132565b6108857f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08869055565b6108b86108b360017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598611c1a565b849055565b6108ec6108e660017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637611c1a565b83519055565b61092361091a60017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8611c1a565b60208401519055565b61095a61095160017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377611c1a565b60408401519055565b61099161098860017fe52a667f71ec761b9b381c7b76ca9b852adf7e8905da0e0ad49986a0a6871816611c1a565b60608401519055565b6109c86109bf60017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad611c1a565b60808401519055565b6109ff6109f660017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d611c1a565b60a08401519055565b610a36610a2d60017fe1e3a95fb10ed56538cc130c2250de9823e7716d1142b8521655d7f7317b8ef1611c1a565b60c08401519055565b610a3e611210565b610a4784611278565b610a4f610725565b67ffffffffffffffff168667ffffffffffffffff161015610acc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016107f5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050505050505050565b600061065761065360017fe1e3a95fb10ed56538cc130c2250de9823e7716d1142b8521655d7f7317b8ef1611c1a565b600061065761065360017fe52a667f71ec761b9b381c7b76ca9b852adf7e8905da0e0ad49986a0a6871816611c1a565b61062060017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637611c1a565b61062060017fe52a667f71ec761b9b381c7b76ca9b852adf7e8905da0e0ad49986a0a6871816611c1a565b61062060017fe1e3a95fb10ed56538cc130c2250de9823e7716d1142b8521655d7f7317b8ef1611c1a565b610c1f610e9c565b610c2960006116ec565b565b610c33610e9c565b610c3d82826110a1565b5050565b600061065761065360017fa04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320d611c1a565b600061065761065360017f383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580637611c1a565b610ca9610e9c565b61069d81611132565b61062060017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598611c1a565b600061065761065360017f46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a8611c1a565b610d15610e9c565b61069d81611278565b610d26610e9c565b61069d81611079565b600061065761065360017f71ac12829d66ee73d8d95bff50b3589745ce57edae70a3fb111a2342464dc598611c1a565b61062060017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0611c1a565b610d92610e9c565b73ffffffffffffffffffffffffffffffffffffffff8116610e35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107f5565b61069d816116ec565b61062060017f9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6377611c1a565b61062060017f4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ad611c1a565b9055565b5490565b60335473ffffffffffffffffffffffffffffffffffffffff163314610c29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107f5565b610f467f65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08829055565b6040805173ffffffffffffffffffffffffffffffffffffffff8316602082015260009101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060035b60007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be83604051610fce9190611b66565b60405180910390a35050565b600054610100900460ff16611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107f5565b610c29611763565b6067819055604080516020808201849052825180830390910181529082019091526000610f9d565b606582905560668190556040805160208101849052908101829052600090606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529050600160007f1d2b0bda21d56b8bd12d4f94ebacffdfb35f5e226f84b461103bb8beab6353be836040516111259190611b66565b60405180910390a3505050565b61113a610725565b67ffffffffffffffff168167ffffffffffffffff1610156111b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016107f5565b606880547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040805160208082019390935281518082039093018352810190526002610f9d565b61123e61065360017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0611c1a565b600003610c2957610c2961127360017fa11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb1a0611c1a565b439055565b8060a001516fffffffffffffffffffffffffffffffff16816060015163ffffffff161115611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f53797374656d436f6e6669673a206d696e206261736520666565206d7573742060448201527f6265206c657373207468616e206d61782062617365000000000000000000000060648201526084016107f5565b6001816040015160ff16116113bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a2064656e6f6d696e61746f72206d757374206260448201527f65206c6172676572207468616e2031000000000000000000000000000000000060648201526084016107f5565b6068546080820151825167ffffffffffffffff909216916113e09190611c5d565b63ffffffff16111561144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f53797374656d436f6e6669673a20676173206c696d697420746f6f206c6f770060448201526064016107f5565b6000816020015160ff16116114e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f53797374656d436f6e6669673a20656c6173746963697479206d756c7469706c60448201527f6965722063616e6e6f742062652030000000000000000000000000000000000060648201526084016107f5565b8051602082015163ffffffff82169160ff90911690611505908290611c7c565b61150f9190611cc6565b63ffffffff16146115a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f53797374656d436f6e6669673a20707265636973696f6e206c6f73732077697460448201527f6820746172676574207265736f75726365206c696d697400000000000000000060648201526084016107f5565b805160698054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505