Socket
Socket
Sign inDemoInstall

@eth-optimism/contracts

Package Overview
Dependencies
Maintainers
6
Versions
190
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@eth-optimism/contracts - npm Package Compare versions

Comparing version 0.0.2-alpha.4 to 0.0.2-alpha.5

build/artifacts/Math.json

2

build/artifacts/Helper_ModifiableStorage.json

@@ -64,3 +64,3 @@ {

{
"astId": 22686,
"astId": 22703,
"contract": "contracts/test-helpers/Helper_ModifiableStorage.sol:Helper_ModifiableStorage",

@@ -67,0 +67,0 @@ "label": "target",

@@ -71,3 +71,3 @@ {

{
"astId": 22802,
"astId": 22819,
"contract": "contracts/test-helpers/Helper_PrecompileCaller.sol:Helper_PrecompileCaller",

@@ -80,3 +80,3 @@ "label": "owner",

{
"astId": 22804,
"astId": 22821,
"contract": "contracts/test-helpers/Helper_PrecompileCaller.sol:Helper_PrecompileCaller",

@@ -83,0 +83,0 @@ "label": "target",

@@ -34,3 +34,3 @@ {

{
"astId": 22802,
"astId": 22819,
"contract": "contracts/test-helpers/Helper_SimpleProxy.sol:Helper_SimpleProxy",

@@ -43,3 +43,3 @@ "label": "owner",

{
"astId": 22804,
"astId": 22821,
"contract": "contracts/test-helpers/Helper_SimpleProxy.sol:Helper_SimpleProxy",

@@ -46,0 +46,0 @@ "label": "target",

@@ -101,3 +101,3 @@ {

{
"astId": 17171,
"astId": 17188,
"contract": "contracts/optimistic-ethereum/libraries/resolver/Lib_AddressManager.sol:Lib_AddressManager",

@@ -110,3 +110,3 @@ "label": "owner",

{
"astId": 17084,
"astId": 17101,
"contract": "contracts/optimistic-ethereum/libraries/resolver/Lib_AddressManager.sol:Lib_AddressManager",

@@ -113,0 +113,0 @@ "label": "addresses",

@@ -42,3 +42,3 @@ {

{
"astId": 17139,
"astId": 17156,
"contract": "contracts/optimistic-ethereum/libraries/resolver/Lib_AddressResolver.sol:Lib_AddressResolver",

@@ -48,7 +48,7 @@ "label": "libAddressManager",

"slot": "0",
"type": "t_contract(Lib_AddressManager)17132"
"type": "t_contract(Lib_AddressManager)17149"
}
],
"types": {
"t_contract(Lib_AddressManager)17132": {
"t_contract(Lib_AddressManager)17149": {
"encoding": "inplace",

@@ -55,0 +55,0 @@ "label": "contract Lib_AddressManager",

@@ -90,3 +90,3 @@ {

{
"astId": 23354,
"astId": 23371,
"contract": "contracts/test-helpers/Mock_FraudVerifier.sol:Mock_FraudVerifier",

@@ -96,6 +96,6 @@ "label": "bondManager",

"slot": "0",
"type": "t_contract(OVM_BondManager)14622"
"type": "t_contract(OVM_BondManager)14639"
},
{
"astId": 23358,
"astId": 23375,
"contract": "contracts/test-helpers/Mock_FraudVerifier.sol:Mock_FraudVerifier",

@@ -119,3 +119,3 @@ "label": "transitioners",

},
"t_contract(OVM_BondManager)14622": {
"t_contract(OVM_BondManager)14639": {
"encoding": "inplace",

@@ -122,0 +122,0 @@ "label": "contract OVM_BondManager",

@@ -270,3 +270,3 @@ {

{
"astId": 22541,
"astId": 22558,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -276,6 +276,6 @@ "label": "fullReceivedMessages",

"slot": "5",
"type": "t_array(t_struct(ReceivedMessage)22538_storage)dyn_storage"
"type": "t_array(t_struct(ReceivedMessage)22555_storage)dyn_storage"
},
{
"astId": 22543,
"astId": 22560,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -288,3 +288,3 @@ "label": "targetMessengerAddress",

{
"astId": 22545,
"astId": 22562,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -297,3 +297,3 @@ "label": "lastRelayedMessage",

{
"astId": 22547,
"astId": 22564,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -312,4 +312,4 @@ "label": "delay",

},
"t_array(t_struct(ReceivedMessage)22538_storage)dyn_storage": {
"base": "t_struct(ReceivedMessage)22538_storage",
"t_array(t_struct(ReceivedMessage)22555_storage)dyn_storage": {
"base": "t_struct(ReceivedMessage)22555_storage",
"encoding": "dynamic_array",

@@ -341,3 +341,3 @@ "label": "struct mockOVM_CrossDomainMessenger.ReceivedMessage[]",

},
"t_struct(ReceivedMessage)22538_storage": {
"t_struct(ReceivedMessage)22555_storage": {
"encoding": "inplace",

@@ -347,3 +347,3 @@ "label": "struct mockOVM_CrossDomainMessenger.ReceivedMessage",

{
"astId": 22527,
"astId": 22544,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -356,3 +356,3 @@ "label": "timestamp",

{
"astId": 22529,
"astId": 22546,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -365,3 +365,3 @@ "label": "target",

{
"astId": 22531,
"astId": 22548,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -374,3 +374,3 @@ "label": "sender",

{
"astId": 22533,
"astId": 22550,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -383,3 +383,3 @@ "label": "message",

{
"astId": 22535,
"astId": 22552,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -392,3 +392,3 @@ "label": "messageNonce",

{
"astId": 22537,
"astId": 22554,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -395,0 +395,0 @@ "label": "gasLimit",

@@ -320,3 +320,3 @@ {

{
"astId": 17139,
"astId": 17156,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -326,6 +326,6 @@ "label": "libAddressManager",

"slot": "0",
"type": "t_contract(Lib_AddressManager)17132"
"type": "t_contract(Lib_AddressManager)17149"
},
{
"astId": 14168,
"astId": 14185,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -338,3 +338,3 @@ "label": "requiredCollateral",

{
"astId": 14181,
"astId": 14198,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -347,3 +347,3 @@ "label": "ovmFraudVerifier",

{
"astId": 14186,
"astId": 14203,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -353,6 +353,6 @@ "label": "bonds",

"slot": "3",
"type": "t_mapping(t_address,t_struct(Bond)16478_storage)"
"type": "t_mapping(t_address,t_struct(Bond)16495_storage)"
},
{
"astId": 14191,
"astId": 14208,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -362,3 +362,3 @@ "label": "witnessProviders",

"slot": "4",
"type": "t_mapping(t_bytes32,t_struct(Rewards)16487_storage)"
"type": "t_mapping(t_bytes32,t_struct(Rewards)16504_storage)"
}

@@ -382,3 +382,3 @@ ],

},
"t_contract(Lib_AddressManager)17132": {
"t_contract(Lib_AddressManager)17149": {
"encoding": "inplace",

@@ -388,3 +388,3 @@ "label": "contract Lib_AddressManager",

},
"t_enum(State)16473": {
"t_enum(State)16490": {
"encoding": "inplace",

@@ -394,3 +394,3 @@ "label": "enum iOVM_BondManager.State",

},
"t_mapping(t_address,t_struct(Bond)16478_storage)": {
"t_mapping(t_address,t_struct(Bond)16495_storage)": {
"encoding": "mapping",

@@ -400,3 +400,3 @@ "key": "t_address",

"numberOfBytes": "32",
"value": "t_struct(Bond)16478_storage"
"value": "t_struct(Bond)16495_storage"
},

@@ -410,3 +410,3 @@ "t_mapping(t_address,t_uint256)": {

},
"t_mapping(t_bytes32,t_struct(Rewards)16487_storage)": {
"t_mapping(t_bytes32,t_struct(Rewards)16504_storage)": {
"encoding": "mapping",

@@ -416,5 +416,5 @@ "key": "t_bytes32",

"numberOfBytes": "32",
"value": "t_struct(Rewards)16487_storage"
"value": "t_struct(Rewards)16504_storage"
},
"t_struct(Bond)16478_storage": {
"t_struct(Bond)16495_storage": {
"encoding": "inplace",

@@ -424,3 +424,3 @@ "label": "struct iOVM_BondManager.Bond",

{
"astId": 16475,
"astId": 16492,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -430,6 +430,6 @@ "label": "state",

"slot": "0",
"type": "t_enum(State)16473"
"type": "t_enum(State)16490"
},
{
"astId": 16477,
"astId": 16494,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -444,3 +444,3 @@ "label": "withdrawalTimestamp",

},
"t_struct(Rewards)16487_storage": {
"t_struct(Rewards)16504_storage": {
"encoding": "inplace",

@@ -450,3 +450,3 @@ "label": "struct iOVM_BondManager.Rewards",

{
"astId": 16480,
"astId": 16497,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -459,3 +459,3 @@ "label": "canClaim",

{
"astId": 16482,
"astId": 16499,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -468,3 +468,3 @@ "label": "total",

{
"astId": 16486,
"astId": 16503,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -471,0 +471,0 @@ "label": "gasSpent",

@@ -427,4 +427,4 @@ {

],
"bytecode": "0x60806040523480156200001157600080fd5b5060405162002a7c38038062002a7c8339810160408190526200003491620002ed565b600080546001600160a01b0319166001600160a01b03841617905560408051808201909152600d81526c27ab26afa9b2b8bab2b731b2b960991b60208201526200007e90620001fb565b600360006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620000c860405180606001604052806022815260200162002a5a60229139620001fb565b600480546001600160a01b0319166001600160a01b0392909216919091179055600181905560408051808201909152601881527f4f564d5f5374617465436f6d6d69746d656e74436861696e000000000000000060208201526200016e906010907f9413776a3b6f36bbb044c745c87ab6e7ffed37fc3ab60731591a70782169714d906200015690620001fb565b60056200028860201b6200093317909392919060201c565b620001f360107f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c55620001db6040518060400160405280601881526020017f4f564d5f5374617465436f6d6d69746d656e74436861696e0000000000000000815250620001fb60201b60201c565b600d6200028860201b6200093317909392919060201c565b50506200037d565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906200022e90859060040162000327565b60206040518083038186803b1580156200024757600080fd5b505afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002829190620002bd565b92915050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b600060208284031215620002cf578081fd5b81516001600160a01b0381168114620002e6578182fd5b9392505050565b6000806040838503121562000300578081fd5b82516001600160a01b038116811462000317578182fd5b6020939093015192949293505050565b6000602080835283518082850152825b81811015620003555785810183015185820160400152820162000337565b81811115620003675783604083870101525b50601f01601f1916929092016040019392505050565b6126cd806200038d6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637aa63a86116100715780637aa63a8614610161578063876ed5cb14610169578063c2cf696f14610171578063d0f8934414610179578063e561dddc14610181578063facdc5da14610189576100b4565b80632a7f18be146100b9578063461a4478146100e25780634de569ce146101025780636fee07e01461012257806378f4b2f2146101375780637a167a8a1461014c575b600080fd5b6100cc6100c7366004611ced565b61019c565b6040516100d991906125b4565b60405180910390f35b6100f56100f0366004611b92565b610207565b6040516100d99190611d7f565b610115610110366004611bc4565b61028e565b6040516100d99190611e1f565b610135610130366004611b20565b6102c8565b005b61013f610406565b6040516100d99190611d68565b61015461040c565b6040516100d991906125f8565b61013f61041e565b61013f610437565b61013f61043d565b610135610442565b61013f610781565b610135610197366004611ced565b610799565b6101a4611857565b6002820260006101bc600d64ffffffffff8416610968565b905060006101d5600d64ffffffffff6001860116610968565b6040805160608101825293845264ffffffffff808316602086015260289290921c90911690830152509150505b919050565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190610238908590600401611e9c565b60206040518083038186803b15801561025057600080fd5b505afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102889190611b04565b92915050565b82516000901515600114156102b0576102a985858585610ac6565b90506102c0565b6102a98585602001518585610c6e565b949350505050565b612710815111156102f45760405162461bcd60e51b81526004016102eb90612280565b60405180910390fd5b614e208210156103165760405162461bcd60e51b81526004016102eb906120e3565b600a820460005a905081811161033e5760405162461bcd60e51b81526004016102eb90612354565b60005b825a8303101561035357600101610341565b60003387878760405160200161036c9493929190611d93565b60408051601f19818403018152919052805160209091012090504360281b4217610398600d8383610d4d565b600060026103a6600d610d81565b64ffffffffff16816103b457fe5b0490507f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb5338a8a8a60018603426040516103f396959493929190611dd0565b60405180910390a1505050505050505050565b614e2081565b600080610417610d9c565b9250505090565b600080610429610d9c565b5064ffffffffff1691505090565b61271081565b600a81565b60043560d81c60093560e890811c90600c35901c61045e61041e565b8364ffffffffff16146104835760405162461bcd60e51b81526004016102eb9061219f565b6003546001600160a01b031633146104ad5760405162461bcd60e51b81526004016102eb906121fc565b60008162ffffff16116104d25760405162461bcd60e51b81526004016102eb90611f78565b60008262ffffff16116104f75760405162461bcd60e51b81526004016102eb9061247f565b600f601062ffffff831602013664ffffffffff821681101561052b5760405162461bcd60e51b81526004016102eb90612529565b60608462ffffff166001600160401b038111801561054857600080fd5b50604051908082528060200260200182016040528015610572578160200160208202803683370190505b509050600080600061058261040c565b9050600061058e610dc3565b905060005b8862ffffff168163ffffffff1610156106b1576105ae611877565b6105bd8263ffffffff16610de5565b90506105c98185610e35565b60005b815163ffffffff8216101561062757893560e81c6105f28364ffffffffff8d1683610efb565b898963ffffffff168151811061060457fe5b6020908102919091010152999099016003019860019687019695860195016105cc565b5060005b81602001518163ffffffff1610156106a7578364ffffffffff168564ffffffffff161061066a5760405162461bcd60e51b81526004016102eb9061256b565b61067a8564ffffffffff16610f85565b888863ffffffff168151811061068c57fe5b6020908102919091010152600196870196948501940161062b565b5050600101610593565b508664ffffffffff1686146106d85760405162461bcd60e51b81526004016102eb90611fc0565b8862ffffff168463ffffffff16146107025760405162461bcd60e51b81526004016102eb9061200e565b63ffffffff62ffffff8a168490031661073061071d87610fca565b8b62ffffff168364ffffffffff166111df565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f8998184038261075d61041e565b60405161076c9392919061260a565b60405180910390a15050505050505050505050565b600061078d6005610d81565b64ffffffffff16905090565b60006107a361040c565b905060006107af610dc3565b90508282820364ffffffffff1610156107cf5781810364ffffffffff1692505b600083116107ef5760405162461bcd60e51b81526004016102eb906122dd565b6060836001600160401b038111801561080757600080fd5b50604051908082528060200260200182016040528015610831578160200160208202803683370190505b50905060005b848110156108ce576003546001600160a01b0316331461089b57610859611857565b6108698564ffffffffff1661019c565b905042600154826020015164ffffffffff1601106108995760405162461bcd60e51b81526004016102eb9061212c565b505b6108ab8464ffffffffff16610f85565b8282815181106108b757fe5b602090810291909101015260019384019301610837565b506108e26108db82610fca565b85866111df565b7f64d7f508348c70dea42d5302a393987e4abc20e45954ab3f9d320207751956f0848464ffffffffff16038561091661041e565b604051610925939291906125e2565b60405180910390a150505050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b600061097261189f565b61097b8461127e565b805190915064ffffffffff1683106109a55760405162461bcd60e51b81526004016102eb906120b5565b60006109c782604001516001600160401b0316866112e090919063ffffffff16565b905060006109ee83604001516001016001600160401b0316876112e090919063ffffffff16565b9050826080015164ffffffffff168510610a4f576080830151825464ffffffffff9091168603908110610a335760405162461bcd60e51b81526004016102eb906120b5565b6000908152600190920160205250604090205491506102889050565b6080830151606084015164ffffffffff9182168781039290911610610a865760405162461bcd60e51b81526004016102eb906120b5565b8154811115610aa75760405162461bcd60e51b81526004016102eb906120b5565b8154036000908152600190910160205260409020549250610288915050565b600080610afe6040518060400160405280601481526020017327ab26afa2bc32b1baba34b7b726b0b730b3b2b960611b815250610207565b90506000816001600160a01b0316631c4712a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190611d05565b90506000610b8087611300565b9050610b8d818787611399565b610ba95760405162461bcd60e51b81526004016102eb90611ef3565b86606001518860200151148015610bc4575060408701518851145b8015610be2575060045460808901516001600160a01b039081169116145b8015610bf15750818860a00151145b8015610c08575060608801516001600160a01b0316155b8015610c235750600088604001516001811115610c2157fe5b145b8015610c4457508660800151805190602001208860c0015180519060200120145b610c605760405162461bcd60e51b81526004016102eb90611f41565b506001979650505050505050565b600080610c7e8360000151610f85565b9050610c8b818585611399565b610ca75760405162461bcd60e51b81526004016102eb9061239f565b6000866060015187608001518860a001518960c00151604051602001610cd09493929190611d93565b604051602081830303815290604052805190602001209050610cf0611857565b610cf98761019c565b805190915082148015610d1757508751602082015164ffffffffff16145b8015610d3157508760200151816040015164ffffffffff16145b610c605760405162461bcd60e51b81526004016102eb90612249565b610d5561189f565b610d5e8461127e565b9050610d7b838383602001518761141d909392919063ffffffff16565b50505050565b6000610d8b61189f565b610d948361127e565b519392505050565b6000806000610dab6005611433565b64ffffffffff602882901c16935060501c9150509091565b60006002610dd1600d610d81565b64ffffffffff1681610ddf57fe5b04905090565b610ded611877565b5060408051608081018252601092909202600f81013560e890811c84526012820135901c6020840152601581013560d890811c92840192909252601a0135901c606082015290565b610e3f600d610d81565b64ffffffffff16610e4f57610ef7565b610e57611857565b610e678264ffffffffff1661019c565b9050600154816020015164ffffffffff16014210610e975760405162461bcd60e51b81526004016102eb906124c0565b806020015164ffffffffff1683604001511115610ec65760405162461bcd60e51b81526004016102eb906123e9565b806040015164ffffffffff1683606001511115610ef55760405162461bcd60e51b81526004016102eb90612433565b505b5050565b60006060826041016001600160401b0381118015610f1857600080fd5b506040519080825280601f01601f191660200182016040528015610f43576020820181803683370190505b50604086015160608701519192509060006020840160018153836001820152826021820152866003890160418301376041870190209450505050509392505050565b60006102886040518060a00160405280600015158152602001848152602001600081526020016000815260200160405180602001604052806000815250815250611451565b600080825111610fec5760405162461bcd60e51b81526004016102eb90611eaf565b815160011415611012578160008151811061100357fe5b60200260200101519050610202565b606061101e8351611499565b8351909150839060029006600114156110b95783516001016001600160401b038111801561104b57600080fd5b50604051908082528060200260200182016040528015611075578160200160208202803683370190505b50905060005b84518110156110b75784818151811061109057fe5b60200260200101518282815181106110a457fe5b602090810291909101015260010161107b565b505b835160009060028106600114156110f9578382815181106110d657fe5b60200260200101518382815181106110ea57fe5b60209081029190910101526001015b60018111156111bf5760018201915060005b6002820481101561116e5761114f84826002028151811061112857fe5b602002602001015185836002026001018151811061114257fe5b602002602001015161158e565b84828151811061115b57fe5b602090810291909101015260010161110b565b50600290046001808216148015611186575080600114155b156111ba5783828151811061119757fe5b60200260200101518382815181106111ab57fe5b60209081029190910101526001015b6110f9565b826000815181106111cc57fe5b6020026020010151945050505050919050565b6000806111ea610d9c565b915091506111f66118cd565b6040518060a0016040528061120b6005610d81565b64ffffffffff1681526020018781526020018681526020018464ffffffffff1681526020016040518060200160405280600081525081525090506000611250826115c1565b90506000611266836040015186018786016115ea565b9050611274600583836115f8565b5050505050505050565b61128661189f565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b600060028206156112f457826006016112f9565b826004015b9392505050565b60808101518051600091906060604182016001600160401b038111801561132657600080fd5b506040519080825280601f01601f191660200182016040528015611351576020820181803683370190505b5060408601516060870151919250906000602084016001815383600182015282602182015285604182018760208a0160045afa50604190950190942095505050505050919050565b60006113b9836000015163ffffffff16600561096890919063ffffffff16565b6113c2846115c1565b146113df5760405162461bcd60e51b81526004016102eb90612325565b6113f783602001518584600001518560200151611786565b6114135760405162461bcd60e51b81526004016102eb9061207e565b5060019392505050565b6114288484836115f8565b610d7b8483836115f8565b600061143d61189f565b6114468361127e565b602001519392505050565b805160208083015160408085015160608601516080870151925160009661147c969095949101611e2a565b604051602081830303815290604052805190602001209050919050565b606080826001600160401b03811180156114b257600080fd5b506040519080825280602002602001820160405280156114dc578160200160208202803683370190505b50905060006040516020016114f19190611d68565b604051602081830303815290604052805190602001208160008151811061151457fe5b602090810291909101015260015b81518110156115875781600182038151811061153a57fe5b60200260200101516040516020016115529190611d68565b6040516020818303038152906040528051906020012082828151811061157457fe5b6020908102919091010152600101611522565b5092915050565b600082826040516020016115a3929190611d71565b60405160208183030381529060405280519060200120905092915050565b6000816020015182604001518360600151846080015160405160200161147c9493929190611e62565b602890811b91909117901b90565b61160061189f565b6116098461127e565b9050600061162d82604001516001600160401b0316866112e090919063ffffffff16565b805490915061163b57601081555b8054608083015183510364ffffffffff16106117335760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff9261168992600401611e87565b602060405180830381600087803b1580156116a357600080fd5b505af19250505080156116d3575060408051601f3d908101601f191682019092526116d091810190611b76565b60015b6116df575060006116e2565b90505b8015611729576040830180516001016001600160401b03169081905260808401805164ffffffffff908116606087015285511690526117229087906112e0565b9150611731565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff1985169184019190915261177d86846117f1565b50505050505050565b600083815b83518110156117e55760008482815181106117a257fe5b60209081029190910101519050600186831c81161480156117ce576117c7848361158e565b93506117db565b6117d8828561158e565b93505b505060010161178b565b50909414949350505050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b1795909490939092909187146118375760028a018790555b858a600301541461184a5760038a018690555b5050505050505092915050565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b803561028881612671565b600082601f83011261191a578081fd5b81356001600160401b0381111561192f578182fd5b611942601f8201601f191660200161262c565b915080825283602082850101111561195957600080fd5b8060208401602084013760009082016020015292915050565b80356002811061028857600080fd5b600060a08284031215611992578081fd5b61199c60a061262c565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b038111156119d957600080fd5b6119e58482850161190a565b60808301525092915050565b600060408284031215611a02578081fd5b611a0c604061262c565b9050813581526020808301356001600160401b03811115611a2c57600080fd5b8301601f81018513611a3d57600080fd5b8035611a50611a4b82612652565b61262c565b8181528381019083850185840285018601891015611a6d57600080fd5b600094505b83851015611a90578035835260019490940193918501918501611a72565b508085870152505050505092915050565b600060a08284031215611ab2578081fd5b611abc60a061262c565b90508135611ac981612689565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b038111156119d957600080fd5b600060208284031215611b15578081fd5b81516112f981612671565b600080600060608486031215611b34578182fd5b8335611b3f81612671565b92506020840135915060408401356001600160401b03811115611b60578182fd5b611b6c8682870161190a565b9150509250925092565b600060208284031215611b87578081fd5b81516112f981612689565b600060208284031215611ba3578081fd5b81356001600160401b03811115611bb8578182fd5b6102c08482850161190a565b60008060008060808587031215611bd9578081fd5b84356001600160401b0380821115611bef578283fd5b9086019060e08289031215611c02578283fd5b611c0c60e061262c565b8235815260208301356020820152611c278960408501611972565b6040820152611c3989606085016118ff565b6060820152611c4b89608085016118ff565b608082015260a083013560a082015260c083013582811115611c6b578485fd5b611c778a82860161190a565b60c08301525095506020870135915080821115611c92578283fd5b611c9e88838901611aa1565b94506040870135915080821115611cb3578283fd5b611cbf88838901611981565b93506060870135915080821115611cd4578283fd5b50611ce1878288016119f1565b91505092959194509250565b600060208284031215611cfe578081fd5b5035919050565b600060208284031215611d16578081fd5b5051919050565b60008151808452815b81811015611d4257602081850181015186830182015201611d26565b81811115611d535782602083870101525b50601f01601f19169290920160200192915050565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611dc690830184611d1d565b9695505050505050565b6001600160a01b038781168252861660208201526040810185905260c060608201819052600090611e0390830186611d1d565b64ffffffffff9490941660808301525060a00152949350505050565b901515815260200190565b6000861515825285602083015284604083015283606083015260a06080830152611e5760a0830184611d1d565b979650505050505050565b600085825284602083015283604083015260806060830152611dc66080830184611d1d565b91825264ffffffffff16602082015260400190565b6000602082526112f96020830184611d1d565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b6020808252602e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e20696e60408201526d31b63ab9b4b7b710383937b7b31760911b606082015260800190565b6020808252601e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e2e0000604082015260600190565b60208082526028908201527f4d7573742070726f76696465206174206c65617374206f6e652062617463682060408201526731b7b73a32bc3a1760c11b606082015260800190565b6020808252602e908201527f4e6f7420616c6c2073657175656e636572207472616e73616374696f6e73207760408201526d32b93290383937b1b2b9b9b2b21760911b606082015260800190565b6020808252604a908201527f41637475616c207472616e73616374696f6e20696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420746f74616c20656c656d656e7473206060820152693a379030b83832b7321760b11b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526029908201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f6040820152681032b738bab2bab29760b91b606082015260800190565b6020808252604d908201527f5175657565207472616e73616374696f6e732063616e6e6f742062652073756260408201527f6d697474656420647572696e67207468652073657175656e63657220696e636c60608201526c3ab9b4b7b7103832b934b7b21760991b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b6020808252602d908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460408201526c34329029b2b8bab2b731b2b91760991b606082015260800190565b6020808252601a908201527f496e76616c6964205175657565207472616e73616374696f6e2e000000000000604082015260600190565b60208082526039908201527f5472616e73616374696f6e2065786365656473206d6178696d756d20726f6c6c60408201527f7570207472616e73616374696f6e20646174612073697a652e00000000000000606082015260800190565b60208082526028908201527f4d75737420617070656e64206d6f7265207468616e207a65726f207472616e7360408201526730b1ba34b7b7399760c11b606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b6020808252602b908201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60408201526a34ba34b73390313ab9371760a91b606082015260800190565b6020808252602a908201527f496e76616c6964205175657565207472616e73616374696f6e20696e636c757360408201526934b7b710383937b7b31760b11b606082015260800190565b6020808252602a908201527f53657175656e636572207472616e73616374696f6e732074696d657374616d70604082015269103a37b7903434b3b41760b11b606082015260800190565b6020808252602c908201527f53657175656e636572207472616e73616374696f6e7320626c6f636b4e756d6260408201526b32b9103a37b7903434b3b41760a11b606082015260800190565b60208082526021908201527f4d75737420617070656e64206174206c65617374206f6e6520656c656d656e746040820152601760f91b606082015260800190565b60208082526043908201527f4f6c6465722071756575652062617463686573206d7573742062652070726f6360408201527f6573736564206265666f72652061206e65772073657175656e6365722062617460608201526231b41760e91b608082015260a00190565b60208082526022908201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f76696465604082015261321760f11b606082015260800190565b60208082526029908201527f4e6f7420656e6f75676820717565756564207472616e73616374696f6e732074604082015268379030b83832b7321760b91b606082015260800190565b8151815260208083015164ffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b64ffffffffff91909116815260200190565b64ffffffffff9384168152919092166020820152604081019190915260600190565b6040518181016001600160401b038111828210171561264a57600080fd5b604052919050565b60006001600160401b03821115612667578081fd5b5060209081020190565b6001600160a01b038116811461268657600080fd5b50565b801515811461268657600080fdfea2646970667358221220403533dbd9fc0ce50adae8b43fa54e999ad0625fcd0c275b90685830f57ab00064736f6c634300070000334f564d5f4465636f6d7072657373696f6e507265636f6d70696c6541646472657373",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637aa63a86116100715780637aa63a8614610161578063876ed5cb14610169578063c2cf696f14610171578063d0f8934414610179578063e561dddc14610181578063facdc5da14610189576100b4565b80632a7f18be146100b9578063461a4478146100e25780634de569ce146101025780636fee07e01461012257806378f4b2f2146101375780637a167a8a1461014c575b600080fd5b6100cc6100c7366004611ced565b61019c565b6040516100d991906125b4565b60405180910390f35b6100f56100f0366004611b92565b610207565b6040516100d99190611d7f565b610115610110366004611bc4565b61028e565b6040516100d99190611e1f565b610135610130366004611b20565b6102c8565b005b61013f610406565b6040516100d99190611d68565b61015461040c565b6040516100d991906125f8565b61013f61041e565b61013f610437565b61013f61043d565b610135610442565b61013f610781565b610135610197366004611ced565b610799565b6101a4611857565b6002820260006101bc600d64ffffffffff8416610968565b905060006101d5600d64ffffffffff6001860116610968565b6040805160608101825293845264ffffffffff808316602086015260289290921c90911690830152509150505b919050565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190610238908590600401611e9c565b60206040518083038186803b15801561025057600080fd5b505afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102889190611b04565b92915050565b82516000901515600114156102b0576102a985858585610ac6565b90506102c0565b6102a98585602001518585610c6e565b949350505050565b612710815111156102f45760405162461bcd60e51b81526004016102eb90612280565b60405180910390fd5b614e208210156103165760405162461bcd60e51b81526004016102eb906120e3565b600a820460005a905081811161033e5760405162461bcd60e51b81526004016102eb90612354565b60005b825a8303101561035357600101610341565b60003387878760405160200161036c9493929190611d93565b60408051601f19818403018152919052805160209091012090504360281b4217610398600d8383610d4d565b600060026103a6600d610d81565b64ffffffffff16816103b457fe5b0490507f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb5338a8a8a60018603426040516103f396959493929190611dd0565b60405180910390a1505050505050505050565b614e2081565b600080610417610d9c565b9250505090565b600080610429610d9c565b5064ffffffffff1691505090565b61271081565b600a81565b60043560d81c60093560e890811c90600c35901c61045e61041e565b8364ffffffffff16146104835760405162461bcd60e51b81526004016102eb9061219f565b6003546001600160a01b031633146104ad5760405162461bcd60e51b81526004016102eb906121fc565b60008162ffffff16116104d25760405162461bcd60e51b81526004016102eb90611f78565b60008262ffffff16116104f75760405162461bcd60e51b81526004016102eb9061247f565b600f601062ffffff831602013664ffffffffff821681101561052b5760405162461bcd60e51b81526004016102eb90612529565b60608462ffffff166001600160401b038111801561054857600080fd5b50604051908082528060200260200182016040528015610572578160200160208202803683370190505b509050600080600061058261040c565b9050600061058e610dc3565b905060005b8862ffffff168163ffffffff1610156106b1576105ae611877565b6105bd8263ffffffff16610de5565b90506105c98185610e35565b60005b815163ffffffff8216101561062757893560e81c6105f28364ffffffffff8d1683610efb565b898963ffffffff168151811061060457fe5b6020908102919091010152999099016003019860019687019695860195016105cc565b5060005b81602001518163ffffffff1610156106a7578364ffffffffff168564ffffffffff161061066a5760405162461bcd60e51b81526004016102eb9061256b565b61067a8564ffffffffff16610f85565b888863ffffffff168151811061068c57fe5b6020908102919091010152600196870196948501940161062b565b5050600101610593565b508664ffffffffff1686146106d85760405162461bcd60e51b81526004016102eb90611fc0565b8862ffffff168463ffffffff16146107025760405162461bcd60e51b81526004016102eb9061200e565b63ffffffff62ffffff8a168490031661073061071d87610fca565b8b62ffffff168364ffffffffff166111df565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f8998184038261075d61041e565b60405161076c9392919061260a565b60405180910390a15050505050505050505050565b600061078d6005610d81565b64ffffffffff16905090565b60006107a361040c565b905060006107af610dc3565b90508282820364ffffffffff1610156107cf5781810364ffffffffff1692505b600083116107ef5760405162461bcd60e51b81526004016102eb906122dd565b6060836001600160401b038111801561080757600080fd5b50604051908082528060200260200182016040528015610831578160200160208202803683370190505b50905060005b848110156108ce576003546001600160a01b0316331461089b57610859611857565b6108698564ffffffffff1661019c565b905042600154826020015164ffffffffff1601106108995760405162461bcd60e51b81526004016102eb9061212c565b505b6108ab8464ffffffffff16610f85565b8282815181106108b757fe5b602090810291909101015260019384019301610837565b506108e26108db82610fca565b85866111df565b7f64d7f508348c70dea42d5302a393987e4abc20e45954ab3f9d320207751956f0848464ffffffffff16038561091661041e565b604051610925939291906125e2565b60405180910390a150505050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b600061097261189f565b61097b8461127e565b805190915064ffffffffff1683106109a55760405162461bcd60e51b81526004016102eb906120b5565b60006109c782604001516001600160401b0316866112e090919063ffffffff16565b905060006109ee83604001516001016001600160401b0316876112e090919063ffffffff16565b9050826080015164ffffffffff168510610a4f576080830151825464ffffffffff9091168603908110610a335760405162461bcd60e51b81526004016102eb906120b5565b6000908152600190920160205250604090205491506102889050565b6080830151606084015164ffffffffff9182168781039290911610610a865760405162461bcd60e51b81526004016102eb906120b5565b8154811115610aa75760405162461bcd60e51b81526004016102eb906120b5565b8154036000908152600190910160205260409020549250610288915050565b600080610afe6040518060400160405280601481526020017327ab26afa2bc32b1baba34b7b726b0b730b3b2b960611b815250610207565b90506000816001600160a01b0316631c4712a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190611d05565b90506000610b8087611300565b9050610b8d818787611399565b610ba95760405162461bcd60e51b81526004016102eb90611ef3565b86606001518860200151148015610bc4575060408701518851145b8015610be2575060045460808901516001600160a01b039081169116145b8015610bf15750818860a00151145b8015610c08575060608801516001600160a01b0316155b8015610c235750600088604001516001811115610c2157fe5b145b8015610c4457508660800151805190602001208860c0015180519060200120145b610c605760405162461bcd60e51b81526004016102eb90611f41565b506001979650505050505050565b600080610c7e8360000151610f85565b9050610c8b818585611399565b610ca75760405162461bcd60e51b81526004016102eb9061239f565b6000866060015187608001518860a001518960c00151604051602001610cd09493929190611d93565b604051602081830303815290604052805190602001209050610cf0611857565b610cf98761019c565b805190915082148015610d1757508751602082015164ffffffffff16145b8015610d3157508760200151816040015164ffffffffff16145b610c605760405162461bcd60e51b81526004016102eb90612249565b610d5561189f565b610d5e8461127e565b9050610d7b838383602001518761141d909392919063ffffffff16565b50505050565b6000610d8b61189f565b610d948361127e565b519392505050565b6000806000610dab6005611433565b64ffffffffff602882901c16935060501c9150509091565b60006002610dd1600d610d81565b64ffffffffff1681610ddf57fe5b04905090565b610ded611877565b5060408051608081018252601092909202600f81013560e890811c84526012820135901c6020840152601581013560d890811c92840192909252601a0135901c606082015290565b610e3f600d610d81565b64ffffffffff16610e4f57610ef7565b610e57611857565b610e678264ffffffffff1661019c565b9050600154816020015164ffffffffff16014210610e975760405162461bcd60e51b81526004016102eb906124c0565b806020015164ffffffffff1683604001511115610ec65760405162461bcd60e51b81526004016102eb906123e9565b806040015164ffffffffff1683606001511115610ef55760405162461bcd60e51b81526004016102eb90612433565b505b5050565b60006060826041016001600160401b0381118015610f1857600080fd5b506040519080825280601f01601f191660200182016040528015610f43576020820181803683370190505b50604086015160608701519192509060006020840160018153836001820152826021820152866003890160418301376041870190209450505050509392505050565b60006102886040518060a00160405280600015158152602001848152602001600081526020016000815260200160405180602001604052806000815250815250611451565b600080825111610fec5760405162461bcd60e51b81526004016102eb90611eaf565b815160011415611012578160008151811061100357fe5b60200260200101519050610202565b606061101e8351611499565b8351909150839060029006600114156110b95783516001016001600160401b038111801561104b57600080fd5b50604051908082528060200260200182016040528015611075578160200160208202803683370190505b50905060005b84518110156110b75784818151811061109057fe5b60200260200101518282815181106110a457fe5b602090810291909101015260010161107b565b505b835160009060028106600114156110f9578382815181106110d657fe5b60200260200101518382815181106110ea57fe5b60209081029190910101526001015b60018111156111bf5760018201915060005b6002820481101561116e5761114f84826002028151811061112857fe5b602002602001015185836002026001018151811061114257fe5b602002602001015161158e565b84828151811061115b57fe5b602090810291909101015260010161110b565b50600290046001808216148015611186575080600114155b156111ba5783828151811061119757fe5b60200260200101518382815181106111ab57fe5b60209081029190910101526001015b6110f9565b826000815181106111cc57fe5b6020026020010151945050505050919050565b6000806111ea610d9c565b915091506111f66118cd565b6040518060a0016040528061120b6005610d81565b64ffffffffff1681526020018781526020018681526020018464ffffffffff1681526020016040518060200160405280600081525081525090506000611250826115c1565b90506000611266836040015186018786016115ea565b9050611274600583836115f8565b5050505050505050565b61128661189f565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b600060028206156112f457826006016112f9565b826004015b9392505050565b60808101518051600091906060604182016001600160401b038111801561132657600080fd5b506040519080825280601f01601f191660200182016040528015611351576020820181803683370190505b5060408601516060870151919250906000602084016001815383600182015282602182015285604182018760208a0160045afa50604190950190942095505050505050919050565b60006113b9836000015163ffffffff16600561096890919063ffffffff16565b6113c2846115c1565b146113df5760405162461bcd60e51b81526004016102eb90612325565b6113f783602001518584600001518560200151611786565b6114135760405162461bcd60e51b81526004016102eb9061207e565b5060019392505050565b6114288484836115f8565b610d7b8483836115f8565b600061143d61189f565b6114468361127e565b602001519392505050565b805160208083015160408085015160608601516080870151925160009661147c969095949101611e2a565b604051602081830303815290604052805190602001209050919050565b606080826001600160401b03811180156114b257600080fd5b506040519080825280602002602001820160405280156114dc578160200160208202803683370190505b50905060006040516020016114f19190611d68565b604051602081830303815290604052805190602001208160008151811061151457fe5b602090810291909101015260015b81518110156115875781600182038151811061153a57fe5b60200260200101516040516020016115529190611d68565b6040516020818303038152906040528051906020012082828151811061157457fe5b6020908102919091010152600101611522565b5092915050565b600082826040516020016115a3929190611d71565b60405160208183030381529060405280519060200120905092915050565b6000816020015182604001518360600151846080015160405160200161147c9493929190611e62565b602890811b91909117901b90565b61160061189f565b6116098461127e565b9050600061162d82604001516001600160401b0316866112e090919063ffffffff16565b805490915061163b57601081555b8054608083015183510364ffffffffff16106117335760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff9261168992600401611e87565b602060405180830381600087803b1580156116a357600080fd5b505af19250505080156116d3575060408051601f3d908101601f191682019092526116d091810190611b76565b60015b6116df575060006116e2565b90505b8015611729576040830180516001016001600160401b03169081905260808401805164ffffffffff908116606087015285511690526117229087906112e0565b9150611731565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff1985169184019190915261177d86846117f1565b50505050505050565b600083815b83518110156117e55760008482815181106117a257fe5b60209081029190910101519050600186831c81161480156117ce576117c7848361158e565b93506117db565b6117d8828561158e565b93505b505060010161178b565b50909414949350505050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b1795909490939092909187146118375760028a018790555b858a600301541461184a5760038a018690555b5050505050505092915050565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b803561028881612671565b600082601f83011261191a578081fd5b81356001600160401b0381111561192f578182fd5b611942601f8201601f191660200161262c565b915080825283602082850101111561195957600080fd5b8060208401602084013760009082016020015292915050565b80356002811061028857600080fd5b600060a08284031215611992578081fd5b61199c60a061262c565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b038111156119d957600080fd5b6119e58482850161190a565b60808301525092915050565b600060408284031215611a02578081fd5b611a0c604061262c565b9050813581526020808301356001600160401b03811115611a2c57600080fd5b8301601f81018513611a3d57600080fd5b8035611a50611a4b82612652565b61262c565b8181528381019083850185840285018601891015611a6d57600080fd5b600094505b83851015611a90578035835260019490940193918501918501611a72565b508085870152505050505092915050565b600060a08284031215611ab2578081fd5b611abc60a061262c565b90508135611ac981612689565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b038111156119d957600080fd5b600060208284031215611b15578081fd5b81516112f981612671565b600080600060608486031215611b34578182fd5b8335611b3f81612671565b92506020840135915060408401356001600160401b03811115611b60578182fd5b611b6c8682870161190a565b9150509250925092565b600060208284031215611b87578081fd5b81516112f981612689565b600060208284031215611ba3578081fd5b81356001600160401b03811115611bb8578182fd5b6102c08482850161190a565b60008060008060808587031215611bd9578081fd5b84356001600160401b0380821115611bef578283fd5b9086019060e08289031215611c02578283fd5b611c0c60e061262c565b8235815260208301356020820152611c278960408501611972565b6040820152611c3989606085016118ff565b6060820152611c4b89608085016118ff565b608082015260a083013560a082015260c083013582811115611c6b578485fd5b611c778a82860161190a565b60c08301525095506020870135915080821115611c92578283fd5b611c9e88838901611aa1565b94506040870135915080821115611cb3578283fd5b611cbf88838901611981565b93506060870135915080821115611cd4578283fd5b50611ce1878288016119f1565b91505092959194509250565b600060208284031215611cfe578081fd5b5035919050565b600060208284031215611d16578081fd5b5051919050565b60008151808452815b81811015611d4257602081850181015186830182015201611d26565b81811115611d535782602083870101525b50601f01601f19169290920160200192915050565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611dc690830184611d1d565b9695505050505050565b6001600160a01b038781168252861660208201526040810185905260c060608201819052600090611e0390830186611d1d565b64ffffffffff9490941660808301525060a00152949350505050565b901515815260200190565b6000861515825285602083015284604083015283606083015260a06080830152611e5760a0830184611d1d565b979650505050505050565b600085825284602083015283604083015260806060830152611dc66080830184611d1d565b91825264ffffffffff16602082015260400190565b6000602082526112f96020830184611d1d565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b6020808252602e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e20696e60408201526d31b63ab9b4b7b710383937b7b31760911b606082015260800190565b6020808252601e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e2e0000604082015260600190565b60208082526028908201527f4d7573742070726f76696465206174206c65617374206f6e652062617463682060408201526731b7b73a32bc3a1760c11b606082015260800190565b6020808252602e908201527f4e6f7420616c6c2073657175656e636572207472616e73616374696f6e73207760408201526d32b93290383937b1b2b9b9b2b21760911b606082015260800190565b6020808252604a908201527f41637475616c207472616e73616374696f6e20696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420746f74616c20656c656d656e7473206060820152693a379030b83832b7321760b11b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526029908201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f6040820152681032b738bab2bab29760b91b606082015260800190565b6020808252604d908201527f5175657565207472616e73616374696f6e732063616e6e6f742062652073756260408201527f6d697474656420647572696e67207468652073657175656e63657220696e636c60608201526c3ab9b4b7b7103832b934b7b21760991b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b6020808252602d908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460408201526c34329029b2b8bab2b731b2b91760991b606082015260800190565b6020808252601a908201527f496e76616c6964205175657565207472616e73616374696f6e2e000000000000604082015260600190565b60208082526039908201527f5472616e73616374696f6e2065786365656473206d6178696d756d20726f6c6c60408201527f7570207472616e73616374696f6e20646174612073697a652e00000000000000606082015260800190565b60208082526028908201527f4d75737420617070656e64206d6f7265207468616e207a65726f207472616e7360408201526730b1ba34b7b7399760c11b606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b6020808252602b908201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60408201526a34ba34b73390313ab9371760a91b606082015260800190565b6020808252602a908201527f496e76616c6964205175657565207472616e73616374696f6e20696e636c757360408201526934b7b710383937b7b31760b11b606082015260800190565b6020808252602a908201527f53657175656e636572207472616e73616374696f6e732074696d657374616d70604082015269103a37b7903434b3b41760b11b606082015260800190565b6020808252602c908201527f53657175656e636572207472616e73616374696f6e7320626c6f636b4e756d6260408201526b32b9103a37b7903434b3b41760a11b606082015260800190565b60208082526021908201527f4d75737420617070656e64206174206c65617374206f6e6520656c656d656e746040820152601760f91b606082015260800190565b60208082526043908201527f4f6c6465722071756575652062617463686573206d7573742062652070726f6360408201527f6573736564206265666f72652061206e65772073657175656e6365722062617460608201526231b41760e91b608082015260a00190565b60208082526022908201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f76696465604082015261321760f11b606082015260800190565b60208082526029908201527f4e6f7420656e6f75676820717565756564207472616e73616374696f6e732074604082015268379030b83832b7321760b91b606082015260800190565b8151815260208083015164ffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b64ffffffffff91909116815260200190565b64ffffffffff9384168152919092166020820152604081019190915260600190565b6040518181016001600160401b038111828210171561264a57600080fd5b604052919050565b60006001600160401b03821115612667578081fd5b5060209081020190565b6001600160a01b038116811461268657600080fd5b50565b801515811461268657600080fdfea2646970667358221220403533dbd9fc0ce50adae8b43fa54e999ad0625fcd0c275b90685830f57ab00064736f6c63430007000033",
"bytecode": "0x60806040523480156200001157600080fd5b5060405162002a8a38038062002a8a8339810160408190526200003491620002ed565b600080546001600160a01b0319166001600160a01b03841617905560408051808201909152600d81526c27ab26afa9b2b8bab2b731b2b960991b60208201526200007e90620001fb565b600360006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620000c860405180606001604052806022815260200162002a6860229139620001fb565b600480546001600160a01b0319166001600160a01b0392909216919091179055600181905560408051808201909152601881527f4f564d5f5374617465436f6d6d69746d656e74436861696e000000000000000060208201526200016e906010907f9413776a3b6f36bbb044c745c87ab6e7ffed37fc3ab60731591a70782169714d906200015690620001fb565b60056200028860201b6200092a17909392919060201c565b620001f360107f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c55620001db6040518060400160405280601881526020017f4f564d5f5374617465436f6d6d69746d656e74436861696e0000000000000000815250620001fb60201b60201c565b600d6200028860201b6200092a17909392919060201c565b50506200037d565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906200022e90859060040162000327565b60206040518083038186803b1580156200024757600080fd5b505afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002829190620002bd565b92915050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b600060208284031215620002cf578081fd5b81516001600160a01b0381168114620002e6578182fd5b9392505050565b6000806040838503121562000300578081fd5b82516001600160a01b038116811462000317578182fd5b6020939093015192949293505050565b6000602080835283518082850152825b81811015620003555785810183015185820160400152820162000337565b81811115620003675783604083870101525b50601f01601f1916929092016040019392505050565b6126db806200038d6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637aa63a86116100715780637aa63a8614610161578063876ed5cb14610169578063c2cf696f14610171578063d0f8934414610179578063e561dddc14610181578063facdc5da14610189576100b4565b80632a7f18be146100b9578063461a4478146100e25780634de569ce146101025780636fee07e01461012257806378f4b2f2146101375780637a167a8a1461014c575b600080fd5b6100cc6100c7366004611cfb565b61019c565b6040516100d991906125c2565b60405180910390f35b6100f56100f0366004611ba0565b610207565b6040516100d99190611d8d565b610115610110366004611bd2565b61028e565b6040516100d99190611e2d565b610135610130366004611b2e565b6102c8565b005b61013f610406565b6040516100d99190611d76565b61015461040c565b6040516100d99190612606565b61013f61041e565b61013f610437565b61013f61043d565b610135610442565b61013f610781565b610135610197366004611cfb565b610799565b6101a4611865565b6002820260006101bc600d64ffffffffff841661095f565b905060006101d5600d64ffffffffff600186011661095f565b6040805160608101825293845264ffffffffff808316602086015260289290921c90911690830152509150505b919050565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190610238908590600401611eaa565b60206040518083038186803b15801561025057600080fd5b505afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102889190611b12565b92915050565b82516000901515600114156102b0576102a985858585610abd565b90506102c0565b6102a98585602001518585610c65565b949350505050565b612710815111156102f45760405162461bcd60e51b81526004016102eb9061228e565b60405180910390fd5b614e208210156103165760405162461bcd60e51b81526004016102eb906120f1565b600a820460005a905081811161033e5760405162461bcd60e51b81526004016102eb90612362565b60005b825a8303101561035357600101610341565b60003387878760405160200161036c9493929190611da1565b60408051601f19818403018152919052805160209091012090504360281b4217610398600d8383610d44565b600060026103a6600d610d78565b64ffffffffff16816103b457fe5b0490507f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb5338a8a8a60018603426040516103f396959493929190611dde565b60405180910390a1505050505050505050565b614e2081565b600080610417610d93565b9250505090565b600080610429610d93565b5064ffffffffff1691505090565b61271081565b600a81565b60043560d81c60093560e890811c90600c35901c61045e61041e565b8364ffffffffff16146104835760405162461bcd60e51b81526004016102eb906121ad565b6003546001600160a01b031633146104ad5760405162461bcd60e51b81526004016102eb9061220a565b60008162ffffff16116104d25760405162461bcd60e51b81526004016102eb90611f86565b60008262ffffff16116104f75760405162461bcd60e51b81526004016102eb9061248d565b600f601062ffffff831602013664ffffffffff821681101561052b5760405162461bcd60e51b81526004016102eb90612537565b60608462ffffff166001600160401b038111801561054857600080fd5b50604051908082528060200260200182016040528015610572578160200160208202803683370190505b509050600080600061058261040c565b9050600061058e610dba565b905060005b8862ffffff168163ffffffff1610156106b1576105ae611885565b6105bd8263ffffffff16610ddc565b90506105c98185610e2c565b60005b815163ffffffff8216101561062757893560e81c6105f28364ffffffffff8d1683610ef2565b898963ffffffff168151811061060457fe5b6020908102919091010152999099016003019860019687019695860195016105cc565b5060005b81602001518163ffffffff1610156106a7578364ffffffffff168564ffffffffff161061066a5760405162461bcd60e51b81526004016102eb90612579565b61067a8564ffffffffff16610f7c565b888863ffffffff168151811061068c57fe5b6020908102919091010152600196870196948501940161062b565b5050600101610593565b508664ffffffffff1686146106d85760405162461bcd60e51b81526004016102eb90611fce565b8862ffffff168463ffffffff16146107025760405162461bcd60e51b81526004016102eb9061201c565b63ffffffff62ffffff8a168490031661073061071d87610fc1565b8b62ffffff168364ffffffffff166111d6565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f8998184038261075d61041e565b60405161076c93929190612618565b60405180910390a15050505050505050505050565b600061078d6005610d78565b64ffffffffff16905090565b60006107a361040c565b905060006107af610dba565b90506107c48383830364ffffffffff16611275565b9250600083116107e65760405162461bcd60e51b81526004016102eb906122eb565b6060836001600160401b03811180156107fe57600080fd5b50604051908082528060200260200182016040528015610828578160200160208202803683370190505b50905060005b848110156108c5576003546001600160a01b0316331461089257610850611865565b6108608564ffffffffff1661019c565b905042600154826020015164ffffffffff1601106108905760405162461bcd60e51b81526004016102eb9061213a565b505b6108a28464ffffffffff16610f7c565b8282815181106108ae57fe5b60209081029190910101526001938401930161082e565b506108d96108d282610fc1565b85866111d6565b7f64d7f508348c70dea42d5302a393987e4abc20e45954ab3f9d320207751956f0848464ffffffffff16038561090d61041e565b60405161091c939291906125f0565b60405180910390a150505050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b60006109696118ad565b6109728461128c565b805190915064ffffffffff16831061099c5760405162461bcd60e51b81526004016102eb906120c3565b60006109be82604001516001600160401b0316866112ee90919063ffffffff16565b905060006109e583604001516001016001600160401b0316876112ee90919063ffffffff16565b9050826080015164ffffffffff168510610a46576080830151825464ffffffffff9091168603908110610a2a5760405162461bcd60e51b81526004016102eb906120c3565b6000908152600190920160205250604090205491506102889050565b6080830151606084015164ffffffffff9182168781039290911610610a7d5760405162461bcd60e51b81526004016102eb906120c3565b8154811115610a9e5760405162461bcd60e51b81526004016102eb906120c3565b8154036000908152600190910160205260409020549250610288915050565b600080610af56040518060400160405280601481526020017327ab26afa2bc32b1baba34b7b726b0b730b3b2b960611b815250610207565b90506000816001600160a01b0316631c4712a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3257600080fd5b505afa158015610b46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6a9190611d13565b90506000610b778761130e565b9050610b848187876113a7565b610ba05760405162461bcd60e51b81526004016102eb90611f01565b86606001518860200151148015610bbb575060408701518851145b8015610bd9575060045460808901516001600160a01b039081169116145b8015610be85750818860a00151145b8015610bff575060608801516001600160a01b0316155b8015610c1a5750600088604001516001811115610c1857fe5b145b8015610c3b57508660800151805190602001208860c0015180519060200120145b610c575760405162461bcd60e51b81526004016102eb90611f4f565b506001979650505050505050565b600080610c758360000151610f7c565b9050610c828185856113a7565b610c9e5760405162461bcd60e51b81526004016102eb906123ad565b6000866060015187608001518860a001518960c00151604051602001610cc79493929190611da1565b604051602081830303815290604052805190602001209050610ce7611865565b610cf08761019c565b805190915082148015610d0e57508751602082015164ffffffffff16145b8015610d2857508760200151816040015164ffffffffff16145b610c575760405162461bcd60e51b81526004016102eb90612257565b610d4c6118ad565b610d558461128c565b9050610d72838383602001518761142b909392919063ffffffff16565b50505050565b6000610d826118ad565b610d8b8361128c565b519392505050565b6000806000610da26005611441565b64ffffffffff602882901c16935060501c9150509091565b60006002610dc8600d610d78565b64ffffffffff1681610dd657fe5b04905090565b610de4611885565b5060408051608081018252601092909202600f81013560e890811c84526012820135901c6020840152601581013560d890811c92840192909252601a0135901c606082015290565b610e36600d610d78565b64ffffffffff16610e4657610eee565b610e4e611865565b610e5e8264ffffffffff1661019c565b9050600154816020015164ffffffffff16014210610e8e5760405162461bcd60e51b81526004016102eb906124ce565b806020015164ffffffffff1683604001511115610ebd5760405162461bcd60e51b81526004016102eb906123f7565b806040015164ffffffffff1683606001511115610eec5760405162461bcd60e51b81526004016102eb90612441565b505b5050565b60006060826041016001600160401b0381118015610f0f57600080fd5b506040519080825280601f01601f191660200182016040528015610f3a576020820181803683370190505b50604086015160608701519192509060006020840160018153836001820152826021820152866003890160418301376041870190209450505050509392505050565b60006102886040518060a0016040528060001515815260200184815260200160008152602001600081526020016040518060200160405280600081525081525061145f565b600080825111610fe35760405162461bcd60e51b81526004016102eb90611ebd565b8151600114156110095781600081518110610ffa57fe5b60200260200101519050610202565b606061101583516114a7565b8351909150839060029006600114156110b05783516001016001600160401b038111801561104257600080fd5b5060405190808252806020026020018201604052801561106c578160200160208202803683370190505b50905060005b84518110156110ae5784818151811061108757fe5b602002602001015182828151811061109b57fe5b6020908102919091010152600101611072565b505b835160009060028106600114156110f0578382815181106110cd57fe5b60200260200101518382815181106110e157fe5b60209081029190910101526001015b60018111156111b65760018201915060005b600282048110156111655761114684826002028151811061111f57fe5b602002602001015185836002026001018151811061113957fe5b602002602001015161159c565b84828151811061115257fe5b6020908102919091010152600101611102565b5060029004600180821614801561117d575080600114155b156111b15783828151811061118e57fe5b60200260200101518382815181106111a257fe5b60209081029190910101526001015b6110f0565b826000815181106111c357fe5b6020026020010151945050505050919050565b6000806111e1610d93565b915091506111ed6118db565b6040518060a001604052806112026005610d78565b64ffffffffff1681526020018781526020018681526020018464ffffffffff1681526020016040518060200160405280600081525081525090506000611247826115cf565b9050600061125d836040015186018786016115f8565b905061126b60058383611606565b5050505050505050565b600081831015611286575081610288565b50919050565b6112946118ad565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b600060028206156113025782600601611307565b826004015b9392505050565b60808101518051600091906060604182016001600160401b038111801561133457600080fd5b506040519080825280601f01601f19166020018201604052801561135f576020820181803683370190505b5060408601516060870151919250906000602084016001815383600182015282602182015285604182018760208a0160045afa50604190950190942095505050505050919050565b60006113c7836000015163ffffffff16600561095f90919063ffffffff16565b6113d0846115cf565b146113ed5760405162461bcd60e51b81526004016102eb90612333565b61140583602001518584600001518560200151611794565b6114215760405162461bcd60e51b81526004016102eb9061208c565b5060019392505050565b611436848483611606565b610d72848383611606565b600061144b6118ad565b6114548361128c565b602001519392505050565b805160208083015160408085015160608601516080870151925160009661148a969095949101611e38565b604051602081830303815290604052805190602001209050919050565b606080826001600160401b03811180156114c057600080fd5b506040519080825280602002602001820160405280156114ea578160200160208202803683370190505b50905060006040516020016114ff9190611d76565b604051602081830303815290604052805190602001208160008151811061152257fe5b602090810291909101015260015b81518110156115955781600182038151811061154857fe5b60200260200101516040516020016115609190611d76565b6040516020818303038152906040528051906020012082828151811061158257fe5b6020908102919091010152600101611530565b5092915050565b600082826040516020016115b1929190611d7f565b60405160208183030381529060405280519060200120905092915050565b6000816020015182604001518360600151846080015160405160200161148a9493929190611e70565b602890811b91909117901b90565b61160e6118ad565b6116178461128c565b9050600061163b82604001516001600160401b0316866112ee90919063ffffffff16565b805490915061164957601081555b8054608083015183510364ffffffffff16106117415760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff9261169792600401611e95565b602060405180830381600087803b1580156116b157600080fd5b505af19250505080156116e1575060408051601f3d908101601f191682019092526116de91810190611b84565b60015b6116ed575060006116f0565b90505b8015611737576040830180516001016001600160401b03169081905260808401805164ffffffffff908116606087015285511690526117309087906112ee565b915061173f565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff1985169184019190915261178b86846117ff565b50505050505050565b600083815b83518110156117f35760008482815181106117b057fe5b60209081029190910101519050600186831c81161480156117dc576117d5848361159c565b93506117e9565b6117e6828561159c565b93505b5050600101611799565b50909414949350505050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b1795909490939092909187146118455760028a018790555b858a60030154146118585760038a018690555b5050505050505092915050565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b80356102888161267f565b600082601f830112611928578081fd5b81356001600160401b0381111561193d578182fd5b611950601f8201601f191660200161263a565b915080825283602082850101111561196757600080fd5b8060208401602084013760009082016020015292915050565b80356002811061028857600080fd5b600060a082840312156119a0578081fd5b6119aa60a061263a565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b038111156119e757600080fd5b6119f384828501611918565b60808301525092915050565b600060408284031215611a10578081fd5b611a1a604061263a565b9050813581526020808301356001600160401b03811115611a3a57600080fd5b8301601f81018513611a4b57600080fd5b8035611a5e611a5982612660565b61263a565b8181528381019083850185840285018601891015611a7b57600080fd5b600094505b83851015611a9e578035835260019490940193918501918501611a80565b508085870152505050505092915050565b600060a08284031215611ac0578081fd5b611aca60a061263a565b90508135611ad781612697565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b038111156119e757600080fd5b600060208284031215611b23578081fd5b81516113078161267f565b600080600060608486031215611b42578182fd5b8335611b4d8161267f565b92506020840135915060408401356001600160401b03811115611b6e578182fd5b611b7a86828701611918565b9150509250925092565b600060208284031215611b95578081fd5b815161130781612697565b600060208284031215611bb1578081fd5b81356001600160401b03811115611bc6578182fd5b6102c084828501611918565b60008060008060808587031215611be7578081fd5b84356001600160401b0380821115611bfd578283fd5b9086019060e08289031215611c10578283fd5b611c1a60e061263a565b8235815260208301356020820152611c358960408501611980565b6040820152611c47896060850161190d565b6060820152611c59896080850161190d565b608082015260a083013560a082015260c083013582811115611c79578485fd5b611c858a828601611918565b60c08301525095506020870135915080821115611ca0578283fd5b611cac88838901611aaf565b94506040870135915080821115611cc1578283fd5b611ccd8883890161198f565b93506060870135915080821115611ce2578283fd5b50611cef878288016119ff565b91505092959194509250565b600060208284031215611d0c578081fd5b5035919050565b600060208284031215611d24578081fd5b5051919050565b60008151808452815b81811015611d5057602081850181015186830182015201611d34565b81811115611d615782602083870101525b50601f01601f19169290920160200192915050565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611dd490830184611d2b565b9695505050505050565b6001600160a01b038781168252861660208201526040810185905260c060608201819052600090611e1190830186611d2b565b64ffffffffff9490941660808301525060a00152949350505050565b901515815260200190565b6000861515825285602083015284604083015283606083015260a06080830152611e6560a0830184611d2b565b979650505050505050565b600085825284602083015283604083015260806060830152611dd46080830184611d2b565b91825264ffffffffff16602082015260400190565b6000602082526113076020830184611d2b565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b6020808252602e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e20696e60408201526d31b63ab9b4b7b710383937b7b31760911b606082015260800190565b6020808252601e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e2e0000604082015260600190565b60208082526028908201527f4d7573742070726f76696465206174206c65617374206f6e652062617463682060408201526731b7b73a32bc3a1760c11b606082015260800190565b6020808252602e908201527f4e6f7420616c6c2073657175656e636572207472616e73616374696f6e73207760408201526d32b93290383937b1b2b9b9b2b21760911b606082015260800190565b6020808252604a908201527f41637475616c207472616e73616374696f6e20696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420746f74616c20656c656d656e7473206060820152693a379030b83832b7321760b11b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526029908201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f6040820152681032b738bab2bab29760b91b606082015260800190565b6020808252604d908201527f5175657565207472616e73616374696f6e732063616e6e6f742062652073756260408201527f6d697474656420647572696e67207468652073657175656e63657220696e636c60608201526c3ab9b4b7b7103832b934b7b21760991b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b6020808252602d908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460408201526c34329029b2b8bab2b731b2b91760991b606082015260800190565b6020808252601a908201527f496e76616c6964205175657565207472616e73616374696f6e2e000000000000604082015260600190565b60208082526039908201527f5472616e73616374696f6e2065786365656473206d6178696d756d20726f6c6c60408201527f7570207472616e73616374696f6e20646174612073697a652e00000000000000606082015260800190565b60208082526028908201527f4d75737420617070656e64206d6f7265207468616e207a65726f207472616e7360408201526730b1ba34b7b7399760c11b606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b6020808252602b908201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60408201526a34ba34b73390313ab9371760a91b606082015260800190565b6020808252602a908201527f496e76616c6964205175657565207472616e73616374696f6e20696e636c757360408201526934b7b710383937b7b31760b11b606082015260800190565b6020808252602a908201527f53657175656e636572207472616e73616374696f6e732074696d657374616d70604082015269103a37b7903434b3b41760b11b606082015260800190565b6020808252602c908201527f53657175656e636572207472616e73616374696f6e7320626c6f636b4e756d6260408201526b32b9103a37b7903434b3b41760a11b606082015260800190565b60208082526021908201527f4d75737420617070656e64206174206c65617374206f6e6520656c656d656e746040820152601760f91b606082015260800190565b60208082526043908201527f4f6c6465722071756575652062617463686573206d7573742062652070726f6360408201527f6573736564206265666f72652061206e65772073657175656e6365722062617460608201526231b41760e91b608082015260a00190565b60208082526022908201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f76696465604082015261321760f11b606082015260800190565b60208082526029908201527f4e6f7420656e6f75676820717565756564207472616e73616374696f6e732074604082015268379030b83832b7321760b91b606082015260800190565b8151815260208083015164ffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b64ffffffffff91909116815260200190565b64ffffffffff9384168152919092166020820152604081019190915260600190565b6040518181016001600160401b038111828210171561265857600080fd5b604052919050565b60006001600160401b03821115612675578081fd5b5060209081020190565b6001600160a01b038116811461269457600080fd5b50565b801515811461269457600080fdfea2646970667358221220c28ea1d4fec19fd9a60c8616654f65540ab535fd58f183cb967a86386cec32a764736f6c634300070000334f564d5f4465636f6d7072657373696f6e507265636f6d70696c6541646472657373",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637aa63a86116100715780637aa63a8614610161578063876ed5cb14610169578063c2cf696f14610171578063d0f8934414610179578063e561dddc14610181578063facdc5da14610189576100b4565b80632a7f18be146100b9578063461a4478146100e25780634de569ce146101025780636fee07e01461012257806378f4b2f2146101375780637a167a8a1461014c575b600080fd5b6100cc6100c7366004611cfb565b61019c565b6040516100d991906125c2565b60405180910390f35b6100f56100f0366004611ba0565b610207565b6040516100d99190611d8d565b610115610110366004611bd2565b61028e565b6040516100d99190611e2d565b610135610130366004611b2e565b6102c8565b005b61013f610406565b6040516100d99190611d76565b61015461040c565b6040516100d99190612606565b61013f61041e565b61013f610437565b61013f61043d565b610135610442565b61013f610781565b610135610197366004611cfb565b610799565b6101a4611865565b6002820260006101bc600d64ffffffffff841661095f565b905060006101d5600d64ffffffffff600186011661095f565b6040805160608101825293845264ffffffffff808316602086015260289290921c90911690830152509150505b919050565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190610238908590600401611eaa565b60206040518083038186803b15801561025057600080fd5b505afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102889190611b12565b92915050565b82516000901515600114156102b0576102a985858585610abd565b90506102c0565b6102a98585602001518585610c65565b949350505050565b612710815111156102f45760405162461bcd60e51b81526004016102eb9061228e565b60405180910390fd5b614e208210156103165760405162461bcd60e51b81526004016102eb906120f1565b600a820460005a905081811161033e5760405162461bcd60e51b81526004016102eb90612362565b60005b825a8303101561035357600101610341565b60003387878760405160200161036c9493929190611da1565b60408051601f19818403018152919052805160209091012090504360281b4217610398600d8383610d44565b600060026103a6600d610d78565b64ffffffffff16816103b457fe5b0490507f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb5338a8a8a60018603426040516103f396959493929190611dde565b60405180910390a1505050505050505050565b614e2081565b600080610417610d93565b9250505090565b600080610429610d93565b5064ffffffffff1691505090565b61271081565b600a81565b60043560d81c60093560e890811c90600c35901c61045e61041e565b8364ffffffffff16146104835760405162461bcd60e51b81526004016102eb906121ad565b6003546001600160a01b031633146104ad5760405162461bcd60e51b81526004016102eb9061220a565b60008162ffffff16116104d25760405162461bcd60e51b81526004016102eb90611f86565b60008262ffffff16116104f75760405162461bcd60e51b81526004016102eb9061248d565b600f601062ffffff831602013664ffffffffff821681101561052b5760405162461bcd60e51b81526004016102eb90612537565b60608462ffffff166001600160401b038111801561054857600080fd5b50604051908082528060200260200182016040528015610572578160200160208202803683370190505b509050600080600061058261040c565b9050600061058e610dba565b905060005b8862ffffff168163ffffffff1610156106b1576105ae611885565b6105bd8263ffffffff16610ddc565b90506105c98185610e2c565b60005b815163ffffffff8216101561062757893560e81c6105f28364ffffffffff8d1683610ef2565b898963ffffffff168151811061060457fe5b6020908102919091010152999099016003019860019687019695860195016105cc565b5060005b81602001518163ffffffff1610156106a7578364ffffffffff168564ffffffffff161061066a5760405162461bcd60e51b81526004016102eb90612579565b61067a8564ffffffffff16610f7c565b888863ffffffff168151811061068c57fe5b6020908102919091010152600196870196948501940161062b565b5050600101610593565b508664ffffffffff1686146106d85760405162461bcd60e51b81526004016102eb90611fce565b8862ffffff168463ffffffff16146107025760405162461bcd60e51b81526004016102eb9061201c565b63ffffffff62ffffff8a168490031661073061071d87610fc1565b8b62ffffff168364ffffffffff166111d6565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f8998184038261075d61041e565b60405161076c93929190612618565b60405180910390a15050505050505050505050565b600061078d6005610d78565b64ffffffffff16905090565b60006107a361040c565b905060006107af610dba565b90506107c48383830364ffffffffff16611275565b9250600083116107e65760405162461bcd60e51b81526004016102eb906122eb565b6060836001600160401b03811180156107fe57600080fd5b50604051908082528060200260200182016040528015610828578160200160208202803683370190505b50905060005b848110156108c5576003546001600160a01b0316331461089257610850611865565b6108608564ffffffffff1661019c565b905042600154826020015164ffffffffff1601106108905760405162461bcd60e51b81526004016102eb9061213a565b505b6108a28464ffffffffff16610f7c565b8282815181106108ae57fe5b60209081029190910101526001938401930161082e565b506108d96108d282610fc1565b85866111d6565b7f64d7f508348c70dea42d5302a393987e4abc20e45954ab3f9d320207751956f0848464ffffffffff16038561090d61041e565b60405161091c939291906125f0565b60405180910390a150505050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b60006109696118ad565b6109728461128c565b805190915064ffffffffff16831061099c5760405162461bcd60e51b81526004016102eb906120c3565b60006109be82604001516001600160401b0316866112ee90919063ffffffff16565b905060006109e583604001516001016001600160401b0316876112ee90919063ffffffff16565b9050826080015164ffffffffff168510610a46576080830151825464ffffffffff9091168603908110610a2a5760405162461bcd60e51b81526004016102eb906120c3565b6000908152600190920160205250604090205491506102889050565b6080830151606084015164ffffffffff9182168781039290911610610a7d5760405162461bcd60e51b81526004016102eb906120c3565b8154811115610a9e5760405162461bcd60e51b81526004016102eb906120c3565b8154036000908152600190910160205260409020549250610288915050565b600080610af56040518060400160405280601481526020017327ab26afa2bc32b1baba34b7b726b0b730b3b2b960611b815250610207565b90506000816001600160a01b0316631c4712a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3257600080fd5b505afa158015610b46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6a9190611d13565b90506000610b778761130e565b9050610b848187876113a7565b610ba05760405162461bcd60e51b81526004016102eb90611f01565b86606001518860200151148015610bbb575060408701518851145b8015610bd9575060045460808901516001600160a01b039081169116145b8015610be85750818860a00151145b8015610bff575060608801516001600160a01b0316155b8015610c1a5750600088604001516001811115610c1857fe5b145b8015610c3b57508660800151805190602001208860c0015180519060200120145b610c575760405162461bcd60e51b81526004016102eb90611f4f565b506001979650505050505050565b600080610c758360000151610f7c565b9050610c828185856113a7565b610c9e5760405162461bcd60e51b81526004016102eb906123ad565b6000866060015187608001518860a001518960c00151604051602001610cc79493929190611da1565b604051602081830303815290604052805190602001209050610ce7611865565b610cf08761019c565b805190915082148015610d0e57508751602082015164ffffffffff16145b8015610d2857508760200151816040015164ffffffffff16145b610c575760405162461bcd60e51b81526004016102eb90612257565b610d4c6118ad565b610d558461128c565b9050610d72838383602001518761142b909392919063ffffffff16565b50505050565b6000610d826118ad565b610d8b8361128c565b519392505050565b6000806000610da26005611441565b64ffffffffff602882901c16935060501c9150509091565b60006002610dc8600d610d78565b64ffffffffff1681610dd657fe5b04905090565b610de4611885565b5060408051608081018252601092909202600f81013560e890811c84526012820135901c6020840152601581013560d890811c92840192909252601a0135901c606082015290565b610e36600d610d78565b64ffffffffff16610e4657610eee565b610e4e611865565b610e5e8264ffffffffff1661019c565b9050600154816020015164ffffffffff16014210610e8e5760405162461bcd60e51b81526004016102eb906124ce565b806020015164ffffffffff1683604001511115610ebd5760405162461bcd60e51b81526004016102eb906123f7565b806040015164ffffffffff1683606001511115610eec5760405162461bcd60e51b81526004016102eb90612441565b505b5050565b60006060826041016001600160401b0381118015610f0f57600080fd5b506040519080825280601f01601f191660200182016040528015610f3a576020820181803683370190505b50604086015160608701519192509060006020840160018153836001820152826021820152866003890160418301376041870190209450505050509392505050565b60006102886040518060a0016040528060001515815260200184815260200160008152602001600081526020016040518060200160405280600081525081525061145f565b600080825111610fe35760405162461bcd60e51b81526004016102eb90611ebd565b8151600114156110095781600081518110610ffa57fe5b60200260200101519050610202565b606061101583516114a7565b8351909150839060029006600114156110b05783516001016001600160401b038111801561104257600080fd5b5060405190808252806020026020018201604052801561106c578160200160208202803683370190505b50905060005b84518110156110ae5784818151811061108757fe5b602002602001015182828151811061109b57fe5b6020908102919091010152600101611072565b505b835160009060028106600114156110f0578382815181106110cd57fe5b60200260200101518382815181106110e157fe5b60209081029190910101526001015b60018111156111b65760018201915060005b600282048110156111655761114684826002028151811061111f57fe5b602002602001015185836002026001018151811061113957fe5b602002602001015161159c565b84828151811061115257fe5b6020908102919091010152600101611102565b5060029004600180821614801561117d575080600114155b156111b15783828151811061118e57fe5b60200260200101518382815181106111a257fe5b60209081029190910101526001015b6110f0565b826000815181106111c357fe5b6020026020010151945050505050919050565b6000806111e1610d93565b915091506111ed6118db565b6040518060a001604052806112026005610d78565b64ffffffffff1681526020018781526020018681526020018464ffffffffff1681526020016040518060200160405280600081525081525090506000611247826115cf565b9050600061125d836040015186018786016115f8565b905061126b60058383611606565b5050505050505050565b600081831015611286575081610288565b50919050565b6112946118ad565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b600060028206156113025782600601611307565b826004015b9392505050565b60808101518051600091906060604182016001600160401b038111801561133457600080fd5b506040519080825280601f01601f19166020018201604052801561135f576020820181803683370190505b5060408601516060870151919250906000602084016001815383600182015282602182015285604182018760208a0160045afa50604190950190942095505050505050919050565b60006113c7836000015163ffffffff16600561095f90919063ffffffff16565b6113d0846115cf565b146113ed5760405162461bcd60e51b81526004016102eb90612333565b61140583602001518584600001518560200151611794565b6114215760405162461bcd60e51b81526004016102eb9061208c565b5060019392505050565b611436848483611606565b610d72848383611606565b600061144b6118ad565b6114548361128c565b602001519392505050565b805160208083015160408085015160608601516080870151925160009661148a969095949101611e38565b604051602081830303815290604052805190602001209050919050565b606080826001600160401b03811180156114c057600080fd5b506040519080825280602002602001820160405280156114ea578160200160208202803683370190505b50905060006040516020016114ff9190611d76565b604051602081830303815290604052805190602001208160008151811061152257fe5b602090810291909101015260015b81518110156115955781600182038151811061154857fe5b60200260200101516040516020016115609190611d76565b6040516020818303038152906040528051906020012082828151811061158257fe5b6020908102919091010152600101611530565b5092915050565b600082826040516020016115b1929190611d7f565b60405160208183030381529060405280519060200120905092915050565b6000816020015182604001518360600151846080015160405160200161148a9493929190611e70565b602890811b91909117901b90565b61160e6118ad565b6116178461128c565b9050600061163b82604001516001600160401b0316866112ee90919063ffffffff16565b805490915061164957601081555b8054608083015183510364ffffffffff16106117415760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff9261169792600401611e95565b602060405180830381600087803b1580156116b157600080fd5b505af19250505080156116e1575060408051601f3d908101601f191682019092526116de91810190611b84565b60015b6116ed575060006116f0565b90505b8015611737576040830180516001016001600160401b03169081905260808401805164ffffffffff908116606087015285511690526117309087906112ee565b915061173f565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff1985169184019190915261178b86846117ff565b50505050505050565b600083815b83518110156117f35760008482815181106117b057fe5b60209081029190910101519050600186831c81161480156117dc576117d5848361159c565b93506117e9565b6117e6828561159c565b93505b5050600101611799565b50909414949350505050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b1795909490939092909187146118455760028a018790555b858a60030154146118585760038a018690555b5050505050505092915050565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b80356102888161267f565b600082601f830112611928578081fd5b81356001600160401b0381111561193d578182fd5b611950601f8201601f191660200161263a565b915080825283602082850101111561196757600080fd5b8060208401602084013760009082016020015292915050565b80356002811061028857600080fd5b600060a082840312156119a0578081fd5b6119aa60a061263a565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b038111156119e757600080fd5b6119f384828501611918565b60808301525092915050565b600060408284031215611a10578081fd5b611a1a604061263a565b9050813581526020808301356001600160401b03811115611a3a57600080fd5b8301601f81018513611a4b57600080fd5b8035611a5e611a5982612660565b61263a565b8181528381019083850185840285018601891015611a7b57600080fd5b600094505b83851015611a9e578035835260019490940193918501918501611a80565b508085870152505050505092915050565b600060a08284031215611ac0578081fd5b611aca60a061263a565b90508135611ad781612697565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b038111156119e757600080fd5b600060208284031215611b23578081fd5b81516113078161267f565b600080600060608486031215611b42578182fd5b8335611b4d8161267f565b92506020840135915060408401356001600160401b03811115611b6e578182fd5b611b7a86828701611918565b9150509250925092565b600060208284031215611b95578081fd5b815161130781612697565b600060208284031215611bb1578081fd5b81356001600160401b03811115611bc6578182fd5b6102c084828501611918565b60008060008060808587031215611be7578081fd5b84356001600160401b0380821115611bfd578283fd5b9086019060e08289031215611c10578283fd5b611c1a60e061263a565b8235815260208301356020820152611c358960408501611980565b6040820152611c47896060850161190d565b6060820152611c59896080850161190d565b608082015260a083013560a082015260c083013582811115611c79578485fd5b611c858a828601611918565b60c08301525095506020870135915080821115611ca0578283fd5b611cac88838901611aaf565b94506040870135915080821115611cc1578283fd5b611ccd8883890161198f565b93506060870135915080821115611ce2578283fd5b50611cef878288016119ff565b91505092959194509250565b600060208284031215611d0c578081fd5b5035919050565b600060208284031215611d24578081fd5b5051919050565b60008151808452815b81811015611d5057602081850181015186830182015201611d34565b81811115611d615782602083870101525b50601f01601f19169290920160200192915050565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611dd490830184611d2b565b9695505050505050565b6001600160a01b038781168252861660208201526040810185905260c060608201819052600090611e1190830186611d2b565b64ffffffffff9490941660808301525060a00152949350505050565b901515815260200190565b6000861515825285602083015284604083015283606083015260a06080830152611e6560a0830184611d2b565b979650505050505050565b600085825284602083015283604083015260806060830152611dd46080830184611d2b565b91825264ffffffffff16602082015260400190565b6000602082526113076020830184611d2b565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b6020808252602e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e20696e60408201526d31b63ab9b4b7b710383937b7b31760911b606082015260800190565b6020808252601e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e2e0000604082015260600190565b60208082526028908201527f4d7573742070726f76696465206174206c65617374206f6e652062617463682060408201526731b7b73a32bc3a1760c11b606082015260800190565b6020808252602e908201527f4e6f7420616c6c2073657175656e636572207472616e73616374696f6e73207760408201526d32b93290383937b1b2b9b9b2b21760911b606082015260800190565b6020808252604a908201527f41637475616c207472616e73616374696f6e20696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420746f74616c20656c656d656e7473206060820152693a379030b83832b7321760b11b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526029908201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f6040820152681032b738bab2bab29760b91b606082015260800190565b6020808252604d908201527f5175657565207472616e73616374696f6e732063616e6e6f742062652073756260408201527f6d697474656420647572696e67207468652073657175656e63657220696e636c60608201526c3ab9b4b7b7103832b934b7b21760991b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b6020808252602d908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460408201526c34329029b2b8bab2b731b2b91760991b606082015260800190565b6020808252601a908201527f496e76616c6964205175657565207472616e73616374696f6e2e000000000000604082015260600190565b60208082526039908201527f5472616e73616374696f6e2065786365656473206d6178696d756d20726f6c6c60408201527f7570207472616e73616374696f6e20646174612073697a652e00000000000000606082015260800190565b60208082526028908201527f4d75737420617070656e64206d6f7265207468616e207a65726f207472616e7360408201526730b1ba34b7b7399760c11b606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b6020808252602b908201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60408201526a34ba34b73390313ab9371760a91b606082015260800190565b6020808252602a908201527f496e76616c6964205175657565207472616e73616374696f6e20696e636c757360408201526934b7b710383937b7b31760b11b606082015260800190565b6020808252602a908201527f53657175656e636572207472616e73616374696f6e732074696d657374616d70604082015269103a37b7903434b3b41760b11b606082015260800190565b6020808252602c908201527f53657175656e636572207472616e73616374696f6e7320626c6f636b4e756d6260408201526b32b9103a37b7903434b3b41760a11b606082015260800190565b60208082526021908201527f4d75737420617070656e64206174206c65617374206f6e6520656c656d656e746040820152601760f91b606082015260800190565b60208082526043908201527f4f6c6465722071756575652062617463686573206d7573742062652070726f6360408201527f6573736564206265666f72652061206e65772073657175656e6365722062617460608201526231b41760e91b608082015260a00190565b60208082526022908201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f76696465604082015261321760f11b606082015260800190565b60208082526029908201527f4e6f7420656e6f75676820717565756564207472616e73616374696f6e732074604082015268379030b83832b7321760b91b606082015260800190565b8151815260208083015164ffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b64ffffffffff91909116815260200190565b64ffffffffff9384168152919092166020820152604081019190915260600190565b6040518181016001600160401b038111828210171561265857600080fd5b604052919050565b60006001600160401b03821115612675578081fd5b5060209081020190565b6001600160a01b038116811461269457600080fd5b50565b801515811461269457600080fdfea2646970667358221220c28ea1d4fec19fd9a60c8616654f65540ab535fd58f183cb967a86386cec32a764736f6c63430007000033",
"linkReferences": {},

@@ -435,3 +435,3 @@ "deployedLinkReferences": {},

{
"astId": 17139,
"astId": 17156,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -441,6 +441,6 @@ "label": "libAddressManager",

"slot": "0",
"type": "t_contract(Lib_AddressManager)17132"
"type": "t_contract(Lib_AddressManager)17149"
},
{
"astId": 8867,
"astId": 8887,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -453,3 +453,3 @@ "label": "forceInclusionPeriodSeconds",

{
"astId": 8869,
"astId": 8889,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -462,3 +462,3 @@ "label": "lastOVMTimestamp",

{
"astId": 8871,
"astId": 8891,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -471,3 +471,3 @@ "label": "sequencer",

{
"astId": 8873,
"astId": 8893,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -480,3 +480,3 @@ "label": "decompressionPrecompileAddress",

{
"astId": 8875,
"astId": 8895,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -486,6 +486,6 @@ "label": "batches",

"slot": "5",
"type": "t_struct(RingBuffer)21564_storage"
"type": "t_struct(RingBuffer)21581_storage"
},
{
"astId": 8877,
"astId": 8897,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -495,3 +495,3 @@ "label": "queue",

"slot": "13",
"type": "t_struct(RingBuffer)21564_storage"
"type": "t_struct(RingBuffer)21581_storage"
}

@@ -510,3 +510,3 @@ ],

},
"t_contract(Lib_AddressManager)17132": {
"t_contract(Lib_AddressManager)17149": {
"encoding": "inplace",

@@ -516,3 +516,3 @@ "label": "contract Lib_AddressManager",

},
"t_contract(iRingBufferOverwriter)21541": {
"t_contract(iRingBufferOverwriter)21558": {
"encoding": "inplace",

@@ -529,3 +529,3 @@ "label": "contract iRingBufferOverwriter",

},
"t_struct(Buffer)21551_storage": {
"t_struct(Buffer)21568_storage": {
"encoding": "inplace",

@@ -535,3 +535,3 @@ "label": "struct Lib_RingBuffer.Buffer",

{
"astId": 21546,
"astId": 21563,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -544,3 +544,3 @@ "label": "length",

{
"astId": 21550,
"astId": 21567,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -555,3 +555,3 @@ "label": "buf",

},
"t_struct(RingBuffer)21564_storage": {
"t_struct(RingBuffer)21581_storage": {
"encoding": "inplace",

@@ -561,3 +561,3 @@ "label": "struct Lib_RingBuffer.RingBuffer",

{
"astId": 21553,
"astId": 21570,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -570,3 +570,3 @@ "label": "id",

{
"astId": 21555,
"astId": 21572,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -576,6 +576,6 @@ "label": "overwriter",

"slot": "1",
"type": "t_contract(iRingBufferOverwriter)21541"
"type": "t_contract(iRingBufferOverwriter)21558"
},
{
"astId": 21557,
"astId": 21574,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -588,3 +588,3 @@ "label": "contextA",

{
"astId": 21559,
"astId": 21576,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -597,3 +597,3 @@ "label": "contextB",

{
"astId": 21561,
"astId": 21578,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -603,6 +603,6 @@ "label": "bufferA",

"slot": "4",
"type": "t_struct(Buffer)21551_storage"
"type": "t_struct(Buffer)21568_storage"
},
{
"astId": 21563,
"astId": 21580,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -612,3 +612,3 @@ "label": "bufferB",

"slot": "6",
"type": "t_struct(Buffer)21551_storage"
"type": "t_struct(Buffer)21568_storage"
}

@@ -615,0 +615,0 @@ ],

@@ -11,3 +11,3 @@ {

{
"astId": 14629,
"astId": 14646,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudContributor.sol:OVM_FraudContributor",

@@ -17,7 +17,7 @@ "label": "ovmBondManager",

"slot": "0",
"type": "t_contract(iOVM_BondManager)16545"
"type": "t_contract(iOVM_BondManager)16562"
}
],
"types": {
"t_contract(iOVM_BondManager)16545": {
"t_contract(iOVM_BondManager)16562": {
"encoding": "inplace",

@@ -24,0 +24,0 @@ "label": "contract iOVM_BondManager",

@@ -355,4 +355,4 @@ {

],
"bytecode": "0x60806040523480156200001157600080fd5b506040516200162c3803806200162c8339810160408190526200003491620001f2565b600180546001600160a01b0319166001600160a01b03831617905560408051808201909152601881527f4f564d5f5374617465436f6d6d69746d656e74436861696e000000000000000060208201526200008e9062000165565b600280546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601d81527f4f564d5f43616e6f6e6963616c5472616e73616374696f6e436861696e0000006020820152620000ed9062000165565b600380546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600f81526e27ab26afa137b73226b0b730b3b2b960891b60208201526200013e9062000165565b600080546001600160a01b0319166001600160a01b03929092169190911790555062000278565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906200019890859060040162000222565b60206040518083038186803b158015620001b157600080fd5b505afa158015620001c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ec9190620001f2565b92915050565b60006020828403121562000204578081fd5b81516001600160a01b03811681146200021b578182fd5b9392505050565b6000602080835283518082850152825b81811015620002505785810183015185820160400152820162000232565b81811115620002625783604083870101525b50601f01601f1916929092016040019392505050565b6113a480620002886000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630a70476014610051578063461a44781461006657806398d8867d1461008f578063ffc0e2f4146100a2575b600080fd5b61006461005f366004610bd5565b6100b5565b005b610079610074366004610d88565b6104c5565b6040516100869190610f7a565b60405180910390f35b61006461009d366004610c8f565b61054c565b6100796100b0366004610ba5565b61081e565b8560005a60008981526004602081815260409283902054835163597d0e4f60e11b815293519495506001600160a01b031693849363b2fa1c9e93818101939291829003018186803b15801561010957600080fd5b505afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101419190610b89565b151560011461016b5760405162461bcd60e51b81526004016101629061103f565b60405180910390fd5b865184516001909101146101915760405162461bcd60e51b8152600401610162906111c9565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee57906101c5908c908c908c90600401610fd3565b60206040518083038186803b1580156101dd57600080fd5b505afa1580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190610b89565b6102315760405162461bcd60e51b815260040161016290611182565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee579061026590899089908990600401610fd3565b60206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b59190610b89565b6102d15760405162461bcd60e51b8152600401610162906110ea565b806001600160a01b031663c1c618b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561030a57600080fd5b505afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103429190610bbd565b8614156103615760405162461bcd60e51b815260040161016290611132565b600254604051632e38626b60e21b81526001600160a01b039091169063b8e189ac90610391908890600401611200565b600060405180830381600087803b1580156103ab57600080fd5b505af11580156103bf573d6000803e3d6000fd5b5050505060008086608001518060200190518101906103de9190610dc3565b6000548951604051630c34548960e11b81529395509193506001600160a01b031691631868a91291610419918f919086908890600401611008565b600060405180830381600087803b15801561043357600080fd5b505af1158015610447573d6000803e3d6000fd5b5050505050505060005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e9061048890869033908690600401610fb4565b600060405180830381600087803b1580156104a257600080fd5b505af11580156104b6573d6000803e3d6000fd5b50505050505050505050505050565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906104f690859060040161102c565b60206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190610b66565b92915050565b8660005a905061055b89610839565b15610565576107a6565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee5790610599908c908c908c90600401610fd3565b60206040518083038186803b1580156105b157600080fd5b505afa1580156105c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e99190610b89565b6106055760405162461bcd60e51b815260040161016290611182565b6003546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061063b908990899089908990600401611213565b60206040518083038186803b15801561065357600080fd5b505afa158015610667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068b9190610b89565b6106a75760405162461bcd60e51b8152600401610162906110a6565b6106e56040518060400160405280601c81526020017f4f564d5f53746174655472616e736974696f6e6572466163746f7279000000008152506104c5565b60015488516001600160a01b03928316926322d147029216908c6107088b610856565b6040518563ffffffff1660e01b81526004016107279493929190610f8e565b602060405180830381600087803b15801561074157600080fd5b505af1158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190610b66565b60008a815260046020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b60005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e906107e090869033908690600401610fb4565b600060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b5050505050505050505050505050565b6000908152600460205260409020546001600160a01b031690565b6000908152600460205260409020546001600160a01b0316151590565b60006108618261086f565b805190602001209050919050565b6060816000015182602001518360400151846060015185608001518660a001518760c001516040516020016108aa9796959493929190610f0b565b6040516020818303038152906040529050919050565b803561054681611348565b600082601f8301126108db578081fd5b813567ffffffffffffffff8111156108f1578182fd5b610904601f8201601f19166020016112d1565b915080825283602082850101111561091b57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061054657600080fd5b600060a08284031215610954578081fd5b61095e60a06112d1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b6109a8848285016108cb565b60808301525092915050565b6000604082840312156109c5578081fd5b6109cf60406112d1565b90508135815260208083013567ffffffffffffffff8111156109f057600080fd5b8301601f81018513610a0157600080fd5b8035610a14610a0f826112f8565b6112d1565b8181528381019083850185840285018601891015610a3157600080fd5b600094505b83851015610a54578035835260019490940193918501918501610a36565b508085870152505050505092915050565b600060a08284031215610a76578081fd5b610a8060a06112d1565b90508135610a8d81611360565b80825250602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b600060e08284031215610ada578081fd5b610ae460e06112d1565b90508135815260208201356020820152610b018360408401610934565b6040820152610b1383606084016108c0565b6060820152610b2583608084016108c0565b608082015260a082013560a082015260c082013567ffffffffffffffff811115610b4e57600080fd5b610b5a848285016108cb565b60c08301525092915050565b600060208284031215610b77578081fd5b8151610b8281611348565b9392505050565b600060208284031215610b9a578081fd5b8151610b8281611360565b600060208284031215610bb6578081fd5b5035919050565b600060208284031215610bce578081fd5b5051919050565b60008060008060008060c08789031215610bed578182fd5b86359550602087013567ffffffffffffffff80821115610c0b578384fd5b610c178a838b01610943565b96506040890135915080821115610c2c578384fd5b610c388a838b016109b4565b9550606089013594506080890135915080821115610c54578384fd5b610c608a838b01610943565b935060a0890135915080821115610c75578283fd5b50610c8289828a016109b4565b9150509295509295509295565b600080600080600080600060e0888a031215610ca9578485fd5b87359650602088013567ffffffffffffffff80821115610cc7578687fd5b610cd38b838c01610943565b975060408a0135915080821115610ce8578687fd5b610cf48b838c016109b4565b965060608a0135915080821115610d09578283fd5b610d158b838c01610ac9565b955060808a0135915080821115610d2a578283fd5b610d368b838c01610a65565b945060a08a0135915080821115610d4b578283fd5b610d578b838c01610943565b935060c08a0135915080821115610d6c578283fd5b50610d798a828b016109b4565b91505092959891949750929550565b600060208284031215610d99578081fd5b813567ffffffffffffffff811115610daf578182fd5b610dbb848285016108cb565b949350505050565b60008060408385031215610dd5578182fd5b825191506020830151610de781611348565b809150509250929050565b6001600160a01b03169052565b60008151808452610e17816020860160208601611318565b601f01601f19169290920160200192915050565b60028110610e3557fe5b9052565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015610ec15784518252938301936001929092019190830190610ea1565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b600088825287602083015260028710610f2057fe5b8660f81b60408301526bffffffffffffffffffffffff19808760601b166041840152808660601b166055840152508360698301528251610f67816089850160208701611318565b9190910160890198975050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b600084825260606020830152610fec6060830185610e39565b8281036040840152610ffe8185610e76565b9695505050505050565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600060208252610b826020830184610dff565b60208082526041908201527f5374617465207472616e736974696f6e2070726f63657373206d75737420626560408201527f20636f6d706c65746564207072696f7220746f2066696e616c697a6174696f6e6060820152601760f91b608082015260a00190565b60208082526024908201527f496e76616c6964207472616e73616374696f6e20696e636c7573696f6e20707260408201526337b7b31760e11b606082015260800190565b60208082526028908201527f496e76616c696420706f73742d737461746520726f6f7420696e636c7573696f6040820152673710383937b7b31760c11b606082015260800190565b60208082526030908201527f5374617465207472616e736974696f6e20686173206e6f74206265656e20707260408201526f37bb32b710333930bab23ab632b73a1760811b606082015260800190565b60208082526027908201527f496e76616c6964207072652d737461746520726f6f7420696e636c7573696f6e60408201526610383937b7b31760c91b606082015260800190565b6020808252601e908201527f496e76616c696420706f73742d737461746520726f6f7420696e6465782e0000604082015260600190565b600060208252610b826020830184610e39565b60006080825285516080830152602086015160a0830152604086015161123c60c0840182610e2b565b50606086015161124f60e0840182610df2565b506080860151611263610100840182610df2565b5060a086015161012083015260c086015160e061014084015261128a610160840182610dff565b9050828103602084015261129e8187610ecc565b905082810360408401526112b28186610e39565b905082810360608401526112c68185610e76565b979650505050505050565b60405181810167ffffffffffffffff811182821017156112f057600080fd5b604052919050565b600067ffffffffffffffff82111561130e578081fd5b5060209081020190565b60005b8381101561133357818101518382015260200161131b565b83811115611342576000848401525b50505050565b6001600160a01b038116811461135d57600080fd5b50565b801515811461135d57600080fdfea264697066735822122099b4be141879bf2d84edef99560fa69428ab6465669df24f0e9511b42a250b6c64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630a70476014610051578063461a44781461006657806398d8867d1461008f578063ffc0e2f4146100a2575b600080fd5b61006461005f366004610bd5565b6100b5565b005b610079610074366004610d88565b6104c5565b6040516100869190610f7a565b60405180910390f35b61006461009d366004610c8f565b61054c565b6100796100b0366004610ba5565b61081e565b8560005a60008981526004602081815260409283902054835163597d0e4f60e11b815293519495506001600160a01b031693849363b2fa1c9e93818101939291829003018186803b15801561010957600080fd5b505afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101419190610b89565b151560011461016b5760405162461bcd60e51b81526004016101629061103f565b60405180910390fd5b865184516001909101146101915760405162461bcd60e51b8152600401610162906111c9565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee57906101c5908c908c908c90600401610fd3565b60206040518083038186803b1580156101dd57600080fd5b505afa1580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190610b89565b6102315760405162461bcd60e51b815260040161016290611182565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee579061026590899089908990600401610fd3565b60206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b59190610b89565b6102d15760405162461bcd60e51b8152600401610162906110ea565b806001600160a01b031663c1c618b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561030a57600080fd5b505afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103429190610bbd565b8614156103615760405162461bcd60e51b815260040161016290611132565b600254604051632e38626b60e21b81526001600160a01b039091169063b8e189ac90610391908890600401611200565b600060405180830381600087803b1580156103ab57600080fd5b505af11580156103bf573d6000803e3d6000fd5b5050505060008086608001518060200190518101906103de9190610dc3565b6000548951604051630c34548960e11b81529395509193506001600160a01b031691631868a91291610419918f919086908890600401611008565b600060405180830381600087803b15801561043357600080fd5b505af1158015610447573d6000803e3d6000fd5b5050505050505060005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e9061048890869033908690600401610fb4565b600060405180830381600087803b1580156104a257600080fd5b505af11580156104b6573d6000803e3d6000fd5b50505050505050505050505050565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906104f690859060040161102c565b60206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190610b66565b92915050565b8660005a905061055b89610839565b15610565576107a6565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee5790610599908c908c908c90600401610fd3565b60206040518083038186803b1580156105b157600080fd5b505afa1580156105c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e99190610b89565b6106055760405162461bcd60e51b815260040161016290611182565b6003546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061063b908990899089908990600401611213565b60206040518083038186803b15801561065357600080fd5b505afa158015610667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068b9190610b89565b6106a75760405162461bcd60e51b8152600401610162906110a6565b6106e56040518060400160405280601c81526020017f4f564d5f53746174655472616e736974696f6e6572466163746f7279000000008152506104c5565b60015488516001600160a01b03928316926322d147029216908c6107088b610856565b6040518563ffffffff1660e01b81526004016107279493929190610f8e565b602060405180830381600087803b15801561074157600080fd5b505af1158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190610b66565b60008a815260046020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b60005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e906107e090869033908690600401610fb4565b600060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b5050505050505050505050505050565b6000908152600460205260409020546001600160a01b031690565b6000908152600460205260409020546001600160a01b0316151590565b60006108618261086f565b805190602001209050919050565b6060816000015182602001518360400151846060015185608001518660a001518760c001516040516020016108aa9796959493929190610f0b565b6040516020818303038152906040529050919050565b803561054681611348565b600082601f8301126108db578081fd5b813567ffffffffffffffff8111156108f1578182fd5b610904601f8201601f19166020016112d1565b915080825283602082850101111561091b57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061054657600080fd5b600060a08284031215610954578081fd5b61095e60a06112d1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b6109a8848285016108cb565b60808301525092915050565b6000604082840312156109c5578081fd5b6109cf60406112d1565b90508135815260208083013567ffffffffffffffff8111156109f057600080fd5b8301601f81018513610a0157600080fd5b8035610a14610a0f826112f8565b6112d1565b8181528381019083850185840285018601891015610a3157600080fd5b600094505b83851015610a54578035835260019490940193918501918501610a36565b508085870152505050505092915050565b600060a08284031215610a76578081fd5b610a8060a06112d1565b90508135610a8d81611360565b80825250602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b600060e08284031215610ada578081fd5b610ae460e06112d1565b90508135815260208201356020820152610b018360408401610934565b6040820152610b1383606084016108c0565b6060820152610b2583608084016108c0565b608082015260a082013560a082015260c082013567ffffffffffffffff811115610b4e57600080fd5b610b5a848285016108cb565b60c08301525092915050565b600060208284031215610b77578081fd5b8151610b8281611348565b9392505050565b600060208284031215610b9a578081fd5b8151610b8281611360565b600060208284031215610bb6578081fd5b5035919050565b600060208284031215610bce578081fd5b5051919050565b60008060008060008060c08789031215610bed578182fd5b86359550602087013567ffffffffffffffff80821115610c0b578384fd5b610c178a838b01610943565b96506040890135915080821115610c2c578384fd5b610c388a838b016109b4565b9550606089013594506080890135915080821115610c54578384fd5b610c608a838b01610943565b935060a0890135915080821115610c75578283fd5b50610c8289828a016109b4565b9150509295509295509295565b600080600080600080600060e0888a031215610ca9578485fd5b87359650602088013567ffffffffffffffff80821115610cc7578687fd5b610cd38b838c01610943565b975060408a0135915080821115610ce8578687fd5b610cf48b838c016109b4565b965060608a0135915080821115610d09578283fd5b610d158b838c01610ac9565b955060808a0135915080821115610d2a578283fd5b610d368b838c01610a65565b945060a08a0135915080821115610d4b578283fd5b610d578b838c01610943565b935060c08a0135915080821115610d6c578283fd5b50610d798a828b016109b4565b91505092959891949750929550565b600060208284031215610d99578081fd5b813567ffffffffffffffff811115610daf578182fd5b610dbb848285016108cb565b949350505050565b60008060408385031215610dd5578182fd5b825191506020830151610de781611348565b809150509250929050565b6001600160a01b03169052565b60008151808452610e17816020860160208601611318565b601f01601f19169290920160200192915050565b60028110610e3557fe5b9052565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015610ec15784518252938301936001929092019190830190610ea1565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b600088825287602083015260028710610f2057fe5b8660f81b60408301526bffffffffffffffffffffffff19808760601b166041840152808660601b166055840152508360698301528251610f67816089850160208701611318565b9190910160890198975050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b600084825260606020830152610fec6060830185610e39565b8281036040840152610ffe8185610e76565b9695505050505050565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600060208252610b826020830184610dff565b60208082526041908201527f5374617465207472616e736974696f6e2070726f63657373206d75737420626560408201527f20636f6d706c65746564207072696f7220746f2066696e616c697a6174696f6e6060820152601760f91b608082015260a00190565b60208082526024908201527f496e76616c6964207472616e73616374696f6e20696e636c7573696f6e20707260408201526337b7b31760e11b606082015260800190565b60208082526028908201527f496e76616c696420706f73742d737461746520726f6f7420696e636c7573696f6040820152673710383937b7b31760c11b606082015260800190565b60208082526030908201527f5374617465207472616e736974696f6e20686173206e6f74206265656e20707260408201526f37bb32b710333930bab23ab632b73a1760811b606082015260800190565b60208082526027908201527f496e76616c6964207072652d737461746520726f6f7420696e636c7573696f6e60408201526610383937b7b31760c91b606082015260800190565b6020808252601e908201527f496e76616c696420706f73742d737461746520726f6f7420696e6465782e0000604082015260600190565b600060208252610b826020830184610e39565b60006080825285516080830152602086015160a0830152604086015161123c60c0840182610e2b565b50606086015161124f60e0840182610df2565b506080860151611263610100840182610df2565b5060a086015161012083015260c086015160e061014084015261128a610160840182610dff565b9050828103602084015261129e8187610ecc565b905082810360408401526112b28186610e39565b905082810360608401526112c68185610e76565b979650505050505050565b60405181810167ffffffffffffffff811182821017156112f057600080fd5b604052919050565b600067ffffffffffffffff82111561130e578081fd5b5060209081020190565b60005b8381101561133357818101518382015260200161131b565b83811115611342576000848401525b50505050565b6001600160a01b038116811461135d57600080fd5b50565b801515811461135d57600080fdfea264697066735822122099b4be141879bf2d84edef99560fa69428ab6465669df24f0e9511b42a250b6c64736f6c63430007000033",
"bytecode": "0x60806040523480156200001157600080fd5b506040516200161f3803806200161f8339810160408190526200003491620001f2565b600180546001600160a01b0319166001600160a01b03831617905560408051808201909152601881527f4f564d5f5374617465436f6d6d69746d656e74436861696e000000000000000060208201526200008e9062000165565b600280546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601d81527f4f564d5f43616e6f6e6963616c5472616e73616374696f6e436861696e0000006020820152620000ed9062000165565b600380546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600f81526e27ab26afa137b73226b0b730b3b2b960891b60208201526200013e9062000165565b600080546001600160a01b0319166001600160a01b03929092169190911790555062000278565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906200019890859060040162000222565b60206040518083038186803b158015620001b157600080fd5b505afa158015620001c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ec9190620001f2565b92915050565b60006020828403121562000204578081fd5b81516001600160a01b03811681146200021b578182fd5b9392505050565b6000602080835283518082850152825b81811015620002505785810183015185820160400152820162000232565b81811115620002625783604083870101525b50601f01601f1916929092016040019392505050565b61139780620002886000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630a70476014610051578063461a44781461006657806398d8867d1461008f578063ffc0e2f4146100a2575b600080fd5b61006461005f366004610bdd565b6100b5565b005b610079610074366004610d90565b6104c5565b6040516100869190610f67565b60405180910390f35b61006461009d366004610c97565b61054e565b6100796100b0366004610bad565b610820565b8560005a60008981526004602081815260409283902054835163597d0e4f60e11b815293519495506001600160a01b031693849363b2fa1c9e93818101939291829003018186803b15801561010957600080fd5b505afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101419190610b91565b151560011461016b5760405162461bcd60e51b81526004016101629061102c565b60405180910390fd5b865184516001909101146101915760405162461bcd60e51b8152600401610162906111b6565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee57906101c5908c908c908c90600401610fc0565b60206040518083038186803b1580156101dd57600080fd5b505afa1580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190610b91565b6102315760405162461bcd60e51b81526004016101629061116f565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee579061026590899089908990600401610fc0565b60206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b59190610b91565b6102d15760405162461bcd60e51b8152600401610162906110d7565b806001600160a01b031663c1c618b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561030a57600080fd5b505afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103429190610bc5565b8614156103615760405162461bcd60e51b81526004016101629061111f565b600254604051632e38626b60e21b81526001600160a01b039091169063b8e189ac906103919088906004016111ed565b600060405180830381600087803b1580156103ab57600080fd5b505af11580156103bf573d6000803e3d6000fd5b5050505060008086608001518060200190518101906103de9190610dcb565b6000548951604051630c34548960e11b81529395509193506001600160a01b031691631868a91291610419918f919086908890600401610ff5565b600060405180830381600087803b15801561043357600080fd5b505af1158015610447573d6000803e3d6000fd5b5050505050505060005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e9061048890869033908690600401610fa1565b600060405180830381600087803b1580156104a257600080fd5b505af11580156104b6573d6000803e3d6000fd5b50505050505050505050505050565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906104f6908590600401611019565b60206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190610b6e565b90505b919050565b8660005a905061055d8961083b565b15610567576107a8565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee579061059b908c908c908c90600401610fc0565b60206040518083038186803b1580156105b357600080fd5b505afa1580156105c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105eb9190610b91565b6106075760405162461bcd60e51b81526004016101629061116f565b6003546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061063d908990899089908990600401611200565b60206040518083038186803b15801561065557600080fd5b505afa158015610669573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068d9190610b91565b6106a95760405162461bcd60e51b815260040161016290611093565b6106e76040518060400160405280601c81526020017f4f564d5f53746174655472616e736974696f6e6572466163746f7279000000008152506104c5565b60015488516001600160a01b03928316926322d147029216908c61070a8b610858565b6040518563ffffffff1660e01b81526004016107299493929190610f7b565b602060405180830381600087803b15801561074357600080fd5b505af1158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190610b6e565b60008a815260046020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b60005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e906107e290869033908690600401610fa1565b600060405180830381600087803b1580156107fc57600080fd5b505af1158015610810573d6000803e3d6000fd5b5050505050505050505050505050565b6000908152600460205260409020546001600160a01b031690565b6000908152600460205260409020546001600160a01b0316151590565b600061086382610871565b805190602001209050919050565b6060816000015182602001518360400151846060015185608001518660a001518760c001516040516020016108ac9796959493929190610ef8565b6040516020818303038152906040529050919050565b80356108cd8161133b565b92915050565b600082601f8301126108e3578081fd5b813567ffffffffffffffff8111156108f9578182fd5b61090c601f8201601f19166020016112b9565b915080825283602082850101111561092357600080fd5b8060208401602084013760009082016020015292915050565b8035600281106108cd57600080fd5b600060a0828403121561095c578081fd5b61096660a06112b9565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156109a457600080fd5b6109b0848285016108d3565b60808301525092915050565b6000604082840312156109cd578081fd5b6109d760406112b9565b90508135815260208083013567ffffffffffffffff8111156109f857600080fd5b8301601f81018513610a0957600080fd5b8035610a1c610a17826112e0565b6112b9565b8181528381019083850185840285018601891015610a3957600080fd5b600094505b83851015610a5c578035835260019490940193918501918501610a3e565b508085870152505050505092915050565b600060a08284031215610a7e578081fd5b610a8860a06112b9565b90508135610a9581611353565b80825250602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156109a457600080fd5b600060e08284031215610ae2578081fd5b610aec60e06112b9565b90508135815260208201356020820152610b09836040840161093c565b6040820152610b1b83606084016108c2565b6060820152610b2d83608084016108c2565b608082015260a082013560a082015260c082013567ffffffffffffffff811115610b5657600080fd5b610b62848285016108d3565b60c08301525092915050565b600060208284031215610b7f578081fd5b8151610b8a8161133b565b9392505050565b600060208284031215610ba2578081fd5b8151610b8a81611353565b600060208284031215610bbe578081fd5b5035919050565b600060208284031215610bd6578081fd5b5051919050565b60008060008060008060c08789031215610bf5578182fd5b86359550602087013567ffffffffffffffff80821115610c13578384fd5b610c1f8a838b0161094b565b96506040890135915080821115610c34578384fd5b610c408a838b016109bc565b9550606089013594506080890135915080821115610c5c578384fd5b610c688a838b0161094b565b935060a0890135915080821115610c7d578283fd5b50610c8a89828a016109bc565b9150509295509295509295565b600080600080600080600060e0888a031215610cb1578485fd5b87359650602088013567ffffffffffffffff80821115610ccf578687fd5b610cdb8b838c0161094b565b975060408a0135915080821115610cf0578687fd5b610cfc8b838c016109bc565b965060608a0135915080821115610d11578283fd5b610d1d8b838c01610ad1565b955060808a0135915080821115610d32578283fd5b610d3e8b838c01610a6d565b945060a08a0135915080821115610d53578283fd5b610d5f8b838c0161094b565b935060c08a0135915080821115610d74578283fd5b50610d818a828b016109bc565b91505092959891949750929550565b600060208284031215610da1578081fd5b813567ffffffffffffffff811115610db7578182fd5b610dc3848285016108d3565b949350505050565b60008060408385031215610ddd578182fd5b825191506020830151610def8161133b565b809150509250929050565b60008151808452610e1281602086016020860161130b565b601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dc360a0850182610dfa565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015610eae5784518252938301936001929092019190830190610e8e565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dc360a0850182610dfa565b600088825287602083015260028710610f0d57fe5b8660f81b60408301526bffffffffffffffffffffffff19808760601b166041840152808660601b166055840152508360698301528251610f5481608985016020870161130b565b9190910160890198975050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b600084825260606020830152610fd96060830185610e26565b8281036040840152610feb8185610e63565b9695505050505050565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600060208252610b8a6020830184610dfa565b60208082526041908201527f5374617465207472616e736974696f6e2070726f63657373206d75737420626560408201527f20636f6d706c65746564207072696f7220746f2066696e616c697a6174696f6e6060820152601760f91b608082015260a00190565b60208082526024908201527f496e76616c6964207472616e73616374696f6e20696e636c7573696f6e20707260408201526337b7b31760e11b606082015260800190565b60208082526028908201527f496e76616c696420706f73742d737461746520726f6f7420696e636c7573696f6040820152673710383937b7b31760c11b606082015260800190565b60208082526030908201527f5374617465207472616e736974696f6e20686173206e6f74206265656e20707260408201526f37bb32b710333930bab23ab632b73a1760811b606082015260800190565b60208082526027908201527f496e76616c6964207072652d737461746520726f6f7420696e636c7573696f6e60408201526610383937b7b31760c91b606082015260800190565b6020808252601e908201527f496e76616c696420706f73742d737461746520726f6f7420696e6465782e0000604082015260600190565b600060208252610b8a6020830184610e26565b60006080825285516080830152602086015160a08301526112246040870151611300565b60c0830152606086015160018060a01b0380821660e085015280608089015116610100850152505060a086015161012083015260c086015160e0610140840152611272610160840182610dfa565b905082810360208401526112868187610eb9565b9050828103604084015261129a8186610e26565b905082810360608401526112ae8185610e63565b979650505050505050565b60405181810167ffffffffffffffff811182821017156112d857600080fd5b604052919050565b600067ffffffffffffffff8211156112f6578081fd5b5060209081020190565b806002811061054957fe5b60005b8381101561132657818101518382015260200161130e565b83811115611335576000848401525b50505050565b6001600160a01b038116811461135057600080fd5b50565b801515811461135057600080fdfea264697066735822122099b4be141879bf2d84edef99560fa69428ab6465669df24f0e9511b42a250b6c64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630a70476014610051578063461a44781461006657806398d8867d1461008f578063ffc0e2f4146100a2575b600080fd5b61006461005f366004610bdd565b6100b5565b005b610079610074366004610d90565b6104c5565b6040516100869190610f67565b60405180910390f35b61006461009d366004610c97565b61054e565b6100796100b0366004610bad565b610820565b8560005a60008981526004602081815260409283902054835163597d0e4f60e11b815293519495506001600160a01b031693849363b2fa1c9e93818101939291829003018186803b15801561010957600080fd5b505afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101419190610b91565b151560011461016b5760405162461bcd60e51b81526004016101629061102c565b60405180910390fd5b865184516001909101146101915760405162461bcd60e51b8152600401610162906111b6565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee57906101c5908c908c908c90600401610fc0565b60206040518083038186803b1580156101dd57600080fd5b505afa1580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190610b91565b6102315760405162461bcd60e51b81526004016101629061116f565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee579061026590899089908990600401610fc0565b60206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b59190610b91565b6102d15760405162461bcd60e51b8152600401610162906110d7565b806001600160a01b031663c1c618b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561030a57600080fd5b505afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103429190610bc5565b8614156103615760405162461bcd60e51b81526004016101629061111f565b600254604051632e38626b60e21b81526001600160a01b039091169063b8e189ac906103919088906004016111ed565b600060405180830381600087803b1580156103ab57600080fd5b505af11580156103bf573d6000803e3d6000fd5b5050505060008086608001518060200190518101906103de9190610dcb565b6000548951604051630c34548960e11b81529395509193506001600160a01b031691631868a91291610419918f919086908890600401610ff5565b600060405180830381600087803b15801561043357600080fd5b505af1158015610447573d6000803e3d6000fd5b5050505050505060005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e9061048890869033908690600401610fa1565b600060405180830381600087803b1580156104a257600080fd5b505af11580156104b6573d6000803e3d6000fd5b50505050505050505050505050565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906104f6908590600401611019565b60206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190610b6e565b90505b919050565b8660005a905061055d8961083b565b15610567576107a8565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee579061059b908c908c908c90600401610fc0565b60206040518083038186803b1580156105b357600080fd5b505afa1580156105c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105eb9190610b91565b6106075760405162461bcd60e51b81526004016101629061116f565b6003546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061063d908990899089908990600401611200565b60206040518083038186803b15801561065557600080fd5b505afa158015610669573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068d9190610b91565b6106a95760405162461bcd60e51b815260040161016290611093565b6106e76040518060400160405280601c81526020017f4f564d5f53746174655472616e736974696f6e6572466163746f7279000000008152506104c5565b60015488516001600160a01b03928316926322d147029216908c61070a8b610858565b6040518563ffffffff1660e01b81526004016107299493929190610f7b565b602060405180830381600087803b15801561074357600080fd5b505af1158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190610b6e565b60008a815260046020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b60005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e906107e290869033908690600401610fa1565b600060405180830381600087803b1580156107fc57600080fd5b505af1158015610810573d6000803e3d6000fd5b5050505050505050505050505050565b6000908152600460205260409020546001600160a01b031690565b6000908152600460205260409020546001600160a01b0316151590565b600061086382610871565b805190602001209050919050565b6060816000015182602001518360400151846060015185608001518660a001518760c001516040516020016108ac9796959493929190610ef8565b6040516020818303038152906040529050919050565b80356108cd8161133b565b92915050565b600082601f8301126108e3578081fd5b813567ffffffffffffffff8111156108f9578182fd5b61090c601f8201601f19166020016112b9565b915080825283602082850101111561092357600080fd5b8060208401602084013760009082016020015292915050565b8035600281106108cd57600080fd5b600060a0828403121561095c578081fd5b61096660a06112b9565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156109a457600080fd5b6109b0848285016108d3565b60808301525092915050565b6000604082840312156109cd578081fd5b6109d760406112b9565b90508135815260208083013567ffffffffffffffff8111156109f857600080fd5b8301601f81018513610a0957600080fd5b8035610a1c610a17826112e0565b6112b9565b8181528381019083850185840285018601891015610a3957600080fd5b600094505b83851015610a5c578035835260019490940193918501918501610a3e565b508085870152505050505092915050565b600060a08284031215610a7e578081fd5b610a8860a06112b9565b90508135610a9581611353565b80825250602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156109a457600080fd5b600060e08284031215610ae2578081fd5b610aec60e06112b9565b90508135815260208201356020820152610b09836040840161093c565b6040820152610b1b83606084016108c2565b6060820152610b2d83608084016108c2565b608082015260a082013560a082015260c082013567ffffffffffffffff811115610b5657600080fd5b610b62848285016108d3565b60c08301525092915050565b600060208284031215610b7f578081fd5b8151610b8a8161133b565b9392505050565b600060208284031215610ba2578081fd5b8151610b8a81611353565b600060208284031215610bbe578081fd5b5035919050565b600060208284031215610bd6578081fd5b5051919050565b60008060008060008060c08789031215610bf5578182fd5b86359550602087013567ffffffffffffffff80821115610c13578384fd5b610c1f8a838b0161094b565b96506040890135915080821115610c34578384fd5b610c408a838b016109bc565b9550606089013594506080890135915080821115610c5c578384fd5b610c688a838b0161094b565b935060a0890135915080821115610c7d578283fd5b50610c8a89828a016109bc565b9150509295509295509295565b600080600080600080600060e0888a031215610cb1578485fd5b87359650602088013567ffffffffffffffff80821115610ccf578687fd5b610cdb8b838c0161094b565b975060408a0135915080821115610cf0578687fd5b610cfc8b838c016109bc565b965060608a0135915080821115610d11578283fd5b610d1d8b838c01610ad1565b955060808a0135915080821115610d32578283fd5b610d3e8b838c01610a6d565b945060a08a0135915080821115610d53578283fd5b610d5f8b838c0161094b565b935060c08a0135915080821115610d74578283fd5b50610d818a828b016109bc565b91505092959891949750929550565b600060208284031215610da1578081fd5b813567ffffffffffffffff811115610db7578182fd5b610dc3848285016108d3565b949350505050565b60008060408385031215610ddd578182fd5b825191506020830151610def8161133b565b809150509250929050565b60008151808452610e1281602086016020860161130b565b601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dc360a0850182610dfa565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015610eae5784518252938301936001929092019190830190610e8e565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dc360a0850182610dfa565b600088825287602083015260028710610f0d57fe5b8660f81b60408301526bffffffffffffffffffffffff19808760601b166041840152808660601b166055840152508360698301528251610f5481608985016020870161130b565b9190910160890198975050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b600084825260606020830152610fd96060830185610e26565b8281036040840152610feb8185610e63565b9695505050505050565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600060208252610b8a6020830184610dfa565b60208082526041908201527f5374617465207472616e736974696f6e2070726f63657373206d75737420626560408201527f20636f6d706c65746564207072696f7220746f2066696e616c697a6174696f6e6060820152601760f91b608082015260a00190565b60208082526024908201527f496e76616c6964207472616e73616374696f6e20696e636c7573696f6e20707260408201526337b7b31760e11b606082015260800190565b60208082526028908201527f496e76616c696420706f73742d737461746520726f6f7420696e636c7573696f6040820152673710383937b7b31760c11b606082015260800190565b60208082526030908201527f5374617465207472616e736974696f6e20686173206e6f74206265656e20707260408201526f37bb32b710333930bab23ab632b73a1760811b606082015260800190565b60208082526027908201527f496e76616c6964207072652d737461746520726f6f7420696e636c7573696f6e60408201526610383937b7b31760c91b606082015260800190565b6020808252601e908201527f496e76616c696420706f73742d737461746520726f6f7420696e6465782e0000604082015260600190565b600060208252610b8a6020830184610e26565b60006080825285516080830152602086015160a08301526112246040870151611300565b60c0830152606086015160018060a01b0380821660e085015280608089015116610100850152505060a086015161012083015260c086015160e0610140840152611272610160840182610dfa565b905082810360208401526112868187610eb9565b9050828103604084015261129a8186610e26565b905082810360608401526112ae8185610e63565b979650505050505050565b60405181810167ffffffffffffffff811182821017156112d857600080fd5b604052919050565b600067ffffffffffffffff8211156112f6578081fd5b5060209081020190565b806002811061054957fe5b60005b8381101561132657818101518382015260200161130e565b83811115611335576000848401525b50505050565b6001600160a01b038116811461135057600080fd5b50565b801515811461135057600080fdfea264697066735822122099b4be141879bf2d84edef99560fa69428ab6465669df24f0e9511b42a250b6c64736f6c63430007000033",
"linkReferences": {},

@@ -363,3 +363,3 @@ "deployedLinkReferences": {},

{
"astId": 14629,
"astId": 14646,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudVerifier.sol:OVM_FraudVerifier",

@@ -369,6 +369,6 @@ "label": "ovmBondManager",

"slot": "0",
"type": "t_contract(iOVM_BondManager)16545"
"type": "t_contract(iOVM_BondManager)16562"
},
{
"astId": 17139,
"astId": 17156,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudVerifier.sol:OVM_FraudVerifier",

@@ -378,6 +378,6 @@ "label": "libAddressManager",

"slot": "1",
"type": "t_contract(Lib_AddressManager)17132"
"type": "t_contract(Lib_AddressManager)17149"
},
{
"astId": 14691,
"astId": 14708,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudVerifier.sol:OVM_FraudVerifier",

@@ -387,6 +387,6 @@ "label": "ovmStateCommitmentChain",

"slot": "2",
"type": "t_contract(iOVM_StateCommitmentChain)15882"
"type": "t_contract(iOVM_StateCommitmentChain)15899"
},
{
"astId": 14693,
"astId": 14710,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudVerifier.sol:OVM_FraudVerifier",

@@ -396,6 +396,6 @@ "label": "ovmCanonicalTransactionChain",

"slot": "3",
"type": "t_contract(iOVM_CanonicalTransactionChain)15808"
"type": "t_contract(iOVM_CanonicalTransactionChain)15825"
},
{
"astId": 14697,
"astId": 14714,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudVerifier.sol:OVM_FraudVerifier",

@@ -405,3 +405,3 @@ "label": "transitioners",

"slot": "4",
"type": "t_mapping(t_bytes32,t_contract(iOVM_StateTransitioner)16670)"
"type": "t_mapping(t_bytes32,t_contract(iOVM_StateTransitioner)16687)"
}

@@ -415,3 +415,3 @@ ],

},
"t_contract(Lib_AddressManager)17132": {
"t_contract(Lib_AddressManager)17149": {
"encoding": "inplace",

@@ -421,3 +421,3 @@ "label": "contract Lib_AddressManager",

},
"t_contract(iOVM_BondManager)16545": {
"t_contract(iOVM_BondManager)16562": {
"encoding": "inplace",

@@ -427,3 +427,3 @@ "label": "contract iOVM_BondManager",

},
"t_contract(iOVM_CanonicalTransactionChain)15808": {
"t_contract(iOVM_CanonicalTransactionChain)15825": {
"encoding": "inplace",

@@ -433,3 +433,3 @@ "label": "contract iOVM_CanonicalTransactionChain",

},
"t_contract(iOVM_StateCommitmentChain)15882": {
"t_contract(iOVM_StateCommitmentChain)15899": {
"encoding": "inplace",

@@ -439,3 +439,3 @@ "label": "contract iOVM_StateCommitmentChain",

},
"t_contract(iOVM_StateTransitioner)16670": {
"t_contract(iOVM_StateTransitioner)16687": {
"encoding": "inplace",

@@ -445,3 +445,3 @@ "label": "contract iOVM_StateTransitioner",

},
"t_mapping(t_bytes32,t_contract(iOVM_StateTransitioner)16670)": {
"t_mapping(t_bytes32,t_contract(iOVM_StateTransitioner)16687)": {
"encoding": "mapping",

@@ -451,3 +451,3 @@ "key": "t_bytes32",

"numberOfBytes": "32",
"value": "t_contract(iOVM_StateTransitioner)16670"
"value": "t_contract(iOVM_StateTransitioner)16687"
}

@@ -454,0 +454,0 @@ }

@@ -320,3 +320,3 @@ {

{
"astId": 17139,
"astId": 17156,
"contract": "contracts/optimistic-ethereum/OVM/bridge/OVM_L1CrossDomainMessenger.sol:OVM_L1CrossDomainMessenger",

@@ -326,3 +326,3 @@ "label": "libAddressManager",

"slot": "5",
"type": "t_contract(Lib_AddressManager)17132"
"type": "t_contract(Lib_AddressManager)17149"
},

@@ -335,3 +335,3 @@ {

"slot": "6",
"type": "t_contract(iOVM_CanonicalTransactionChain)15808"
"type": "t_contract(iOVM_CanonicalTransactionChain)15825"
},

@@ -344,3 +344,3 @@ {

"slot": "7",
"type": "t_contract(iOVM_StateCommitmentChain)15882"
"type": "t_contract(iOVM_StateCommitmentChain)15899"
}

@@ -364,3 +364,3 @@ ],

},
"t_contract(Lib_AddressManager)17132": {
"t_contract(Lib_AddressManager)17149": {
"encoding": "inplace",

@@ -370,3 +370,3 @@ "label": "contract Lib_AddressManager",

},
"t_contract(iOVM_CanonicalTransactionChain)15808": {
"t_contract(iOVM_CanonicalTransactionChain)15825": {
"encoding": "inplace",

@@ -376,3 +376,3 @@ "label": "contract iOVM_CanonicalTransactionChain",

},
"t_contract(iOVM_StateCommitmentChain)15882": {
"t_contract(iOVM_StateCommitmentChain)15899": {
"encoding": "inplace",

@@ -379,0 +379,0 @@ "label": "contract iOVM_StateCommitmentChain",

@@ -216,3 +216,3 @@ {

{
"astId": 17139,
"astId": 17156,
"contract": "contracts/optimistic-ethereum/OVM/bridge/OVM_L2CrossDomainMessenger.sol:OVM_L2CrossDomainMessenger",

@@ -222,3 +222,3 @@ "label": "libAddressManager",

"slot": "5",
"type": "t_contract(Lib_AddressManager)17132"
"type": "t_contract(Lib_AddressManager)17149"
},

@@ -231,3 +231,3 @@ {

"slot": "6",
"type": "t_contract(iOVM_L1MessageSender)16387"
"type": "t_contract(iOVM_L1MessageSender)16404"
},

@@ -240,3 +240,3 @@ {

"slot": "7",
"type": "t_contract(iOVM_L2ToL1MessagePasser)16404"
"type": "t_contract(iOVM_L2ToL1MessagePasser)16421"
}

@@ -260,3 +260,3 @@ ],

},
"t_contract(Lib_AddressManager)17132": {
"t_contract(Lib_AddressManager)17149": {
"encoding": "inplace",

@@ -266,3 +266,3 @@ "label": "contract Lib_AddressManager",

},
"t_contract(iOVM_L1MessageSender)16387": {
"t_contract(iOVM_L1MessageSender)16404": {
"encoding": "inplace",

@@ -272,3 +272,3 @@ "label": "contract iOVM_L1MessageSender",

},
"t_contract(iOVM_L2ToL1MessagePasser)16404": {
"t_contract(iOVM_L2ToL1MessagePasser)16421": {
"encoding": "inplace",

@@ -275,0 +275,0 @@ "label": "contract iOVM_L2ToL1MessagePasser",

@@ -69,3 +69,3 @@ {

{
"astId": 14123,
"astId": 14140,
"contract": "contracts/optimistic-ethereum/OVM/precompiles/OVM_L2ToL1MessagePasser.sol:OVM_L2ToL1MessagePasser",

@@ -72,0 +72,0 @@ "label": "sentMessages",

@@ -459,4 +459,4 @@ {

],
"bytecode": "0x60806040523480156200001157600080fd5b506040516200248a3803806200248a833981016040819052620000349162000257565b600080546001600160a01b0319166001600160a01b03831617905560408051808201909152601d81527f4f564d5f43616e6f6e6963616c5472616e73616374696f6e436861696e00000060208201526200008e9062000195565b600b80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601181527027ab26afa33930bab22b32b934b334b2b960791b6020820152620000e19062000195565b600c80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600f81526e27ab26afa137b73226b0b730b3b2b960891b6020820152620001329062000195565b600d80546001600160a01b0319166001600160a01b03929092169190911790556200018e600360107f96df3abc26f419f0cc8d819984a2b87820d08c41bf1b84a59ce36f5d7336d1913062000222602090811b6200076117901c565b50620002dd565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190620001c890859060040162000287565b60206040518083038186803b158015620001e157600080fd5b505afa158015620001f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021c919062000257565b92915050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b60006020828403121562000269578081fd5b81516001600160a01b038116811462000280578182fd5b9392505050565b6000602080835283518082850152825b81811015620002b55785810183015185820160400152820162000297565b81811115620002c75783604083870101525b50601f01601f1916929092016040019392505050565b61219d80620002ed6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806381eb62ef1161007157806381eb62ef146101475780638ca5cbb91461014f5780639418bddd14610162578063b8e189ac14610175578063c17b291b14610188578063e561dddc14610190576100b4565b80632979761b146100b9578063461a4478146100ce5780634d69ee57146100f7578063677f5aff146101175780637aa63a861461012a5780637ad168a01461013f575b600080fd5b6100cc6100c7366004611846565b610198565b005b6100e16100dc3660046117da565b6102be565b6040516100ee9190611af3565b60405180910390f35b61010a610105366004611750565b610347565b6040516100ee9190611b07565b61010a6101253660046117b9565b6103ac565b61013261047e565b6040516100ee9190611adc565b610132610497565b6101326104b0565b6100cc61015d3660046116f2565b6104b6565b61010a610170366004611814565b610677565b6100cc610183366004611814565b6106c2565b610132610742565b610132610749565b6101a185610796565b6101c65760405162461bcd60e51b81526004016101bd90611d4a565b60405180910390fd5b6101cf85610677565b156101ec5760405162461bcd60e51b81526004016101bd90611c81565b60015485511161020e5760405162461bcd60e51b81526004016101bd90611fab565b600b546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce90610244908790879087908790600401612036565b60206040518083038186803b15801561025c57600080fd5b505afa158015610270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102949190611734565b6102b05760405162461bcd60e51b81526004016101bd90611f0b565b505091516001555160025550565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906102ef908590600401611b56565b60206040518083038186803b15801561030757600080fd5b505afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f91906116d6565b90505b919050565b600061035283610796565b61036e5760405162461bcd60e51b81526004016101bd90611d4a565b610386836020015185846000015185602001516107be565b6103a25760405162461bcd60e51b81526004016101bd90611c1c565b5060019392505050565b60007f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c558314156104715760028054600b5460405163153f8c5f60e11b815291926001600160a01b0390911691632a7f18be9161040e9190870490600401611adc565b60606040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e9190611911565b6020015164ffffffffff16109050610478565b5060015481105b92915050565b600080610489610829565b5064ffffffffff1691505090565b6000806104a2610829565b64ffffffffff169250505090565b61070881565b6104be61047e565b81146104dc5760405162461bcd60e51b81526004016101bd90611ced565b600d54604051630156a69560e11b81526001600160a01b03909116906302ad4d2a9061050c903390600401611af3565b60206040518083038186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190611734565b6105785760405162461bcd60e51b81526004016101bd90611ebc565b60008251116105995760405162461bcd60e51b81526004016101bd90611e79565b600b60009054906101000a90046001600160a01b03166001600160a01b0316637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b1580156105e757600080fd5b505afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f919061195d565b825161062961047e565b0111156106485760405162461bcd60e51b81526004016101bd90611bad565b61067382423360405160200161065f9291906120f4565b604051602081830303815290604052610850565b5050565b60008082608001518060200190518101906106929190611975565b509050806106b25760405162461bcd60e51b81526004016101bd90611e34565b4262093a80820111915050919050565b600c546001600160a01b031633146106ec5760405162461bcd60e51b81526004016101bd90611dd7565b6106f581610796565b6107115760405162461bcd60e51b81526004016101bd90611d4a565b61071a81610677565b6107365760405162461bcd60e51b81526004016101bd90611d79565b61073f816109fc565b50565b62093a8081565b60006107556003610a74565b64ffffffffff16905090565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b80516000906107ae9060039064ffffffffff16610a8f565b6107b783610bed565b1492915050565b600083815b835181101561081d5760008482815181106107da57fe5b60209081029190910101519050600186831c8116148015610806576107ff8483610c33565b9350610813565b6108108285610c33565b93505b50506001016107c3565b50909414949350505050565b60008060006108386003610c66565b64ffffffffff602882901c16935060501c9150509091565b60006108806040518060400160405280600d81526020016c27ab26afa9b2b8bab2b731b2b960991b8152506102be565b905060008061088d610829565b9092509050336001600160a01b03841614156108aa5750426108d4565b426107088264ffffffffff1601106108d45760405162461bcd60e51b81526004016101bd90611f42565b606085516001600160401b03811180156108ed57600080fd5b5060405190808252806020026020018201604052801561092157816020015b606081526020019060019003908161090c5790505b50905060005b86518110156109825786818151811061093c57fe5b60200260200101516040516020016109549190611adc565b60405160208183030381529060405282828151811061096f57fe5b6020908102919091010152600101610927565b5061098b6113b4565b6040518060a0016040528061099e610749565b81526020016109ac84610c84565b81528351602082015264ffffffffff8616604082015260600187905290506109f36109d682610bed565b6109ea836040015184606001510186610d23565b60039190610d31565b50505050505050565b610a066003610a74565b64ffffffffff16816000015110610a2f5760405162461bcd60e51b81526004016101bd90612008565b610a3881610796565b610a545760405162461bcd60e51b81526004016101bd90611d4a565b61073f8160000151610a6b83606001516000610d23565b60039190610eb6565b6000610a7e6113e6565b610a8783610fc6565b519392505050565b6000610a996113e6565b610aa284610fc6565b805190915064ffffffffff168310610acc5760405162461bcd60e51b81526004016101bd90611c53565b6000610aee82604001516001600160401b03168661102890919063ffffffff16565b90506000610b1583604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168510610b76576080830151825464ffffffffff9091168603908110610b5a5760405162461bcd60e51b81526004016101bd90611c53565b6000908152600190920160205250604090205491506104789050565b6080830151606084015164ffffffffff9182168781039290911610610bad5760405162461bcd60e51b81526004016101bd90611c53565b8154811115610bce5760405162461bcd60e51b81526004016101bd90611c53565b8154036000908152600190910160205260409020549250610478915050565b60008160200151826040015183606001518460800151604051602001610c169493929190611b12565b604051602081830303815290604052805190602001209050919050565b60008282604051602001610c48929190611ae5565b60405160208183030381529060405280519060200120905092915050565b6000610c706113e6565b610c7983610fc6565b602001519392505050565b6000606082516001600160401b0381118015610c9f57600080fd5b50604051908082528060200260200182016040528015610cc9578160200160208202803683370190505b50905060005b8351811015610d1257838181518110610ce457fe5b602002602001015180519060200120828281518110610cff57fe5b6020908102919091010152600101610ccf565b50610d1c81611044565b9392505050565b602890811b91909117901b90565b610d396113e6565b610d4284610fc6565b90506000610d6682604001516001600160401b03168661102890919063ffffffff16565b8054909150610d7457601081555b8054608083015183510364ffffffffff1610610e6c5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff92610dc292600401611b41565b602060405180830381600087803b158015610ddc57600080fd5b505af1925050508015610e0c575060408051601f3d908101601f19168201909252610e0991810190611734565b60015b610e1857506000610e1b565b90505b8015610e62576040830180516001016001600160401b03169081905260808401805164ffffffffff90811660608701528551169052610e5b908790611028565b9150610e6a565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526109f38684611259565b610ebe6113e6565b610ec784610fc6565b9050806000015164ffffffffff168364ffffffffff16108015610efc5750806060015164ffffffffff168364ffffffffff1610155b610f185760405162461bcd60e51b81526004016101bd90611c53565b6000610f3a82604001516001600160401b03168661102890919063ffffffff16565b90506000610f6183604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168564ffffffffff161015610fa457604083018051600019016001600160401b03169052606083015164ffffffffff1660808401525b64ffffffffff8516835264ffffffffff19841660208401526109f38684611259565b610fce6113e6565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b6000600282061561103c5782600601610d1c565b505060040190565b6000808251116110665760405162461bcd60e51b81526004016101bd90611b69565b81516001141561108c578160008151811061107d57fe5b60200260200101519050610342565b606061109883516112bf565b8351909150839060029006600114156111335783516001016001600160401b03811180156110c557600080fd5b506040519080825280602002602001820160405280156110ef578160200160208202803683370190505b50905060005b84518110156111315784818151811061110a57fe5b602002602001015182828151811061111e57fe5b60209081029190910101526001016110f5565b505b835160009060028106600114156111735783828151811061115057fe5b602002602001015183828151811061116457fe5b60209081029190910101526001015b60018111156112395760018201915060005b600282048110156111e8576111c98482600202815181106111a257fe5b60200260200101518583600202600101815181106111bc57fe5b6020026020010151610c33565b8482815181106111d557fe5b6020908102919091010152600101611185565b50600290046001808216148015611200575080600114155b156112345783828151811061121157fe5b602002602001015183828151811061122557fe5b60209081029190910101526001015b611173565b8260008151811061124657fe5b6020026020010151945050505050919050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b17959094909390929091871461129f5760028a018790555b858a60030154146112b25760038a018690555b5050505050505092915050565b606080826001600160401b03811180156112d857600080fd5b50604051908082528060200260200182016040528015611302578160200160208202803683370190505b50905060006040516020016113179190611adc565b604051602081830303815290604052805190602001208160008151811061133a57fe5b602090810291909101015260015b81518110156113ad5781600182038151811061136057fe5b60200260200101516040516020016113789190611adc565b6040516020818303038152906040528051906020012082828151811061139a57fe5b6020908102919091010152600101611348565b5092915050565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b803561047881612131565b600082601f83011261142f578081fd5b81356001600160401b03811115611444578182fd5b602080820261145482820161210b565b8381529350818401858301828701840188101561147057600080fd5b600092505b84831015611493578035825260019290920191908301908301611475565b505050505092915050565b600082601f8301126114ae578081fd5b81356001600160401b038111156114c3578182fd5b6114d6601f8201601f191660200161210b565b91508082528360208285010111156114ed57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061047857600080fd5b600060a08284031215611526578081fd5b61153060a061210b565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b6115798482850161149e565b60808301525092915050565b600060408284031215611596578081fd5b6115a0604061210b565b90508135815260208201356001600160401b038111156115bf57600080fd5b6115cb8482850161141f565b60208301525092915050565b600060a082840312156115e8578081fd5b6115f260a061210b565b905081356115ff81612146565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b600060e0828403121561164b578081fd5b61165560e061210b565b905081358152602082013560208201526116728360408401611506565b60408201526116848360608401611414565b60608201526116968360808401611414565b608082015260a082013560a082015260c08201356001600160401b038111156116be57600080fd5b6116ca8482850161149e565b60c08301525092915050565b6000602082840312156116e7578081fd5b8151610d1c81612131565b60008060408385031215611704578081fd5b82356001600160401b03811115611719578182fd5b6117258582860161141f565b95602094909401359450505050565b600060208284031215611745578081fd5b8151610d1c81612146565b600080600060608486031215611764578081fd5b8335925060208401356001600160401b0380821115611781578283fd5b61178d87838801611515565b935060408601359150808211156117a2578283fd5b506117af86828701611585565b9150509250925092565b600080604083850312156117cb578182fd5b50508035926020909101359150565b6000602082840312156117eb578081fd5b81356001600160401b03811115611800578182fd5b61180c8482850161149e565b949350505050565b600060208284031215611825578081fd5b81356001600160401b0381111561183a578182fd5b61180c84828501611515565b600080600080600060a0868803121561185d578283fd5b85356001600160401b0380821115611873578485fd5b61187f89838a01611515565b96506020880135915080821115611894578485fd5b6118a089838a0161163a565b955060408801359150808211156118b5578485fd5b6118c189838a016115d7565b945060608801359150808211156118d6578283fd5b6118e289838a01611515565b935060808801359150808211156118f7578283fd5b5061190488828901611585565b9150509295509295909350565b600060608284031215611922578081fd5b61192c606061210b565b82518152602083015161193e81612154565b6020820152604083015161195181612154565b60408201529392505050565b60006020828403121561196e578081fd5b5051919050565b60008060408385031215611987578182fd5b82519150602083015161199981612131565b809150509250929050565b6001600160a01b03169052565b60008151808452815b818110156119d6576020818501810151868301820152016119ba565b818111156119e75782602083870101525b50601f01601f19169290920160200192915050565b60028110611a0657fe5b9052565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261180c60a08501826119b1565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015611a925784518252938301936001929092019190830190611a72565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261180c60a08501826119b1565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b901515815260200190565b600085825284602083015283604083015260806060830152611b3760808301846119b1565b9695505050505050565b91825264ffffffffff16602082015260400190565b600060208252610d1c60208301846119b1565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b60208082526049908201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360408201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60608201526839b0b1ba34b7b7399760b91b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526046908201527f426174636820686561646572206d757374206265206f757473696465206f662060408201527f66726175642070726f6f662077696e646f7720746f206265206f7665727772696060820152653a30b136329760d11b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b602080825260409082018190527f537461746520626174636865732063616e206f6e6c792062652064656c657465908201527f642077697468696e207468652066726175642070726f6f662077696e646f772e606082015260800190565b6020808252603b908201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560408201527f6420627920746865204f564d5f467261756456657269666965722e0000000000606082015260800190565b60208082526025908201527f4261746368206865616465722074696d657374616d702063616e6e6f74206265604082015264207a65726f60d81b606082015260800190565b60208082526023908201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460408201526231b41760e91b606082015260800190565b6020808252602f908201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60408201526e1b1b185d195c985b081c1bdcdd1959608a1b606082015260800190565b6020808252601a908201527f496e76616c6964207472616e73616374696f6e2070726f6f662e000000000000604082015260600190565b60208082526043908201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960408201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460608201526237bb9760e91b608082015260a00190565b60208082526039908201527f426174636820696e646578206d7573742062652067726561746572207468616e60408201527f206c617374206f7665727772697461626c6520696e6465782e00000000000000606082015260800190565b60208082526014908201527324b73b30b634b2103130ba31b41034b73232bc1760611b604082015260600190565b60006080825285516080830152602086015160a0830152604086015161205f60c08401826119fc565b50606086015161207260e08401826119a4565b5060808601516120866101008401826119a4565b5060a086015161012083015260c086015160e06101408401526120ad6101608401826119b1565b905082810360208401526120c18187611a9d565b905082810360408401526120d58186611a0a565b905082810360608401526120e98185611a47565b979650505050505050565b9182526001600160a01b0316602082015260400190565b6040518181016001600160401b038111828210171561212957600080fd5b604052919050565b6001600160a01b038116811461073f57600080fd5b801515811461073f57600080fd5b64ffffffffff8116811461073f57600080fdfea26469706673582212200cb074be623b3d17d845200459ebe861f1e590cbb64feb9f0299aeb43a02bffb64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806381eb62ef1161007157806381eb62ef146101475780638ca5cbb91461014f5780639418bddd14610162578063b8e189ac14610175578063c17b291b14610188578063e561dddc14610190576100b4565b80632979761b146100b9578063461a4478146100ce5780634d69ee57146100f7578063677f5aff146101175780637aa63a861461012a5780637ad168a01461013f575b600080fd5b6100cc6100c7366004611846565b610198565b005b6100e16100dc3660046117da565b6102be565b6040516100ee9190611af3565b60405180910390f35b61010a610105366004611750565b610347565b6040516100ee9190611b07565b61010a6101253660046117b9565b6103ac565b61013261047e565b6040516100ee9190611adc565b610132610497565b6101326104b0565b6100cc61015d3660046116f2565b6104b6565b61010a610170366004611814565b610677565b6100cc610183366004611814565b6106c2565b610132610742565b610132610749565b6101a185610796565b6101c65760405162461bcd60e51b81526004016101bd90611d4a565b60405180910390fd5b6101cf85610677565b156101ec5760405162461bcd60e51b81526004016101bd90611c81565b60015485511161020e5760405162461bcd60e51b81526004016101bd90611fab565b600b546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce90610244908790879087908790600401612036565b60206040518083038186803b15801561025c57600080fd5b505afa158015610270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102949190611734565b6102b05760405162461bcd60e51b81526004016101bd90611f0b565b505091516001555160025550565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906102ef908590600401611b56565b60206040518083038186803b15801561030757600080fd5b505afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f91906116d6565b90505b919050565b600061035283610796565b61036e5760405162461bcd60e51b81526004016101bd90611d4a565b610386836020015185846000015185602001516107be565b6103a25760405162461bcd60e51b81526004016101bd90611c1c565b5060019392505050565b60007f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c558314156104715760028054600b5460405163153f8c5f60e11b815291926001600160a01b0390911691632a7f18be9161040e9190870490600401611adc565b60606040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e9190611911565b6020015164ffffffffff16109050610478565b5060015481105b92915050565b600080610489610829565b5064ffffffffff1691505090565b6000806104a2610829565b64ffffffffff169250505090565b61070881565b6104be61047e565b81146104dc5760405162461bcd60e51b81526004016101bd90611ced565b600d54604051630156a69560e11b81526001600160a01b03909116906302ad4d2a9061050c903390600401611af3565b60206040518083038186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190611734565b6105785760405162461bcd60e51b81526004016101bd90611ebc565b60008251116105995760405162461bcd60e51b81526004016101bd90611e79565b600b60009054906101000a90046001600160a01b03166001600160a01b0316637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b1580156105e757600080fd5b505afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f919061195d565b825161062961047e565b0111156106485760405162461bcd60e51b81526004016101bd90611bad565b61067382423360405160200161065f9291906120f4565b604051602081830303815290604052610850565b5050565b60008082608001518060200190518101906106929190611975565b509050806106b25760405162461bcd60e51b81526004016101bd90611e34565b4262093a80820111915050919050565b600c546001600160a01b031633146106ec5760405162461bcd60e51b81526004016101bd90611dd7565b6106f581610796565b6107115760405162461bcd60e51b81526004016101bd90611d4a565b61071a81610677565b6107365760405162461bcd60e51b81526004016101bd90611d79565b61073f816109fc565b50565b62093a8081565b60006107556003610a74565b64ffffffffff16905090565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b80516000906107ae9060039064ffffffffff16610a8f565b6107b783610bed565b1492915050565b600083815b835181101561081d5760008482815181106107da57fe5b60209081029190910101519050600186831c8116148015610806576107ff8483610c33565b9350610813565b6108108285610c33565b93505b50506001016107c3565b50909414949350505050565b60008060006108386003610c66565b64ffffffffff602882901c16935060501c9150509091565b60006108806040518060400160405280600d81526020016c27ab26afa9b2b8bab2b731b2b960991b8152506102be565b905060008061088d610829565b9092509050336001600160a01b03841614156108aa5750426108d4565b426107088264ffffffffff1601106108d45760405162461bcd60e51b81526004016101bd90611f42565b606085516001600160401b03811180156108ed57600080fd5b5060405190808252806020026020018201604052801561092157816020015b606081526020019060019003908161090c5790505b50905060005b86518110156109825786818151811061093c57fe5b60200260200101516040516020016109549190611adc565b60405160208183030381529060405282828151811061096f57fe5b6020908102919091010152600101610927565b5061098b6113b4565b6040518060a0016040528061099e610749565b81526020016109ac84610c84565b81528351602082015264ffffffffff8616604082015260600187905290506109f36109d682610bed565b6109ea836040015184606001510186610d23565b60039190610d31565b50505050505050565b610a066003610a74565b64ffffffffff16816000015110610a2f5760405162461bcd60e51b81526004016101bd90612008565b610a3881610796565b610a545760405162461bcd60e51b81526004016101bd90611d4a565b61073f8160000151610a6b83606001516000610d23565b60039190610eb6565b6000610a7e6113e6565b610a8783610fc6565b519392505050565b6000610a996113e6565b610aa284610fc6565b805190915064ffffffffff168310610acc5760405162461bcd60e51b81526004016101bd90611c53565b6000610aee82604001516001600160401b03168661102890919063ffffffff16565b90506000610b1583604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168510610b76576080830151825464ffffffffff9091168603908110610b5a5760405162461bcd60e51b81526004016101bd90611c53565b6000908152600190920160205250604090205491506104789050565b6080830151606084015164ffffffffff9182168781039290911610610bad5760405162461bcd60e51b81526004016101bd90611c53565b8154811115610bce5760405162461bcd60e51b81526004016101bd90611c53565b8154036000908152600190910160205260409020549250610478915050565b60008160200151826040015183606001518460800151604051602001610c169493929190611b12565b604051602081830303815290604052805190602001209050919050565b60008282604051602001610c48929190611ae5565b60405160208183030381529060405280519060200120905092915050565b6000610c706113e6565b610c7983610fc6565b602001519392505050565b6000606082516001600160401b0381118015610c9f57600080fd5b50604051908082528060200260200182016040528015610cc9578160200160208202803683370190505b50905060005b8351811015610d1257838181518110610ce457fe5b602002602001015180519060200120828281518110610cff57fe5b6020908102919091010152600101610ccf565b50610d1c81611044565b9392505050565b602890811b91909117901b90565b610d396113e6565b610d4284610fc6565b90506000610d6682604001516001600160401b03168661102890919063ffffffff16565b8054909150610d7457601081555b8054608083015183510364ffffffffff1610610e6c5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff92610dc292600401611b41565b602060405180830381600087803b158015610ddc57600080fd5b505af1925050508015610e0c575060408051601f3d908101601f19168201909252610e0991810190611734565b60015b610e1857506000610e1b565b90505b8015610e62576040830180516001016001600160401b03169081905260808401805164ffffffffff90811660608701528551169052610e5b908790611028565b9150610e6a565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526109f38684611259565b610ebe6113e6565b610ec784610fc6565b9050806000015164ffffffffff168364ffffffffff16108015610efc5750806060015164ffffffffff168364ffffffffff1610155b610f185760405162461bcd60e51b81526004016101bd90611c53565b6000610f3a82604001516001600160401b03168661102890919063ffffffff16565b90506000610f6183604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168564ffffffffff161015610fa457604083018051600019016001600160401b03169052606083015164ffffffffff1660808401525b64ffffffffff8516835264ffffffffff19841660208401526109f38684611259565b610fce6113e6565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b6000600282061561103c5782600601610d1c565b505060040190565b6000808251116110665760405162461bcd60e51b81526004016101bd90611b69565b81516001141561108c578160008151811061107d57fe5b60200260200101519050610342565b606061109883516112bf565b8351909150839060029006600114156111335783516001016001600160401b03811180156110c557600080fd5b506040519080825280602002602001820160405280156110ef578160200160208202803683370190505b50905060005b84518110156111315784818151811061110a57fe5b602002602001015182828151811061111e57fe5b60209081029190910101526001016110f5565b505b835160009060028106600114156111735783828151811061115057fe5b602002602001015183828151811061116457fe5b60209081029190910101526001015b60018111156112395760018201915060005b600282048110156111e8576111c98482600202815181106111a257fe5b60200260200101518583600202600101815181106111bc57fe5b6020026020010151610c33565b8482815181106111d557fe5b6020908102919091010152600101611185565b50600290046001808216148015611200575080600114155b156112345783828151811061121157fe5b602002602001015183828151811061122557fe5b60209081029190910101526001015b611173565b8260008151811061124657fe5b6020026020010151945050505050919050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b17959094909390929091871461129f5760028a018790555b858a60030154146112b25760038a018690555b5050505050505092915050565b606080826001600160401b03811180156112d857600080fd5b50604051908082528060200260200182016040528015611302578160200160208202803683370190505b50905060006040516020016113179190611adc565b604051602081830303815290604052805190602001208160008151811061133a57fe5b602090810291909101015260015b81518110156113ad5781600182038151811061136057fe5b60200260200101516040516020016113789190611adc565b6040516020818303038152906040528051906020012082828151811061139a57fe5b6020908102919091010152600101611348565b5092915050565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b803561047881612131565b600082601f83011261142f578081fd5b81356001600160401b03811115611444578182fd5b602080820261145482820161210b565b8381529350818401858301828701840188101561147057600080fd5b600092505b84831015611493578035825260019290920191908301908301611475565b505050505092915050565b600082601f8301126114ae578081fd5b81356001600160401b038111156114c3578182fd5b6114d6601f8201601f191660200161210b565b91508082528360208285010111156114ed57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061047857600080fd5b600060a08284031215611526578081fd5b61153060a061210b565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b6115798482850161149e565b60808301525092915050565b600060408284031215611596578081fd5b6115a0604061210b565b90508135815260208201356001600160401b038111156115bf57600080fd5b6115cb8482850161141f565b60208301525092915050565b600060a082840312156115e8578081fd5b6115f260a061210b565b905081356115ff81612146565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b600060e0828403121561164b578081fd5b61165560e061210b565b905081358152602082013560208201526116728360408401611506565b60408201526116848360608401611414565b60608201526116968360808401611414565b608082015260a082013560a082015260c08201356001600160401b038111156116be57600080fd5b6116ca8482850161149e565b60c08301525092915050565b6000602082840312156116e7578081fd5b8151610d1c81612131565b60008060408385031215611704578081fd5b82356001600160401b03811115611719578182fd5b6117258582860161141f565b95602094909401359450505050565b600060208284031215611745578081fd5b8151610d1c81612146565b600080600060608486031215611764578081fd5b8335925060208401356001600160401b0380821115611781578283fd5b61178d87838801611515565b935060408601359150808211156117a2578283fd5b506117af86828701611585565b9150509250925092565b600080604083850312156117cb578182fd5b50508035926020909101359150565b6000602082840312156117eb578081fd5b81356001600160401b03811115611800578182fd5b61180c8482850161149e565b949350505050565b600060208284031215611825578081fd5b81356001600160401b0381111561183a578182fd5b61180c84828501611515565b600080600080600060a0868803121561185d578283fd5b85356001600160401b0380821115611873578485fd5b61187f89838a01611515565b96506020880135915080821115611894578485fd5b6118a089838a0161163a565b955060408801359150808211156118b5578485fd5b6118c189838a016115d7565b945060608801359150808211156118d6578283fd5b6118e289838a01611515565b935060808801359150808211156118f7578283fd5b5061190488828901611585565b9150509295509295909350565b600060608284031215611922578081fd5b61192c606061210b565b82518152602083015161193e81612154565b6020820152604083015161195181612154565b60408201529392505050565b60006020828403121561196e578081fd5b5051919050565b60008060408385031215611987578182fd5b82519150602083015161199981612131565b809150509250929050565b6001600160a01b03169052565b60008151808452815b818110156119d6576020818501810151868301820152016119ba565b818111156119e75782602083870101525b50601f01601f19169290920160200192915050565b60028110611a0657fe5b9052565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261180c60a08501826119b1565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015611a925784518252938301936001929092019190830190611a72565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261180c60a08501826119b1565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b901515815260200190565b600085825284602083015283604083015260806060830152611b3760808301846119b1565b9695505050505050565b91825264ffffffffff16602082015260400190565b600060208252610d1c60208301846119b1565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b60208082526049908201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360408201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60608201526839b0b1ba34b7b7399760b91b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526046908201527f426174636820686561646572206d757374206265206f757473696465206f662060408201527f66726175642070726f6f662077696e646f7720746f206265206f7665727772696060820152653a30b136329760d11b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b602080825260409082018190527f537461746520626174636865732063616e206f6e6c792062652064656c657465908201527f642077697468696e207468652066726175642070726f6f662077696e646f772e606082015260800190565b6020808252603b908201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560408201527f6420627920746865204f564d5f467261756456657269666965722e0000000000606082015260800190565b60208082526025908201527f4261746368206865616465722074696d657374616d702063616e6e6f74206265604082015264207a65726f60d81b606082015260800190565b60208082526023908201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460408201526231b41760e91b606082015260800190565b6020808252602f908201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60408201526e1b1b185d195c985b081c1bdcdd1959608a1b606082015260800190565b6020808252601a908201527f496e76616c6964207472616e73616374696f6e2070726f6f662e000000000000604082015260600190565b60208082526043908201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960408201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460608201526237bb9760e91b608082015260a00190565b60208082526039908201527f426174636820696e646578206d7573742062652067726561746572207468616e60408201527f206c617374206f7665727772697461626c6520696e6465782e00000000000000606082015260800190565b60208082526014908201527324b73b30b634b2103130ba31b41034b73232bc1760611b604082015260600190565b60006080825285516080830152602086015160a0830152604086015161205f60c08401826119fc565b50606086015161207260e08401826119a4565b5060808601516120866101008401826119a4565b5060a086015161012083015260c086015160e06101408401526120ad6101608401826119b1565b905082810360208401526120c18187611a9d565b905082810360408401526120d58186611a0a565b905082810360608401526120e98185611a47565b979650505050505050565b9182526001600160a01b0316602082015260400190565b6040518181016001600160401b038111828210171561212957600080fd5b604052919050565b6001600160a01b038116811461073f57600080fd5b801515811461073f57600080fd5b64ffffffffff8116811461073f57600080fdfea26469706673582212200cb074be623b3d17d845200459ebe861f1e590cbb64feb9f0299aeb43a02bffb64736f6c63430007000033",
"bytecode": "0x60806040523480156200001157600080fd5b506040516200247538038062002475833981016040819052620000349162000257565b600080546001600160a01b0319166001600160a01b03831617905560408051808201909152601d81527f4f564d5f43616e6f6e6963616c5472616e73616374696f6e436861696e00000060208201526200008e9062000195565b600b80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601181527027ab26afa33930bab22b32b934b334b2b960791b6020820152620000e19062000195565b600c80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600f81526e27ab26afa137b73226b0b730b3b2b960891b6020820152620001329062000195565b600d80546001600160a01b0319166001600160a01b03929092169190911790556200018e600360107f96df3abc26f419f0cc8d819984a2b87820d08c41bf1b84a59ce36f5d7336d1913062000222602090811b6200076117901c565b50620002dd565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190620001c890859060040162000287565b60206040518083038186803b158015620001e157600080fd5b505afa158015620001f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021c919062000257565b92915050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b60006020828403121562000269578081fd5b81516001600160a01b038116811462000280578182fd5b9392505050565b6000602080835283518082850152825b81811015620002b55785810183015185820160400152820162000297565b81811115620002c75783604083870101525b50601f01601f1916929092016040019392505050565b61218880620002ed6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806381eb62ef1161007157806381eb62ef146101475780638ca5cbb91461014f5780639418bddd14610162578063b8e189ac14610175578063c17b291b14610188578063e561dddc14610190576100b4565b80632979761b146100b9578063461a4478146100ce5780634d69ee57146100f7578063677f5aff146101175780637aa63a861461012a5780637ad168a01461013f575b600080fd5b6100cc6100c7366004611846565b610198565b005b6100e16100dc3660046117da565b6102be565b6040516100ee9190611ad8565b60405180910390f35b61010a610105366004611750565b610347565b6040516100ee9190611aec565b61010a6101253660046117b9565b6103ac565b61013261047e565b6040516100ee9190611ac1565b610132610497565b6101326104b0565b6100cc61015d3660046116f2565b6104b6565b61010a610170366004611814565b610677565b6100cc610183366004611814565b6106c2565b610132610742565b610132610749565b6101a185610796565b6101c65760405162461bcd60e51b81526004016101bd90611d2f565b60405180910390fd5b6101cf85610677565b156101ec5760405162461bcd60e51b81526004016101bd90611c66565b60015485511161020e5760405162461bcd60e51b81526004016101bd90611f90565b600b546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061024490879087908790879060040161201b565b60206040518083038186803b15801561025c57600080fd5b505afa158015610270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102949190611734565b6102b05760405162461bcd60e51b81526004016101bd90611ef0565b505091516001555160025550565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906102ef908590600401611b3b565b60206040518083038186803b15801561030757600080fd5b505afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f91906116d6565b90505b919050565b600061035283610796565b61036e5760405162461bcd60e51b81526004016101bd90611d2f565b610386836020015185846000015185602001516107be565b6103a25760405162461bcd60e51b81526004016101bd90611c01565b5060019392505050565b60007f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c558314156104715760028054600b5460405163153f8c5f60e11b815291926001600160a01b0390911691632a7f18be9161040e9190870490600401611ac1565b60606040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e9190611911565b6020015164ffffffffff16109050610478565b5060015481105b92915050565b600080610489610829565b5064ffffffffff1691505090565b6000806104a2610829565b64ffffffffff169250505090565b61070881565b6104be61047e565b81146104dc5760405162461bcd60e51b81526004016101bd90611cd2565b600d54604051630156a69560e11b81526001600160a01b03909116906302ad4d2a9061050c903390600401611ad8565b60206040518083038186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190611734565b6105785760405162461bcd60e51b81526004016101bd90611ea1565b60008251116105995760405162461bcd60e51b81526004016101bd90611e5e565b600b60009054906101000a90046001600160a01b03166001600160a01b0316637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b1580156105e757600080fd5b505afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f919061195d565b825161062961047e565b0111156106485760405162461bcd60e51b81526004016101bd90611b92565b61067382423360405160200161065f9291906120d4565b604051602081830303815290604052610850565b5050565b60008082608001518060200190518101906106929190611975565b509050806106b25760405162461bcd60e51b81526004016101bd90611e19565b4262093a80820111915050919050565b600c546001600160a01b031633146106ec5760405162461bcd60e51b81526004016101bd90611dbc565b6106f581610796565b6107115760405162461bcd60e51b81526004016101bd90611d2f565b61071a81610677565b6107365760405162461bcd60e51b81526004016101bd90611d5e565b61073f816109fc565b50565b62093a8081565b60006107556003610a74565b64ffffffffff16905090565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b80516000906107ae9060039064ffffffffff16610a8f565b6107b783610bed565b1492915050565b600083815b835181101561081d5760008482815181106107da57fe5b60209081029190910101519050600186831c8116148015610806576107ff8483610c33565b9350610813565b6108108285610c33565b93505b50506001016107c3565b50909414949350505050565b60008060006108386003610c66565b64ffffffffff602882901c16935060501c9150509091565b60006108806040518060400160405280600d81526020016c27ab26afa9b2b8bab2b731b2b960991b8152506102be565b905060008061088d610829565b9092509050336001600160a01b03841614156108aa5750426108d4565b426107088264ffffffffff1601106108d45760405162461bcd60e51b81526004016101bd90611f27565b606085516001600160401b03811180156108ed57600080fd5b5060405190808252806020026020018201604052801561092157816020015b606081526020019060019003908161090c5790505b50905060005b86518110156109825786818151811061093c57fe5b60200260200101516040516020016109549190611ac1565b60405160208183030381529060405282828151811061096f57fe5b6020908102919091010152600101610927565b5061098b6113b4565b6040518060a0016040528061099e610749565b81526020016109ac84610c84565b81528351602082015264ffffffffff8616604082015260600187905290506109f36109d682610bed565b6109ea836040015184606001510186610d23565b60039190610d31565b50505050505050565b610a066003610a74565b64ffffffffff16816000015110610a2f5760405162461bcd60e51b81526004016101bd90611fed565b610a3881610796565b610a545760405162461bcd60e51b81526004016101bd90611d2f565b61073f8160000151610a6b83606001516000610d23565b60039190610eb6565b6000610a7e6113e6565b610a8783610fc6565b519392505050565b6000610a996113e6565b610aa284610fc6565b805190915064ffffffffff168310610acc5760405162461bcd60e51b81526004016101bd90611c38565b6000610aee82604001516001600160401b03168661102890919063ffffffff16565b90506000610b1583604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168510610b76576080830151825464ffffffffff9091168603908110610b5a5760405162461bcd60e51b81526004016101bd90611c38565b6000908152600190920160205250604090205491506104789050565b6080830151606084015164ffffffffff9182168781039290911610610bad5760405162461bcd60e51b81526004016101bd90611c38565b8154811115610bce5760405162461bcd60e51b81526004016101bd90611c38565b8154036000908152600190910160205260409020549250610478915050565b60008160200151826040015183606001518460800151604051602001610c169493929190611af7565b604051602081830303815290604052805190602001209050919050565b60008282604051602001610c48929190611aca565b60405160208183030381529060405280519060200120905092915050565b6000610c706113e6565b610c7983610fc6565b602001519392505050565b6000606082516001600160401b0381118015610c9f57600080fd5b50604051908082528060200260200182016040528015610cc9578160200160208202803683370190505b50905060005b8351811015610d1257838181518110610ce457fe5b602002602001015180519060200120828281518110610cff57fe5b6020908102919091010152600101610ccf565b50610d1c81611044565b9392505050565b602890811b91909117901b90565b610d396113e6565b610d4284610fc6565b90506000610d6682604001516001600160401b03168661102890919063ffffffff16565b8054909150610d7457601081555b8054608083015183510364ffffffffff1610610e6c5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff92610dc292600401611b26565b602060405180830381600087803b158015610ddc57600080fd5b505af1925050508015610e0c575060408051601f3d908101601f19168201909252610e0991810190611734565b60015b610e1857506000610e1b565b90505b8015610e62576040830180516001016001600160401b03169081905260808401805164ffffffffff90811660608701528551169052610e5b908790611028565b9150610e6a565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526109f38684611259565b610ebe6113e6565b610ec784610fc6565b9050806000015164ffffffffff168364ffffffffff16108015610efc5750806060015164ffffffffff168364ffffffffff1610155b610f185760405162461bcd60e51b81526004016101bd90611c38565b6000610f3a82604001516001600160401b03168661102890919063ffffffff16565b90506000610f6183604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168564ffffffffff161015610fa457604083018051600019016001600160401b03169052606083015164ffffffffff1660808401525b64ffffffffff8516835264ffffffffff19841660208401526109f38684611259565b610fce6113e6565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b6000600282061561103c5782600601610d1c565b505060040190565b6000808251116110665760405162461bcd60e51b81526004016101bd90611b4e565b81516001141561108c578160008151811061107d57fe5b60200260200101519050610342565b606061109883516112bf565b8351909150839060029006600114156111335783516001016001600160401b03811180156110c557600080fd5b506040519080825280602002602001820160405280156110ef578160200160208202803683370190505b50905060005b84518110156111315784818151811061110a57fe5b602002602001015182828151811061111e57fe5b60209081029190910101526001016110f5565b505b835160009060028106600114156111735783828151811061115057fe5b602002602001015183828151811061116457fe5b60209081029190910101526001015b60018111156112395760018201915060005b600282048110156111e8576111c98482600202815181106111a257fe5b60200260200101518583600202600101815181106111bc57fe5b6020026020010151610c33565b8482815181106111d557fe5b6020908102919091010152600101611185565b50600290046001808216148015611200575080600114155b156112345783828151811061121157fe5b602002602001015183828151811061122557fe5b60209081029190910101526001015b611173565b8260008151811061124657fe5b6020026020010151945050505050919050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b17959094909390929091871461129f5760028a018790555b858a60030154146112b25760038a018690555b5050505050505092915050565b606080826001600160401b03811180156112d857600080fd5b50604051908082528060200260200182016040528015611302578160200160208202803683370190505b50905060006040516020016113179190611ac1565b604051602081830303815290604052805190602001208160008151811061133a57fe5b602090810291909101015260015b81518110156113ad5781600182038151811061136057fe5b60200260200101516040516020016113789190611ac1565b6040516020818303038152906040528051906020012082828151811061139a57fe5b6020908102919091010152600101611348565b5092915050565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b80356104788161211c565b600082601f83011261142f578081fd5b81356001600160401b03811115611444578182fd5b60208082026114548282016120eb565b8381529350818401858301828701840188101561147057600080fd5b600092505b84831015611493578035825260019290920191908301908301611475565b505050505092915050565b600082601f8301126114ae578081fd5b81356001600160401b038111156114c3578182fd5b6114d6601f8201601f19166020016120eb565b91508082528360208285010111156114ed57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061047857600080fd5b600060a08284031215611526578081fd5b61153060a06120eb565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b6115798482850161149e565b60808301525092915050565b600060408284031215611596578081fd5b6115a060406120eb565b90508135815260208201356001600160401b038111156115bf57600080fd5b6115cb8482850161141f565b60208301525092915050565b600060a082840312156115e8578081fd5b6115f260a06120eb565b905081356115ff81612131565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b600060e0828403121561164b578081fd5b61165560e06120eb565b905081358152602082013560208201526116728360408401611506565b60408201526116848360608401611414565b60608201526116968360808401611414565b608082015260a082013560a082015260c08201356001600160401b038111156116be57600080fd5b6116ca8482850161149e565b60c08301525092915050565b6000602082840312156116e7578081fd5b8151610d1c8161211c565b60008060408385031215611704578081fd5b82356001600160401b03811115611719578182fd5b6117258582860161141f565b95602094909401359450505050565b600060208284031215611745578081fd5b8151610d1c81612131565b600080600060608486031215611764578081fd5b8335925060208401356001600160401b0380821115611781578283fd5b61178d87838801611515565b935060408601359150808211156117a2578283fd5b506117af86828701611585565b9150509250925092565b600080604083850312156117cb578182fd5b50508035926020909101359150565b6000602082840312156117eb578081fd5b81356001600160401b03811115611800578182fd5b61180c8482850161149e565b949350505050565b600060208284031215611825578081fd5b81356001600160401b0381111561183a578182fd5b61180c84828501611515565b600080600080600060a0868803121561185d578283fd5b85356001600160401b0380821115611873578485fd5b61187f89838a01611515565b96506020880135915080821115611894578485fd5b6118a089838a0161163a565b955060408801359150808211156118b5578485fd5b6118c189838a016115d7565b945060608801359150808211156118d6578283fd5b6118e289838a01611515565b935060808801359150808211156118f7578283fd5b5061190488828901611585565b9150509295509295909350565b600060608284031215611922578081fd5b61192c60606120eb565b82518152602083015161193e8161213f565b602082015260408301516119518161213f565b60408201529392505050565b60006020828403121561196e578081fd5b5051919050565b60008060408385031215611987578182fd5b8251915060208301516119998161211c565b809150509250929050565b60008151808452815b818110156119c9576020818501810151868301820152016119ad565b818111156119da5782602083870101525b50601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261180c60a08501826119a4565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015611a775784518252938301936001929092019190830190611a57565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261180c60a08501826119a4565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b901515815260200190565b600085825284602083015283604083015260806060830152611b1c60808301846119a4565b9695505050505050565b91825264ffffffffff16602082015260400190565b600060208252610d1c60208301846119a4565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b60208082526049908201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360408201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60608201526839b0b1ba34b7b7399760b91b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526046908201527f426174636820686561646572206d757374206265206f757473696465206f662060408201527f66726175642070726f6f662077696e646f7720746f206265206f7665727772696060820152653a30b136329760d11b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b602080825260409082018190527f537461746520626174636865732063616e206f6e6c792062652064656c657465908201527f642077697468696e207468652066726175642070726f6f662077696e646f772e606082015260800190565b6020808252603b908201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560408201527f6420627920746865204f564d5f467261756456657269666965722e0000000000606082015260800190565b60208082526025908201527f4261746368206865616465722074696d657374616d702063616e6e6f74206265604082015264207a65726f60d81b606082015260800190565b60208082526023908201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460408201526231b41760e91b606082015260800190565b6020808252602f908201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60408201526e1b1b185d195c985b081c1bdcdd1959608a1b606082015260800190565b6020808252601a908201527f496e76616c6964207472616e73616374696f6e2070726f6f662e000000000000604082015260600190565b60208082526043908201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960408201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460608201526237bb9760e91b608082015260a00190565b60208082526039908201527f426174636820696e646578206d7573742062652067726561746572207468616e60408201527f206c617374206f7665727772697461626c6520696e6465782e00000000000000606082015260800190565b60208082526014908201527324b73b30b634b2103130ba31b41034b73232bc1760611b604082015260600190565b60006080825285516080830152602086015160a083015261203f6040870151612111565b60c0830152606086015160018060a01b0380821660e085015280608089015116610100850152505060a086015161012083015260c086015160e061014084015261208d6101608401826119a4565b905082810360208401526120a18187611a82565b905082810360408401526120b581866119ef565b905082810360608401526120c98185611a2c565b979650505050505050565b9182526001600160a01b0316602082015260400190565b6040518181016001600160401b038111828210171561210957600080fd5b604052919050565b806002811061034257fe5b6001600160a01b038116811461073f57600080fd5b801515811461073f57600080fd5b64ffffffffff8116811461073f57600080fdfea26469706673582212200cb074be623b3d17d845200459ebe861f1e590cbb64feb9f0299aeb43a02bffb64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806381eb62ef1161007157806381eb62ef146101475780638ca5cbb91461014f5780639418bddd14610162578063b8e189ac14610175578063c17b291b14610188578063e561dddc14610190576100b4565b80632979761b146100b9578063461a4478146100ce5780634d69ee57146100f7578063677f5aff146101175780637aa63a861461012a5780637ad168a01461013f575b600080fd5b6100cc6100c7366004611846565b610198565b005b6100e16100dc3660046117da565b6102be565b6040516100ee9190611ad8565b60405180910390f35b61010a610105366004611750565b610347565b6040516100ee9190611aec565b61010a6101253660046117b9565b6103ac565b61013261047e565b6040516100ee9190611ac1565b610132610497565b6101326104b0565b6100cc61015d3660046116f2565b6104b6565b61010a610170366004611814565b610677565b6100cc610183366004611814565b6106c2565b610132610742565b610132610749565b6101a185610796565b6101c65760405162461bcd60e51b81526004016101bd90611d2f565b60405180910390fd5b6101cf85610677565b156101ec5760405162461bcd60e51b81526004016101bd90611c66565b60015485511161020e5760405162461bcd60e51b81526004016101bd90611f90565b600b546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061024490879087908790879060040161201b565b60206040518083038186803b15801561025c57600080fd5b505afa158015610270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102949190611734565b6102b05760405162461bcd60e51b81526004016101bd90611ef0565b505091516001555160025550565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906102ef908590600401611b3b565b60206040518083038186803b15801561030757600080fd5b505afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f91906116d6565b90505b919050565b600061035283610796565b61036e5760405162461bcd60e51b81526004016101bd90611d2f565b610386836020015185846000015185602001516107be565b6103a25760405162461bcd60e51b81526004016101bd90611c01565b5060019392505050565b60007f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c558314156104715760028054600b5460405163153f8c5f60e11b815291926001600160a01b0390911691632a7f18be9161040e9190870490600401611ac1565b60606040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e9190611911565b6020015164ffffffffff16109050610478565b5060015481105b92915050565b600080610489610829565b5064ffffffffff1691505090565b6000806104a2610829565b64ffffffffff169250505090565b61070881565b6104be61047e565b81146104dc5760405162461bcd60e51b81526004016101bd90611cd2565b600d54604051630156a69560e11b81526001600160a01b03909116906302ad4d2a9061050c903390600401611ad8565b60206040518083038186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190611734565b6105785760405162461bcd60e51b81526004016101bd90611ea1565b60008251116105995760405162461bcd60e51b81526004016101bd90611e5e565b600b60009054906101000a90046001600160a01b03166001600160a01b0316637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b1580156105e757600080fd5b505afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f919061195d565b825161062961047e565b0111156106485760405162461bcd60e51b81526004016101bd90611b92565b61067382423360405160200161065f9291906120d4565b604051602081830303815290604052610850565b5050565b60008082608001518060200190518101906106929190611975565b509050806106b25760405162461bcd60e51b81526004016101bd90611e19565b4262093a80820111915050919050565b600c546001600160a01b031633146106ec5760405162461bcd60e51b81526004016101bd90611dbc565b6106f581610796565b6107115760405162461bcd60e51b81526004016101bd90611d2f565b61071a81610677565b6107365760405162461bcd60e51b81526004016101bd90611d5e565b61073f816109fc565b50565b62093a8081565b60006107556003610a74565b64ffffffffff16905090565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b80516000906107ae9060039064ffffffffff16610a8f565b6107b783610bed565b1492915050565b600083815b835181101561081d5760008482815181106107da57fe5b60209081029190910101519050600186831c8116148015610806576107ff8483610c33565b9350610813565b6108108285610c33565b93505b50506001016107c3565b50909414949350505050565b60008060006108386003610c66565b64ffffffffff602882901c16935060501c9150509091565b60006108806040518060400160405280600d81526020016c27ab26afa9b2b8bab2b731b2b960991b8152506102be565b905060008061088d610829565b9092509050336001600160a01b03841614156108aa5750426108d4565b426107088264ffffffffff1601106108d45760405162461bcd60e51b81526004016101bd90611f27565b606085516001600160401b03811180156108ed57600080fd5b5060405190808252806020026020018201604052801561092157816020015b606081526020019060019003908161090c5790505b50905060005b86518110156109825786818151811061093c57fe5b60200260200101516040516020016109549190611ac1565b60405160208183030381529060405282828151811061096f57fe5b6020908102919091010152600101610927565b5061098b6113b4565b6040518060a0016040528061099e610749565b81526020016109ac84610c84565b81528351602082015264ffffffffff8616604082015260600187905290506109f36109d682610bed565b6109ea836040015184606001510186610d23565b60039190610d31565b50505050505050565b610a066003610a74565b64ffffffffff16816000015110610a2f5760405162461bcd60e51b81526004016101bd90611fed565b610a3881610796565b610a545760405162461bcd60e51b81526004016101bd90611d2f565b61073f8160000151610a6b83606001516000610d23565b60039190610eb6565b6000610a7e6113e6565b610a8783610fc6565b519392505050565b6000610a996113e6565b610aa284610fc6565b805190915064ffffffffff168310610acc5760405162461bcd60e51b81526004016101bd90611c38565b6000610aee82604001516001600160401b03168661102890919063ffffffff16565b90506000610b1583604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168510610b76576080830151825464ffffffffff9091168603908110610b5a5760405162461bcd60e51b81526004016101bd90611c38565b6000908152600190920160205250604090205491506104789050565b6080830151606084015164ffffffffff9182168781039290911610610bad5760405162461bcd60e51b81526004016101bd90611c38565b8154811115610bce5760405162461bcd60e51b81526004016101bd90611c38565b8154036000908152600190910160205260409020549250610478915050565b60008160200151826040015183606001518460800151604051602001610c169493929190611af7565b604051602081830303815290604052805190602001209050919050565b60008282604051602001610c48929190611aca565b60405160208183030381529060405280519060200120905092915050565b6000610c706113e6565b610c7983610fc6565b602001519392505050565b6000606082516001600160401b0381118015610c9f57600080fd5b50604051908082528060200260200182016040528015610cc9578160200160208202803683370190505b50905060005b8351811015610d1257838181518110610ce457fe5b602002602001015180519060200120828281518110610cff57fe5b6020908102919091010152600101610ccf565b50610d1c81611044565b9392505050565b602890811b91909117901b90565b610d396113e6565b610d4284610fc6565b90506000610d6682604001516001600160401b03168661102890919063ffffffff16565b8054909150610d7457601081555b8054608083015183510364ffffffffff1610610e6c5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff92610dc292600401611b26565b602060405180830381600087803b158015610ddc57600080fd5b505af1925050508015610e0c575060408051601f3d908101601f19168201909252610e0991810190611734565b60015b610e1857506000610e1b565b90505b8015610e62576040830180516001016001600160401b03169081905260808401805164ffffffffff90811660608701528551169052610e5b908790611028565b9150610e6a565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526109f38684611259565b610ebe6113e6565b610ec784610fc6565b9050806000015164ffffffffff168364ffffffffff16108015610efc5750806060015164ffffffffff168364ffffffffff1610155b610f185760405162461bcd60e51b81526004016101bd90611c38565b6000610f3a82604001516001600160401b03168661102890919063ffffffff16565b90506000610f6183604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168564ffffffffff161015610fa457604083018051600019016001600160401b03169052606083015164ffffffffff1660808401525b64ffffffffff8516835264ffffffffff19841660208401526109f38684611259565b610fce6113e6565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b6000600282061561103c5782600601610d1c565b505060040190565b6000808251116110665760405162461bcd60e51b81526004016101bd90611b4e565b81516001141561108c578160008151811061107d57fe5b60200260200101519050610342565b606061109883516112bf565b8351909150839060029006600114156111335783516001016001600160401b03811180156110c557600080fd5b506040519080825280602002602001820160405280156110ef578160200160208202803683370190505b50905060005b84518110156111315784818151811061110a57fe5b602002602001015182828151811061111e57fe5b60209081029190910101526001016110f5565b505b835160009060028106600114156111735783828151811061115057fe5b602002602001015183828151811061116457fe5b60209081029190910101526001015b60018111156112395760018201915060005b600282048110156111e8576111c98482600202815181106111a257fe5b60200260200101518583600202600101815181106111bc57fe5b6020026020010151610c33565b8482815181106111d557fe5b6020908102919091010152600101611185565b50600290046001808216148015611200575080600114155b156112345783828151811061121157fe5b602002602001015183828151811061122557fe5b60209081029190910101526001015b611173565b8260008151811061124657fe5b6020026020010151945050505050919050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b17959094909390929091871461129f5760028a018790555b858a60030154146112b25760038a018690555b5050505050505092915050565b606080826001600160401b03811180156112d857600080fd5b50604051908082528060200260200182016040528015611302578160200160208202803683370190505b50905060006040516020016113179190611ac1565b604051602081830303815290604052805190602001208160008151811061133a57fe5b602090810291909101015260015b81518110156113ad5781600182038151811061136057fe5b60200260200101516040516020016113789190611ac1565b6040516020818303038152906040528051906020012082828151811061139a57fe5b6020908102919091010152600101611348565b5092915050565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b80356104788161211c565b600082601f83011261142f578081fd5b81356001600160401b03811115611444578182fd5b60208082026114548282016120eb565b8381529350818401858301828701840188101561147057600080fd5b600092505b84831015611493578035825260019290920191908301908301611475565b505050505092915050565b600082601f8301126114ae578081fd5b81356001600160401b038111156114c3578182fd5b6114d6601f8201601f19166020016120eb565b91508082528360208285010111156114ed57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061047857600080fd5b600060a08284031215611526578081fd5b61153060a06120eb565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b6115798482850161149e565b60808301525092915050565b600060408284031215611596578081fd5b6115a060406120eb565b90508135815260208201356001600160401b038111156115bf57600080fd5b6115cb8482850161141f565b60208301525092915050565b600060a082840312156115e8578081fd5b6115f260a06120eb565b905081356115ff81612131565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b600060e0828403121561164b578081fd5b61165560e06120eb565b905081358152602082013560208201526116728360408401611506565b60408201526116848360608401611414565b60608201526116968360808401611414565b608082015260a082013560a082015260c08201356001600160401b038111156116be57600080fd5b6116ca8482850161149e565b60c08301525092915050565b6000602082840312156116e7578081fd5b8151610d1c8161211c565b60008060408385031215611704578081fd5b82356001600160401b03811115611719578182fd5b6117258582860161141f565b95602094909401359450505050565b600060208284031215611745578081fd5b8151610d1c81612131565b600080600060608486031215611764578081fd5b8335925060208401356001600160401b0380821115611781578283fd5b61178d87838801611515565b935060408601359150808211156117a2578283fd5b506117af86828701611585565b9150509250925092565b600080604083850312156117cb578182fd5b50508035926020909101359150565b6000602082840312156117eb578081fd5b81356001600160401b03811115611800578182fd5b61180c8482850161149e565b949350505050565b600060208284031215611825578081fd5b81356001600160401b0381111561183a578182fd5b61180c84828501611515565b600080600080600060a0868803121561185d578283fd5b85356001600160401b0380821115611873578485fd5b61187f89838a01611515565b96506020880135915080821115611894578485fd5b6118a089838a0161163a565b955060408801359150808211156118b5578485fd5b6118c189838a016115d7565b945060608801359150808211156118d6578283fd5b6118e289838a01611515565b935060808801359150808211156118f7578283fd5b5061190488828901611585565b9150509295509295909350565b600060608284031215611922578081fd5b61192c60606120eb565b82518152602083015161193e8161213f565b602082015260408301516119518161213f565b60408201529392505050565b60006020828403121561196e578081fd5b5051919050565b60008060408385031215611987578182fd5b8251915060208301516119998161211c565b809150509250929050565b60008151808452815b818110156119c9576020818501810151868301820152016119ad565b818111156119da5782602083870101525b50601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261180c60a08501826119a4565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015611a775784518252938301936001929092019190830190611a57565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261180c60a08501826119a4565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b901515815260200190565b600085825284602083015283604083015260806060830152611b1c60808301846119a4565b9695505050505050565b91825264ffffffffff16602082015260400190565b600060208252610d1c60208301846119a4565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b60208082526049908201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360408201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60608201526839b0b1ba34b7b7399760b91b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526046908201527f426174636820686561646572206d757374206265206f757473696465206f662060408201527f66726175642070726f6f662077696e646f7720746f206265206f7665727772696060820152653a30b136329760d11b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b602080825260409082018190527f537461746520626174636865732063616e206f6e6c792062652064656c657465908201527f642077697468696e207468652066726175642070726f6f662077696e646f772e606082015260800190565b6020808252603b908201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560408201527f6420627920746865204f564d5f467261756456657269666965722e0000000000606082015260800190565b60208082526025908201527f4261746368206865616465722074696d657374616d702063616e6e6f74206265604082015264207a65726f60d81b606082015260800190565b60208082526023908201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460408201526231b41760e91b606082015260800190565b6020808252602f908201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60408201526e1b1b185d195c985b081c1bdcdd1959608a1b606082015260800190565b6020808252601a908201527f496e76616c6964207472616e73616374696f6e2070726f6f662e000000000000604082015260600190565b60208082526043908201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960408201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460608201526237bb9760e91b608082015260a00190565b60208082526039908201527f426174636820696e646578206d7573742062652067726561746572207468616e60408201527f206c617374206f7665727772697461626c6520696e6465782e00000000000000606082015260800190565b60208082526014908201527324b73b30b634b2103130ba31b41034b73232bc1760611b604082015260600190565b60006080825285516080830152602086015160a083015261203f6040870151612111565b60c0830152606086015160018060a01b0380821660e085015280608089015116610100850152505060a086015161012083015260c086015160e061014084015261208d6101608401826119a4565b905082810360208401526120a18187611a82565b905082810360408401526120b581866119ef565b905082810360608401526120c98185611a2c565b979650505050505050565b9182526001600160a01b0316602082015260400190565b6040518181016001600160401b038111828210171561210957600080fd5b604052919050565b806002811061034257fe5b6001600160a01b038116811461073f57600080fd5b801515811461073f57600080fd5b64ffffffffff8116811461073f57600080fdfea26469706673582212200cb074be623b3d17d845200459ebe861f1e590cbb64feb9f0299aeb43a02bffb64736f6c63430007000033",
"linkReferences": {},

@@ -467,3 +467,3 @@ "deployedLinkReferences": {},

{
"astId": 17139,
"astId": 17156,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -473,6 +473,6 @@ "label": "libAddressManager",

"slot": "0",
"type": "t_contract(Lib_AddressManager)17132"
"type": "t_contract(Lib_AddressManager)17149"
},
{
"astId": 10116,
"astId": 10133,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -485,3 +485,3 @@ "label": "lastDeletableIndex",

{
"astId": 10118,
"astId": 10135,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -494,3 +494,3 @@ "label": "lastDeletableTimestamp",

{
"astId": 10120,
"astId": 10137,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -500,6 +500,6 @@ "label": "batches",

"slot": "3",
"type": "t_struct(RingBuffer)21564_storage"
"type": "t_struct(RingBuffer)21581_storage"
},
{
"astId": 10122,
"astId": 10139,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -509,6 +509,6 @@ "label": "ovmCanonicalTransactionChain",

"slot": "11",
"type": "t_contract(iOVM_CanonicalTransactionChain)15808"
"type": "t_contract(iOVM_CanonicalTransactionChain)15825"
},
{
"astId": 10124,
"astId": 10141,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -518,6 +518,6 @@ "label": "ovmFraudVerifier",

"slot": "12",
"type": "t_contract(iOVM_FraudVerifier)16593"
"type": "t_contract(iOVM_FraudVerifier)16610"
},
{
"astId": 10126,
"astId": 10143,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -527,3 +527,3 @@ "label": "ovmBondManager",

"slot": "13",
"type": "t_contract(iOVM_BondManager)16545"
"type": "t_contract(iOVM_BondManager)16562"
}

@@ -537,3 +537,3 @@ ],

},
"t_contract(Lib_AddressManager)17132": {
"t_contract(Lib_AddressManager)17149": {
"encoding": "inplace",

@@ -543,3 +543,3 @@ "label": "contract Lib_AddressManager",

},
"t_contract(iOVM_BondManager)16545": {
"t_contract(iOVM_BondManager)16562": {
"encoding": "inplace",

@@ -549,3 +549,3 @@ "label": "contract iOVM_BondManager",

},
"t_contract(iOVM_CanonicalTransactionChain)15808": {
"t_contract(iOVM_CanonicalTransactionChain)15825": {
"encoding": "inplace",

@@ -555,3 +555,3 @@ "label": "contract iOVM_CanonicalTransactionChain",

},
"t_contract(iOVM_FraudVerifier)16593": {
"t_contract(iOVM_FraudVerifier)16610": {
"encoding": "inplace",

@@ -561,3 +561,3 @@ "label": "contract iOVM_FraudVerifier",

},
"t_contract(iRingBufferOverwriter)21541": {
"t_contract(iRingBufferOverwriter)21558": {
"encoding": "inplace",

@@ -574,3 +574,3 @@ "label": "contract iRingBufferOverwriter",

},
"t_struct(Buffer)21551_storage": {
"t_struct(Buffer)21568_storage": {
"encoding": "inplace",

@@ -580,3 +580,3 @@ "label": "struct Lib_RingBuffer.Buffer",

{
"astId": 21546,
"astId": 21563,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -589,3 +589,3 @@ "label": "length",

{
"astId": 21550,
"astId": 21567,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -600,3 +600,3 @@ "label": "buf",

},
"t_struct(RingBuffer)21564_storage": {
"t_struct(RingBuffer)21581_storage": {
"encoding": "inplace",

@@ -606,3 +606,3 @@ "label": "struct Lib_RingBuffer.RingBuffer",

{
"astId": 21553,
"astId": 21570,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -615,3 +615,3 @@ "label": "id",

{
"astId": 21555,
"astId": 21572,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -621,6 +621,6 @@ "label": "overwriter",

"slot": "1",
"type": "t_contract(iRingBufferOverwriter)21541"
"type": "t_contract(iRingBufferOverwriter)21558"
},
{
"astId": 21557,
"astId": 21574,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -633,3 +633,3 @@ "label": "contextA",

{
"astId": 21559,
"astId": 21576,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -642,3 +642,3 @@ "label": "contextB",

{
"astId": 21561,
"astId": 21578,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -648,6 +648,6 @@ "label": "bufferA",

"slot": "4",
"type": "t_struct(Buffer)21551_storage"
"type": "t_struct(Buffer)21568_storage"
},
{
"astId": 21563,
"astId": 21580,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -657,3 +657,3 @@ "label": "bufferB",

"slot": "6",
"type": "t_struct(Buffer)21551_storage"
"type": "t_struct(Buffer)21568_storage"
}

@@ -660,0 +660,0 @@ ],

@@ -558,4 +558,4 @@ {

],
"bytecode": "0x608060405234801561001057600080fd5b506040516111a33803806111a383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b611112806100916000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80638f3b9647116100f9578063d0a215f211610097578063e90abb8611610071578063e90abb8614610353578063fb37b31c14610366578063fbcbc0f114610379578063fcf149a214610399576101a9565b8063d0a215f214610325578063d126199f14610338578063d7bd4a2a1461034b576101a9565b8063af3dc011116100d3578063af3dc011146102e4578063c3fd9b25146102f7578063c7650bf2146102ff578063c8e40fbf14610312576101a9565b80638f3b9647146102b657806399056ba9146102c9578063af37b864146102d1576101a9565b806326dc5b12116101665780636b18e4e8116101405780636b18e4e8146102735780636c87ad20146102865780637c8ee7031461029b5780638da5cb5b146102ae576101a9565b806326dc5b121461024557806333f94305146102585780635c17d62914610260576101a9565b806307a12945146101ae5780630ad22679146101d757806311b1f790146101ea5780631381ba4d146101fd578063167020d2146102125780631aaf392f14610225575b600080fd5b6101c16101bc366004610e5d565b6103ac565b6040516101ce9190611010565b60405180910390f35b6101c16101e5366004610eb5565b6103ee565b6101c16101f8366004610e5d565b61044b565b61021061020b366004610e5d565b6104c5565b005b6101c1610220366004610e5d565b610526565b610238610233366004610eb5565b6105eb565b6040516101ce919061101b565b610238610253366004610e5d565b610699565b6102106106b8565b61021061026e366004610edf565b610702565b610210610281366004610e5d565b6107d5565b61028e610852565b6040516101ce9190610ffc565b61028e6102a9366004610e5d565b610861565b61028e610882565b6102106102c4366004610f13565b610891565b610238610947565b6101c16102df366004610eb5565b61094d565b6101c16102f2366004610eb5565b6109c0565b610210610a16565b6101c161030d366004610eb5565b610a60565b6101c1610320366004610e5d565b610b28565b610210610333366004610e78565b610b48565b610238610346366004610e5d565b610bc1565b610238610bdc565b610210610361366004610eb5565b610be2565b6101c1610374366004610e5d565b610c3d565b61038c610387366004610e5d565b610c91565b6040516101ce919061107a565b6102106103a7366004610e5d565b610d05565b6001600160a01b0381166000908152600260205260409020600301547d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000145b919050565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff168061044257506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b90505b92915050565b600080546001600160a01b031633148061046f57506001546001600160a01b031633145b6104945760405162461bcd60e51b815260040161048b90611024565b60405180910390fd5b610445826040516020016104a89190610fbd565b604051602081830303815290604052805190602001206002610d9b565b6000546001600160a01b03163314806104e857506001546001600160a01b031633145b6105045760405162461bcd60e51b815260040161048b90611024565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633148061054a57506001546001600160a01b031633145b6105665760405162461bcd60e51b815260040161048b90611024565b6000826040516020016105799190610fbd565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff1660038111156105b257fe5b146105c15760009150506103e9565b6000908152600560205260409020805460ff19166003179055505060068054600019019055600190565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff1615801561064157506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b1561064e57506000610445565b506001600160a01b0391909116600090815260036020908152604080832093835292905220547ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef1890565b6001600160a01b03166000908152600260208190526040909120015490565b6000546001600160a01b03163314806106db57506001546001600160a01b031633145b6106f75760405162461bcd60e51b815260040161048b90611024565b600680546001019055565b6000546001600160a01b031633148061072557506001546001600160a01b031633145b6107415760405162461bcd60e51b815260040161048b90611024565b6001600160a01b038316600081815260036020908152604080832086845282528083207ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef86189055928252600481528282208583529052205460ff166107d0576001600160a01b03831660009081526004602090815260408083208584529091529020805460ff191660011790555b505050565b6000546001600160a01b03163314806107f857506001546001600160a01b031633145b6108145760405162461bcd60e51b815260040161048b90611024565b6001600160a01b031660009081526002602052604090207d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000600390910155565b6001546001600160a01b031681565b6001600160a01b039081166000908152600260205260409020600401541690565b6000546001600160a01b031681565b6000546001600160a01b03163314806108b457506001546001600160a01b031633145b6108d05760405162461bcd60e51b815260040161048b90611024565b6001600160a01b039182166000908152600260208181526040928390208451815590840151600182015591830151908201556060820151600382015560808201516004909101805460a0909301516001600160a01b0319909316919093161760ff60a01b1916600160a01b91151591909102179055565b60075490565b600080546001600160a01b031633148061097157506001546001600160a01b031633145b61098d5760405162461bcd60e51b815260040161048b90611024565b61044283836040516020016109a3929190610fda565b604051602081830303815290604052805190602001206001610d9b565b600080546001600160a01b03163314806109e457506001546001600160a01b031633145b610a005760405162461bcd60e51b815260040161048b90611024565b61044283836040516020016104a8929190610fda565b6000546001600160a01b0316331480610a3957506001546001600160a01b031633145b610a555760405162461bcd60e51b815260040161048b90611024565b600780546001019055565b600080546001600160a01b0316331480610a8457506001546001600160a01b031633145b610aa05760405162461bcd60e51b815260040161048b90611024565b60008383604051602001610ab5929190610fda565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff166003811115610aee57fe5b14610afd576000915050610445565b6000908152600560205260409020805460ff1916600317905550506007805460001901905550600190565b6001600160a01b0316600090815260026020526040902060030154151590565b6000546001600160a01b0316331480610b6b57506001546001600160a01b031633145b610b875760405162461bcd60e51b815260040161048b90611024565b6001600160a01b0392831660009081526002602052604090206004810180546001600160a01b031916939094169290921790925560030155565b6001600160a01b031660009081526002602052604090205490565b60065490565b6000546001600160a01b0316331480610c0557506001546001600160a01b031633145b610c215760405162461bcd60e51b815260040161048b90611024565b6001600160a01b03909116600090815260026020526040902055565b600080546001600160a01b0316331480610c6157506001546001600160a01b031633145b610c7d5760405162461bcd60e51b815260040161048b90611024565b610445826040516020016109a39190610fbd565b610c99610e01565b506001600160a01b03908116600090815260026020818152604092839020835160c08101855281548152600182015492810192909252918201549281019290925260038101546060830152600401549182166080820152600160a01b90910460ff16151560a082015290565b6000546001600160a01b0316331480610d2857506001546001600160a01b031633145b610d445760405162461bcd60e51b815260040161048b90611024565b6001600160a01b03166000908152600260205260409020600181557fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706003820155600401805460ff60a01b1916600160a01b179055565b600080826003811115610daa57fe5b60008581526005602052604090205460ff166003811115610dc757fe5b1015905080610442576000848152600560205260409020805484919060ff19166001836003811115610df557fe5b02179055509392505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b80356001600160a01b038116811461044557600080fd5b8035801515811461044557600080fd5b600060208284031215610e6e578081fd5b6104428383610e36565b600080600060608486031215610e8c578182fd5b610e968585610e36565b9250610ea58560208601610e36565b9150604084013590509250925092565b60008060408385031215610ec7578182fd5b610ed18484610e36565b946020939093013593505050565b600080600060608486031215610ef3578283fd5b8335610efe816110c4565b95602085013595506040909401359392505050565b60008082840360e0811215610f26578283fd5b8335610f31816110c4565b925060c0601f1982011215610f44578182fd5b5060405160c0810181811067ffffffffffffffff82111715610f64578283fd5b806040525060208401358152604084013560208201526060840135604082015260808401356060820152610f9b8560a08601610e36565b6080820152610fad8560c08601610e4d565b60a0820152809150509250929050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526036908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c65642062792061604082015275757468656e746963617465642061646472657373657360501b606082015260800190565b815181526020808301519082015260408083015190820152606080830151908201526080808301516001600160a01b03169082015260a09182015115159181019190915260c00190565b6001600160a01b03811681146110d957600080fd5b5056fea26469706673582212201e4028c9cd1e99302f98722f827bde635525ef9e6b051b0b64287ea5bb985f6a64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80638f3b9647116100f9578063d0a215f211610097578063e90abb8611610071578063e90abb8614610353578063fb37b31c14610366578063fbcbc0f114610379578063fcf149a214610399576101a9565b8063d0a215f214610325578063d126199f14610338578063d7bd4a2a1461034b576101a9565b8063af3dc011116100d3578063af3dc011146102e4578063c3fd9b25146102f7578063c7650bf2146102ff578063c8e40fbf14610312576101a9565b80638f3b9647146102b657806399056ba9146102c9578063af37b864146102d1576101a9565b806326dc5b12116101665780636b18e4e8116101405780636b18e4e8146102735780636c87ad20146102865780637c8ee7031461029b5780638da5cb5b146102ae576101a9565b806326dc5b121461024557806333f94305146102585780635c17d62914610260576101a9565b806307a12945146101ae5780630ad22679146101d757806311b1f790146101ea5780631381ba4d146101fd578063167020d2146102125780631aaf392f14610225575b600080fd5b6101c16101bc366004610e5d565b6103ac565b6040516101ce9190611010565b60405180910390f35b6101c16101e5366004610eb5565b6103ee565b6101c16101f8366004610e5d565b61044b565b61021061020b366004610e5d565b6104c5565b005b6101c1610220366004610e5d565b610526565b610238610233366004610eb5565b6105eb565b6040516101ce919061101b565b610238610253366004610e5d565b610699565b6102106106b8565b61021061026e366004610edf565b610702565b610210610281366004610e5d565b6107d5565b61028e610852565b6040516101ce9190610ffc565b61028e6102a9366004610e5d565b610861565b61028e610882565b6102106102c4366004610f13565b610891565b610238610947565b6101c16102df366004610eb5565b61094d565b6101c16102f2366004610eb5565b6109c0565b610210610a16565b6101c161030d366004610eb5565b610a60565b6101c1610320366004610e5d565b610b28565b610210610333366004610e78565b610b48565b610238610346366004610e5d565b610bc1565b610238610bdc565b610210610361366004610eb5565b610be2565b6101c1610374366004610e5d565b610c3d565b61038c610387366004610e5d565b610c91565b6040516101ce919061107a565b6102106103a7366004610e5d565b610d05565b6001600160a01b0381166000908152600260205260409020600301547d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000145b919050565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff168061044257506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b90505b92915050565b600080546001600160a01b031633148061046f57506001546001600160a01b031633145b6104945760405162461bcd60e51b815260040161048b90611024565b60405180910390fd5b610445826040516020016104a89190610fbd565b604051602081830303815290604052805190602001206002610d9b565b6000546001600160a01b03163314806104e857506001546001600160a01b031633145b6105045760405162461bcd60e51b815260040161048b90611024565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633148061054a57506001546001600160a01b031633145b6105665760405162461bcd60e51b815260040161048b90611024565b6000826040516020016105799190610fbd565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff1660038111156105b257fe5b146105c15760009150506103e9565b6000908152600560205260409020805460ff19166003179055505060068054600019019055600190565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff1615801561064157506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b1561064e57506000610445565b506001600160a01b0391909116600090815260036020908152604080832093835292905220547ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef1890565b6001600160a01b03166000908152600260208190526040909120015490565b6000546001600160a01b03163314806106db57506001546001600160a01b031633145b6106f75760405162461bcd60e51b815260040161048b90611024565b600680546001019055565b6000546001600160a01b031633148061072557506001546001600160a01b031633145b6107415760405162461bcd60e51b815260040161048b90611024565b6001600160a01b038316600081815260036020908152604080832086845282528083207ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef86189055928252600481528282208583529052205460ff166107d0576001600160a01b03831660009081526004602090815260408083208584529091529020805460ff191660011790555b505050565b6000546001600160a01b03163314806107f857506001546001600160a01b031633145b6108145760405162461bcd60e51b815260040161048b90611024565b6001600160a01b031660009081526002602052604090207d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000600390910155565b6001546001600160a01b031681565b6001600160a01b039081166000908152600260205260409020600401541690565b6000546001600160a01b031681565b6000546001600160a01b03163314806108b457506001546001600160a01b031633145b6108d05760405162461bcd60e51b815260040161048b90611024565b6001600160a01b039182166000908152600260208181526040928390208451815590840151600182015591830151908201556060820151600382015560808201516004909101805460a0909301516001600160a01b0319909316919093161760ff60a01b1916600160a01b91151591909102179055565b60075490565b600080546001600160a01b031633148061097157506001546001600160a01b031633145b61098d5760405162461bcd60e51b815260040161048b90611024565b61044283836040516020016109a3929190610fda565b604051602081830303815290604052805190602001206001610d9b565b600080546001600160a01b03163314806109e457506001546001600160a01b031633145b610a005760405162461bcd60e51b815260040161048b90611024565b61044283836040516020016104a8929190610fda565b6000546001600160a01b0316331480610a3957506001546001600160a01b031633145b610a555760405162461bcd60e51b815260040161048b90611024565b600780546001019055565b600080546001600160a01b0316331480610a8457506001546001600160a01b031633145b610aa05760405162461bcd60e51b815260040161048b90611024565b60008383604051602001610ab5929190610fda565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff166003811115610aee57fe5b14610afd576000915050610445565b6000908152600560205260409020805460ff1916600317905550506007805460001901905550600190565b6001600160a01b0316600090815260026020526040902060030154151590565b6000546001600160a01b0316331480610b6b57506001546001600160a01b031633145b610b875760405162461bcd60e51b815260040161048b90611024565b6001600160a01b0392831660009081526002602052604090206004810180546001600160a01b031916939094169290921790925560030155565b6001600160a01b031660009081526002602052604090205490565b60065490565b6000546001600160a01b0316331480610c0557506001546001600160a01b031633145b610c215760405162461bcd60e51b815260040161048b90611024565b6001600160a01b03909116600090815260026020526040902055565b600080546001600160a01b0316331480610c6157506001546001600160a01b031633145b610c7d5760405162461bcd60e51b815260040161048b90611024565b610445826040516020016109a39190610fbd565b610c99610e01565b506001600160a01b03908116600090815260026020818152604092839020835160c08101855281548152600182015492810192909252918201549281019290925260038101546060830152600401549182166080820152600160a01b90910460ff16151560a082015290565b6000546001600160a01b0316331480610d2857506001546001600160a01b031633145b610d445760405162461bcd60e51b815260040161048b90611024565b6001600160a01b03166000908152600260205260409020600181557fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706003820155600401805460ff60a01b1916600160a01b179055565b600080826003811115610daa57fe5b60008581526005602052604090205460ff166003811115610dc757fe5b1015905080610442576000848152600560205260409020805484919060ff19166001836003811115610df557fe5b02179055509392505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b80356001600160a01b038116811461044557600080fd5b8035801515811461044557600080fd5b600060208284031215610e6e578081fd5b6104428383610e36565b600080600060608486031215610e8c578182fd5b610e968585610e36565b9250610ea58560208601610e36565b9150604084013590509250925092565b60008060408385031215610ec7578182fd5b610ed18484610e36565b946020939093013593505050565b600080600060608486031215610ef3578283fd5b8335610efe816110c4565b95602085013595506040909401359392505050565b60008082840360e0811215610f26578283fd5b8335610f31816110c4565b925060c0601f1982011215610f44578182fd5b5060405160c0810181811067ffffffffffffffff82111715610f64578283fd5b806040525060208401358152604084013560208201526060840135604082015260808401356060820152610f9b8560a08601610e36565b6080820152610fad8560c08601610e4d565b60a0820152809150509250929050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526036908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c65642062792061604082015275757468656e746963617465642061646472657373657360501b606082015260800190565b815181526020808301519082015260408083015190820152606080830151908201526080808301516001600160a01b03169082015260a09182015115159181019190915260c00190565b6001600160a01b03811681146110d957600080fd5b5056fea26469706673582212201e4028c9cd1e99302f98722f827bde635525ef9e6b051b0b64287ea5bb985f6a64736f6c63430007000033",
"bytecode": "0x608060405234801561001057600080fd5b5060405161119538038061119583398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b611104806100916000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80638f3b9647116100f9578063d0a215f211610097578063e90abb8611610071578063e90abb8614610353578063fb37b31c14610366578063fbcbc0f114610379578063fcf149a214610399576101a9565b8063d0a215f214610325578063d126199f14610338578063d7bd4a2a1461034b576101a9565b8063af3dc011116100d3578063af3dc011146102e4578063c3fd9b25146102f7578063c7650bf2146102ff578063c8e40fbf14610312576101a9565b80638f3b9647146102b657806399056ba9146102c9578063af37b864146102d1576101a9565b806326dc5b12116101665780636b18e4e8116101405780636b18e4e8146102735780636c87ad20146102865780637c8ee7031461029b5780638da5cb5b146102ae576101a9565b806326dc5b121461024557806333f94305146102585780635c17d62914610260576101a9565b806307a12945146101ae5780630ad22679146101d757806311b1f790146101ea5780631381ba4d146101fd578063167020d2146102125780631aaf392f14610225575b600080fd5b6101c16101bc366004610e5d565b6103ac565b6040516101ce919061101a565b60405180910390f35b6101c16101e5366004610eb5565b6103ee565b6101c16101f8366004610e5d565b61044b565b61021061020b366004610e5d565b6104c5565b005b6101c1610220366004610e5d565b610526565b610238610233366004610eb5565b6105eb565b6040516101ce9190611025565b610238610253366004610e5d565b610699565b6102106106b8565b61021061026e366004610edf565b610702565b610210610281366004610e5d565b6107d5565b61028e610852565b6040516101ce9190611006565b61028e6102a9366004610e5d565b610861565b61028e610882565b6102106102c4366004610f1e565b610891565b610238610947565b6101c16102df366004610eb5565b61094d565b6101c16102f2366004610eb5565b6109c0565b610210610a16565b6101c161030d366004610eb5565b610a60565b6101c1610320366004610e5d565b610b28565b610210610333366004610e78565b610b48565b610238610346366004610e5d565b610bc1565b610238610bdc565b610210610361366004610eb5565b610be2565b6101c1610374366004610e5d565b610c3d565b61038c610387366004610e5d565b610c91565b6040516101ce9190611084565b6102106103a7366004610e5d565b610d05565b6001600160a01b0381166000908152600260205260409020600301547d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000145b919050565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff168061044257506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b90505b92915050565b600080546001600160a01b031633148061046f57506001546001600160a01b031633145b6104945760405162461bcd60e51b815260040161048b9061102e565b60405180910390fd5b610445826040516020016104a89190610fc7565b604051602081830303815290604052805190602001206002610d9b565b6000546001600160a01b03163314806104e857506001546001600160a01b031633145b6105045760405162461bcd60e51b815260040161048b9061102e565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633148061054a57506001546001600160a01b031633145b6105665760405162461bcd60e51b815260040161048b9061102e565b6000826040516020016105799190610fc7565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff1660038111156105b257fe5b146105c15760009150506103e9565b6000908152600560205260409020805460ff19166003179055505060068054600019019055600190565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff1615801561064157506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b1561064e57506000610445565b506001600160a01b0391909116600090815260036020908152604080832093835292905220547ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef1890565b6001600160a01b03166000908152600260208190526040909120015490565b6000546001600160a01b03163314806106db57506001546001600160a01b031633145b6106f75760405162461bcd60e51b815260040161048b9061102e565b600680546001019055565b6000546001600160a01b031633148061072557506001546001600160a01b031633145b6107415760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b038316600081815260036020908152604080832086845282528083207ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef86189055928252600481528282208583529052205460ff166107d0576001600160a01b03831660009081526004602090815260408083208584529091529020805460ff191660011790555b505050565b6000546001600160a01b03163314806107f857506001546001600160a01b031633145b6108145760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b031660009081526002602052604090207d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000600390910155565b6001546001600160a01b031681565b6001600160a01b039081166000908152600260205260409020600401541690565b6000546001600160a01b031681565b6000546001600160a01b03163314806108b457506001546001600160a01b031633145b6108d05760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b039182166000908152600260208181526040928390208451815590840151600182015591830151908201556060820151600382015560808201516004909101805460a0909301516001600160a01b0319909316919093161760ff60a01b1916600160a01b91151591909102179055565b60075490565b600080546001600160a01b031633148061097157506001546001600160a01b031633145b61098d5760405162461bcd60e51b815260040161048b9061102e565b61044283836040516020016109a3929190610fe4565b604051602081830303815290604052805190602001206001610d9b565b600080546001600160a01b03163314806109e457506001546001600160a01b031633145b610a005760405162461bcd60e51b815260040161048b9061102e565b61044283836040516020016104a8929190610fe4565b6000546001600160a01b0316331480610a3957506001546001600160a01b031633145b610a555760405162461bcd60e51b815260040161048b9061102e565b600780546001019055565b600080546001600160a01b0316331480610a8457506001546001600160a01b031633145b610aa05760405162461bcd60e51b815260040161048b9061102e565b60008383604051602001610ab5929190610fe4565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff166003811115610aee57fe5b14610afd576000915050610445565b6000908152600560205260409020805460ff1916600317905550506007805460001901905550600190565b6001600160a01b0316600090815260026020526040902060030154151590565b6000546001600160a01b0316331480610b6b57506001546001600160a01b031633145b610b875760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b0392831660009081526002602052604090206004810180546001600160a01b031916939094169290921790925560030155565b6001600160a01b031660009081526002602052604090205490565b60065490565b6000546001600160a01b0316331480610c0557506001546001600160a01b031633145b610c215760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b03909116600090815260026020526040902055565b600080546001600160a01b0316331480610c6157506001546001600160a01b031633145b610c7d5760405162461bcd60e51b815260040161048b9061102e565b610445826040516020016109a39190610fc7565b610c99610e01565b506001600160a01b03908116600090815260026020818152604092839020835160c08101855281548152600182015492810192909252918201549281019290925260038101546060830152600401549182166080820152600160a01b90910460ff16151560a082015290565b6000546001600160a01b0316331480610d2857506001546001600160a01b031633145b610d445760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b03166000908152600260205260409020600181557fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706003820155600401805460ff60a01b1916600160a01b179055565b600080826003811115610daa57fe5b60008581526005602052604090205460ff166003811115610dc757fe5b1015905080610442576000848152600560205260409020805484919060ff19166001836003811115610df557fe5b02179055509392505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b80356001600160a01b038116811461044557600080fd5b8035801515811461044557600080fd5b600060208284031215610e6e578081fd5b6104428383610e36565b600080600060608486031215610e8c578182fd5b610e968585610e36565b9250610ea58560208601610e36565b9150604084013590509250925092565b60008060408385031215610ec7578182fd5b610ed18484610e36565b946020939093013593505050565b600080600060608486031215610ef3578283fd5b83356001600160a01b0381168114610f09578384fd5b95602085013595506040909401359392505050565b60008082840360e0811215610f31578283fd5b610f3b8585610e36565b925060c0601f1982011215610f4e578182fd5b5060405160c0810181811067ffffffffffffffff82111715610f6e578283fd5b806040525060208401358152604084013560208201526060840135604082015260808401356060820152610fa58560a08601610e36565b6080820152610fb78560c08601610e4d565b60a0820152809150509250929050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526036908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c65642062792061604082015275757468656e746963617465642061646472657373657360501b606082015260800190565b815181526020808301519082015260408083015190820152606080830151908201526080808301516001600160a01b03169082015260a09182015115159181019190915260c0019056fea26469706673582212201e4028c9cd1e99302f98722f827bde635525ef9e6b051b0b64287ea5bb985f6a64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80638f3b9647116100f9578063d0a215f211610097578063e90abb8611610071578063e90abb8614610353578063fb37b31c14610366578063fbcbc0f114610379578063fcf149a214610399576101a9565b8063d0a215f214610325578063d126199f14610338578063d7bd4a2a1461034b576101a9565b8063af3dc011116100d3578063af3dc011146102e4578063c3fd9b25146102f7578063c7650bf2146102ff578063c8e40fbf14610312576101a9565b80638f3b9647146102b657806399056ba9146102c9578063af37b864146102d1576101a9565b806326dc5b12116101665780636b18e4e8116101405780636b18e4e8146102735780636c87ad20146102865780637c8ee7031461029b5780638da5cb5b146102ae576101a9565b806326dc5b121461024557806333f94305146102585780635c17d62914610260576101a9565b806307a12945146101ae5780630ad22679146101d757806311b1f790146101ea5780631381ba4d146101fd578063167020d2146102125780631aaf392f14610225575b600080fd5b6101c16101bc366004610e5d565b6103ac565b6040516101ce919061101a565b60405180910390f35b6101c16101e5366004610eb5565b6103ee565b6101c16101f8366004610e5d565b61044b565b61021061020b366004610e5d565b6104c5565b005b6101c1610220366004610e5d565b610526565b610238610233366004610eb5565b6105eb565b6040516101ce9190611025565b610238610253366004610e5d565b610699565b6102106106b8565b61021061026e366004610edf565b610702565b610210610281366004610e5d565b6107d5565b61028e610852565b6040516101ce9190611006565b61028e6102a9366004610e5d565b610861565b61028e610882565b6102106102c4366004610f1e565b610891565b610238610947565b6101c16102df366004610eb5565b61094d565b6101c16102f2366004610eb5565b6109c0565b610210610a16565b6101c161030d366004610eb5565b610a60565b6101c1610320366004610e5d565b610b28565b610210610333366004610e78565b610b48565b610238610346366004610e5d565b610bc1565b610238610bdc565b610210610361366004610eb5565b610be2565b6101c1610374366004610e5d565b610c3d565b61038c610387366004610e5d565b610c91565b6040516101ce9190611084565b6102106103a7366004610e5d565b610d05565b6001600160a01b0381166000908152600260205260409020600301547d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000145b919050565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff168061044257506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b90505b92915050565b600080546001600160a01b031633148061046f57506001546001600160a01b031633145b6104945760405162461bcd60e51b815260040161048b9061102e565b60405180910390fd5b610445826040516020016104a89190610fc7565b604051602081830303815290604052805190602001206002610d9b565b6000546001600160a01b03163314806104e857506001546001600160a01b031633145b6105045760405162461bcd60e51b815260040161048b9061102e565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633148061054a57506001546001600160a01b031633145b6105665760405162461bcd60e51b815260040161048b9061102e565b6000826040516020016105799190610fc7565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff1660038111156105b257fe5b146105c15760009150506103e9565b6000908152600560205260409020805460ff19166003179055505060068054600019019055600190565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff1615801561064157506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b1561064e57506000610445565b506001600160a01b0391909116600090815260036020908152604080832093835292905220547ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef1890565b6001600160a01b03166000908152600260208190526040909120015490565b6000546001600160a01b03163314806106db57506001546001600160a01b031633145b6106f75760405162461bcd60e51b815260040161048b9061102e565b600680546001019055565b6000546001600160a01b031633148061072557506001546001600160a01b031633145b6107415760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b038316600081815260036020908152604080832086845282528083207ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef86189055928252600481528282208583529052205460ff166107d0576001600160a01b03831660009081526004602090815260408083208584529091529020805460ff191660011790555b505050565b6000546001600160a01b03163314806107f857506001546001600160a01b031633145b6108145760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b031660009081526002602052604090207d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000600390910155565b6001546001600160a01b031681565b6001600160a01b039081166000908152600260205260409020600401541690565b6000546001600160a01b031681565b6000546001600160a01b03163314806108b457506001546001600160a01b031633145b6108d05760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b039182166000908152600260208181526040928390208451815590840151600182015591830151908201556060820151600382015560808201516004909101805460a0909301516001600160a01b0319909316919093161760ff60a01b1916600160a01b91151591909102179055565b60075490565b600080546001600160a01b031633148061097157506001546001600160a01b031633145b61098d5760405162461bcd60e51b815260040161048b9061102e565b61044283836040516020016109a3929190610fe4565b604051602081830303815290604052805190602001206001610d9b565b600080546001600160a01b03163314806109e457506001546001600160a01b031633145b610a005760405162461bcd60e51b815260040161048b9061102e565b61044283836040516020016104a8929190610fe4565b6000546001600160a01b0316331480610a3957506001546001600160a01b031633145b610a555760405162461bcd60e51b815260040161048b9061102e565b600780546001019055565b600080546001600160a01b0316331480610a8457506001546001600160a01b031633145b610aa05760405162461bcd60e51b815260040161048b9061102e565b60008383604051602001610ab5929190610fe4565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff166003811115610aee57fe5b14610afd576000915050610445565b6000908152600560205260409020805460ff1916600317905550506007805460001901905550600190565b6001600160a01b0316600090815260026020526040902060030154151590565b6000546001600160a01b0316331480610b6b57506001546001600160a01b031633145b610b875760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b0392831660009081526002602052604090206004810180546001600160a01b031916939094169290921790925560030155565b6001600160a01b031660009081526002602052604090205490565b60065490565b6000546001600160a01b0316331480610c0557506001546001600160a01b031633145b610c215760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b03909116600090815260026020526040902055565b600080546001600160a01b0316331480610c6157506001546001600160a01b031633145b610c7d5760405162461bcd60e51b815260040161048b9061102e565b610445826040516020016109a39190610fc7565b610c99610e01565b506001600160a01b03908116600090815260026020818152604092839020835160c08101855281548152600182015492810192909252918201549281019290925260038101546060830152600401549182166080820152600160a01b90910460ff16151560a082015290565b6000546001600160a01b0316331480610d2857506001546001600160a01b031633145b610d445760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b03166000908152600260205260409020600181557fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706003820155600401805460ff60a01b1916600160a01b179055565b600080826003811115610daa57fe5b60008581526005602052604090205460ff166003811115610dc757fe5b1015905080610442576000848152600560205260409020805484919060ff19166001836003811115610df557fe5b02179055509392505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b80356001600160a01b038116811461044557600080fd5b8035801515811461044557600080fd5b600060208284031215610e6e578081fd5b6104428383610e36565b600080600060608486031215610e8c578182fd5b610e968585610e36565b9250610ea58560208601610e36565b9150604084013590509250925092565b60008060408385031215610ec7578182fd5b610ed18484610e36565b946020939093013593505050565b600080600060608486031215610ef3578283fd5b83356001600160a01b0381168114610f09578384fd5b95602085013595506040909401359392505050565b60008082840360e0811215610f31578283fd5b610f3b8585610e36565b925060c0601f1982011215610f4e578182fd5b5060405160c0810181811067ffffffffffffffff82111715610f6e578283fd5b806040525060208401358152604084013560208201526060840135604082015260808401356060820152610fa58560a08601610e36565b6080820152610fb78560c08601610e4d565b60a0820152809150509250929050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526036908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c65642062792061604082015275757468656e746963617465642061646472657373657360501b606082015260800190565b815181526020808301519082015260408083015190820152606080830151908201526080808301516001600160a01b03169082015260a09182015115159181019190915260c0019056fea26469706673582212201e4028c9cd1e99302f98722f827bde635525ef9e6b051b0b64287ea5bb985f6a64736f6c63430007000033",
"linkReferences": {},

@@ -566,3 +566,3 @@ "deployedLinkReferences": {},

{
"astId": 13111,
"astId": 13128,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -575,3 +575,3 @@ "label": "owner",

{
"astId": 13114,
"astId": 13131,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -584,3 +584,3 @@ "label": "ovmExecutionManager",

{
"astId": 13118,
"astId": 13135,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -590,6 +590,6 @@ "label": "accounts",

"slot": "2",
"type": "t_mapping(t_address,t_struct(Account)16756_storage)"
"type": "t_mapping(t_address,t_struct(Account)16773_storage)"
},
{
"astId": 13124,
"astId": 13141,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -602,3 +602,3 @@ "label": "contractStorage",

{
"astId": 13130,
"astId": 13147,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -611,3 +611,3 @@ "label": "verifiedContractStorage",

{
"astId": 13134,
"astId": 13151,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -617,6 +617,6 @@ "label": "itemStates",

"slot": "5",
"type": "t_mapping(t_bytes32,t_enum(ItemState)16145)"
"type": "t_mapping(t_bytes32,t_enum(ItemState)16162)"
},
{
"astId": 13136,
"astId": 13153,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -629,3 +629,3 @@ "label": "totalUncommittedAccounts",

{
"astId": 13138,
"astId": 13155,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -654,3 +654,3 @@ "label": "totalUncommittedContractStorage",

},
"t_enum(ItemState)16145": {
"t_enum(ItemState)16162": {
"encoding": "inplace",

@@ -674,3 +674,3 @@ "label": "enum iOVM_StateManager.ItemState",

},
"t_mapping(t_address,t_struct(Account)16756_storage)": {
"t_mapping(t_address,t_struct(Account)16773_storage)": {
"encoding": "mapping",

@@ -680,3 +680,3 @@ "key": "t_address",

"numberOfBytes": "32",
"value": "t_struct(Account)16756_storage"
"value": "t_struct(Account)16773_storage"
},

@@ -697,3 +697,3 @@ "t_mapping(t_bytes32,t_bool)": {

},
"t_mapping(t_bytes32,t_enum(ItemState)16145)": {
"t_mapping(t_bytes32,t_enum(ItemState)16162)": {
"encoding": "mapping",

@@ -703,5 +703,5 @@ "key": "t_bytes32",

"numberOfBytes": "32",
"value": "t_enum(ItemState)16145"
"value": "t_enum(ItemState)16162"
},
"t_struct(Account)16756_storage": {
"t_struct(Account)16773_storage": {
"encoding": "inplace",

@@ -711,3 +711,3 @@ "label": "struct Lib_OVMCodec.Account",

{
"astId": 16745,
"astId": 16762,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -720,3 +720,3 @@ "label": "nonce",

{
"astId": 16747,
"astId": 16764,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -729,3 +729,3 @@ "label": "balance",

{
"astId": 16749,
"astId": 16766,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -738,3 +738,3 @@ "label": "storageRoot",

{
"astId": 16751,
"astId": 16768,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -747,3 +747,3 @@ "label": "codeHash",

{
"astId": 16753,
"astId": 16770,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -756,3 +756,3 @@ "label": "ethAddress",

{
"astId": 16755,
"astId": 16772,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -759,0 +759,0 @@ "label": "isFresh",

@@ -24,4 +24,4 @@ {

],
"bytecode": "0x608060405234801561001057600080fd5b5061129b806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b6100566004803603602081101561004657600080fd5b50356001600160a01b0316610072565b604080516001600160a01b039092168252519081900360200190f35b600081604051610081906100b5565b6001600160a01b03909116815260405190819003602001906000f0801580156100ae573d6000803e3d6000fd5b5092915050565b6111a3806100c38339019056fe608060405234801561001057600080fd5b506040516111a33803806111a383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b611112806100916000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80638f3b9647116100f9578063d0a215f211610097578063e90abb8611610071578063e90abb8614610353578063fb37b31c14610366578063fbcbc0f114610379578063fcf149a214610399576101a9565b8063d0a215f214610325578063d126199f14610338578063d7bd4a2a1461034b576101a9565b8063af3dc011116100d3578063af3dc011146102e4578063c3fd9b25146102f7578063c7650bf2146102ff578063c8e40fbf14610312576101a9565b80638f3b9647146102b657806399056ba9146102c9578063af37b864146102d1576101a9565b806326dc5b12116101665780636b18e4e8116101405780636b18e4e8146102735780636c87ad20146102865780637c8ee7031461029b5780638da5cb5b146102ae576101a9565b806326dc5b121461024557806333f94305146102585780635c17d62914610260576101a9565b806307a12945146101ae5780630ad22679146101d757806311b1f790146101ea5780631381ba4d146101fd578063167020d2146102125780631aaf392f14610225575b600080fd5b6101c16101bc366004610e5d565b6103ac565b6040516101ce9190611010565b60405180910390f35b6101c16101e5366004610eb5565b6103ee565b6101c16101f8366004610e5d565b61044b565b61021061020b366004610e5d565b6104c5565b005b6101c1610220366004610e5d565b610526565b610238610233366004610eb5565b6105eb565b6040516101ce919061101b565b610238610253366004610e5d565b610699565b6102106106b8565b61021061026e366004610edf565b610702565b610210610281366004610e5d565b6107d5565b61028e610852565b6040516101ce9190610ffc565b61028e6102a9366004610e5d565b610861565b61028e610882565b6102106102c4366004610f13565b610891565b610238610947565b6101c16102df366004610eb5565b61094d565b6101c16102f2366004610eb5565b6109c0565b610210610a16565b6101c161030d366004610eb5565b610a60565b6101c1610320366004610e5d565b610b28565b610210610333366004610e78565b610b48565b610238610346366004610e5d565b610bc1565b610238610bdc565b610210610361366004610eb5565b610be2565b6101c1610374366004610e5d565b610c3d565b61038c610387366004610e5d565b610c91565b6040516101ce919061107a565b6102106103a7366004610e5d565b610d05565b6001600160a01b0381166000908152600260205260409020600301547d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000145b919050565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff168061044257506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b90505b92915050565b600080546001600160a01b031633148061046f57506001546001600160a01b031633145b6104945760405162461bcd60e51b815260040161048b90611024565b60405180910390fd5b610445826040516020016104a89190610fbd565b604051602081830303815290604052805190602001206002610d9b565b6000546001600160a01b03163314806104e857506001546001600160a01b031633145b6105045760405162461bcd60e51b815260040161048b90611024565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633148061054a57506001546001600160a01b031633145b6105665760405162461bcd60e51b815260040161048b90611024565b6000826040516020016105799190610fbd565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff1660038111156105b257fe5b146105c15760009150506103e9565b6000908152600560205260409020805460ff19166003179055505060068054600019019055600190565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff1615801561064157506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b1561064e57506000610445565b506001600160a01b0391909116600090815260036020908152604080832093835292905220547ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef1890565b6001600160a01b03166000908152600260208190526040909120015490565b6000546001600160a01b03163314806106db57506001546001600160a01b031633145b6106f75760405162461bcd60e51b815260040161048b90611024565b600680546001019055565b6000546001600160a01b031633148061072557506001546001600160a01b031633145b6107415760405162461bcd60e51b815260040161048b90611024565b6001600160a01b038316600081815260036020908152604080832086845282528083207ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef86189055928252600481528282208583529052205460ff166107d0576001600160a01b03831660009081526004602090815260408083208584529091529020805460ff191660011790555b505050565b6000546001600160a01b03163314806107f857506001546001600160a01b031633145b6108145760405162461bcd60e51b815260040161048b90611024565b6001600160a01b031660009081526002602052604090207d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000600390910155565b6001546001600160a01b031681565b6001600160a01b039081166000908152600260205260409020600401541690565b6000546001600160a01b031681565b6000546001600160a01b03163314806108b457506001546001600160a01b031633145b6108d05760405162461bcd60e51b815260040161048b90611024565b6001600160a01b039182166000908152600260208181526040928390208451815590840151600182015591830151908201556060820151600382015560808201516004909101805460a0909301516001600160a01b0319909316919093161760ff60a01b1916600160a01b91151591909102179055565b60075490565b600080546001600160a01b031633148061097157506001546001600160a01b031633145b61098d5760405162461bcd60e51b815260040161048b90611024565b61044283836040516020016109a3929190610fda565b604051602081830303815290604052805190602001206001610d9b565b600080546001600160a01b03163314806109e457506001546001600160a01b031633145b610a005760405162461bcd60e51b815260040161048b90611024565b61044283836040516020016104a8929190610fda565b6000546001600160a01b0316331480610a3957506001546001600160a01b031633145b610a555760405162461bcd60e51b815260040161048b90611024565b600780546001019055565b600080546001600160a01b0316331480610a8457506001546001600160a01b031633145b610aa05760405162461bcd60e51b815260040161048b90611024565b60008383604051602001610ab5929190610fda565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff166003811115610aee57fe5b14610afd576000915050610445565b6000908152600560205260409020805460ff1916600317905550506007805460001901905550600190565b6001600160a01b0316600090815260026020526040902060030154151590565b6000546001600160a01b0316331480610b6b57506001546001600160a01b031633145b610b875760405162461bcd60e51b815260040161048b90611024565b6001600160a01b0392831660009081526002602052604090206004810180546001600160a01b031916939094169290921790925560030155565b6001600160a01b031660009081526002602052604090205490565b60065490565b6000546001600160a01b0316331480610c0557506001546001600160a01b031633145b610c215760405162461bcd60e51b815260040161048b90611024565b6001600160a01b03909116600090815260026020526040902055565b600080546001600160a01b0316331480610c6157506001546001600160a01b031633145b610c7d5760405162461bcd60e51b815260040161048b90611024565b610445826040516020016109a39190610fbd565b610c99610e01565b506001600160a01b03908116600090815260026020818152604092839020835160c08101855281548152600182015492810192909252918201549281019290925260038101546060830152600401549182166080820152600160a01b90910460ff16151560a082015290565b6000546001600160a01b0316331480610d2857506001546001600160a01b031633145b610d445760405162461bcd60e51b815260040161048b90611024565b6001600160a01b03166000908152600260205260409020600181557fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706003820155600401805460ff60a01b1916600160a01b179055565b600080826003811115610daa57fe5b60008581526005602052604090205460ff166003811115610dc757fe5b1015905080610442576000848152600560205260409020805484919060ff19166001836003811115610df557fe5b02179055509392505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b80356001600160a01b038116811461044557600080fd5b8035801515811461044557600080fd5b600060208284031215610e6e578081fd5b6104428383610e36565b600080600060608486031215610e8c578182fd5b610e968585610e36565b9250610ea58560208601610e36565b9150604084013590509250925092565b60008060408385031215610ec7578182fd5b610ed18484610e36565b946020939093013593505050565b600080600060608486031215610ef3578283fd5b8335610efe816110c4565b95602085013595506040909401359392505050565b60008082840360e0811215610f26578283fd5b8335610f31816110c4565b925060c0601f1982011215610f44578182fd5b5060405160c0810181811067ffffffffffffffff82111715610f64578283fd5b806040525060208401358152604084013560208201526060840135604082015260808401356060820152610f9b8560a08601610e36565b6080820152610fad8560c08601610e4d565b60a0820152809150509250929050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526036908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c65642062792061604082015275757468656e746963617465642061646472657373657360501b606082015260800190565b815181526020808301519082015260408083015190820152606080830151908201526080808301516001600160a01b03169082015260a09182015115159181019190915260c00190565b6001600160a01b03811681146110d957600080fd5b5056fea26469706673582212201e4028c9cd1e99302f98722f827bde635525ef9e6b051b0b64287ea5bb985f6a64736f6c63430007000033a2646970667358221220c18113cf01cd3899945f1de880794f2e73482e7c2831352bc770dfe4fdd3072b64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b6100566004803603602081101561004657600080fd5b50356001600160a01b0316610072565b604080516001600160a01b039092168252519081900360200190f35b600081604051610081906100b5565b6001600160a01b03909116815260405190819003602001906000f0801580156100ae573d6000803e3d6000fd5b5092915050565b6111a3806100c38339019056fe608060405234801561001057600080fd5b506040516111a33803806111a383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b611112806100916000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80638f3b9647116100f9578063d0a215f211610097578063e90abb8611610071578063e90abb8614610353578063fb37b31c14610366578063fbcbc0f114610379578063fcf149a214610399576101a9565b8063d0a215f214610325578063d126199f14610338578063d7bd4a2a1461034b576101a9565b8063af3dc011116100d3578063af3dc011146102e4578063c3fd9b25146102f7578063c7650bf2146102ff578063c8e40fbf14610312576101a9565b80638f3b9647146102b657806399056ba9146102c9578063af37b864146102d1576101a9565b806326dc5b12116101665780636b18e4e8116101405780636b18e4e8146102735780636c87ad20146102865780637c8ee7031461029b5780638da5cb5b146102ae576101a9565b806326dc5b121461024557806333f94305146102585780635c17d62914610260576101a9565b806307a12945146101ae5780630ad22679146101d757806311b1f790146101ea5780631381ba4d146101fd578063167020d2146102125780631aaf392f14610225575b600080fd5b6101c16101bc366004610e5d565b6103ac565b6040516101ce9190611010565b60405180910390f35b6101c16101e5366004610eb5565b6103ee565b6101c16101f8366004610e5d565b61044b565b61021061020b366004610e5d565b6104c5565b005b6101c1610220366004610e5d565b610526565b610238610233366004610eb5565b6105eb565b6040516101ce919061101b565b610238610253366004610e5d565b610699565b6102106106b8565b61021061026e366004610edf565b610702565b610210610281366004610e5d565b6107d5565b61028e610852565b6040516101ce9190610ffc565b61028e6102a9366004610e5d565b610861565b61028e610882565b6102106102c4366004610f13565b610891565b610238610947565b6101c16102df366004610eb5565b61094d565b6101c16102f2366004610eb5565b6109c0565b610210610a16565b6101c161030d366004610eb5565b610a60565b6101c1610320366004610e5d565b610b28565b610210610333366004610e78565b610b48565b610238610346366004610e5d565b610bc1565b610238610bdc565b610210610361366004610eb5565b610be2565b6101c1610374366004610e5d565b610c3d565b61038c610387366004610e5d565b610c91565b6040516101ce919061107a565b6102106103a7366004610e5d565b610d05565b6001600160a01b0381166000908152600260205260409020600301547d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000145b919050565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff168061044257506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b90505b92915050565b600080546001600160a01b031633148061046f57506001546001600160a01b031633145b6104945760405162461bcd60e51b815260040161048b90611024565b60405180910390fd5b610445826040516020016104a89190610fbd565b604051602081830303815290604052805190602001206002610d9b565b6000546001600160a01b03163314806104e857506001546001600160a01b031633145b6105045760405162461bcd60e51b815260040161048b90611024565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633148061054a57506001546001600160a01b031633145b6105665760405162461bcd60e51b815260040161048b90611024565b6000826040516020016105799190610fbd565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff1660038111156105b257fe5b146105c15760009150506103e9565b6000908152600560205260409020805460ff19166003179055505060068054600019019055600190565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff1615801561064157506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b1561064e57506000610445565b506001600160a01b0391909116600090815260036020908152604080832093835292905220547ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef1890565b6001600160a01b03166000908152600260208190526040909120015490565b6000546001600160a01b03163314806106db57506001546001600160a01b031633145b6106f75760405162461bcd60e51b815260040161048b90611024565b600680546001019055565b6000546001600160a01b031633148061072557506001546001600160a01b031633145b6107415760405162461bcd60e51b815260040161048b90611024565b6001600160a01b038316600081815260036020908152604080832086845282528083207ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef86189055928252600481528282208583529052205460ff166107d0576001600160a01b03831660009081526004602090815260408083208584529091529020805460ff191660011790555b505050565b6000546001600160a01b03163314806107f857506001546001600160a01b031633145b6108145760405162461bcd60e51b815260040161048b90611024565b6001600160a01b031660009081526002602052604090207d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000600390910155565b6001546001600160a01b031681565b6001600160a01b039081166000908152600260205260409020600401541690565b6000546001600160a01b031681565b6000546001600160a01b03163314806108b457506001546001600160a01b031633145b6108d05760405162461bcd60e51b815260040161048b90611024565b6001600160a01b039182166000908152600260208181526040928390208451815590840151600182015591830151908201556060820151600382015560808201516004909101805460a0909301516001600160a01b0319909316919093161760ff60a01b1916600160a01b91151591909102179055565b60075490565b600080546001600160a01b031633148061097157506001546001600160a01b031633145b61098d5760405162461bcd60e51b815260040161048b90611024565b61044283836040516020016109a3929190610fda565b604051602081830303815290604052805190602001206001610d9b565b600080546001600160a01b03163314806109e457506001546001600160a01b031633145b610a005760405162461bcd60e51b815260040161048b90611024565b61044283836040516020016104a8929190610fda565b6000546001600160a01b0316331480610a3957506001546001600160a01b031633145b610a555760405162461bcd60e51b815260040161048b90611024565b600780546001019055565b600080546001600160a01b0316331480610a8457506001546001600160a01b031633145b610aa05760405162461bcd60e51b815260040161048b90611024565b60008383604051602001610ab5929190610fda565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff166003811115610aee57fe5b14610afd576000915050610445565b6000908152600560205260409020805460ff1916600317905550506007805460001901905550600190565b6001600160a01b0316600090815260026020526040902060030154151590565b6000546001600160a01b0316331480610b6b57506001546001600160a01b031633145b610b875760405162461bcd60e51b815260040161048b90611024565b6001600160a01b0392831660009081526002602052604090206004810180546001600160a01b031916939094169290921790925560030155565b6001600160a01b031660009081526002602052604090205490565b60065490565b6000546001600160a01b0316331480610c0557506001546001600160a01b031633145b610c215760405162461bcd60e51b815260040161048b90611024565b6001600160a01b03909116600090815260026020526040902055565b600080546001600160a01b0316331480610c6157506001546001600160a01b031633145b610c7d5760405162461bcd60e51b815260040161048b90611024565b610445826040516020016109a39190610fbd565b610c99610e01565b506001600160a01b03908116600090815260026020818152604092839020835160c08101855281548152600182015492810192909252918201549281019290925260038101546060830152600401549182166080820152600160a01b90910460ff16151560a082015290565b6000546001600160a01b0316331480610d2857506001546001600160a01b031633145b610d445760405162461bcd60e51b815260040161048b90611024565b6001600160a01b03166000908152600260205260409020600181557fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706003820155600401805460ff60a01b1916600160a01b179055565b600080826003811115610daa57fe5b60008581526005602052604090205460ff166003811115610dc757fe5b1015905080610442576000848152600560205260409020805484919060ff19166001836003811115610df557fe5b02179055509392505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b80356001600160a01b038116811461044557600080fd5b8035801515811461044557600080fd5b600060208284031215610e6e578081fd5b6104428383610e36565b600080600060608486031215610e8c578182fd5b610e968585610e36565b9250610ea58560208601610e36565b9150604084013590509250925092565b60008060408385031215610ec7578182fd5b610ed18484610e36565b946020939093013593505050565b600080600060608486031215610ef3578283fd5b8335610efe816110c4565b95602085013595506040909401359392505050565b60008082840360e0811215610f26578283fd5b8335610f31816110c4565b925060c0601f1982011215610f44578182fd5b5060405160c0810181811067ffffffffffffffff82111715610f64578283fd5b806040525060208401358152604084013560208201526060840135604082015260808401356060820152610f9b8560a08601610e36565b6080820152610fad8560c08601610e4d565b60a0820152809150509250929050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526036908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c65642062792061604082015275757468656e746963617465642061646472657373657360501b606082015260800190565b815181526020808301519082015260408083015190820152606080830151908201526080808301516001600160a01b03169082015260a09182015115159181019190915260c00190565b6001600160a01b03811681146110d957600080fd5b5056fea26469706673582212201e4028c9cd1e99302f98722f827bde635525ef9e6b051b0b64287ea5bb985f6a64736f6c63430007000033a2646970667358221220c18113cf01cd3899945f1de880794f2e73482e7c2831352bc770dfe4fdd3072b64736f6c63430007000033",
"bytecode": "0x608060405234801561001057600080fd5b5061128d806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b6100566004803603602081101561004657600080fd5b50356001600160a01b0316610072565b604080516001600160a01b039092168252519081900360200190f35b600081604051610081906100b5565b6001600160a01b03909116815260405190819003602001906000f0801580156100ae573d6000803e3d6000fd5b5092915050565b611195806100c38339019056fe608060405234801561001057600080fd5b5060405161119538038061119583398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b611104806100916000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80638f3b9647116100f9578063d0a215f211610097578063e90abb8611610071578063e90abb8614610353578063fb37b31c14610366578063fbcbc0f114610379578063fcf149a214610399576101a9565b8063d0a215f214610325578063d126199f14610338578063d7bd4a2a1461034b576101a9565b8063af3dc011116100d3578063af3dc011146102e4578063c3fd9b25146102f7578063c7650bf2146102ff578063c8e40fbf14610312576101a9565b80638f3b9647146102b657806399056ba9146102c9578063af37b864146102d1576101a9565b806326dc5b12116101665780636b18e4e8116101405780636b18e4e8146102735780636c87ad20146102865780637c8ee7031461029b5780638da5cb5b146102ae576101a9565b806326dc5b121461024557806333f94305146102585780635c17d62914610260576101a9565b806307a12945146101ae5780630ad22679146101d757806311b1f790146101ea5780631381ba4d146101fd578063167020d2146102125780631aaf392f14610225575b600080fd5b6101c16101bc366004610e5d565b6103ac565b6040516101ce919061101a565b60405180910390f35b6101c16101e5366004610eb5565b6103ee565b6101c16101f8366004610e5d565b61044b565b61021061020b366004610e5d565b6104c5565b005b6101c1610220366004610e5d565b610526565b610238610233366004610eb5565b6105eb565b6040516101ce9190611025565b610238610253366004610e5d565b610699565b6102106106b8565b61021061026e366004610edf565b610702565b610210610281366004610e5d565b6107d5565b61028e610852565b6040516101ce9190611006565b61028e6102a9366004610e5d565b610861565b61028e610882565b6102106102c4366004610f1e565b610891565b610238610947565b6101c16102df366004610eb5565b61094d565b6101c16102f2366004610eb5565b6109c0565b610210610a16565b6101c161030d366004610eb5565b610a60565b6101c1610320366004610e5d565b610b28565b610210610333366004610e78565b610b48565b610238610346366004610e5d565b610bc1565b610238610bdc565b610210610361366004610eb5565b610be2565b6101c1610374366004610e5d565b610c3d565b61038c610387366004610e5d565b610c91565b6040516101ce9190611084565b6102106103a7366004610e5d565b610d05565b6001600160a01b0381166000908152600260205260409020600301547d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000145b919050565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff168061044257506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b90505b92915050565b600080546001600160a01b031633148061046f57506001546001600160a01b031633145b6104945760405162461bcd60e51b815260040161048b9061102e565b60405180910390fd5b610445826040516020016104a89190610fc7565b604051602081830303815290604052805190602001206002610d9b565b6000546001600160a01b03163314806104e857506001546001600160a01b031633145b6105045760405162461bcd60e51b815260040161048b9061102e565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633148061054a57506001546001600160a01b031633145b6105665760405162461bcd60e51b815260040161048b9061102e565b6000826040516020016105799190610fc7565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff1660038111156105b257fe5b146105c15760009150506103e9565b6000908152600560205260409020805460ff19166003179055505060068054600019019055600190565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff1615801561064157506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b1561064e57506000610445565b506001600160a01b0391909116600090815260036020908152604080832093835292905220547ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef1890565b6001600160a01b03166000908152600260208190526040909120015490565b6000546001600160a01b03163314806106db57506001546001600160a01b031633145b6106f75760405162461bcd60e51b815260040161048b9061102e565b600680546001019055565b6000546001600160a01b031633148061072557506001546001600160a01b031633145b6107415760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b038316600081815260036020908152604080832086845282528083207ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef86189055928252600481528282208583529052205460ff166107d0576001600160a01b03831660009081526004602090815260408083208584529091529020805460ff191660011790555b505050565b6000546001600160a01b03163314806107f857506001546001600160a01b031633145b6108145760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b031660009081526002602052604090207d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000600390910155565b6001546001600160a01b031681565b6001600160a01b039081166000908152600260205260409020600401541690565b6000546001600160a01b031681565b6000546001600160a01b03163314806108b457506001546001600160a01b031633145b6108d05760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b039182166000908152600260208181526040928390208451815590840151600182015591830151908201556060820151600382015560808201516004909101805460a0909301516001600160a01b0319909316919093161760ff60a01b1916600160a01b91151591909102179055565b60075490565b600080546001600160a01b031633148061097157506001546001600160a01b031633145b61098d5760405162461bcd60e51b815260040161048b9061102e565b61044283836040516020016109a3929190610fe4565b604051602081830303815290604052805190602001206001610d9b565b600080546001600160a01b03163314806109e457506001546001600160a01b031633145b610a005760405162461bcd60e51b815260040161048b9061102e565b61044283836040516020016104a8929190610fe4565b6000546001600160a01b0316331480610a3957506001546001600160a01b031633145b610a555760405162461bcd60e51b815260040161048b9061102e565b600780546001019055565b600080546001600160a01b0316331480610a8457506001546001600160a01b031633145b610aa05760405162461bcd60e51b815260040161048b9061102e565b60008383604051602001610ab5929190610fe4565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff166003811115610aee57fe5b14610afd576000915050610445565b6000908152600560205260409020805460ff1916600317905550506007805460001901905550600190565b6001600160a01b0316600090815260026020526040902060030154151590565b6000546001600160a01b0316331480610b6b57506001546001600160a01b031633145b610b875760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b0392831660009081526002602052604090206004810180546001600160a01b031916939094169290921790925560030155565b6001600160a01b031660009081526002602052604090205490565b60065490565b6000546001600160a01b0316331480610c0557506001546001600160a01b031633145b610c215760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b03909116600090815260026020526040902055565b600080546001600160a01b0316331480610c6157506001546001600160a01b031633145b610c7d5760405162461bcd60e51b815260040161048b9061102e565b610445826040516020016109a39190610fc7565b610c99610e01565b506001600160a01b03908116600090815260026020818152604092839020835160c08101855281548152600182015492810192909252918201549281019290925260038101546060830152600401549182166080820152600160a01b90910460ff16151560a082015290565b6000546001600160a01b0316331480610d2857506001546001600160a01b031633145b610d445760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b03166000908152600260205260409020600181557fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706003820155600401805460ff60a01b1916600160a01b179055565b600080826003811115610daa57fe5b60008581526005602052604090205460ff166003811115610dc757fe5b1015905080610442576000848152600560205260409020805484919060ff19166001836003811115610df557fe5b02179055509392505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b80356001600160a01b038116811461044557600080fd5b8035801515811461044557600080fd5b600060208284031215610e6e578081fd5b6104428383610e36565b600080600060608486031215610e8c578182fd5b610e968585610e36565b9250610ea58560208601610e36565b9150604084013590509250925092565b60008060408385031215610ec7578182fd5b610ed18484610e36565b946020939093013593505050565b600080600060608486031215610ef3578283fd5b83356001600160a01b0381168114610f09578384fd5b95602085013595506040909401359392505050565b60008082840360e0811215610f31578283fd5b610f3b8585610e36565b925060c0601f1982011215610f4e578182fd5b5060405160c0810181811067ffffffffffffffff82111715610f6e578283fd5b806040525060208401358152604084013560208201526060840135604082015260808401356060820152610fa58560a08601610e36565b6080820152610fb78560c08601610e4d565b60a0820152809150509250929050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526036908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c65642062792061604082015275757468656e746963617465642061646472657373657360501b606082015260800190565b815181526020808301519082015260408083015190820152606080830151908201526080808301516001600160a01b03169082015260a09182015115159181019190915260c0019056fea26469706673582212201e4028c9cd1e99302f98722f827bde635525ef9e6b051b0b64287ea5bb985f6a64736f6c63430007000033a2646970667358221220c18113cf01cd3899945f1de880794f2e73482e7c2831352bc770dfe4fdd3072b64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639ed9331814610030575b600080fd5b6100566004803603602081101561004657600080fd5b50356001600160a01b0316610072565b604080516001600160a01b039092168252519081900360200190f35b600081604051610081906100b5565b6001600160a01b03909116815260405190819003602001906000f0801580156100ae573d6000803e3d6000fd5b5092915050565b611195806100c38339019056fe608060405234801561001057600080fd5b5060405161119538038061119583398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b611104806100916000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80638f3b9647116100f9578063d0a215f211610097578063e90abb8611610071578063e90abb8614610353578063fb37b31c14610366578063fbcbc0f114610379578063fcf149a214610399576101a9565b8063d0a215f214610325578063d126199f14610338578063d7bd4a2a1461034b576101a9565b8063af3dc011116100d3578063af3dc011146102e4578063c3fd9b25146102f7578063c7650bf2146102ff578063c8e40fbf14610312576101a9565b80638f3b9647146102b657806399056ba9146102c9578063af37b864146102d1576101a9565b806326dc5b12116101665780636b18e4e8116101405780636b18e4e8146102735780636c87ad20146102865780637c8ee7031461029b5780638da5cb5b146102ae576101a9565b806326dc5b121461024557806333f94305146102585780635c17d62914610260576101a9565b806307a12945146101ae5780630ad22679146101d757806311b1f790146101ea5780631381ba4d146101fd578063167020d2146102125780631aaf392f14610225575b600080fd5b6101c16101bc366004610e5d565b6103ac565b6040516101ce919061101a565b60405180910390f35b6101c16101e5366004610eb5565b6103ee565b6101c16101f8366004610e5d565b61044b565b61021061020b366004610e5d565b6104c5565b005b6101c1610220366004610e5d565b610526565b610238610233366004610eb5565b6105eb565b6040516101ce9190611025565b610238610253366004610e5d565b610699565b6102106106b8565b61021061026e366004610edf565b610702565b610210610281366004610e5d565b6107d5565b61028e610852565b6040516101ce9190611006565b61028e6102a9366004610e5d565b610861565b61028e610882565b6102106102c4366004610f1e565b610891565b610238610947565b6101c16102df366004610eb5565b61094d565b6101c16102f2366004610eb5565b6109c0565b610210610a16565b6101c161030d366004610eb5565b610a60565b6101c1610320366004610e5d565b610b28565b610210610333366004610e78565b610b48565b610238610346366004610e5d565b610bc1565b610238610bdc565b610210610361366004610eb5565b610be2565b6101c1610374366004610e5d565b610c3d565b61038c610387366004610e5d565b610c91565b6040516101ce9190611084565b6102106103a7366004610e5d565b610d05565b6001600160a01b0381166000908152600260205260409020600301547d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000145b919050565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff168061044257506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b90505b92915050565b600080546001600160a01b031633148061046f57506001546001600160a01b031633145b6104945760405162461bcd60e51b815260040161048b9061102e565b60405180910390fd5b610445826040516020016104a89190610fc7565b604051602081830303815290604052805190602001206002610d9b565b6000546001600160a01b03163314806104e857506001546001600160a01b031633145b6105045760405162461bcd60e51b815260040161048b9061102e565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633148061054a57506001546001600160a01b031633145b6105665760405162461bcd60e51b815260040161048b9061102e565b6000826040516020016105799190610fc7565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff1660038111156105b257fe5b146105c15760009150506103e9565b6000908152600560205260409020805460ff19166003179055505060068054600019019055600190565b6001600160a01b038216600090815260046020908152604080832084845290915281205460ff1615801561064157506001600160a01b038316600090815260026020526040902060040154600160a01b900460ff165b1561064e57506000610445565b506001600160a01b0391909116600090815260036020908152604080832093835292905220547ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef1890565b6001600160a01b03166000908152600260208190526040909120015490565b6000546001600160a01b03163314806106db57506001546001600160a01b031633145b6106f75760405162461bcd60e51b815260040161048b9061102e565b600680546001019055565b6000546001600160a01b031633148061072557506001546001600160a01b031633145b6107415760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b038316600081815260036020908152604080832086845282528083207ffeedfacecafebeeffeedfacecafebeeffeedfacecafebeeffeedfacecafebeef86189055928252600481528282208583529052205460ff166107d0576001600160a01b03831660009081526004602090815260408083208584529091529020805460ff191660011790555b505050565b6000546001600160a01b03163314806107f857506001546001600160a01b031633145b6108145760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b031660009081526002602052604090207d4b1dc0de000000004b1dc0de000000004b1dc0de000000004b1dc0de0000600390910155565b6001546001600160a01b031681565b6001600160a01b039081166000908152600260205260409020600401541690565b6000546001600160a01b031681565b6000546001600160a01b03163314806108b457506001546001600160a01b031633145b6108d05760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b039182166000908152600260208181526040928390208451815590840151600182015591830151908201556060820151600382015560808201516004909101805460a0909301516001600160a01b0319909316919093161760ff60a01b1916600160a01b91151591909102179055565b60075490565b600080546001600160a01b031633148061097157506001546001600160a01b031633145b61098d5760405162461bcd60e51b815260040161048b9061102e565b61044283836040516020016109a3929190610fe4565b604051602081830303815290604052805190602001206001610d9b565b600080546001600160a01b03163314806109e457506001546001600160a01b031633145b610a005760405162461bcd60e51b815260040161048b9061102e565b61044283836040516020016104a8929190610fe4565b6000546001600160a01b0316331480610a3957506001546001600160a01b031633145b610a555760405162461bcd60e51b815260040161048b9061102e565b600780546001019055565b600080546001600160a01b0316331480610a8457506001546001600160a01b031633145b610aa05760405162461bcd60e51b815260040161048b9061102e565b60008383604051602001610ab5929190610fe4565b60408051601f1981840301815291905280516020909101209050600260008281526005602052604090205460ff166003811115610aee57fe5b14610afd576000915050610445565b6000908152600560205260409020805460ff1916600317905550506007805460001901905550600190565b6001600160a01b0316600090815260026020526040902060030154151590565b6000546001600160a01b0316331480610b6b57506001546001600160a01b031633145b610b875760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b0392831660009081526002602052604090206004810180546001600160a01b031916939094169290921790925560030155565b6001600160a01b031660009081526002602052604090205490565b60065490565b6000546001600160a01b0316331480610c0557506001546001600160a01b031633145b610c215760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b03909116600090815260026020526040902055565b600080546001600160a01b0316331480610c6157506001546001600160a01b031633145b610c7d5760405162461bcd60e51b815260040161048b9061102e565b610445826040516020016109a39190610fc7565b610c99610e01565b506001600160a01b03908116600090815260026020818152604092839020835160c08101855281548152600182015492810192909252918201549281019290925260038101546060830152600401549182166080820152600160a01b90910460ff16151560a082015290565b6000546001600160a01b0316331480610d2857506001546001600160a01b031633145b610d445760405162461bcd60e51b815260040161048b9061102e565b6001600160a01b03166000908152600260205260409020600181557fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706003820155600401805460ff60a01b1916600160a01b179055565b600080826003811115610daa57fe5b60008581526005602052604090205460ff166003811115610dc757fe5b1015905080610442576000848152600560205260409020805484919060ff19166001836003811115610df557fe5b02179055509392505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b80356001600160a01b038116811461044557600080fd5b8035801515811461044557600080fd5b600060208284031215610e6e578081fd5b6104428383610e36565b600080600060608486031215610e8c578182fd5b610e968585610e36565b9250610ea58560208601610e36565b9150604084013590509250925092565b60008060408385031215610ec7578182fd5b610ed18484610e36565b946020939093013593505050565b600080600060608486031215610ef3578283fd5b83356001600160a01b0381168114610f09578384fd5b95602085013595506040909401359392505050565b60008082840360e0811215610f31578283fd5b610f3b8585610e36565b925060c0601f1982011215610f4e578182fd5b5060405160c0810181811067ffffffffffffffff82111715610f6e578283fd5b806040525060208401358152604084013560208201526060840135604082015260808401356060820152610fa58560a08601610e36565b6080820152610fb78560c08601610e4d565b60a0820152809150509250929050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60208082526036908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c65642062792061604082015275757468656e746963617465642061646472657373657360501b606082015260800190565b815181526020808301519082015260408083015190820152606080830151908201526080808301516001600160a01b03169082015260a09182015115159181019190915260c0019056fea26469706673582212201e4028c9cd1e99302f98722f827bde635525ef9e6b051b0b64287ea5bb985f6a64736f6c63430007000033a2646970667358221220c18113cf01cd3899945f1de880794f2e73482e7c2831352bc770dfe4fdd3072b64736f6c63430007000033",
"linkReferences": {},

@@ -28,0 +28,0 @@ "deployedLinkReferences": {},

@@ -64,3 +64,3 @@ {

{
"astId": 17171,
"astId": 17188,
"contract": "contracts/optimistic-ethereum/libraries/resolver/Lib_Ownable.sol:Ownable",

@@ -67,0 +67,0 @@ "label": "owner",

@@ -257,3 +257,3 @@ {

{
"astId": 23432,
"astId": 23449,
"contract": "contracts/test-helpers/TestERC20.sol:TestERC20",

@@ -266,3 +266,3 @@ "label": "totalSupply",

{
"astId": 23436,
"astId": 23453,
"contract": "contracts/test-helpers/TestERC20.sol:TestERC20",

@@ -275,3 +275,3 @@ "label": "balanceOf",

{
"astId": 23442,
"astId": 23459,
"contract": "contracts/test-helpers/TestERC20.sol:TestERC20",

@@ -278,0 +278,0 @@ "label": "allowance",

@@ -95,3 +95,3 @@ {

{
"astId": 24607,
"astId": 24624,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -101,3 +101,3 @@ "label": "buf",

"slot": "0",
"type": "t_struct(RingBuffer)21564_storage"
"type": "t_struct(RingBuffer)21581_storage"
}

@@ -111,3 +111,3 @@ ],

},
"t_contract(iRingBufferOverwriter)21541": {
"t_contract(iRingBufferOverwriter)21558": {
"encoding": "inplace",

@@ -124,3 +124,3 @@ "label": "contract iRingBufferOverwriter",

},
"t_struct(Buffer)21551_storage": {
"t_struct(Buffer)21568_storage": {
"encoding": "inplace",

@@ -130,3 +130,3 @@ "label": "struct Lib_RingBuffer.Buffer",

{
"astId": 21546,
"astId": 21563,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -139,3 +139,3 @@ "label": "length",

{
"astId": 21550,
"astId": 21567,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -150,3 +150,3 @@ "label": "buf",

},
"t_struct(RingBuffer)21564_storage": {
"t_struct(RingBuffer)21581_storage": {
"encoding": "inplace",

@@ -156,3 +156,3 @@ "label": "struct Lib_RingBuffer.RingBuffer",

{
"astId": 21553,
"astId": 21570,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -165,3 +165,3 @@ "label": "id",

{
"astId": 21555,
"astId": 21572,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -171,6 +171,6 @@ "label": "overwriter",

"slot": "1",
"type": "t_contract(iRingBufferOverwriter)21541"
"type": "t_contract(iRingBufferOverwriter)21558"
},
{
"astId": 21557,
"astId": 21574,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -183,3 +183,3 @@ "label": "contextA",

{
"astId": 21559,
"astId": 21576,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -192,3 +192,3 @@ "label": "contextB",

{
"astId": 21561,
"astId": 21578,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -198,6 +198,6 @@ "label": "bufferA",

"slot": "4",
"type": "t_struct(Buffer)21551_storage"
"type": "t_struct(Buffer)21568_storage"
},
{
"astId": 21563,
"astId": 21580,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -207,3 +207,3 @@ "label": "bufferB",

"slot": "6",
"type": "t_struct(Buffer)21551_storage"
"type": "t_struct(Buffer)21568_storage"
}

@@ -210,0 +210,0 @@ ],

{
"name": "@eth-optimism/contracts",
"version": "0.0.2-alpha.4",
"version": "0.0.2-alpha.5",
"main": "build/src/index.js",

@@ -26,3 +26,4 @@ "files": [

"lint:fix:typescript": "prettier --config prettier-config.json --write \"buidler.config.ts\" \"{src,test}/**/*.ts\"",
"clean": "rm -rf ./artifacts ./build ./cache"
"clean": "rm -rf ./artifacts ./build ./cache",
"deploy": "./bin/deploy.js"
},

@@ -29,0 +30,0 @@ "dependencies": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc