Commit 5bd7e641 authored by Maurelian's avatar Maurelian

contracts-bedrock: make spacer variable non-public

parent 823bb7d5
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -13,7 +13,7 @@ const OptimismPortalStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contrac ...@@ -13,7 +13,7 @@ const OptimismPortalStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contrac
var OptimismPortalStorageLayout = new(solc.StorageLayout) var OptimismPortalStorageLayout = new(solc.StorageLayout)
var OptimismPortalDeployedBin = "0x60806040526004361061016d5760003560e01c80638b4c40b0116100cb578063a35d99df1161007f578063e965084c11610059578063e965084c14610505578063e9e05c4214610591578063f0498750146105a457600080fd5b8063a35d99df1461040b578063c4d66de814610444578063cff0ab961461046457600080fd5b80639b5f694a116100b05780639b5f694a1461037b5780639bf62d82146103ae578063a14238e7146103db57600080fd5b80638b4c40b0146101925780638c3152e91461035b57600080fd5b80634870496f116101225780635c975abb116101075780635c975abb146103115780636dbffb7814610326578063724c184c1461034657600080fd5b80634870496f1461029b57806354fd4d50146102bb57600080fd5b806333d7e2bd1161015357806333d7e2bd1461022157806335e80ab314610254578063452a93201461028657600080fd5b80621c2ff61461019957806318db921b146101f757600080fd5b36610194576101923334620186a06000604051806020016040528060008152506105d8565b005b600080fd5b3480156101a557600080fd5b506101cd7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561020357600080fd5b506035546102119060ff1681565b60405190151581526020016101ee565b34801561022d57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006101cd565b34801561026057600080fd5b506035546101cd90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561029257600080fd5b506101cd610873565b3480156102a757600080fd5b506101926102b63660046149ef565b61090b565b3480156102c757600080fd5b506103046040518060400160405280600581526020017f322e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101ee9190614b45565b34801561031d57600080fd5b50610211610f73565b34801561033257600080fd5b50610211610341366004614b58565b611006565b34801561035257600080fd5b506101cd6110dd565b34801561036757600080fd5b50610192610376366004614b71565b6110e7565b34801561038757600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006101cd565b3480156103ba57600080fd5b506032546101cd9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103e757600080fd5b506102116103f6366004614b58565b60336020526000908152604090205460ff1681565b34801561041757600080fd5b5061042b610426366004614bcb565b6119c4565b60405167ffffffffffffffff90911681526020016101ee565b34801561045057600080fd5b5061019261045f366004614be6565b6119dd565b34801561047057600080fd5b506001546104cc906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff92831660208501529116908201526060016101ee565b34801561051157600080fd5b50610563610520366004614b58565b603460205260009081526040902080546001909101546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041683565b604080519384526fffffffffffffffffffffffffffffffff92831660208501529116908201526060016101ee565b61019261059f366004614c11565b6105d8565b3480156105b057600080fd5b506101cd7f000000000000000000000000000000000000000000000000000000000000000081565b8260005a9050831561068f5773ffffffffffffffffffffffffffffffffffffffff87161561068f57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4f7074696d69736d506f7274616c3a206d7573742073656e6420746f2061646460448201527f72657373283029207768656e206372656174696e67206120636f6e747261637460648201526084015b60405180910390fd5b61069983516119c4565b67ffffffffffffffff168567ffffffffffffffff16101561073c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f7074696d69736d506f7274616c3a20676173206c696d697420746f6f20736d60448201527f616c6c00000000000000000000000000000000000000000000000000000000006064820152608401610686565b6201d4c0835111156107aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4f7074696d69736d506f7274616c3a206461746120746f6f206c6172676500006044820152606401610686565b333281146107cb575033731111000000000000000000000000000000001111015b600034888888886040516020016107e6959493929190614c8e565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32846040516108569190614b45565b60405180910390a4505061086a8282611bfe565b50505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109069190614cf3565b905090565b610913610f73565b1561097a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a20706175736564000000000000000000006044820152606401610686565b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff1603610a39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e7472616374006064820152608401610686565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aeb9190614d30565b519050610b05610b0036869003860186614d95565b611f2b565b8114610b93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f6600000000000000000000000000000000000000000000006064820152608401610686565b6000610b9e87611f87565b6000818152603460209081526040918290208251606081018452815481526001909101546fffffffffffffffffffffffffffffffff8082169383018490527001000000000000000000000000000000009091041692810192909252919250901580610cd05750805160408083015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff90911660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccc9190614d30565b5114155b610d5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173682060448201527f68617320616c7265616479206265656e2070726f76656e0000000000000000006064820152608401610686565b60408051602081018490526000918101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201209083018190529250610e259101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f0100000000000000000000000000000000000000000000000000000000000000602083015290610e1b888a614dfb565b8a60400135611fb7565b610eb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f6600000000000000000000000000006064820152608401610686565b604080516060810182528581526fffffffffffffffffffffffffffffffff42811660208084019182528c831684860190815260008981526034835286812095518655925190518416700100000000000000000000000000000000029316929092176001909301929092558b830151908c0151925173ffffffffffffffffffffffffffffffffffffffff918216939091169186917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f629190a4505050505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109069190614e7f565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018290526000906110d79073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a25ae55790602401606060405180830381865afa158015611098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bc9190614d30565b602001516fffffffffffffffffffffffffffffffff16611fdb565b92915050565b6000610906610873565b6110ef610f73565b15611156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a20706175736564000000000000000000006044820152606401610686565b60325473ffffffffffffffffffffffffffffffffffffffff1661dead146111ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e006064820152608401610686565b600061120a82611f87565b60008181526034602090815260408083208151606081018352815481526001909101546fffffffffffffffffffffffffffffffff808216948301859052700100000000000000000000000000000000909104169181019190915292935090036112f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e60448201527f6f74206265656e2070726f76656e2079657400000000000000000000000000006064820152608401610686565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663887862726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611360573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113849190614e9c565b81602001516fffffffffffffffffffffffffffffffff16101561144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657360448201527f74616d70206c657373207468616e204c32204f7261636c65207374617274696e60648201527f672074696d657374616d70000000000000000000000000000000000000000000608482015260a401610686565b61146e81602001516fffffffffffffffffffffffffffffffff16611fdb565b611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4f7074696d69736d506f7274616c3a2070726f76656e2077697468647261776160448201527f6c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c60648201527f6170736564000000000000000000000000000000000000000000000000000000608482015260a401610686565b60408181015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff90911660048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa1580156115c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e99190614d30565b82518151919250146116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f7660448201527f656e206973206e6f74207468652073616d652061732063757272656e74206f7560648201527f7470757420726f6f740000000000000000000000000000000000000000000000608482015260a401610686565b6116c281602001516fffffffffffffffffffffffffffffffff16611fdb565b611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f66696e616c697a6174696f6e20706572696f6420686173206e6f7420656c617060648201527f7365640000000000000000000000000000000000000000000000000000000000608482015260a401610686565b60008381526033602052604090205460ff1615611813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a656400000000000000000000006064820152608401610686565b600083815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055908601516032805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558501516080860151606087015160a08801516118b59392919061207e565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915084907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b9061191a90841515815260200190565b60405180910390a2801580156119305750326001145b156119bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f7074696d69736d506f7274616c3a207769746864726177616c206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610686565b5050505050565b60006119d1826010614ee4565b6110d790615208614f14565b600054610100900460ff16158080156119fd5750600054600160ff909116105b80611a175750303b158015611a17575060005460ff166001145b611aa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610686565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611b0157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790556035805473ffffffffffffffffffffffffffffffffffffffff8416610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909116179055611b7b6120dc565b8015611bde57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b600154600090611c34907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643614f40565b90506000611c406121bf565b90506000816020015160ff16826000015163ffffffff16611c619190614f86565b90508215611d9857600154600090611c98908390700100000000000000000000000000000000900467ffffffffffffffff16614fee565b90506000836040015160ff1683611caf9190615062565b600154611ccf9084906fffffffffffffffffffffffffffffffff16615062565b611cd99190614f86565b600154909150600090611d2a90611d039084906fffffffffffffffffffffffffffffffff1661511e565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff16612280565b90506001861115611d5957611d56611d0382876040015160ff1660018a611d519190614f40565b61229f565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090611dcb908490700100000000000000000000000000000000900467ffffffffffffffff16614f14565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315611eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d697400006064820152608401610686565b600154600090611eda906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8816615192565b90506000611eec48633b9aca006122f4565b611ef690836151cf565b905060005a611f059088614f40565b905080821115611f2157611f21611f1c8284614f40565b61230b565b5050505050505050565b60008160000151826020015183604001518460600151604051602001611f6a949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b80516020808301516040808501516060860151608087015160a08801519351600097611f6a9790969591016151e3565b600080611fc386612339565b9050611fd18186868661236b565b9695505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f4daa2916040518163ffffffff1660e01b8152600401602060405180830381865afa158015612048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206c9190614e9c565b612076908361523a565b421192915050565b600080600061208e86600061239b565b9050806120c4576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b600054610100900460ff16612173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610686565b60408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663cc731b026040518163ffffffff1660e01b815260040160c060405180830381865afa15801561225c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109069190615277565b600061229561228f85856123b9565b836123c9565b90505b9392505050565b6000670de0b6b3a76400006122e06122b78583614f86565b6122c990670de0b6b3a7640000614fee565b6122db85670de0b6b3a7640000615062565b6123d8565b6122ea9086615062565b6122959190614f86565b6000818310156123045781612298565b5090919050565b6000805a90505b825a61231e9083614f40565b10156123345761232d82615316565b9150612312565b505050565b6060818051906020012060405160200161235591815260200190565b6040516020818303038152906040529050919050565b60006123928461237c878686612409565b8051602091820120825192909101919091201490565b95945050505050565b600080603f83619c4001026040850201603f5a021015949350505050565b6000818312156123045781612298565b60008183126123045781612298565b6000612298670de0b6b3a7640000836123f086612e87565b6123fa9190615062565b6124049190614f86565b6130cb565b60606000845111612476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b657900000000000000000000006044820152606401610686565b60006124818461330a565b9050600061248e866133f6565b90506000846040516020016124a591815260200190565b60405160208183030381529060405290506000805b8451811015612dfe5760008582815181106124d7576124d761534e565b602002602001015190508451831115612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e6774680000000000000000000000000000000000006064820152608401610686565b8260000361262b57805180516020918201206040516125c09261259a92910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f7420686173680000006044820152606401610686565b612782565b8051516020116126e157805180516020918201206040516126559261259a92910190815260200190565b612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c2068617368000000000000000000000000000000000000000000000000006064820152608401610686565b805184516020808701919091208251919092012014612782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f65206861736800000000000000000000000000000000000000000000000000006064820152608401610686565b61278e6010600161523a565b8160200151510361296a5784518303612902576127c881602001516010815181106127bb576127bb61534e565b6020026020010151613459565b9650600087511161285b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e63682900000000006064820152608401610686565b600186516128699190614f40565b82146128f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e6368290000000000006064820152608401610686565b505050505050612298565b60008584815181106129165761291661534e565b602001015160f81c60f81b60f81c9050600082602001518260ff16815181106129415761294161534e565b60200260200101519050612954816135b9565b955061296160018661523a565b94505050612deb565b600281602001515103612d63576000612982826135de565b90506000816000815181106129995761299961534e565b016020015160f81c905060006129b060028361537d565b6129bb90600261539f565b905060006129cc848360ff16613602565b905060006129da8a89613602565b905060006129e88383613638565b905080835114612a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b65790000000000006064820152608401610686565b60ff851660021480612a8f575060ff85166003145b15612c7e5780825114612b24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e6465720000006064820152608401610686565b612b3e87602001516001815181106127bb576127bb61534e565b9c5060008d5111612bd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c65616629000000000000006064820152608401610686565b60018c51612bdf9190614f40565b8814612c6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c6561662900000000000000006064820152608401610686565b505050505050505050505050612298565b60ff85161580612c91575060ff85166001145b15612cd057612cbd8760200151600181518110612cb057612cb061534e565b60200260200101516135b9565b9950612cc9818a61523a565b9850612d58565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e2070726566697800000000000000000000000000006064820152608401610686565b505050505050612deb565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f64650000000000000000000000000000000000000000000000006064820152608401610686565b5080612df681615316565b9150506124ba565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e74730000000000000000000000000000000000000000000000000000006064820152608401610686565b6000808213612ef2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610686565b60006060612eff846136ec565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c182136130fc57506000919050565b680755bf798b4a1bf1e5821261316e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401610686565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff8111156133285761332861480f565b60405190808252806020026020018201604052801561336d57816020015b60408051808201909152606080825260208201528152602001906001900390816133465790505b50915060005b818110156133ef5760405180604001604052808583815181106133985761339861534e565b602002602001015181526020016133c78684815181106133ba576133ba61534e565b60200260200101516137c2565b8152508382815181106133dc576133dc61534e565b6020908102919091010152600101613373565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b8381101561344e578060011b82018184015160001a8060041c8253600f811660018301535050600101613420565b509295945050505050565b60606000806000613469856137d5565b919450925090506000816001811115613484576134846153c2565b14613511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d000000000000006064820152608401610686565b61351b828461523a565b8551146135aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527f616e20696e76616c69642072656d61696e6465720000000000000000000000006064820152608401610686565b61239285602001518484614242565b606060208260000151106135d5576135d082613459565b6110d7565b6110d7826142d6565b60606110d76135fd83602001516000815181106127bb576127bb61534e565b6133f6565b60608251821061362157506040805160208101909152600081526110d7565b61229883838486516136339190614f40565b6142ec565b600080825184511061364b57825161364e565b83515b90505b80821080156136d5575082828151811061366d5761366d61534e565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168483815181106136ac576136ac61534e565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156136e557816001019150613651565b5092915050565b6000808211613757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610686565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b60606110d76137d0836144c4565b6145ad565b600080600080846000015111613893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a401610686565b6020840151805160001a607f81116138b857600060016000945094509450505061423b565b60b78111613ac65760006138cd608083614f40565b905080876000015111613988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201527f2873686f727420737472696e6729000000000000000000000000000000000000608482015260a401610686565b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082141580613a0157507f80000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610155b613ab3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201527f73686f727420737472696e672900000000000000000000000000000000000000608482015260a401610686565b506001955093506000925061423b915050565b60bf8111613e14576000613adb60b783614f40565b905080876000015111613b96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527f67746820286c6f6e6720737472696e6729000000000000000000000000000000608482015260a401610686565b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613c74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e6720737472696e672900000000000000000000000000000000000000000000608482015260a401610686565b600184015160088302610100031c60378111613d38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f20737472696e6729000000000000000000000000000000000000000000000000608482015260a401610686565b613d42818461523a565b895111613df7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e6720737472696e67290000000000000000000000000000000000000000608482015260a401610686565b613e0283600161523a565b975095506000945061423b9350505050565b60f78111613ef5576000613e2960c083614f40565b905080876000015111613ee4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e206c697374206c656e67746820287360648201527f686f7274206c6973742900000000000000000000000000000000000000000000608482015260a401610686565b60019550935084925061423b915050565b6000613f0260f783614f40565b905080876000015111613fbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201527f6820286c6f6e67206c6973742900000000000000000000000000000000000000608482015260a401610686565b60018301517fff0000000000000000000000000000000000000000000000000000000000000016600081900361409b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e67206c69737429000000000000000000000000000000000000000000000000608482015260a401610686565b600184015160088302610100031c6037811161415f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f206c697374290000000000000000000000000000000000000000000000000000608482015260a401610686565b614169818461523a565b89511161421e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e67206c6973742900000000000000000000000000000000000000000000608482015260a401610686565b61422983600161523a565b975095506001945061423b9350505050565b9193909250565b60608167ffffffffffffffff81111561425d5761425d61480f565b6040519080825280601f01601f191660200182016040528015614287576020820181803683370190505b509050811561229857600061429c848661523a565b90506020820160005b848110156142bd5782810151828201526020016142a5565b848111156142cc576000858301525b5050509392505050565b60606110d7826020015160008460000151614242565b60608182601f01101561435b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610686565b8282840110156143c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610686565b81830184511015614434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610686565b60608215801561445357604051915060008252602082016040526144bb565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561448c578051835260209283019201614474565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6040805180820190915260008082526020820152600082511161458f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a401610686565b50604080518082019091528151815260209182019181019190915290565b606060008060006145bd856137d5565b9194509250905060018160018111156145d8576145d86153c2565b14614665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d00000000000000006064820152608401610686565b8451614671838561523a565b146146fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e766160448201527f6c696420646174612072656d61696e64657200000000000000000000000000006064820152608401610686565b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816147155790505093506000835b8651811015614803576000806147886040518060400160405280858c6000015161476c9190614f40565b8152602001858c60200151614781919061523a565b90526137d5565b5091509150604051806040016040528083836147a4919061523a565b8152602001848b602001516147b9919061523a565b8152508885815181106147ce576147ce61534e565b60209081029190910101526147e460018561523a565b93506147f0818361523a565b6147fa908461523a565b92505050614742565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156148855761488561480f565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff811681146148af57600080fd5b50565b600082601f8301126148c357600080fd5b813567ffffffffffffffff8111156148dd576148dd61480f565b61490e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161483e565b81815284602083860101111561492357600080fd5b816020850160208301376000918101602001919091529392505050565b600060c0828403121561495257600080fd5b60405160c0810167ffffffffffffffff82821081831117156149765761497661480f565b8160405282935084358352602085013591506149918261488d565b816020840152604085013591506149a78261488d565b816040840152606085013560608401526080850135608084015260a08501359150808211156149d557600080fd5b506149e2858286016148b2565b60a0830152505092915050565b600080600080600085870360e0811215614a0857600080fd5b863567ffffffffffffffff80821115614a2057600080fd5b614a2c8a838b01614940565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc084011215614a6557600080fd5b60408901955060c0890135925080831115614a7f57600080fd5b828901925089601f840112614a9357600080fd5b8235915080821115614aa457600080fd5b508860208260051b8401011115614aba57600080fd5b959894975092955050506020019190565b60005b83811015614ae6578181015183820152602001614ace565b83811115614af5576000848401525b50505050565b60008151808452614b13816020860160208601614acb565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122986020830184614afb565b600060208284031215614b6a57600080fd5b5035919050565b600060208284031215614b8357600080fd5b813567ffffffffffffffff811115614b9a57600080fd5b614ba684828501614940565b949350505050565b803567ffffffffffffffff81168114614bc657600080fd5b919050565b600060208284031215614bdd57600080fd5b61229882614bae565b600060208284031215614bf857600080fd5b81356122988161488d565b80151581146148af57600080fd5b600080600080600060a08688031215614c2957600080fd5b8535614c348161488d565b945060208601359350614c4960408701614bae565b92506060860135614c5981614c03565b9150608086013567ffffffffffffffff811115614c7557600080fd5b614c81888289016148b2565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251614ce2816049850160208701614acb565b919091016049019695505050505050565b600060208284031215614d0557600080fd5b81516122988161488d565b80516fffffffffffffffffffffffffffffffff81168114614bc657600080fd5b600060608284031215614d4257600080fd5b6040516060810181811067ffffffffffffffff82111715614d6557614d6561480f565b60405282518152614d7860208401614d10565b6020820152614d8960408401614d10565b60408201529392505050565b600060808284031215614da757600080fd5b6040516080810181811067ffffffffffffffff82111715614dca57614dca61480f565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600067ffffffffffffffff80841115614e1657614e1661480f565b8360051b6020614e2781830161483e565b868152918501918181019036841115614e3f57600080fd5b865b84811015614e7357803586811115614e595760008081fd5b614e6536828b016148b2565b845250918301918301614e41565b50979650505050505050565b600060208284031215614e9157600080fd5b815161229881614c03565b600060208284031215614eae57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615614f0b57614f0b614eb5565b02949350505050565b600067ffffffffffffffff808316818516808303821115614f3757614f37614eb5565b01949350505050565b600082821015614f5257614f52614eb5565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614f9557614f95614f57565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615614fe957614fe9614eb5565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561502857615028614eb5565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01831381161561505c5761505c614eb5565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000841360008413858304851182821616156150a3576150a3614eb5565b7f800000000000000000000000000000000000000000000000000000000000000060008712868205881281841616156150de576150de614eb5565b600087129250878205871284841616156150fa576150fa614eb5565b8785058712818416161561511057615110614eb5565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0384138115161561515857615158614eb5565b827f800000000000000000000000000000000000000000000000000000000000000003841281161561518c5761518c614eb5565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156151ca576151ca614eb5565b500290565b6000826151de576151de614f57565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261522e60c0830184614afb565b98975050505050505050565b6000821982111561524d5761524d614eb5565b500190565b805163ffffffff81168114614bc657600080fd5b805160ff81168114614bc657600080fd5b600060c0828403121561528957600080fd5b60405160c0810181811067ffffffffffffffff821117156152ac576152ac61480f565b6040526152b883615252565b81526152c660208401615266565b60208201526152d760408401615266565b60408201526152e860608401615252565b60608201526152f960808401615252565b608082015261530a60a08401614d10565b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361534757615347614eb5565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff83168061539057615390614f57565b8060ff84160691505092915050565b600060ff821660ff8416808210156153b9576153b9614eb5565b90039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a" var OptimismPortalDeployedBin = "0x6080604052600436106101625760003560e01c80638c3152e9116100c0578063c4d66de811610074578063e965084c11610059578063e965084c146104e0578063e9e05c421461056c578063f04987501461057f57600080fd5b8063c4d66de81461041f578063cff0ab961461043f57600080fd5b80639bf62d82116100a55780639bf62d8214610389578063a14238e7146103b6578063a35d99df146103e657600080fd5b80638c3152e9146103365780639b5f694a1461035657600080fd5b806354fd4d50116101175780636dbffb78116100fc5780636dbffb7814610301578063724c184c146103215780638b4c40b01461018757600080fd5b806354fd4d50146102865780635c975abb146102dc57600080fd5b806335e80ab31161014857806335e80ab31461021f578063452a9320146102515780634870496f1461026657600080fd5b80621c2ff61461018e57806333d7e2bd146101ec57600080fd5b36610189576101873334620186a06000604051806020016040528060008152506105b3565b005b600080fd5b34801561019a57600080fd5b506101c27f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101f857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006101c2565b34801561022b57600080fd5b506035546101c290610100900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561025d57600080fd5b506101c261084e565b34801561027257600080fd5b506101876102813660046149ca565b6108e6565b34801561029257600080fd5b506102cf6040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516101e39190614b20565b3480156102e857600080fd5b506102f1610f4e565b60405190151581526020016101e3565b34801561030d57600080fd5b506102f161031c366004614b33565b610fe1565b34801561032d57600080fd5b506101c26110b8565b34801561034257600080fd5b50610187610351366004614b4c565b6110c2565b34801561036257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006101c2565b34801561039557600080fd5b506032546101c29073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103c257600080fd5b506102f16103d1366004614b33565b60336020526000908152604090205460ff1681565b3480156103f257600080fd5b50610406610401366004614ba6565b61199f565b60405167ffffffffffffffff90911681526020016101e3565b34801561042b57600080fd5b5061018761043a366004614bc1565b6119b8565b34801561044b57600080fd5b506001546104a7906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff92831660208501529116908201526060016101e3565b3480156104ec57600080fd5b5061053e6104fb366004614b33565b603460205260009081526040902080546001909101546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041683565b604080519384526fffffffffffffffffffffffffffffffff92831660208501529116908201526060016101e3565b61018761057a366004614bec565b6105b3565b34801561058b57600080fd5b506101c27f000000000000000000000000000000000000000000000000000000000000000081565b8260005a9050831561066a5773ffffffffffffffffffffffffffffffffffffffff87161561066a57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4f7074696d69736d506f7274616c3a206d7573742073656e6420746f2061646460448201527f72657373283029207768656e206372656174696e67206120636f6e747261637460648201526084015b60405180910390fd5b610674835161199f565b67ffffffffffffffff168567ffffffffffffffff161015610717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f7074696d69736d506f7274616c3a20676173206c696d697420746f6f20736d60448201527f616c6c00000000000000000000000000000000000000000000000000000000006064820152608401610661565b6201d4c083511115610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4f7074696d69736d506f7274616c3a206461746120746f6f206c6172676500006044820152606401610661565b333281146107a6575033731111000000000000000000000000000000001111015b600034888888886040516020016107c1959493929190614c69565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32846040516108319190614b20565b60405180910390a450506108458282611bd9565b50505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e19190614cce565b905090565b6108ee610f4e565b15610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a20706175736564000000000000000000006044820152606401610661565b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff1603610a14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e7472616374006064820152608401610661565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac69190614d0b565b519050610ae0610adb36869003860186614d70565b611f06565b8114610b6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f6600000000000000000000000000000000000000000000006064820152608401610661565b6000610b7987611f62565b6000818152603460209081526040918290208251606081018452815481526001909101546fffffffffffffffffffffffffffffffff8082169383018490527001000000000000000000000000000000009091041692810192909252919250901580610cab5750805160408083015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff90911660048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190614d0b565b5114155b610d37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173682060448201527f68617320616c7265616479206265656e2070726f76656e0000000000000000006064820152608401610661565b60408051602081018490526000918101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201209083018190529250610e009101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f0100000000000000000000000000000000000000000000000000000000000000602083015290610df6888a614dd6565b8a60400135611f92565b610e8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f6600000000000000000000000000006064820152608401610661565b604080516060810182528581526fffffffffffffffffffffffffffffffff42811660208084019182528c831684860190815260008981526034835286812095518655925190518416700100000000000000000000000000000000029316929092176001909301929092558b830151908c0151925173ffffffffffffffffffffffffffffffffffffffff918216939091169186917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f629190a4505050505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e19190614e5a565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018290526000906110b29073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a25ae55790602401606060405180830381865afa158015611073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110979190614d0b565b602001516fffffffffffffffffffffffffffffffff16611fb6565b92915050565b60006108e161084e565b6110ca610f4e565b15611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a20706175736564000000000000000000006044820152606401610661565b60325473ffffffffffffffffffffffffffffffffffffffff1661dead146111da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e006064820152608401610661565b60006111e582611f62565b60008181526034602090815260408083208151606081018352815481526001909101546fffffffffffffffffffffffffffffffff808216948301859052700100000000000000000000000000000000909104169181019190915292935090036112d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e60448201527f6f74206265656e2070726f76656e2079657400000000000000000000000000006064820152608401610661565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663887862726040518163ffffffff1660e01b8152600401602060405180830381865afa15801561133b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135f9190614e77565b81602001516fffffffffffffffffffffffffffffffff16101561142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657360448201527f74616d70206c657373207468616e204c32204f7261636c65207374617274696e60648201527f672074696d657374616d70000000000000000000000000000000000000000000608482015260a401610661565b61144981602001516fffffffffffffffffffffffffffffffff16611fb6565b6114fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4f7074696d69736d506f7274616c3a2070726f76656e2077697468647261776160448201527f6c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c60648201527f6170736564000000000000000000000000000000000000000000000000000000608482015260a401610661565b60408181015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff90911660048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa1580156115a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c49190614d0b565b825181519192501461167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f7660448201527f656e206973206e6f74207468652073616d652061732063757272656e74206f7560648201527f7470757420726f6f740000000000000000000000000000000000000000000000608482015260a401610661565b61169d81602001516fffffffffffffffffffffffffffffffff16611fb6565b61174f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f66696e616c697a6174696f6e20706572696f6420686173206e6f7420656c617060648201527f7365640000000000000000000000000000000000000000000000000000000000608482015260a401610661565b60008381526033602052604090205460ff16156117ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a656400000000000000000000006064820152608401610661565b600083815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055908601516032805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558501516080860151606087015160a088015161189093929190612059565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915084907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b906118f590841515815260200190565b60405180910390a28015801561190b5750326001145b15611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f7074696d69736d506f7274616c3a207769746864726177616c206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610661565b5050505050565b60006119ac826010614ebf565b6110b290615208614eef565b600054610100900460ff16158080156119d85750600054600160ff909116105b806119f25750303b1580156119f2575060005460ff166001145b611a7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610661565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015611adc57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790556035805473ffffffffffffffffffffffffffffffffffffffff8416610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909116179055611b566120b7565b8015611bb957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b600154600090611c0f907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643614f1b565b90506000611c1b61219a565b90506000816020015160ff16826000015163ffffffff16611c3c9190614f61565b90508215611d7357600154600090611c73908390700100000000000000000000000000000000900467ffffffffffffffff16614fc9565b90506000836040015160ff1683611c8a919061503d565b600154611caa9084906fffffffffffffffffffffffffffffffff1661503d565b611cb49190614f61565b600154909150600090611d0590611cde9084906fffffffffffffffffffffffffffffffff166150f9565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff1661225b565b90506001861115611d3457611d31611cde82876040015160ff1660018a611d2c9190614f1b565b61227a565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090611da6908490700100000000000000000000000000000000900467ffffffffffffffff16614eef565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315611e89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d697400006064820152608401610661565b600154600090611eb5906fffffffffffffffffffffffffffffffff1667ffffffffffffffff881661516d565b90506000611ec748633b9aca006122cf565b611ed190836151aa565b905060005a611ee09088614f1b565b905080821115611efc57611efc611ef78284614f1b565b6122e6565b5050505050505050565b60008160000151826020015183604001518460600151604051602001611f45949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b80516020808301516040808501516060860151608087015160a08801519351600097611f459790969591016151be565b600080611f9e86612314565b9050611fac81868686612346565b9695505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f4daa2916040518163ffffffff1660e01b8152600401602060405180830381865afa158015612023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120479190614e77565b6120519083615215565b421192915050565b6000806000612069866000612376565b90508061209f576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b600054610100900460ff1661214e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610661565b60408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663cc731b026040518163ffffffff1660e01b815260040160c060405180830381865afa158015612237573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e19190615252565b600061227061226a8585612394565b836123a4565b90505b9392505050565b6000670de0b6b3a76400006122bb6122928583614f61565b6122a490670de0b6b3a7640000614fc9565b6122b685670de0b6b3a764000061503d565b6123b3565b6122c5908661503d565b6122709190614f61565b6000818310156122df5781612273565b5090919050565b6000805a90505b825a6122f99083614f1b565b101561230f57612308826152f1565b91506122ed565b505050565b6060818051906020012060405160200161233091815260200190565b6040516020818303038152906040529050919050565b600061236d846123578786866123e4565b8051602091820120825192909101919091201490565b95945050505050565b600080603f83619c4001026040850201603f5a021015949350505050565b6000818312156122df5781612273565b60008183126122df5781612273565b6000612273670de0b6b3a7640000836123cb86612e62565b6123d5919061503d565b6123df9190614f61565b6130a6565b60606000845111612451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b657900000000000000000000006044820152606401610661565b600061245c846132e5565b90506000612469866133d1565b905060008460405160200161248091815260200190565b60405160208183030381529060405290506000805b8451811015612dd95760008582815181106124b2576124b2615329565b60200260200101519050845183111561254d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e6774680000000000000000000000000000000000006064820152608401610661565b82600003612606578051805160209182012060405161259b9261257592910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612601576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f7420686173680000006044820152606401610661565b61275d565b8051516020116126bc57805180516020918201206040516126309261257592910190815260200190565b612601576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c2068617368000000000000000000000000000000000000000000000000006064820152608401610661565b80518451602080870191909120825191909201201461275d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f65206861736800000000000000000000000000000000000000000000000000006064820152608401610661565b61276960106001615215565b8160200151510361294557845183036128dd576127a3816020015160108151811061279657612796615329565b6020026020010151613434565b96506000875111612836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e63682900000000006064820152608401610661565b600186516128449190614f1b565b82146128d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e6368290000000000006064820152608401610661565b505050505050612273565b60008584815181106128f1576128f1615329565b602001015160f81c60f81b60f81c9050600082602001518260ff168151811061291c5761291c615329565b6020026020010151905061292f81613594565b955061293c600186615215565b94505050612dc6565b600281602001515103612d3e57600061295d826135b9565b905060008160008151811061297457612974615329565b016020015160f81c9050600061298b600283615358565b61299690600261537a565b905060006129a7848360ff166135dd565b905060006129b58a896135dd565b905060006129c38383613613565b905080835114612a55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b65790000000000006064820152608401610661565b60ff851660021480612a6a575060ff85166003145b15612c595780825114612aff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e6465720000006064820152608401610661565b612b19876020015160018151811061279657612796615329565b9c5060008d5111612bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c65616629000000000000006064820152608401610661565b60018c51612bba9190614f1b565b8814612c48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c6561662900000000000000006064820152608401610661565b505050505050505050505050612273565b60ff85161580612c6c575060ff85166001145b15612cab57612c988760200151600181518110612c8b57612c8b615329565b6020026020010151613594565b9950612ca4818a615215565b9850612d33565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e2070726566697800000000000000000000000000006064820152608401610661565b505050505050612dc6565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f64650000000000000000000000000000000000000000000000006064820152608401610661565b5080612dd1816152f1565b915050612495565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e74730000000000000000000000000000000000000000000000000000006064820152608401610661565b6000808213612ecd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610661565b60006060612eda846136c7565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c182136130d757506000919050565b680755bf798b4a1bf1e58212613149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401610661565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff811115613303576133036147ea565b60405190808252806020026020018201604052801561334857816020015b60408051808201909152606080825260208201528152602001906001900390816133215790505b50915060005b818110156133ca57604051806040016040528085838151811061337357613373615329565b602002602001015181526020016133a286848151811061339557613395615329565b602002602001015161379d565b8152508382815181106133b7576133b7615329565b602090810291909101015260010161334e565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b83811015613429578060011b82018184015160001a8060041c8253600f8116600183015350506001016133fb565b509295945050505050565b60606000806000613444856137b0565b91945092509050600081600181111561345f5761345f61539d565b146134ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d000000000000006064820152608401610661565b6134f68284615215565b855114613585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527f616e20696e76616c69642072656d61696e6465720000000000000000000000006064820152608401610661565b61236d8560200151848461421d565b606060208260000151106135b0576135ab82613434565b6110b2565b6110b2826142b1565b60606110b26135d8836020015160008151811061279657612796615329565b6133d1565b6060825182106135fc57506040805160208101909152600081526110b2565b612273838384865161360e9190614f1b565b6142c7565b6000808251845110613626578251613629565b83515b90505b80821080156136b0575082828151811061364857613648615329565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191684838151811061368757613687615329565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156136c05781600101915061362c565b5092915050565b6000808211613732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610661565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b60606110b26137ab8361449f565b614588565b60008060008084600001511161386e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a401610661565b6020840151805160001a607f8111613893576000600160009450945094505050614216565b60b78111613aa15760006138a8608083614f1b565b905080876000015111613963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201527f2873686f727420737472696e6729000000000000000000000000000000000000608482015260a401610661565b6001838101517fff000000000000000000000000000000000000000000000000000000000000001690821415806139dc57507f80000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610155b613a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201527f73686f727420737472696e672900000000000000000000000000000000000000608482015260a401610661565b5060019550935060009250614216915050565b60bf8111613def576000613ab660b783614f1b565b905080876000015111613b71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527f67746820286c6f6e6720737472696e6729000000000000000000000000000000608482015260a401610661565b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613c4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e6720737472696e672900000000000000000000000000000000000000000000608482015260a401610661565b600184015160088302610100031c60378111613d13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f20737472696e6729000000000000000000000000000000000000000000000000608482015260a401610661565b613d1d8184615215565b895111613dd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e6720737472696e67290000000000000000000000000000000000000000608482015260a401610661565b613ddd836001615215565b97509550600094506142169350505050565b60f78111613ed0576000613e0460c083614f1b565b905080876000015111613ebf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e206c697374206c656e67746820287360648201527f686f7274206c6973742900000000000000000000000000000000000000000000608482015260a401610661565b600195509350849250614216915050565b6000613edd60f783614f1b565b905080876000015111613f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201527f6820286c6f6e67206c6973742900000000000000000000000000000000000000608482015260a401610661565b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003614076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e67206c69737429000000000000000000000000000000000000000000000000608482015260a401610661565b600184015160088302610100031c6037811161413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f206c697374290000000000000000000000000000000000000000000000000000608482015260a401610661565b6141448184615215565b8951116141f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e67206c6973742900000000000000000000000000000000000000000000608482015260a401610661565b614204836001615215565b97509550600194506142169350505050565b9193909250565b60608167ffffffffffffffff811115614238576142386147ea565b6040519080825280601f01601f191660200182016040528015614262576020820181803683370190505b50905081156122735760006142778486615215565b90506020820160005b84811015614298578281015182820152602001614280565b848111156142a7576000858301525b5050509392505050565b60606110b282602001516000846000015161421d565b60608182601f011015614336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610661565b8282840110156143a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610661565b8183018451101561440f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610661565b60608215801561442e5760405191506000825260208201604052614496565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561446757805183526020928301920161444f565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6040805180820190915260008082526020820152600082511161456a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a401610661565b50604080518082019091528151815260209182019181019190915290565b60606000806000614598856137b0565b9194509250905060018160018111156145b3576145b361539d565b14614640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d00000000000000006064820152608401610661565b845161464c8385615215565b146146d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e766160448201527f6c696420646174612072656d61696e64657200000000000000000000000000006064820152608401610661565b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816146f05790505093506000835b86518110156147de576000806147636040518060400160405280858c600001516147479190614f1b565b8152602001858c6020015161475c9190615215565b90526137b0565b50915091506040518060400160405280838361477f9190615215565b8152602001848b602001516147949190615215565b8152508885815181106147a9576147a9615329565b60209081029190910101526147bf600185615215565b93506147cb8183615215565b6147d59084615215565b9250505061471d565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614860576148606147ea565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461488a57600080fd5b50565b600082601f83011261489e57600080fd5b813567ffffffffffffffff8111156148b8576148b86147ea565b6148e960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614819565b8181528460208386010111156148fe57600080fd5b816020850160208301376000918101602001919091529392505050565b600060c0828403121561492d57600080fd5b60405160c0810167ffffffffffffffff8282108183111715614951576149516147ea565b81604052829350843583526020850135915061496c82614868565b8160208401526040850135915061498282614868565b816040840152606085013560608401526080850135608084015260a08501359150808211156149b057600080fd5b506149bd8582860161488d565b60a0830152505092915050565b600080600080600085870360e08112156149e357600080fd5b863567ffffffffffffffff808211156149fb57600080fd5b614a078a838b0161491b565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc084011215614a4057600080fd5b60408901955060c0890135925080831115614a5a57600080fd5b828901925089601f840112614a6e57600080fd5b8235915080821115614a7f57600080fd5b508860208260051b8401011115614a9557600080fd5b959894975092955050506020019190565b60005b83811015614ac1578181015183820152602001614aa9565b83811115614ad0576000848401525b50505050565b60008151808452614aee816020860160208601614aa6565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122736020830184614ad6565b600060208284031215614b4557600080fd5b5035919050565b600060208284031215614b5e57600080fd5b813567ffffffffffffffff811115614b7557600080fd5b614b818482850161491b565b949350505050565b803567ffffffffffffffff81168114614ba157600080fd5b919050565b600060208284031215614bb857600080fd5b61227382614b89565b600060208284031215614bd357600080fd5b813561227381614868565b801515811461488a57600080fd5b600080600080600060a08688031215614c0457600080fd5b8535614c0f81614868565b945060208601359350614c2460408701614b89565b92506060860135614c3481614bde565b9150608086013567ffffffffffffffff811115614c5057600080fd5b614c5c8882890161488d565b9150509295509295909350565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251614cbd816049850160208701614aa6565b919091016049019695505050505050565b600060208284031215614ce057600080fd5b815161227381614868565b80516fffffffffffffffffffffffffffffffff81168114614ba157600080fd5b600060608284031215614d1d57600080fd5b6040516060810181811067ffffffffffffffff82111715614d4057614d406147ea565b60405282518152614d5360208401614ceb565b6020820152614d6460408401614ceb565b60408201529392505050565b600060808284031215614d8257600080fd5b6040516080810181811067ffffffffffffffff82111715614da557614da56147ea565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600067ffffffffffffffff80841115614df157614df16147ea565b8360051b6020614e02818301614819565b868152918501918181019036841115614e1a57600080fd5b865b84811015614e4e57803586811115614e345760008081fd5b614e4036828b0161488d565b845250918301918301614e1c565b50979650505050505050565b600060208284031215614e6c57600080fd5b815161227381614bde565b600060208284031215614e8957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615614ee657614ee6614e90565b02949350505050565b600067ffffffffffffffff808316818516808303821115614f1257614f12614e90565b01949350505050565b600082821015614f2d57614f2d614e90565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614f7057614f70614f32565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615614fc457614fc4614e90565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561500357615003614e90565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01831381161561503757615037614e90565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561507e5761507e614e90565b7f800000000000000000000000000000000000000000000000000000000000000060008712868205881281841616156150b9576150b9614e90565b600087129250878205871284841616156150d5576150d5614e90565b878505871281841616156150eb576150eb614e90565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0384138115161561513357615133614e90565b827f800000000000000000000000000000000000000000000000000000000000000003841281161561516757615167614e90565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156151a5576151a5614e90565b500290565b6000826151b9576151b9614f32565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261520960c0830184614ad6565b98975050505050505050565b6000821982111561522857615228614e90565b500190565b805163ffffffff81168114614ba157600080fd5b805160ff81168114614ba157600080fd5b600060c0828403121561526457600080fd5b60405160c0810181811067ffffffffffffffff82111715615287576152876147ea565b6040526152938361522d565b81526152a160208401615241565b60208201526152b260408401615241565b60408201526152c36060840161522d565b60608201526152d46080840161522d565b60808201526152e560a08401614ceb565b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361532257615322614e90565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff83168061536b5761536b614f32565b8060ff84160691505092915050565b600060ff821660ff84168082101561539457615394614e90565b90039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a"
func init() { func init() {
......
...@@ -8,4 +8,4 @@ GasBenchMark_L1StandardBridge_Finalize:test_finalizeETHWithdrawal_benchmark() (g ...@@ -8,4 +8,4 @@ GasBenchMark_L1StandardBridge_Finalize:test_finalizeETHWithdrawal_benchmark() (g
GasBenchMark_L2OutputOracle:test_proposeL2Output_benchmark() (gas: 86629) GasBenchMark_L2OutputOracle:test_proposeL2Output_benchmark() (gas: 86629)
GasBenchMark_OptimismPortal:test_depositTransaction_benchmark() (gas: 68462) GasBenchMark_OptimismPortal:test_depositTransaction_benchmark() (gas: 68462)
GasBenchMark_OptimismPortal:test_depositTransaction_benchmark_1() (gas: 68911) GasBenchMark_OptimismPortal:test_depositTransaction_benchmark_1() (gas: 68911)
GasBenchMark_OptimismPortal:test_proveWithdrawalTransaction_benchmark() (gas: 153527) GasBenchMark_OptimismPortal:test_proveWithdrawalTransaction_benchmark() (gas: 153571)
\ No newline at end of file \ No newline at end of file
...@@ -28,8 +28,8 @@ ...@@ -28,8 +28,8 @@
"sourceCodeHash": "0xb99ee58a672ed59f6bf529a618d4949f198bfda7c65664c9b2a2657070756c69" "sourceCodeHash": "0xb99ee58a672ed59f6bf529a618d4949f198bfda7c65664c9b2a2657070756c69"
}, },
"src/L1/OptimismPortal.sol": { "src/L1/OptimismPortal.sol": {
"initCodeHash": "0xc79a302dde8780d8c640e9311a8f5f8959f05b42a60a6c869fb2c2c5a54f9062", "initCodeHash": "0xc44238f1b97d7958baad77aea821de399cff040ab987c66946c1e3c6d6e20333",
"sourceCodeHash": "0x8fe20e758082efde3a87ffc9d7570fd9237a2defd6a0b42f2fd8b4f260b8a1bf" "sourceCodeHash": "0x2530691be903b5903351791fb6b216dbddbd29eec4da4e4c2d882f571002b461"
}, },
"src/L1/ProtocolVersions.sol": { "src/L1/ProtocolVersions.sol": {
"initCodeHash": "0x72cd467e8bcf019c02675d72ab762e088bcc9cc0f1a4e9f587fa4589f7fdd1b8", "initCodeHash": "0x72cd467e8bcf019c02675d72ab762e088bcc9cc0f1a4e9f587fa4589f7fdd1b8",
......
...@@ -509,19 +509,6 @@ ...@@ -509,19 +509,6 @@
"stateMutability": "view", "stateMutability": "view",
"type": "function" "type": "function"
}, },
{
"inputs": [],
"name": "spacer_53_0_1",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{ {
"inputs": [], "inputs": [],
"name": "superchainConfig", "name": "superchainConfig",
......
...@@ -61,7 +61,7 @@ contract OptimismPortal is Initializable, ResourceMetering, ISemver { ...@@ -61,7 +61,7 @@ contract OptimismPortal is Initializable, ResourceMetering, ISemver {
/// @custom:legacy /// @custom:legacy
/// @custom:spacer paused /// @custom:spacer paused
/// @notice Spacer for backwards compatibility. /// @notice Spacer for backwards compatibility.
bool public spacer_53_0_1; bool spacer_53_0_1;
/// @notice The address of the Superchain Config contract. /// @notice The address of the Superchain Config contract.
SuperchainConfig public superchainConfig; SuperchainConfig public superchainConfig;
...@@ -101,8 +101,8 @@ contract OptimismPortal is Initializable, ResourceMetering, ISemver { ...@@ -101,8 +101,8 @@ contract OptimismPortal is Initializable, ResourceMetering, ISemver {
} }
/// @notice Semantic version. /// @notice Semantic version.
/// @custom:semver 2.0.0 /// @custom:semver 2.1.0
string public constant version = "2.0.0"; string public constant version = "2.1.0";
/// @notice Constructs the OptimismPortal contract. /// @notice Constructs the OptimismPortal contract.
/// @param _l2Oracle Address of the L2OutputOracle contract. /// @param _l2Oracle Address of the L2OutputOracle contract.
......
...@@ -155,7 +155,6 @@ contract Authorization_Test is CommonTest { ...@@ -155,7 +155,6 @@ contract Authorization_Test is CommonTest {
_addSpec("OptimismPortal", _getSel("paused()"), false); _addSpec("OptimismPortal", _getSel("paused()"), false);
_addSpec("OptimismPortal", OptimismPortal.proveWithdrawalTransaction.selector, true); // pauseable _addSpec("OptimismPortal", OptimismPortal.proveWithdrawalTransaction.selector, true); // pauseable
_addSpec("OptimismPortal", _getSel("provenWithdrawals(bytes32)"), false); _addSpec("OptimismPortal", _getSel("provenWithdrawals(bytes32)"), false);
_addSpec("OptimismPortal", _getSel("spacer_53_0_1()"), false);
_addSpec("OptimismPortal", _getSel("superchainConfig()"), false); _addSpec("OptimismPortal", _getSel("superchainConfig()"), false);
_addSpec("OptimismPortal", _getSel("systemConfig()"), false); _addSpec("OptimismPortal", _getSel("systemConfig()"), false);
_addSpec("OptimismPortal", _getSel("version()"), false); _addSpec("OptimismPortal", _getSel("version()"), false);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment