From 7708f69d796896a5a003c17e2aae1602d6532da3 Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Wed, 18 Sep 2024 14:39:05 +0800 Subject: [PATCH 1/6] Display contract invoocation if data is "" --- packages/protocol/contracts/shared/bridge/Bridge.sol | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/protocol/contracts/shared/bridge/Bridge.sol b/packages/protocol/contracts/shared/bridge/Bridge.sol index 3e67bad5cb7..2ccf4eb70dd 100644 --- a/packages/protocol/contracts/shared/bridge/Bridge.sol +++ b/packages/protocol/contracts/shared/bridge/Bridge.sol @@ -495,7 +495,7 @@ contract Bridge is EssentialContract, IBridge { returns (bool success_) { assert(_message.from != address(this)); - + if (_message.data.length == 0) return true; if (_gasLimit == 0) return false; _storeContext(_msgHash, _message.from, _message.srcChainId); @@ -635,6 +635,8 @@ contract Bridge is EssentialContract, IBridge { } function _messageCalldataCost(uint256 dataLength) private pure returns (uint32) { + if (dataLength == 0) return 0; + // The abi encoding of A = (Message calldata msg) is 10 * 32 bytes // + 32 bytes (A is a dynamic tuple, offset to first elements) // + 32 bytes (offset to last bytes element of Message) From a460418e7b6997c1713873b91a0522ab59022dcf Mon Sep 17 00:00:00 2001 From: dantaik Date: Wed, 18 Sep 2024 06:50:13 +0000 Subject: [PATCH 2/6] forge fmt & update contract layout tables --- .../protocol/test/genesis/data/genesis.json | 2 +- .../test/genesis/data/genesis_alloc.json | 2 +- .../genesis/data/genesis_storage_layout.json | 806 +++++++++--------- 3 files changed, 405 insertions(+), 405 deletions(-) diff --git a/packages/protocol/test/genesis/data/genesis.json b/packages/protocol/test/genesis/data/genesis.json index 6b1549bf7e2..d5cc52f2904 100644 --- a/packages/protocol/test/genesis/data/genesis.json +++ b/packages/protocol/test/genesis/data/genesis.json @@ -62,7 +62,7 @@ "storage": { "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000df08f82de32b8d460adbe8d72043e3a7e25a3b39" }, - "code": "0x60806040526004361061021d575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba61461066b578063e30c3978146106a8578063eefbf17e146106c5578063f09a4016146106eb578063f2fde38b1461070a575f5ffd5b8063b8acae0e146105af578063be880c81146105ce578063c012fa77146105e4578063d0496d6a14610603578063d1aaa5df1461064b575f5ffd5b80638e3881a9116100ee5780638e3881a9146104fe578063913b16cb1461053c5780639efc7a2e1461055b578063a730cdfb1461057a578063a86f9d9e14610590575f5ffd5b806382b5e8891461049a5780638456cb59146104b95780638abf6077146104cd5780638da5cb5b146104e1575f5ffd5b80633f4ba83a116101aa5780635c975abb1161016f5780635c975abb146103ff57806360620c6b1461041f578063715018a61461043e57806379ba5097146104525780637cbadfaa14610466575f5ffd5b80633f4ba83a14610381578063422770fa146103955780634f1ef286146103b957806352d1902d146103cc5780635862f6e1146103e0575f5ffd5b80633075db56116101f05780633075db56146102ad5780633659cfe6146102d15780633ab76e9f146102f05780633c6cf473146103275780633eb6b8cf14610362575f5ffd5b80630432873c14610221578063069489a2146102425780631bdb0037146102565780632035065e14610280575b5f5ffd5b34801561022c575f5ffd5b5061024061023b366004612f28565b610729565b005b34801561024d575f5ffd5b50610240610a27565b610269610264366004612f76565b610ade565b604051610277929190613102565b60405180910390f35b34801561028b575f5ffd5b5061029f61029a36600461311a565b610e94565b6040516102779291906131d7565b3480156102b8575f5ffd5b506102c1611354565b6040519015158152602001610277565b3480156102dc575f5ffd5b506102406102eb366004613226565b61136c565b3480156102fb575f5ffd5b5060975461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b348015610332575f5ffd5b50610355610341366004613241565b60fc6020525f908152604090205460ff1681565b6040516102779190613258565b34801561036d575f5ffd5b5061030f61037c36600461327c565b611433565b34801561038c575f5ffd5b50610240611449565b3480156103a0575f5ffd5b506103ab62030d4081565b604051908152602001610277565b6102406103c736600461337f565b61145d565b3480156103d7575f5ffd5b506103ab611516565b3480156103eb575f5ffd5b506102c16103fa36600461311a565b6115c8565b34801561040a575f5ffd5b506102c160c954610100900460ff1660021490565b34801561042a575f5ffd5b506102c1610439366004612f76565b611633565b348015610449575f5ffd5b50610240611701565b34801561045d575f5ffd5b50610240611712565b348015610471575f5ffd5b50610485610480366004613241565b611789565b60405163ffffffff9091168152602001610277565b3480156104a5575f5ffd5b506102406104b4366004613226565b6117a7565b3480156104c4575f5ffd5b50610240611827565b3480156104d8575f5ffd5b5061030f61183a565b3480156104ec575f5ffd5b506033546001600160a01b031661030f565b348015610509575f5ffd5b5061051d6105183660046133cb565b611848565b6040805192151583526001600160a01b03909116602083015201610277565b348015610547575f5ffd5b50610240610556366004612f76565b611874565b348015610566575f5ffd5b5061024061057536600461311a565b611a63565b348015610585575f5ffd5b506104856201d4c081565b34801561059b575f5ffd5b5061030f6105aa3660046133e4565b611d67565b3480156105ba575f5ffd5b506102c16105c936600461311a565b611d73565b3480156105d9575f5ffd5b50610485620c350081565b3480156105ef575f5ffd5b506103ab6105fe366004613507565b611dd4565b34801561060e575f5ffd5b50610617611e03565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610277565b348015610656575f5ffd5b506103ab610665366004613241565b60031890565b348015610676575f5ffd5b5060c954610690906201000090046001600160401b031681565b6040516001600160401b039091168152602001610277565b3480156106b3575f5ffd5b506065546001600160a01b031661030f565b3480156106d0575f5ffd5b5060fb5461069090600160401b90046001600160401b031681565b3480156106f6575f5ffd5b50610240610705366004613538565b611eaa565b348015610715575f5ffd5b50610240610724366004613226565b611f71565b61073960e0830160c084016133cb565b46816001600160401b03161461076257604051631c6c777560e31b815260040160405180910390fd5b61077260a08401608085016133cb565b6001600160401b0381161580610790575046816001600160401b0316145b156107ae57604051631c6c777560e31b815260040160405180910390fd5b6107c260c954610100900460ff1660021490565b156107e05760405163bae6e2a960e01b815260040160405180910390fd5b60026107ee60c95460ff1690565b60ff160361080f5760405163dfc60d8560e01b815260040160405180910390fd5b6108196002611fe2565b5f6108266105fe86613564565b9050610833816001611ff8565b61084185610120013561204a565b61085e576040516335856fbd60e21b815260040160405180910390fd5b5f6108838661087e6d7369676e616c5f7365727669636560901b5f611d67565b6120eb565b156108ce576108c78661012001356188b860405180602001604052805f8152508960e00160208101906108b69190613226565b6001600160a01b03169291906121e2565b9050610948565b6108de606087016040880161356f565b63ffffffff1615806108ed5750845b801561091b5750610905610100870160e08801613226565b6001600160a01b0316336001600160a01b031614155b15610939576040516372b6e1c360e11b815260040160405180910390fd5b61094586835a5f61221f565b90505b801561095e57610959826002612316565b610a15565b84156109fc5761096f826003612316565b61098a6d7369676e616c5f7365727669636560901b5f611d67565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156109d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f69190613588565b50610a15565b60405163161e3ead60e01b815260040160405180910390fd5b5050610a216001611fe2565b50505050565b610a2f6123d3565b5f54600290610100900460ff16158015610a4f57505f5460ff8083169116105b610a745760405162461bcd60e51b8152600401610a6b9061359f565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610b4460c0840160a08501613226565b6001600160a01b038116610b6b5760405163538ba4f960e01b815260040160405180910390fd5b610b7c610100850160e08601613226565b6001600160a01b038116610ba35760405163538ba4f960e01b815260040160405180910390fd5b610bb360e0860160c087016133cb565b6001600160401b0381161580610bd1575046816001600160401b0316145b15610bef57604051631c6c777560e31b815260040160405180910390fd5b610c0360c954610100900460ff1660021490565b15610c215760405163bae6e2a960e01b815260040160405180910390fd5b6002610c2f60c95460ff1690565b60ff1603610c505760405163dfc60d8560e01b815260040160405180910390fd5b610c5a6002611fe2565b610c6a606087016040880161356f565b63ffffffff165f03610cb257610c8660408701602088016133cb565b6001600160401b031615610cad5760405163c9f5178760e01b815260040160405180910390fd5b610cda565b610cbb8661242d565b5f03610cda576040516308c2ad5360e01b815260040160405180910390fd5b5f610cee61051860e0890160c08a016133cb565b50905080610d0f57604051631c6c777560e31b815260040160405180910390fd5b34610d206040890160208a016133cb565b610d38906001600160401b03166101208a0135613601565b14610d5657604051634ac2abdf60e11b815260040160405180910390fd5b610d5f87613564565b60fb8054919650600160401b9091046001600160401b0316906008610d8383613614565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610dbe85611dd4565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610df0919061363e565b60405180910390a2610e136d7369676e616c5f7365727669636560901b5f611d67565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610e4091815260200190565b6020604051808303815f875af1158015610e5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e809190613588565b5050610e8c6001611fe2565b505050915091565b5f5f610eaa60c954610100900460ff1660021490565b15610ec85760405163bae6e2a960e01b815260040160405180910390fd5b6002610ed660c95460ff1690565b60ff1603610ef75760405163dfc60d8560e01b815260040160405180910390fd5b610f016002611fe2565b5f5a905046610f1660e0880160c089016133cb565b6001600160401b031614610f3d57604051631c6c777560e31b815260040160405180910390fd5b610f4d60a08701608088016133cb565b6001600160401b03161580610f79575046610f6e60a08801608089016133cb565b6001600160401b0316145b15610f9757604051631c6c777560e31b815260040160405180910390fd5b604080516080810182525f808252602082018190529181018290526060810191909152610fcb610100880160e08901613226565b6001600160a01b031633148015606083015261103a57610ff1606088016040890161356f565b63ffffffff165f03611016576040516372b6e1c360e11b815260040160405180910390fd5b62030d4085111561103a57604051631e3b03c960e01b815260040160405180910390fd5b5f6110476105fe89613564565b9050611053815f611ff8565b5f61106f6d7369676e616c5f7365727669636560901b5f611d67565b63ffffffff881660208501529050611099818361109260a08d0160808e016133cb565b8b8b612480565b63ffffffff166040808501919091526110d8906110bb908b0160208c016133cb565b6110d3906001600160401b03166101208c0135613601565b61204a565b6110f5576040516335856fbd60e21b815260040160405180910390fd5b5f6111008a836120eb565b1561111957506002955060019450610120890135611160565b5f8460600151611129575a611132565b6111328b61242d565b90506111448b8583886060015161221f565b1561115557600297505f965061115e565b60019750600296505b505b61117060408b0160208c016133cb565b6001600160401b0316156112d15761118e60408b0160208c016133cb565b6111a1906001600160401b031682613601565b9050836060015180156111c857506111bf60608b0160408c0161356f565b63ffffffff1615155b156112d157604084015163ffffffff16614e20025a6112056111ee6101408e018e613650565b6020601f909101819004026101a00160041b919050565b63ffffffff9081168801919091036201d4c00181168087525f91839161122e9183919061252b16565b0390505f61124260608e0160408f0161356f565b63ffffffff168d602001602081019061125b91906133cb565b6001600160401b031683028161127357611273613699565b0490505f48830290505f6112b78f602001602081019061129391906133cb565b6001600160401b0316848410156112af5784840160011c6112b1565b845b90612540565b958690039590506112cb33826188b8612554565b50505050505b6112f9816188b86112e96101008e0160e08f01613226565b6001600160a01b03169190612554565b6113038388612316565b827f8580f507761043ecdd2bdca084d6fb0109150b3d9842d854d34e3dea6d69387d8b86604051611335929190613831565b60405180910390a2505050505061134c6001611fe2565b935093915050565b5f600261136360c95460ff1690565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036113b45760405162461bcd60e51b8152600401610a6b90613885565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166113e6612597565b6001600160a01b03161461140c5760405162461bcd60e51b8152600401610a6b906138d1565b611415816125b2565b604080515f80825260208201909252611430918391906125ba565b50565b5f61143f848484612724565b90505b9392505050565b611451612776565b61145b335f612806565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036114a55760405162461bcd60e51b8152600401610a6b90613885565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166114d7612597565b6001600160a01b0316146114fd5760405162461bcd60e51b8152600401610a6b906138d1565b611506826125b2565b611512828260016125ba565b5050565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000116146115b55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a6b565b505f516020613aeb5f395f51905f525b90565b5f466115da60a08601608087016133cb565b6001600160401b0316146115ef57505f611442565b61143f61160d6d7369676e616c5f7365727669636560901b5f611d67565b61161c6106656105fe88613564565b61162c60e0880160c089016133cb565b86866128b3565b5f4661164560a08401608085016133cb565b6001600160401b03161461165a57505f919050565b6116756d7369676e616c5f7365727669636560901b5f611d67565b6001600160a01b03166332676bc6306116906105fe86613564565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156116d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fb919061391d565b92915050565b6117096123d3565b61145b5f612935565b60655433906001600160a01b031681146117805760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a6b565b61143081612935565b5f6116fb620c35006101a06020601f8601819004020160041b613938565b806001600160a01b0381166117cf5760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b15801561180d575f5ffd5b505af115801561181f573d5f5f3e3d5ffd5b505050505050565b61182f61294e565b61145b336001612806565b5f611843612597565b905090565b5f5f61185f836562726964676560d01b6001611433565b6001600160a01b038116151594909350915050565b61188460e0820160c083016133cb565b46816001600160401b0316146118ad57604051631c6c777560e31b815260040160405180910390fd5b6118bd60a08301608084016133cb565b6001600160401b03811615806118db575046816001600160401b0316145b156118f957604051631c6c777560e31b815260040160405180910390fd5b61190d60c954610100900460ff1660021490565b1561192b5760405163bae6e2a960e01b815260040160405180910390fd5b600261193960c95460ff1690565b60ff160361195a5760405163dfc60d8560e01b815260040160405180910390fd5b6119646002611fe2565b611975610100840160e08501613226565b6001600160a01b0316336001600160a01b0316146119a6576040516372b6e1c360e11b815260040160405180910390fd5b5f6119b36105fe85613564565b90506119c0816001611ff8565b6119cb816003612316565b6119e66d7369676e616c5f7365727669636560901b5f611d67565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af1158015611a2e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a529190613588565b5050611a5e6001611fe2565b505050565b611a7360a08401608085016133cb565b46816001600160401b031614611a9c57604051631c6c777560e31b815260040160405180910390fd5b611aac60e0850160c086016133cb565b6001600160401b0381161580611aca575046816001600160401b0316145b15611ae857604051631c6c777560e31b815260040160405180910390fd5b611afc60c954610100900460ff1660021490565b15611b1a5760405163bae6e2a960e01b815260040160405180910390fd5b6002611b2860c95460ff1690565b60ff1603611b495760405163dfc60d8560e01b815260040160405180910390fd5b611b536002611fe2565b5f611b606105fe87613564565b9050611b6c815f611ff8565b5f611b886d7369676e616c5f7365727669636560901b5f611d67565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611bd4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bf8919061391d565b611c155760405163ab035ad560e01b815260040160405180910390fd5b611c348160038418611c2d60e08b0160c08c016133cb565b8989612480565b50611c40826004612316565b611c4e87610120013561204a565b611c6b576040516335856fbd60e21b815260040160405180910390fd5b611c9462bc399d60e11b611c8560808a0160608b01613226565b6001600160a01b0316906129bf565b15611d3857611cb38230611cae60a08b0160808c016133cb565b612a4c565b611cc36080880160608901613226565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611cf6929190613954565b5f604051808303818588803b158015611d0d575f5ffd5b505af1158015611d1f573d5f5f3e3d5ffd5b5050505050611d335f195f1b5f1980612a4c565b611d54565b611d546101208801356188b86112e960c08b0160a08c01613226565b5050611d606001611fe2565b5050505050565b5f611442468484612724565b5f46611d8560e0860160c087016133cb565b6001600160401b031614611d9a57505f611442565b61143f611db86d7369676e616c5f7365727669636560901b5f611d67565b611dc46105fe87613564565b61162c60a08801608089016133cb565b5f81604051602001611de69190613975565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611e7a604080516060810182525f8082526020820181905291810191909152506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b80519091501580611e8c575080515f19145b156115c557604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611ec857505f54600160ff909116105b80611ee15750303b158015611ee157505f5460ff166001145b611efd5760405162461bcd60e51b8152600401610a6b9061359f565b5f805460ff191660011790558015611f1e575f805461ff0019166101001790555b611f288383612aa1565b8015611a5e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611f796123d3565b606580546001600160a01b0383166001600160a01b03199091168117909155611faa6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b80600481111561200a5761200a6131af565b5f83815260fc602052604090205460ff16600481111561202c5761202c6131af565b14611512576040516319d893ad60e21b815260040160405180910390fd5b5f5f6120676c38bab7ba30afb6b0b730b3b2b960991b6001611d67565b90506001600160a01b0381166120805750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b1580156120c5575f5ffd5b505af19250505080156120d6575060015b6120e257505f92915050565b50600192915050565b5f806120ff61012085016101008601613226565b6001600160a01b031603612115575060016116fb565b3061212861012085016101008601613226565b6001600160a01b03160361213e575060016116fb565b6001600160a01b03821661215a61012085016101008601613226565b6001600160a01b031603612170575060016116fb565b6004612180610140850185613650565b9050101580156121b75750637f07c94760e01b6121a1610140850185613650565b6121aa916139ab565b6001600160e01b03191614155b801561144257506114426121d361012085016101008601613226565b6001600160a01b03163b151590565b5f6001600160a01b03851661220a57604051634c67134d60e11b815260040160405180910390fd5b5f5f835160208501878988f195945050505050565b5f306122316080870160608801613226565b6001600160a01b031603612247576122476139e3565b825f0361225557505f61230e565b612279846122696080880160608901613226565b611cae60a0890160808a016133cb565b5f61228c61012087016101008801613226565b90506101208601355f6122a3610140890189613650565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509384935083925090506020850186888cf194505a905085156122fd576122fd8188612adb565b6123095f198080612a4c565b505050505b949350505050565b806004811115612328576123286131af565b5f83815260fc602052604090205460ff16600481111561234a5761234a6131af565b03612368576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff19166001836004811115612392576123926131af565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516123c79190613258565b60405180910390a25050565b6033546001600160a01b0316331461145b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a6b565b5f80612447612440610140850185613650565b9050611789565b63ffffffff16905080612478612463606086016040870161356f565b63ffffffff168361252b90919063ffffffff16565b039392505050565b5f856001600160a01b031663910af6ed856124a5876562726964676560d01b5f611433565b8887876040518663ffffffff1660e01b81526004016124c89594939291906139f7565b6020604051808303815f875af1925050508015612502575060408051601f3d908101601f191682019092526124ff91810190613588565b60015b61251f576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f8183116125395781611442565b5090919050565b5f81831161254e5782611442565b50919050565b815f0361256057505050565b61257a83838360405180602001604052805f8152506121e2565b611a5e57604051634c67134d60e11b815260040160405180910390fd5b5f516020613aeb5f395f51905f52546001600160a01b031690565b6114306123d3565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125ed57611a5e83612aef565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612647575060408051601f3d908101601f1916820190925261264491810190613588565b60015b6126aa5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a6b565b5f516020613aeb5f395f51905f5281146127185760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a6b565b50611a5e838383612b8a565b5f61272f8484612bae565b90508115801561274657506001600160a01b038116155b1561144257604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610a6b565b61278a60c954610100900460ff1660021490565b6127a75760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b038381169116148061284e57506128396d636861696e5f7761746368646f6760901b6001611d67565b6001600160a01b0316826001600160a01b0316145b15612857575050565b808015612891575061287c6e6272696467655f7761746368646f6760881b6001611d67565b6001600160a01b0316826001600160a01b0316145b1561289a575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d0820856128d8876562726964676560d01b5f611433565b8887876040518663ffffffff1660e01b81526004016128fb9594939291906139f7565b5f6040518083038186803b158015612911575f5ffd5b505afa925050508015612922575060015b61292d57505f612522565b506001612522565b606580546001600160a01b031916905561143081612c50565b61296260c954610100900460ff1660021490565b156129805760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016127fc565b5f6001600160a01b0383163b6129d657505f6116fb565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612a40575060408051601f3d908101601f19168201909252612a3d9181019061391d565b60015b156116fb579392505050565b604080516060810182528481526001600160a01b03909316602084018190526001600160401b03909216920182905260fd9290925560fe8054600160a01b9092026001600160e01b0319909216909217179055565b806001600160a01b038116612ac95760405163538ba4f960e01b815260040160405180910390fd5b612ad283612ca1565b611a5e82612cff565b612ae6603f82613a38565b82101561151257fe5b6001600160a01b0381163b612b5c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a6b565b5f516020613aeb5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612b9383612d6f565b5f82511180612b9f5750805b15611a5e57610a218383612dae565b6097545f906001600160a01b031680612bda57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612c2c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230e9190613a57565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612cc75760405162461bcd60e51b8152600401610a6b90613a72565b612ccf612dd3565b612ced6001600160a01b03821615612ce75781612935565b33612935565b5060c9805461ff001916610100179055565b5f54610100900460ff16612d255760405162461bcd60e51b8152600401610a6b90613a72565b6001600160401b03461115612d4d5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b612d7881612aef565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606114428383604051806060016040528060278152602001613b0b60279139612df9565b5f54610100900460ff1661145b5760405162461bcd60e51b8152600401610a6b90613a72565b60605f5f856001600160a01b031685604051612e159190613abd565b5f60405180830381855af49150503d805f8114612e4d576040519150601f19603f3d011682016040523d82523d5f602084013e612e52565b606091505b5091509150612e6386838387612e6d565b9695505050505050565b60608315612edb5782515f03612ed4576001600160a01b0385163b612ed45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a6b565b508161230e565b61230e8383815115612ef05781518083602001fd5b8060405162461bcd60e51b8152600401610a6b9190613ad8565b5f610160828403121561254e575f5ffd5b8015158114611430575f5ffd5b5f5f60408385031215612f39575f5ffd5b82356001600160401b03811115612f4e575f5ffd5b612f5a85828601612f0a565b9250506020830135612f6b81612f1b565b809150509250929050565b5f60208284031215612f86575f5ffd5b81356001600160401b03811115612f9b575f5ffd5b61230e84828501612f0a565b5f5b83811015612fc1578181015183820152602001612fa9565b50505f910152565b5f8151808452612fe0816020860160208601612fa7565b601f01601f19169290920160200192915050565b80516001600160401b031682525f602082015161301c60208501826001600160401b03169052565b506040820151613034604085018263ffffffff169052565b50606082015161304f60608501826001600160a01b03169052565b50608082015161306a60808501826001600160401b03169052565b5060a082015161308560a08501826001600160a01b03169052565b5060c08201516130a060c08501826001600160401b03169052565b5060e08201516130bb60e08501826001600160a01b03169052565b506101008201516130d86101008501826001600160a01b03169052565b5061012082015161012084015261014082015161016061014085015261230e610160850182612fc9565b828152604060208201525f61143f6040830184612ff4565b5f5f5f6040848603121561312c575f5ffd5b83356001600160401b03811115613141575f5ffd5b61314d86828701612f0a565b93505060208401356001600160401b03811115613168575f5ffd5b8401601f81018613613178575f5ffd5b80356001600160401b0381111561318d575f5ffd5b86602082840101111561319e575f5ffd5b939660209190910195509293505050565b634e487b7160e01b5f52602160045260245ffd5b600581106131d3576131d36131af565b9052565b604081016131e582856131c3565b600483106131f5576131f56131af565b8260208301529392505050565b6001600160a01b0381168114611430575f5ffd5b803561322181613202565b919050565b5f60208284031215613236575f5ffd5b813561144281613202565b5f60208284031215613251575f5ffd5b5035919050565b602081016116fb82846131c3565b80356001600160401b0381168114613221575f5ffd5b5f5f5f6060848603121561328e575f5ffd5b61329784613266565b92506020840135915060408401356132ae81612f1b565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b03811182821017156132f0576132f06132b9565b60405290565b5f82601f830112613305575f5ffd5b81356001600160401b0381111561331e5761331e6132b9565b604051601f8201601f19908116603f011681016001600160401b038111828210171561334c5761334c6132b9565b604052818152838201602001851015613363575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215613390575f5ffd5b823561339b81613202565b915060208301356001600160401b038111156133b5575f5ffd5b6133c1858286016132f6565b9150509250929050565b5f602082840312156133db575f5ffd5b61144282613266565b5f5f604083850312156133f5575f5ffd5b823591506020830135612f6b81612f1b565b803563ffffffff81168114613221575f5ffd5b5f610160828403121561342b575f5ffd5b6134336132cd565b905061343e82613266565b815261344c60208301613266565b602082015261345d60408301613407565b604082015261346e60608301613216565b606082015261347f60808301613266565b608082015261349060a08301613216565b60a08201526134a160c08301613266565b60c08201526134b260e08301613216565b60e08201526134c46101008301613216565b61010082015261012082810135908201526101408201356001600160401b038111156134ee575f5ffd5b6134fa848285016132f6565b6101408301525092915050565b5f60208284031215613517575f5ffd5b81356001600160401b0381111561352c575f5ffd5b61230e8482850161341a565b5f5f60408385031215613549575f5ffd5b823561355481613202565b91506020830135612f6b81613202565b5f6116fb368361341a565b5f6020828403121561357f575f5ffd5b61144282613407565b5f60208284031215613598575f5ffd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156116fb576116fb6135ed565b5f6001600160401b0382166001600160401b038103613635576136356135ed565b60010192915050565b602081525f6114426020830184612ff4565b5f5f8335601e19843603018112613665575f5ffd5b8301803591506001600160401b0382111561367e575f5ffd5b602001915036819003821315613692575f5ffd5b9250929050565b634e487b7160e01b5f52601260045260245ffd5b5f5f8335601e198436030181126136c2575f5ffd5b83016020810192503590506001600160401b038111156136e0575f5ffd5b803603821315613692575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6137308261372383613266565b6001600160401b03169052565b5f61373d60208301613266565b6001600160401b0316602084015261375760408301613407565b63ffffffff16604084015261376e60608301613216565b6001600160a01b0316606084015261378860808301613266565b6001600160401b031660808401526137a260a08301613216565b6001600160a01b031660a08401526137bc60c08301613266565b6001600160401b031660c08401526137d660e08301613216565b6001600160a01b031660e08401526137f16101008301613216565b6001600160a01b031661010084015261012082810135908401526138196101408301836136ad565b610160610140860152612522610160860182846136ee565b60a081525f61384360a0830185613716565b905063ffffffff835116602083015263ffffffff602084015116604083015263ffffffff60408401511660608301526060830151151560808301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f6020828403121561392d575f5ffd5b815161144281612f1b565b63ffffffff81811683821601908111156116fb576116fb6135ed565b604081525f6139666040830185613716565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f6114426080830184612ff4565b80356001600160e01b031981169060048410156139dc576001600160e01b0319600485900360031b81901b82161691505b5092915050565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f613a2d6080830184866136ee565b979650505050505050565b5f82613a5257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613a67575f5ffd5b815161144281613202565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613ace818460208701612fa7565b9190910192915050565b602081525f6114426020830184612fc956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220fe7f47dabd46879b9404e8d06f7ee77f2c51d0391f21575037dda2b3e15ccfb164736f6c634300081b0033", + "code": "0x60806040526004361061021d575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba61461066b578063e30c3978146106a8578063eefbf17e146106c5578063f09a4016146106eb578063f2fde38b1461070a575f5ffd5b8063b8acae0e146105af578063be880c81146105ce578063c012fa77146105e4578063d0496d6a14610603578063d1aaa5df1461064b575f5ffd5b80638e3881a9116100ee5780638e3881a9146104fe578063913b16cb1461053c5780639efc7a2e1461055b578063a730cdfb1461057a578063a86f9d9e14610590575f5ffd5b806382b5e8891461049a5780638456cb59146104b95780638abf6077146104cd5780638da5cb5b146104e1575f5ffd5b80633f4ba83a116101aa5780635c975abb1161016f5780635c975abb146103ff57806360620c6b1461041f578063715018a61461043e57806379ba5097146104525780637cbadfaa14610466575f5ffd5b80633f4ba83a14610381578063422770fa146103955780634f1ef286146103b957806352d1902d146103cc5780635862f6e1146103e0575f5ffd5b80633075db56116101f05780633075db56146102ad5780633659cfe6146102d15780633ab76e9f146102f05780633c6cf473146103275780633eb6b8cf14610362575f5ffd5b80630432873c14610221578063069489a2146102425780631bdb0037146102565780632035065e14610280575b5f5ffd5b34801561022c575f5ffd5b5061024061023b366004612f58565b610729565b005b34801561024d575f5ffd5b50610240610a27565b610269610264366004612fa6565b610ade565b604051610277929190613132565b60405180910390f35b34801561028b575f5ffd5b5061029f61029a36600461314a565b610e94565b604051610277929190613207565b3480156102b8575f5ffd5b506102c1611344565b6040519015158152602001610277565b3480156102dc575f5ffd5b506102406102eb366004613256565b61135c565b3480156102fb575f5ffd5b5060975461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b348015610332575f5ffd5b50610355610341366004613271565b60fc6020525f908152604090205460ff1681565b6040516102779190613288565b34801561036d575f5ffd5b5061030f61037c3660046132ac565b611423565b34801561038c575f5ffd5b50610240611439565b3480156103a0575f5ffd5b506103ab62030d4081565b604051908152602001610277565b6102406103c73660046133af565b61144d565b3480156103d7575f5ffd5b506103ab611506565b3480156103eb575f5ffd5b506102c16103fa36600461314a565b6115b8565b34801561040a575f5ffd5b506102c160c954610100900460ff1660021490565b34801561042a575f5ffd5b506102c1610439366004612fa6565b611623565b348015610449575f5ffd5b506102406116f1565b34801561045d575f5ffd5b50610240611702565b348015610471575f5ffd5b50610485610480366004613271565b611779565b60405163ffffffff9091168152602001610277565b3480156104a5575f5ffd5b506102406104b4366004613256565b611791565b3480156104c4575f5ffd5b50610240611811565b3480156104d8575f5ffd5b5061030f611824565b3480156104ec575f5ffd5b506033546001600160a01b031661030f565b348015610509575f5ffd5b5061051d6105183660046133fb565b611832565b6040805192151583526001600160a01b03909116602083015201610277565b348015610547575f5ffd5b50610240610556366004612fa6565b61185e565b348015610566575f5ffd5b5061024061057536600461314a565b611a4d565b348015610585575f5ffd5b506104856201d4c081565b34801561059b575f5ffd5b5061030f6105aa366004613414565b611d51565b3480156105ba575f5ffd5b506102c16105c936600461314a565b611d5d565b3480156105d9575f5ffd5b50610485620c350081565b3480156105ef575f5ffd5b506103ab6105fe366004613537565b611dbe565b34801561060e575f5ffd5b50610617611ded565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610277565b348015610656575f5ffd5b506103ab610665366004613271565b60031890565b348015610676575f5ffd5b5060c954610690906201000090046001600160401b031681565b6040516001600160401b039091168152602001610277565b3480156106b3575f5ffd5b506065546001600160a01b031661030f565b3480156106d0575f5ffd5b5060fb5461069090600160401b90046001600160401b031681565b3480156106f6575f5ffd5b50610240610705366004613568565b611e94565b348015610715575f5ffd5b50610240610724366004613256565b611f5b565b61073960e0830160c084016133fb565b46816001600160401b03161461076257604051631c6c777560e31b815260040160405180910390fd5b61077260a08401608085016133fb565b6001600160401b0381161580610790575046816001600160401b0316145b156107ae57604051631c6c777560e31b815260040160405180910390fd5b6107c260c954610100900460ff1660021490565b156107e05760405163bae6e2a960e01b815260040160405180910390fd5b60026107ee60c95460ff1690565b60ff160361080f5760405163dfc60d8560e01b815260040160405180910390fd5b6108196002611fcc565b5f6108266105fe86613594565b9050610833816001611fe2565b610841856101200135612034565b61085e576040516335856fbd60e21b815260040160405180910390fd5b5f6108838661087e6d7369676e616c5f7365727669636560901b5f611d51565b6120d5565b156108ce576108c78661012001356188b860405180602001604052805f8152508960e00160208101906108b69190613256565b6001600160a01b03169291906121cc565b9050610948565b6108de606087016040880161359f565b63ffffffff1615806108ed5750845b801561091b5750610905610100870160e08801613256565b6001600160a01b0316336001600160a01b031614155b15610939576040516372b6e1c360e11b815260040160405180910390fd5b61094586835a5f612209565b90505b801561095e5761095982600261231e565b610a15565b84156109fc5761096f82600361231e565b61098a6d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156109d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f691906135b8565b50610a15565b60405163161e3ead60e01b815260040160405180910390fd5b5050610a216001611fcc565b50505050565b610a2f6123db565b5f54600290610100900460ff16158015610a4f57505f5460ff8083169116105b610a745760405162461bcd60e51b8152600401610a6b906135cf565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610b4460c0840160a08501613256565b6001600160a01b038116610b6b5760405163538ba4f960e01b815260040160405180910390fd5b610b7c610100850160e08601613256565b6001600160a01b038116610ba35760405163538ba4f960e01b815260040160405180910390fd5b610bb360e0860160c087016133fb565b6001600160401b0381161580610bd1575046816001600160401b0316145b15610bef57604051631c6c777560e31b815260040160405180910390fd5b610c0360c954610100900460ff1660021490565b15610c215760405163bae6e2a960e01b815260040160405180910390fd5b6002610c2f60c95460ff1690565b60ff1603610c505760405163dfc60d8560e01b815260040160405180910390fd5b610c5a6002611fcc565b610c6a606087016040880161359f565b63ffffffff165f03610cb257610c8660408701602088016133fb565b6001600160401b031615610cad5760405163c9f5178760e01b815260040160405180910390fd5b610cda565b610cbb86612435565b5f03610cda576040516308c2ad5360e01b815260040160405180910390fd5b5f610cee61051860e0890160c08a016133fb565b50905080610d0f57604051631c6c777560e31b815260040160405180910390fd5b34610d206040890160208a016133fb565b610d38906001600160401b03166101208a0135613631565b14610d5657604051634ac2abdf60e11b815260040160405180910390fd5b610d5f87613594565b60fb8054919650600160401b9091046001600160401b0316906008610d8383613644565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610dbe85611dbe565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610df0919061366e565b60405180910390a2610e136d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610e4091815260200190565b6020604051808303815f875af1158015610e5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8091906135b8565b5050610e8c6001611fcc565b505050915091565b5f5f610eaa60c954610100900460ff1660021490565b15610ec85760405163bae6e2a960e01b815260040160405180910390fd5b6002610ed660c95460ff1690565b60ff1603610ef75760405163dfc60d8560e01b815260040160405180910390fd5b610f016002611fcc565b5f5a905046610f1660e0880160c089016133fb565b6001600160401b031614610f3d57604051631c6c777560e31b815260040160405180910390fd5b610f4d60a08701608088016133fb565b6001600160401b03161580610f79575046610f6e60a08801608089016133fb565b6001600160401b0316145b15610f9757604051631c6c777560e31b815260040160405180910390fd5b604080516080810182525f808252602082018190529181018290526060810191909152610fcb610100880160e08901613256565b6001600160a01b031633148015606083015261103a57610ff1606088016040890161359f565b63ffffffff165f03611016576040516372b6e1c360e11b815260040160405180910390fd5b62030d4085111561103a57604051631e3b03c960e01b815260040160405180910390fd5b5f6110476105fe89613594565b9050611053815f611fe2565b5f61106f6d7369676e616c5f7365727669636560901b5f611d51565b63ffffffff881660208501529050611099818361109260a08d0160808e016133fb565b8b8b612488565b63ffffffff166040808501919091526110d8906110bb908b0160208c016133fb565b6110d3906001600160401b03166101208c0135613631565b612034565b6110f5576040516335856fbd60e21b815260040160405180910390fd5b5f6111008a836120d5565b1561111957506002955060019450610120890135611160565b5f8460600151611129575a611132565b6111328b612435565b90506111448b85838860600151612209565b1561115557600297505f965061115e565b60019750600296505b505b61117060408b0160208c016133fb565b6001600160401b0316156112c15761118e60408b0160208c016133fb565b6111a1906001600160401b031682613631565b9050836060015180156111c857506111bf60608b0160408c0161359f565b63ffffffff1615155b156112c157604084015163ffffffff16614e20025a6111f56111ee6101408e018e613680565b9050612533565b63ffffffff9081168801919091036201d4c00181168087525f91839161121e9183919061255b16565b0390505f61123260608e0160408f0161359f565b63ffffffff168d602001602081019061124b91906133fb565b6001600160401b0316830281611263576112636136c9565b0490505f48830290505f6112a78f602001602081019061128391906133fb565b6001600160401b03168484101561129f5784840160011c6112a1565b845b90612570565b958690039590506112bb33826188b8612584565b50505050505b6112e9816188b86112d96101008e0160e08f01613256565b6001600160a01b03169190612584565b6112f3838861231e565b827f8580f507761043ecdd2bdca084d6fb0109150b3d9842d854d34e3dea6d69387d8b86604051611325929190613861565b60405180910390a2505050505061133c6001611fcc565b935093915050565b5f600261135360c95460ff1690565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036113a45760405162461bcd60e51b8152600401610a6b906138b5565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166113d66125c7565b6001600160a01b0316146113fc5760405162461bcd60e51b8152600401610a6b90613901565b611405816125e2565b604080515f80825260208201909252611420918391906125ea565b50565b5f61142f848484612754565b90505b9392505050565b6114416127a6565b61144b335f612836565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036114955760405162461bcd60e51b8152600401610a6b906138b5565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166114c76125c7565b6001600160a01b0316146114ed5760405162461bcd60e51b8152600401610a6b90613901565b6114f6826125e2565b611502828260016125ea565b5050565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000116146115a55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a6b565b505f516020613b1b5f395f51905f525b90565b5f466115ca60a08601608087016133fb565b6001600160401b0316146115df57505f611432565b61142f6115fd6d7369676e616c5f7365727669636560901b5f611d51565b61160c6106656105fe88613594565b61161c60e0880160c089016133fb565b86866128e3565b5f4661163560a08401608085016133fb565b6001600160401b03161461164a57505f919050565b6116656d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166332676bc6306116806105fe86613594565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156116c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116eb919061394d565b92915050565b6116f96123db565b61144b5f612965565b60655433906001600160a01b031681146117705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a6b565b61142081612965565b5f620c350061178783612533565b6116eb9190613968565b806001600160a01b0381166117b95760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b1580156117f7575f5ffd5b505af1158015611809573d5f5f3e3d5ffd5b505050505050565b61181961297e565b61144b336001612836565b5f61182d6125c7565b905090565b5f5f611849836562726964676560d01b6001611423565b6001600160a01b038116151594909350915050565b61186e60e0820160c083016133fb565b46816001600160401b03161461189757604051631c6c777560e31b815260040160405180910390fd5b6118a760a08301608084016133fb565b6001600160401b03811615806118c5575046816001600160401b0316145b156118e357604051631c6c777560e31b815260040160405180910390fd5b6118f760c954610100900460ff1660021490565b156119155760405163bae6e2a960e01b815260040160405180910390fd5b600261192360c95460ff1690565b60ff16036119445760405163dfc60d8560e01b815260040160405180910390fd5b61194e6002611fcc565b61195f610100840160e08501613256565b6001600160a01b0316336001600160a01b031614611990576040516372b6e1c360e11b815260040160405180910390fd5b5f61199d6105fe85613594565b90506119aa816001611fe2565b6119b581600361231e565b6119d06d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af1158015611a18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3c91906135b8565b5050611a486001611fcc565b505050565b611a5d60a08401608085016133fb565b46816001600160401b031614611a8657604051631c6c777560e31b815260040160405180910390fd5b611a9660e0850160c086016133fb565b6001600160401b0381161580611ab4575046816001600160401b0316145b15611ad257604051631c6c777560e31b815260040160405180910390fd5b611ae660c954610100900460ff1660021490565b15611b045760405163bae6e2a960e01b815260040160405180910390fd5b6002611b1260c95460ff1690565b60ff1603611b335760405163dfc60d8560e01b815260040160405180910390fd5b611b3d6002611fcc565b5f611b4a6105fe87613594565b9050611b56815f611fe2565b5f611b726d7369676e616c5f7365727669636560901b5f611d51565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611bbe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be2919061394d565b611bff5760405163ab035ad560e01b815260040160405180910390fd5b611c1e8160038418611c1760e08b0160c08c016133fb565b8989612488565b50611c2a82600461231e565b611c38876101200135612034565b611c55576040516335856fbd60e21b815260040160405180910390fd5b611c7e62bc399d60e11b611c6f60808a0160608b01613256565b6001600160a01b0316906129ef565b15611d2257611c9d8230611c9860a08b0160808c016133fb565b612a7c565b611cad6080880160608901613256565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611ce0929190613984565b5f604051808303818588803b158015611cf7575f5ffd5b505af1158015611d09573d5f5f3e3d5ffd5b5050505050611d1d5f195f1b5f1980612a7c565b611d3e565b611d3e6101208801356188b86112d960c08b0160a08c01613256565b5050611d4a6001611fcc565b5050505050565b5f611432468484612754565b5f46611d6f60e0860160c087016133fb565b6001600160401b031614611d8457505f611432565b61142f611da26d7369676e616c5f7365727669636560901b5f611d51565b611dae6105fe87613594565b61161c60a08801608089016133fb565b5f81604051602001611dd091906139a5565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611e64604080516060810182525f8082526020820181905291810191909152506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b80519091501580611e76575080515f19145b156115b557604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611eb257505f54600160ff909116105b80611ecb5750303b158015611ecb57505f5460ff166001145b611ee75760405162461bcd60e51b8152600401610a6b906135cf565b5f805460ff191660011790558015611f08575f805461ff0019166101001790555b611f128383612ad1565b8015611a48575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611f636123db565b606580546001600160a01b0383166001600160a01b03199091168117909155611f946033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b806004811115611ff457611ff46131df565b5f83815260fc602052604090205460ff166004811115612016576120166131df565b14611502576040516319d893ad60e21b815260040160405180910390fd5b5f5f6120516c38bab7ba30afb6b0b730b3b2b960991b6001611d51565b90506001600160a01b03811661206a5750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b1580156120af575f5ffd5b505af19250505080156120c0575060015b6120cc57505f92915050565b50600192915050565b5f806120e961012085016101008601613256565b6001600160a01b0316036120ff575060016116eb565b3061211261012085016101008601613256565b6001600160a01b031603612128575060016116eb565b6001600160a01b03821661214461012085016101008601613256565b6001600160a01b03160361215a575060016116eb565b600461216a610140850185613680565b9050101580156121a15750637f07c94760e01b61218b610140850185613680565b612194916139db565b6001600160e01b03191614155b801561143257506114326121bd61012085016101008601613256565b6001600160a01b03163b151590565b5f6001600160a01b0385166121f457604051634c67134d60e11b815260040160405180910390fd5b5f5f835160208501878988f195945050505050565b5f3061221b6080870160608801613256565b6001600160a01b03160361223157612231613a13565b61223f610140860186613680565b90505f0361224f57506001612316565b825f0361225d57505f612316565b612281846122716080880160608901613256565b611c9860a0890160808a016133fb565b5f61229461012087016101008801613256565b90506101208601355f6122ab610140890189613680565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509384935083925090506020850186888cf194505a90508515612305576123058188612b0b565b6123115f198080612a7c565b505050505b949350505050565b806004811115612330576123306131df565b5f83815260fc602052604090205460ff166004811115612352576123526131df565b03612370576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff1916600183600481111561239a5761239a6131df565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516123cf9190613288565b60405180910390a25050565b6033546001600160a01b0316331461144b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a6b565b5f8061244f612448610140850185613680565b9050611779565b63ffffffff1690508061248061246b606086016040870161359f565b63ffffffff168361255b90919063ffffffff16565b039392505050565b5f856001600160a01b031663910af6ed856124ad876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b81526004016124d0959493929190613a27565b6020604051808303815f875af192505050801561250a575060408051601f3d908101601f19168201909252612507918101906135b8565b60015b612527576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f815f0361254257505f919050565b60046020601f8401046020026101a001901b9050919050565b5f8183116125695781611432565b5090919050565b5f81831161257e5782611432565b50919050565b815f0361259057505050565b6125aa83838360405180602001604052805f8152506121cc565b611a4857604051634c67134d60e11b815260040160405180910390fd5b5f516020613b1b5f395f51905f52546001600160a01b031690565b6114206123db565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561261d57611a4883612b1f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612677575060408051601f3d908101601f19168201909252612674918101906135b8565b60015b6126da5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a6b565b5f516020613b1b5f395f51905f5281146127485760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a6b565b50611a48838383612bba565b5f61275f8484612bde565b90508115801561277657506001600160a01b038116155b1561143257604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610a6b565b6127ba60c954610100900460ff1660021490565b6127d75760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b038381169116148061287e57506128696d636861696e5f7761746368646f6760901b6001611d51565b6001600160a01b0316826001600160a01b0316145b15612887575050565b8080156128c157506128ac6e6272696467655f7761746368646f6760881b6001611d51565b6001600160a01b0316826001600160a01b0316145b156128ca575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d082085612908876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b815260040161292b959493929190613a27565b5f6040518083038186803b158015612941575f5ffd5b505afa925050508015612952575060015b61295d57505f61252a565b50600161252a565b606580546001600160a01b031916905561142081612c80565b61299260c954610100900460ff1660021490565b156129b05760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200161282c565b5f6001600160a01b0383163b612a0657505f6116eb565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612a70575060408051601f3d908101601f19168201909252612a6d9181019061394d565b60015b156116eb579392505050565b604080516060810182528481526001600160a01b03909316602084018190526001600160401b03909216920182905260fd9290925560fe8054600160a01b9092026001600160e01b0319909216909217179055565b806001600160a01b038116612af95760405163538ba4f960e01b815260040160405180910390fd5b612b0283612cd1565b611a4882612d2f565b612b16603f82613a68565b82101561150257fe5b6001600160a01b0381163b612b8c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a6b565b5f516020613b1b5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612bc383612d9f565b5f82511180612bcf5750805b15611a4857610a218383612dde565b6097545f906001600160a01b031680612c0a57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612c5c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123169190613a87565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612cf75760405162461bcd60e51b8152600401610a6b90613aa2565b612cff612e03565b612d1d6001600160a01b03821615612d175781612965565b33612965565b5060c9805461ff001916610100179055565b5f54610100900460ff16612d555760405162461bcd60e51b8152600401610a6b90613aa2565b6001600160401b03461115612d7d5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b612da881612b1f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606114328383604051806060016040528060278152602001613b3b60279139612e29565b5f54610100900460ff1661144b5760405162461bcd60e51b8152600401610a6b90613aa2565b60605f5f856001600160a01b031685604051612e459190613aed565b5f60405180830381855af49150503d805f8114612e7d576040519150601f19603f3d011682016040523d82523d5f602084013e612e82565b606091505b5091509150612e9386838387612e9d565b9695505050505050565b60608315612f0b5782515f03612f04576001600160a01b0385163b612f045760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a6b565b5081612316565b6123168383815115612f205781518083602001fd5b8060405162461bcd60e51b8152600401610a6b9190613b08565b5f610160828403121561257e575f5ffd5b8015158114611420575f5ffd5b5f5f60408385031215612f69575f5ffd5b82356001600160401b03811115612f7e575f5ffd5b612f8a85828601612f3a565b9250506020830135612f9b81612f4b565b809150509250929050565b5f60208284031215612fb6575f5ffd5b81356001600160401b03811115612fcb575f5ffd5b61231684828501612f3a565b5f5b83811015612ff1578181015183820152602001612fd9565b50505f910152565b5f8151808452613010816020860160208601612fd7565b601f01601f19169290920160200192915050565b80516001600160401b031682525f602082015161304c60208501826001600160401b03169052565b506040820151613064604085018263ffffffff169052565b50606082015161307f60608501826001600160a01b03169052565b50608082015161309a60808501826001600160401b03169052565b5060a08201516130b560a08501826001600160a01b03169052565b5060c08201516130d060c08501826001600160401b03169052565b5060e08201516130eb60e08501826001600160a01b03169052565b506101008201516131086101008501826001600160a01b03169052565b50610120820151610120840152610140820151610160610140850152612316610160850182612ff9565b828152604060208201525f61142f6040830184613024565b5f5f5f6040848603121561315c575f5ffd5b83356001600160401b03811115613171575f5ffd5b61317d86828701612f3a565b93505060208401356001600160401b03811115613198575f5ffd5b8401601f810186136131a8575f5ffd5b80356001600160401b038111156131bd575f5ffd5b8660208284010111156131ce575f5ffd5b939660209190910195509293505050565b634e487b7160e01b5f52602160045260245ffd5b60058110613203576132036131df565b9052565b6040810161321582856131f3565b60048310613225576132256131df565b8260208301529392505050565b6001600160a01b0381168114611420575f5ffd5b803561325181613232565b919050565b5f60208284031215613266575f5ffd5b813561143281613232565b5f60208284031215613281575f5ffd5b5035919050565b602081016116eb82846131f3565b80356001600160401b0381168114613251575f5ffd5b5f5f5f606084860312156132be575f5ffd5b6132c784613296565b92506020840135915060408401356132de81612f4b565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b0381118282101715613320576133206132e9565b60405290565b5f82601f830112613335575f5ffd5b81356001600160401b0381111561334e5761334e6132e9565b604051601f8201601f19908116603f011681016001600160401b038111828210171561337c5761337c6132e9565b604052818152838201602001851015613393575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f604083850312156133c0575f5ffd5b82356133cb81613232565b915060208301356001600160401b038111156133e5575f5ffd5b6133f185828601613326565b9150509250929050565b5f6020828403121561340b575f5ffd5b61143282613296565b5f5f60408385031215613425575f5ffd5b823591506020830135612f9b81612f4b565b803563ffffffff81168114613251575f5ffd5b5f610160828403121561345b575f5ffd5b6134636132fd565b905061346e82613296565b815261347c60208301613296565b602082015261348d60408301613437565b604082015261349e60608301613246565b60608201526134af60808301613296565b60808201526134c060a08301613246565b60a08201526134d160c08301613296565b60c08201526134e260e08301613246565b60e08201526134f46101008301613246565b61010082015261012082810135908201526101408201356001600160401b0381111561351e575f5ffd5b61352a84828501613326565b6101408301525092915050565b5f60208284031215613547575f5ffd5b81356001600160401b0381111561355c575f5ffd5b6123168482850161344a565b5f5f60408385031215613579575f5ffd5b823561358481613232565b91506020830135612f9b81613232565b5f6116eb368361344a565b5f602082840312156135af575f5ffd5b61143282613437565b5f602082840312156135c8575f5ffd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156116eb576116eb61361d565b5f6001600160401b0382166001600160401b0381036136655761366561361d565b60010192915050565b602081525f6114326020830184613024565b5f5f8335601e19843603018112613695575f5ffd5b8301803591506001600160401b038211156136ae575f5ffd5b6020019150368190038213156136c2575f5ffd5b9250929050565b634e487b7160e01b5f52601260045260245ffd5b5f5f8335601e198436030181126136f2575f5ffd5b83016020810192503590506001600160401b03811115613710575f5ffd5b8036038213156136c2575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6137608261375383613296565b6001600160401b03169052565b5f61376d60208301613296565b6001600160401b0316602084015261378760408301613437565b63ffffffff16604084015261379e60608301613246565b6001600160a01b031660608401526137b860808301613296565b6001600160401b031660808401526137d260a08301613246565b6001600160a01b031660a08401526137ec60c08301613296565b6001600160401b031660c084015261380660e08301613246565b6001600160a01b031660e08401526138216101008301613246565b6001600160a01b031661010084015261012082810135908401526138496101408301836136dd565b61016061014086015261252a6101608601828461371e565b60a081525f61387360a0830185613746565b905063ffffffff835116602083015263ffffffff602084015116604083015263ffffffff60408401511660608301526060830151151560808301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f6020828403121561395d575f5ffd5b815161143281612f4b565b63ffffffff81811683821601908111156116eb576116eb61361d565b604081525f6139966040830185613746565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f6114326080830184613024565b80356001600160e01b03198116906004841015613a0c576001600160e01b0319600485900360031b81901b82161691505b5092915050565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f613a5d60808301848661371e565b979650505050505050565b5f82613a8257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613a97575f5ffd5b815161143281613232565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613afe818460208701612fd7565b9190910192915050565b602081525f6114326020830184612ff956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122084fbcf170d382f2ee5760a60219c83376819d2bb8672a54f40ab14453a5eda4064736f6c634300081b0033", "balance": "0x0" }, "0x1670000000000000000000000000000000000001": { diff --git a/packages/protocol/test/genesis/data/genesis_alloc.json b/packages/protocol/test/genesis/data/genesis_alloc.json index 31c87262543..40c18c53c28 100644 --- a/packages/protocol/test/genesis/data/genesis_alloc.json +++ b/packages/protocol/test/genesis/data/genesis_alloc.json @@ -37,7 +37,7 @@ "storage": { "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000df08f82de32b8d460adbe8d72043e3a7e25a3b39" }, - "code": "0x60806040526004361061021d575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba61461066b578063e30c3978146106a8578063eefbf17e146106c5578063f09a4016146106eb578063f2fde38b1461070a575f5ffd5b8063b8acae0e146105af578063be880c81146105ce578063c012fa77146105e4578063d0496d6a14610603578063d1aaa5df1461064b575f5ffd5b80638e3881a9116100ee5780638e3881a9146104fe578063913b16cb1461053c5780639efc7a2e1461055b578063a730cdfb1461057a578063a86f9d9e14610590575f5ffd5b806382b5e8891461049a5780638456cb59146104b95780638abf6077146104cd5780638da5cb5b146104e1575f5ffd5b80633f4ba83a116101aa5780635c975abb1161016f5780635c975abb146103ff57806360620c6b1461041f578063715018a61461043e57806379ba5097146104525780637cbadfaa14610466575f5ffd5b80633f4ba83a14610381578063422770fa146103955780634f1ef286146103b957806352d1902d146103cc5780635862f6e1146103e0575f5ffd5b80633075db56116101f05780633075db56146102ad5780633659cfe6146102d15780633ab76e9f146102f05780633c6cf473146103275780633eb6b8cf14610362575f5ffd5b80630432873c14610221578063069489a2146102425780631bdb0037146102565780632035065e14610280575b5f5ffd5b34801561022c575f5ffd5b5061024061023b366004612f28565b610729565b005b34801561024d575f5ffd5b50610240610a27565b610269610264366004612f76565b610ade565b604051610277929190613102565b60405180910390f35b34801561028b575f5ffd5b5061029f61029a36600461311a565b610e94565b6040516102779291906131d7565b3480156102b8575f5ffd5b506102c1611354565b6040519015158152602001610277565b3480156102dc575f5ffd5b506102406102eb366004613226565b61136c565b3480156102fb575f5ffd5b5060975461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b348015610332575f5ffd5b50610355610341366004613241565b60fc6020525f908152604090205460ff1681565b6040516102779190613258565b34801561036d575f5ffd5b5061030f61037c36600461327c565b611433565b34801561038c575f5ffd5b50610240611449565b3480156103a0575f5ffd5b506103ab62030d4081565b604051908152602001610277565b6102406103c736600461337f565b61145d565b3480156103d7575f5ffd5b506103ab611516565b3480156103eb575f5ffd5b506102c16103fa36600461311a565b6115c8565b34801561040a575f5ffd5b506102c160c954610100900460ff1660021490565b34801561042a575f5ffd5b506102c1610439366004612f76565b611633565b348015610449575f5ffd5b50610240611701565b34801561045d575f5ffd5b50610240611712565b348015610471575f5ffd5b50610485610480366004613241565b611789565b60405163ffffffff9091168152602001610277565b3480156104a5575f5ffd5b506102406104b4366004613226565b6117a7565b3480156104c4575f5ffd5b50610240611827565b3480156104d8575f5ffd5b5061030f61183a565b3480156104ec575f5ffd5b506033546001600160a01b031661030f565b348015610509575f5ffd5b5061051d6105183660046133cb565b611848565b6040805192151583526001600160a01b03909116602083015201610277565b348015610547575f5ffd5b50610240610556366004612f76565b611874565b348015610566575f5ffd5b5061024061057536600461311a565b611a63565b348015610585575f5ffd5b506104856201d4c081565b34801561059b575f5ffd5b5061030f6105aa3660046133e4565b611d67565b3480156105ba575f5ffd5b506102c16105c936600461311a565b611d73565b3480156105d9575f5ffd5b50610485620c350081565b3480156105ef575f5ffd5b506103ab6105fe366004613507565b611dd4565b34801561060e575f5ffd5b50610617611e03565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610277565b348015610656575f5ffd5b506103ab610665366004613241565b60031890565b348015610676575f5ffd5b5060c954610690906201000090046001600160401b031681565b6040516001600160401b039091168152602001610277565b3480156106b3575f5ffd5b506065546001600160a01b031661030f565b3480156106d0575f5ffd5b5060fb5461069090600160401b90046001600160401b031681565b3480156106f6575f5ffd5b50610240610705366004613538565b611eaa565b348015610715575f5ffd5b50610240610724366004613226565b611f71565b61073960e0830160c084016133cb565b46816001600160401b03161461076257604051631c6c777560e31b815260040160405180910390fd5b61077260a08401608085016133cb565b6001600160401b0381161580610790575046816001600160401b0316145b156107ae57604051631c6c777560e31b815260040160405180910390fd5b6107c260c954610100900460ff1660021490565b156107e05760405163bae6e2a960e01b815260040160405180910390fd5b60026107ee60c95460ff1690565b60ff160361080f5760405163dfc60d8560e01b815260040160405180910390fd5b6108196002611fe2565b5f6108266105fe86613564565b9050610833816001611ff8565b61084185610120013561204a565b61085e576040516335856fbd60e21b815260040160405180910390fd5b5f6108838661087e6d7369676e616c5f7365727669636560901b5f611d67565b6120eb565b156108ce576108c78661012001356188b860405180602001604052805f8152508960e00160208101906108b69190613226565b6001600160a01b03169291906121e2565b9050610948565b6108de606087016040880161356f565b63ffffffff1615806108ed5750845b801561091b5750610905610100870160e08801613226565b6001600160a01b0316336001600160a01b031614155b15610939576040516372b6e1c360e11b815260040160405180910390fd5b61094586835a5f61221f565b90505b801561095e57610959826002612316565b610a15565b84156109fc5761096f826003612316565b61098a6d7369676e616c5f7365727669636560901b5f611d67565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156109d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f69190613588565b50610a15565b60405163161e3ead60e01b815260040160405180910390fd5b5050610a216001611fe2565b50505050565b610a2f6123d3565b5f54600290610100900460ff16158015610a4f57505f5460ff8083169116105b610a745760405162461bcd60e51b8152600401610a6b9061359f565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610b4460c0840160a08501613226565b6001600160a01b038116610b6b5760405163538ba4f960e01b815260040160405180910390fd5b610b7c610100850160e08601613226565b6001600160a01b038116610ba35760405163538ba4f960e01b815260040160405180910390fd5b610bb360e0860160c087016133cb565b6001600160401b0381161580610bd1575046816001600160401b0316145b15610bef57604051631c6c777560e31b815260040160405180910390fd5b610c0360c954610100900460ff1660021490565b15610c215760405163bae6e2a960e01b815260040160405180910390fd5b6002610c2f60c95460ff1690565b60ff1603610c505760405163dfc60d8560e01b815260040160405180910390fd5b610c5a6002611fe2565b610c6a606087016040880161356f565b63ffffffff165f03610cb257610c8660408701602088016133cb565b6001600160401b031615610cad5760405163c9f5178760e01b815260040160405180910390fd5b610cda565b610cbb8661242d565b5f03610cda576040516308c2ad5360e01b815260040160405180910390fd5b5f610cee61051860e0890160c08a016133cb565b50905080610d0f57604051631c6c777560e31b815260040160405180910390fd5b34610d206040890160208a016133cb565b610d38906001600160401b03166101208a0135613601565b14610d5657604051634ac2abdf60e11b815260040160405180910390fd5b610d5f87613564565b60fb8054919650600160401b9091046001600160401b0316906008610d8383613614565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610dbe85611dd4565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610df0919061363e565b60405180910390a2610e136d7369676e616c5f7365727669636560901b5f611d67565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610e4091815260200190565b6020604051808303815f875af1158015610e5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e809190613588565b5050610e8c6001611fe2565b505050915091565b5f5f610eaa60c954610100900460ff1660021490565b15610ec85760405163bae6e2a960e01b815260040160405180910390fd5b6002610ed660c95460ff1690565b60ff1603610ef75760405163dfc60d8560e01b815260040160405180910390fd5b610f016002611fe2565b5f5a905046610f1660e0880160c089016133cb565b6001600160401b031614610f3d57604051631c6c777560e31b815260040160405180910390fd5b610f4d60a08701608088016133cb565b6001600160401b03161580610f79575046610f6e60a08801608089016133cb565b6001600160401b0316145b15610f9757604051631c6c777560e31b815260040160405180910390fd5b604080516080810182525f808252602082018190529181018290526060810191909152610fcb610100880160e08901613226565b6001600160a01b031633148015606083015261103a57610ff1606088016040890161356f565b63ffffffff165f03611016576040516372b6e1c360e11b815260040160405180910390fd5b62030d4085111561103a57604051631e3b03c960e01b815260040160405180910390fd5b5f6110476105fe89613564565b9050611053815f611ff8565b5f61106f6d7369676e616c5f7365727669636560901b5f611d67565b63ffffffff881660208501529050611099818361109260a08d0160808e016133cb565b8b8b612480565b63ffffffff166040808501919091526110d8906110bb908b0160208c016133cb565b6110d3906001600160401b03166101208c0135613601565b61204a565b6110f5576040516335856fbd60e21b815260040160405180910390fd5b5f6111008a836120eb565b1561111957506002955060019450610120890135611160565b5f8460600151611129575a611132565b6111328b61242d565b90506111448b8583886060015161221f565b1561115557600297505f965061115e565b60019750600296505b505b61117060408b0160208c016133cb565b6001600160401b0316156112d15761118e60408b0160208c016133cb565b6111a1906001600160401b031682613601565b9050836060015180156111c857506111bf60608b0160408c0161356f565b63ffffffff1615155b156112d157604084015163ffffffff16614e20025a6112056111ee6101408e018e613650565b6020601f909101819004026101a00160041b919050565b63ffffffff9081168801919091036201d4c00181168087525f91839161122e9183919061252b16565b0390505f61124260608e0160408f0161356f565b63ffffffff168d602001602081019061125b91906133cb565b6001600160401b031683028161127357611273613699565b0490505f48830290505f6112b78f602001602081019061129391906133cb565b6001600160401b0316848410156112af5784840160011c6112b1565b845b90612540565b958690039590506112cb33826188b8612554565b50505050505b6112f9816188b86112e96101008e0160e08f01613226565b6001600160a01b03169190612554565b6113038388612316565b827f8580f507761043ecdd2bdca084d6fb0109150b3d9842d854d34e3dea6d69387d8b86604051611335929190613831565b60405180910390a2505050505061134c6001611fe2565b935093915050565b5f600261136360c95460ff1690565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036113b45760405162461bcd60e51b8152600401610a6b90613885565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166113e6612597565b6001600160a01b03161461140c5760405162461bcd60e51b8152600401610a6b906138d1565b611415816125b2565b604080515f80825260208201909252611430918391906125ba565b50565b5f61143f848484612724565b90505b9392505050565b611451612776565b61145b335f612806565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036114a55760405162461bcd60e51b8152600401610a6b90613885565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166114d7612597565b6001600160a01b0316146114fd5760405162461bcd60e51b8152600401610a6b906138d1565b611506826125b2565b611512828260016125ba565b5050565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000116146115b55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a6b565b505f516020613aeb5f395f51905f525b90565b5f466115da60a08601608087016133cb565b6001600160401b0316146115ef57505f611442565b61143f61160d6d7369676e616c5f7365727669636560901b5f611d67565b61161c6106656105fe88613564565b61162c60e0880160c089016133cb565b86866128b3565b5f4661164560a08401608085016133cb565b6001600160401b03161461165a57505f919050565b6116756d7369676e616c5f7365727669636560901b5f611d67565b6001600160a01b03166332676bc6306116906105fe86613564565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156116d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116fb919061391d565b92915050565b6117096123d3565b61145b5f612935565b60655433906001600160a01b031681146117805760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a6b565b61143081612935565b5f6116fb620c35006101a06020601f8601819004020160041b613938565b806001600160a01b0381166117cf5760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b15801561180d575f5ffd5b505af115801561181f573d5f5f3e3d5ffd5b505050505050565b61182f61294e565b61145b336001612806565b5f611843612597565b905090565b5f5f61185f836562726964676560d01b6001611433565b6001600160a01b038116151594909350915050565b61188460e0820160c083016133cb565b46816001600160401b0316146118ad57604051631c6c777560e31b815260040160405180910390fd5b6118bd60a08301608084016133cb565b6001600160401b03811615806118db575046816001600160401b0316145b156118f957604051631c6c777560e31b815260040160405180910390fd5b61190d60c954610100900460ff1660021490565b1561192b5760405163bae6e2a960e01b815260040160405180910390fd5b600261193960c95460ff1690565b60ff160361195a5760405163dfc60d8560e01b815260040160405180910390fd5b6119646002611fe2565b611975610100840160e08501613226565b6001600160a01b0316336001600160a01b0316146119a6576040516372b6e1c360e11b815260040160405180910390fd5b5f6119b36105fe85613564565b90506119c0816001611ff8565b6119cb816003612316565b6119e66d7369676e616c5f7365727669636560901b5f611d67565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af1158015611a2e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a529190613588565b5050611a5e6001611fe2565b505050565b611a7360a08401608085016133cb565b46816001600160401b031614611a9c57604051631c6c777560e31b815260040160405180910390fd5b611aac60e0850160c086016133cb565b6001600160401b0381161580611aca575046816001600160401b0316145b15611ae857604051631c6c777560e31b815260040160405180910390fd5b611afc60c954610100900460ff1660021490565b15611b1a5760405163bae6e2a960e01b815260040160405180910390fd5b6002611b2860c95460ff1690565b60ff1603611b495760405163dfc60d8560e01b815260040160405180910390fd5b611b536002611fe2565b5f611b606105fe87613564565b9050611b6c815f611ff8565b5f611b886d7369676e616c5f7365727669636560901b5f611d67565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611bd4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bf8919061391d565b611c155760405163ab035ad560e01b815260040160405180910390fd5b611c348160038418611c2d60e08b0160c08c016133cb565b8989612480565b50611c40826004612316565b611c4e87610120013561204a565b611c6b576040516335856fbd60e21b815260040160405180910390fd5b611c9462bc399d60e11b611c8560808a0160608b01613226565b6001600160a01b0316906129bf565b15611d3857611cb38230611cae60a08b0160808c016133cb565b612a4c565b611cc36080880160608901613226565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611cf6929190613954565b5f604051808303818588803b158015611d0d575f5ffd5b505af1158015611d1f573d5f5f3e3d5ffd5b5050505050611d335f195f1b5f1980612a4c565b611d54565b611d546101208801356188b86112e960c08b0160a08c01613226565b5050611d606001611fe2565b5050505050565b5f611442468484612724565b5f46611d8560e0860160c087016133cb565b6001600160401b031614611d9a57505f611442565b61143f611db86d7369676e616c5f7365727669636560901b5f611d67565b611dc46105fe87613564565b61162c60a08801608089016133cb565b5f81604051602001611de69190613975565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611e7a604080516060810182525f8082526020820181905291810191909152506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b80519091501580611e8c575080515f19145b156115c557604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611ec857505f54600160ff909116105b80611ee15750303b158015611ee157505f5460ff166001145b611efd5760405162461bcd60e51b8152600401610a6b9061359f565b5f805460ff191660011790558015611f1e575f805461ff0019166101001790555b611f288383612aa1565b8015611a5e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611f796123d3565b606580546001600160a01b0383166001600160a01b03199091168117909155611faa6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b80600481111561200a5761200a6131af565b5f83815260fc602052604090205460ff16600481111561202c5761202c6131af565b14611512576040516319d893ad60e21b815260040160405180910390fd5b5f5f6120676c38bab7ba30afb6b0b730b3b2b960991b6001611d67565b90506001600160a01b0381166120805750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b1580156120c5575f5ffd5b505af19250505080156120d6575060015b6120e257505f92915050565b50600192915050565b5f806120ff61012085016101008601613226565b6001600160a01b031603612115575060016116fb565b3061212861012085016101008601613226565b6001600160a01b03160361213e575060016116fb565b6001600160a01b03821661215a61012085016101008601613226565b6001600160a01b031603612170575060016116fb565b6004612180610140850185613650565b9050101580156121b75750637f07c94760e01b6121a1610140850185613650565b6121aa916139ab565b6001600160e01b03191614155b801561144257506114426121d361012085016101008601613226565b6001600160a01b03163b151590565b5f6001600160a01b03851661220a57604051634c67134d60e11b815260040160405180910390fd5b5f5f835160208501878988f195945050505050565b5f306122316080870160608801613226565b6001600160a01b031603612247576122476139e3565b825f0361225557505f61230e565b612279846122696080880160608901613226565b611cae60a0890160808a016133cb565b5f61228c61012087016101008801613226565b90506101208601355f6122a3610140890189613650565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509384935083925090506020850186888cf194505a905085156122fd576122fd8188612adb565b6123095f198080612a4c565b505050505b949350505050565b806004811115612328576123286131af565b5f83815260fc602052604090205460ff16600481111561234a5761234a6131af565b03612368576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff19166001836004811115612392576123926131af565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516123c79190613258565b60405180910390a25050565b6033546001600160a01b0316331461145b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a6b565b5f80612447612440610140850185613650565b9050611789565b63ffffffff16905080612478612463606086016040870161356f565b63ffffffff168361252b90919063ffffffff16565b039392505050565b5f856001600160a01b031663910af6ed856124a5876562726964676560d01b5f611433565b8887876040518663ffffffff1660e01b81526004016124c89594939291906139f7565b6020604051808303815f875af1925050508015612502575060408051601f3d908101601f191682019092526124ff91810190613588565b60015b61251f576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f8183116125395781611442565b5090919050565b5f81831161254e5782611442565b50919050565b815f0361256057505050565b61257a83838360405180602001604052805f8152506121e2565b611a5e57604051634c67134d60e11b815260040160405180910390fd5b5f516020613aeb5f395f51905f52546001600160a01b031690565b6114306123d3565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125ed57611a5e83612aef565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612647575060408051601f3d908101601f1916820190925261264491810190613588565b60015b6126aa5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a6b565b5f516020613aeb5f395f51905f5281146127185760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a6b565b50611a5e838383612b8a565b5f61272f8484612bae565b90508115801561274657506001600160a01b038116155b1561144257604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610a6b565b61278a60c954610100900460ff1660021490565b6127a75760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b038381169116148061284e57506128396d636861696e5f7761746368646f6760901b6001611d67565b6001600160a01b0316826001600160a01b0316145b15612857575050565b808015612891575061287c6e6272696467655f7761746368646f6760881b6001611d67565b6001600160a01b0316826001600160a01b0316145b1561289a575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d0820856128d8876562726964676560d01b5f611433565b8887876040518663ffffffff1660e01b81526004016128fb9594939291906139f7565b5f6040518083038186803b158015612911575f5ffd5b505afa925050508015612922575060015b61292d57505f612522565b506001612522565b606580546001600160a01b031916905561143081612c50565b61296260c954610100900460ff1660021490565b156129805760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016127fc565b5f6001600160a01b0383163b6129d657505f6116fb565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612a40575060408051601f3d908101601f19168201909252612a3d9181019061391d565b60015b156116fb579392505050565b604080516060810182528481526001600160a01b03909316602084018190526001600160401b03909216920182905260fd9290925560fe8054600160a01b9092026001600160e01b0319909216909217179055565b806001600160a01b038116612ac95760405163538ba4f960e01b815260040160405180910390fd5b612ad283612ca1565b611a5e82612cff565b612ae6603f82613a38565b82101561151257fe5b6001600160a01b0381163b612b5c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a6b565b5f516020613aeb5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612b9383612d6f565b5f82511180612b9f5750805b15611a5e57610a218383612dae565b6097545f906001600160a01b031680612bda57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612c2c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230e9190613a57565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612cc75760405162461bcd60e51b8152600401610a6b90613a72565b612ccf612dd3565b612ced6001600160a01b03821615612ce75781612935565b33612935565b5060c9805461ff001916610100179055565b5f54610100900460ff16612d255760405162461bcd60e51b8152600401610a6b90613a72565b6001600160401b03461115612d4d5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b612d7881612aef565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606114428383604051806060016040528060278152602001613b0b60279139612df9565b5f54610100900460ff1661145b5760405162461bcd60e51b8152600401610a6b90613a72565b60605f5f856001600160a01b031685604051612e159190613abd565b5f60405180830381855af49150503d805f8114612e4d576040519150601f19603f3d011682016040523d82523d5f602084013e612e52565b606091505b5091509150612e6386838387612e6d565b9695505050505050565b60608315612edb5782515f03612ed4576001600160a01b0385163b612ed45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a6b565b508161230e565b61230e8383815115612ef05781518083602001fd5b8060405162461bcd60e51b8152600401610a6b9190613ad8565b5f610160828403121561254e575f5ffd5b8015158114611430575f5ffd5b5f5f60408385031215612f39575f5ffd5b82356001600160401b03811115612f4e575f5ffd5b612f5a85828601612f0a565b9250506020830135612f6b81612f1b565b809150509250929050565b5f60208284031215612f86575f5ffd5b81356001600160401b03811115612f9b575f5ffd5b61230e84828501612f0a565b5f5b83811015612fc1578181015183820152602001612fa9565b50505f910152565b5f8151808452612fe0816020860160208601612fa7565b601f01601f19169290920160200192915050565b80516001600160401b031682525f602082015161301c60208501826001600160401b03169052565b506040820151613034604085018263ffffffff169052565b50606082015161304f60608501826001600160a01b03169052565b50608082015161306a60808501826001600160401b03169052565b5060a082015161308560a08501826001600160a01b03169052565b5060c08201516130a060c08501826001600160401b03169052565b5060e08201516130bb60e08501826001600160a01b03169052565b506101008201516130d86101008501826001600160a01b03169052565b5061012082015161012084015261014082015161016061014085015261230e610160850182612fc9565b828152604060208201525f61143f6040830184612ff4565b5f5f5f6040848603121561312c575f5ffd5b83356001600160401b03811115613141575f5ffd5b61314d86828701612f0a565b93505060208401356001600160401b03811115613168575f5ffd5b8401601f81018613613178575f5ffd5b80356001600160401b0381111561318d575f5ffd5b86602082840101111561319e575f5ffd5b939660209190910195509293505050565b634e487b7160e01b5f52602160045260245ffd5b600581106131d3576131d36131af565b9052565b604081016131e582856131c3565b600483106131f5576131f56131af565b8260208301529392505050565b6001600160a01b0381168114611430575f5ffd5b803561322181613202565b919050565b5f60208284031215613236575f5ffd5b813561144281613202565b5f60208284031215613251575f5ffd5b5035919050565b602081016116fb82846131c3565b80356001600160401b0381168114613221575f5ffd5b5f5f5f6060848603121561328e575f5ffd5b61329784613266565b92506020840135915060408401356132ae81612f1b565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b03811182821017156132f0576132f06132b9565b60405290565b5f82601f830112613305575f5ffd5b81356001600160401b0381111561331e5761331e6132b9565b604051601f8201601f19908116603f011681016001600160401b038111828210171561334c5761334c6132b9565b604052818152838201602001851015613363575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215613390575f5ffd5b823561339b81613202565b915060208301356001600160401b038111156133b5575f5ffd5b6133c1858286016132f6565b9150509250929050565b5f602082840312156133db575f5ffd5b61144282613266565b5f5f604083850312156133f5575f5ffd5b823591506020830135612f6b81612f1b565b803563ffffffff81168114613221575f5ffd5b5f610160828403121561342b575f5ffd5b6134336132cd565b905061343e82613266565b815261344c60208301613266565b602082015261345d60408301613407565b604082015261346e60608301613216565b606082015261347f60808301613266565b608082015261349060a08301613216565b60a08201526134a160c08301613266565b60c08201526134b260e08301613216565b60e08201526134c46101008301613216565b61010082015261012082810135908201526101408201356001600160401b038111156134ee575f5ffd5b6134fa848285016132f6565b6101408301525092915050565b5f60208284031215613517575f5ffd5b81356001600160401b0381111561352c575f5ffd5b61230e8482850161341a565b5f5f60408385031215613549575f5ffd5b823561355481613202565b91506020830135612f6b81613202565b5f6116fb368361341a565b5f6020828403121561357f575f5ffd5b61144282613407565b5f60208284031215613598575f5ffd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156116fb576116fb6135ed565b5f6001600160401b0382166001600160401b038103613635576136356135ed565b60010192915050565b602081525f6114426020830184612ff4565b5f5f8335601e19843603018112613665575f5ffd5b8301803591506001600160401b0382111561367e575f5ffd5b602001915036819003821315613692575f5ffd5b9250929050565b634e487b7160e01b5f52601260045260245ffd5b5f5f8335601e198436030181126136c2575f5ffd5b83016020810192503590506001600160401b038111156136e0575f5ffd5b803603821315613692575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6137308261372383613266565b6001600160401b03169052565b5f61373d60208301613266565b6001600160401b0316602084015261375760408301613407565b63ffffffff16604084015261376e60608301613216565b6001600160a01b0316606084015261378860808301613266565b6001600160401b031660808401526137a260a08301613216565b6001600160a01b031660a08401526137bc60c08301613266565b6001600160401b031660c08401526137d660e08301613216565b6001600160a01b031660e08401526137f16101008301613216565b6001600160a01b031661010084015261012082810135908401526138196101408301836136ad565b610160610140860152612522610160860182846136ee565b60a081525f61384360a0830185613716565b905063ffffffff835116602083015263ffffffff602084015116604083015263ffffffff60408401511660608301526060830151151560808301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f6020828403121561392d575f5ffd5b815161144281612f1b565b63ffffffff81811683821601908111156116fb576116fb6135ed565b604081525f6139666040830185613716565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f6114426080830184612ff4565b80356001600160e01b031981169060048410156139dc576001600160e01b0319600485900360031b81901b82161691505b5092915050565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f613a2d6080830184866136ee565b979650505050505050565b5f82613a5257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613a67575f5ffd5b815161144281613202565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613ace818460208701612fa7565b9190910192915050565b602081525f6114426020830184612fc956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220fe7f47dabd46879b9404e8d06f7ee77f2c51d0391f21575037dda2b3e15ccfb164736f6c634300081b0033", + "code": "0x60806040526004361061021d575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba61461066b578063e30c3978146106a8578063eefbf17e146106c5578063f09a4016146106eb578063f2fde38b1461070a575f5ffd5b8063b8acae0e146105af578063be880c81146105ce578063c012fa77146105e4578063d0496d6a14610603578063d1aaa5df1461064b575f5ffd5b80638e3881a9116100ee5780638e3881a9146104fe578063913b16cb1461053c5780639efc7a2e1461055b578063a730cdfb1461057a578063a86f9d9e14610590575f5ffd5b806382b5e8891461049a5780638456cb59146104b95780638abf6077146104cd5780638da5cb5b146104e1575f5ffd5b80633f4ba83a116101aa5780635c975abb1161016f5780635c975abb146103ff57806360620c6b1461041f578063715018a61461043e57806379ba5097146104525780637cbadfaa14610466575f5ffd5b80633f4ba83a14610381578063422770fa146103955780634f1ef286146103b957806352d1902d146103cc5780635862f6e1146103e0575f5ffd5b80633075db56116101f05780633075db56146102ad5780633659cfe6146102d15780633ab76e9f146102f05780633c6cf473146103275780633eb6b8cf14610362575f5ffd5b80630432873c14610221578063069489a2146102425780631bdb0037146102565780632035065e14610280575b5f5ffd5b34801561022c575f5ffd5b5061024061023b366004612f58565b610729565b005b34801561024d575f5ffd5b50610240610a27565b610269610264366004612fa6565b610ade565b604051610277929190613132565b60405180910390f35b34801561028b575f5ffd5b5061029f61029a36600461314a565b610e94565b604051610277929190613207565b3480156102b8575f5ffd5b506102c1611344565b6040519015158152602001610277565b3480156102dc575f5ffd5b506102406102eb366004613256565b61135c565b3480156102fb575f5ffd5b5060975461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b348015610332575f5ffd5b50610355610341366004613271565b60fc6020525f908152604090205460ff1681565b6040516102779190613288565b34801561036d575f5ffd5b5061030f61037c3660046132ac565b611423565b34801561038c575f5ffd5b50610240611439565b3480156103a0575f5ffd5b506103ab62030d4081565b604051908152602001610277565b6102406103c73660046133af565b61144d565b3480156103d7575f5ffd5b506103ab611506565b3480156103eb575f5ffd5b506102c16103fa36600461314a565b6115b8565b34801561040a575f5ffd5b506102c160c954610100900460ff1660021490565b34801561042a575f5ffd5b506102c1610439366004612fa6565b611623565b348015610449575f5ffd5b506102406116f1565b34801561045d575f5ffd5b50610240611702565b348015610471575f5ffd5b50610485610480366004613271565b611779565b60405163ffffffff9091168152602001610277565b3480156104a5575f5ffd5b506102406104b4366004613256565b611791565b3480156104c4575f5ffd5b50610240611811565b3480156104d8575f5ffd5b5061030f611824565b3480156104ec575f5ffd5b506033546001600160a01b031661030f565b348015610509575f5ffd5b5061051d6105183660046133fb565b611832565b6040805192151583526001600160a01b03909116602083015201610277565b348015610547575f5ffd5b50610240610556366004612fa6565b61185e565b348015610566575f5ffd5b5061024061057536600461314a565b611a4d565b348015610585575f5ffd5b506104856201d4c081565b34801561059b575f5ffd5b5061030f6105aa366004613414565b611d51565b3480156105ba575f5ffd5b506102c16105c936600461314a565b611d5d565b3480156105d9575f5ffd5b50610485620c350081565b3480156105ef575f5ffd5b506103ab6105fe366004613537565b611dbe565b34801561060e575f5ffd5b50610617611ded565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610277565b348015610656575f5ffd5b506103ab610665366004613271565b60031890565b348015610676575f5ffd5b5060c954610690906201000090046001600160401b031681565b6040516001600160401b039091168152602001610277565b3480156106b3575f5ffd5b506065546001600160a01b031661030f565b3480156106d0575f5ffd5b5060fb5461069090600160401b90046001600160401b031681565b3480156106f6575f5ffd5b50610240610705366004613568565b611e94565b348015610715575f5ffd5b50610240610724366004613256565b611f5b565b61073960e0830160c084016133fb565b46816001600160401b03161461076257604051631c6c777560e31b815260040160405180910390fd5b61077260a08401608085016133fb565b6001600160401b0381161580610790575046816001600160401b0316145b156107ae57604051631c6c777560e31b815260040160405180910390fd5b6107c260c954610100900460ff1660021490565b156107e05760405163bae6e2a960e01b815260040160405180910390fd5b60026107ee60c95460ff1690565b60ff160361080f5760405163dfc60d8560e01b815260040160405180910390fd5b6108196002611fcc565b5f6108266105fe86613594565b9050610833816001611fe2565b610841856101200135612034565b61085e576040516335856fbd60e21b815260040160405180910390fd5b5f6108838661087e6d7369676e616c5f7365727669636560901b5f611d51565b6120d5565b156108ce576108c78661012001356188b860405180602001604052805f8152508960e00160208101906108b69190613256565b6001600160a01b03169291906121cc565b9050610948565b6108de606087016040880161359f565b63ffffffff1615806108ed5750845b801561091b5750610905610100870160e08801613256565b6001600160a01b0316336001600160a01b031614155b15610939576040516372b6e1c360e11b815260040160405180910390fd5b61094586835a5f612209565b90505b801561095e5761095982600261231e565b610a15565b84156109fc5761096f82600361231e565b61098a6d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156109d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f691906135b8565b50610a15565b60405163161e3ead60e01b815260040160405180910390fd5b5050610a216001611fcc565b50505050565b610a2f6123db565b5f54600290610100900460ff16158015610a4f57505f5460ff8083169116105b610a745760405162461bcd60e51b8152600401610a6b906135cf565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610b4460c0840160a08501613256565b6001600160a01b038116610b6b5760405163538ba4f960e01b815260040160405180910390fd5b610b7c610100850160e08601613256565b6001600160a01b038116610ba35760405163538ba4f960e01b815260040160405180910390fd5b610bb360e0860160c087016133fb565b6001600160401b0381161580610bd1575046816001600160401b0316145b15610bef57604051631c6c777560e31b815260040160405180910390fd5b610c0360c954610100900460ff1660021490565b15610c215760405163bae6e2a960e01b815260040160405180910390fd5b6002610c2f60c95460ff1690565b60ff1603610c505760405163dfc60d8560e01b815260040160405180910390fd5b610c5a6002611fcc565b610c6a606087016040880161359f565b63ffffffff165f03610cb257610c8660408701602088016133fb565b6001600160401b031615610cad5760405163c9f5178760e01b815260040160405180910390fd5b610cda565b610cbb86612435565b5f03610cda576040516308c2ad5360e01b815260040160405180910390fd5b5f610cee61051860e0890160c08a016133fb565b50905080610d0f57604051631c6c777560e31b815260040160405180910390fd5b34610d206040890160208a016133fb565b610d38906001600160401b03166101208a0135613631565b14610d5657604051634ac2abdf60e11b815260040160405180910390fd5b610d5f87613594565b60fb8054919650600160401b9091046001600160401b0316906008610d8383613644565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610dbe85611dbe565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610df0919061366e565b60405180910390a2610e136d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610e4091815260200190565b6020604051808303815f875af1158015610e5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8091906135b8565b5050610e8c6001611fcc565b505050915091565b5f5f610eaa60c954610100900460ff1660021490565b15610ec85760405163bae6e2a960e01b815260040160405180910390fd5b6002610ed660c95460ff1690565b60ff1603610ef75760405163dfc60d8560e01b815260040160405180910390fd5b610f016002611fcc565b5f5a905046610f1660e0880160c089016133fb565b6001600160401b031614610f3d57604051631c6c777560e31b815260040160405180910390fd5b610f4d60a08701608088016133fb565b6001600160401b03161580610f79575046610f6e60a08801608089016133fb565b6001600160401b0316145b15610f9757604051631c6c777560e31b815260040160405180910390fd5b604080516080810182525f808252602082018190529181018290526060810191909152610fcb610100880160e08901613256565b6001600160a01b031633148015606083015261103a57610ff1606088016040890161359f565b63ffffffff165f03611016576040516372b6e1c360e11b815260040160405180910390fd5b62030d4085111561103a57604051631e3b03c960e01b815260040160405180910390fd5b5f6110476105fe89613594565b9050611053815f611fe2565b5f61106f6d7369676e616c5f7365727669636560901b5f611d51565b63ffffffff881660208501529050611099818361109260a08d0160808e016133fb565b8b8b612488565b63ffffffff166040808501919091526110d8906110bb908b0160208c016133fb565b6110d3906001600160401b03166101208c0135613631565b612034565b6110f5576040516335856fbd60e21b815260040160405180910390fd5b5f6111008a836120d5565b1561111957506002955060019450610120890135611160565b5f8460600151611129575a611132565b6111328b612435565b90506111448b85838860600151612209565b1561115557600297505f965061115e565b60019750600296505b505b61117060408b0160208c016133fb565b6001600160401b0316156112c15761118e60408b0160208c016133fb565b6111a1906001600160401b031682613631565b9050836060015180156111c857506111bf60608b0160408c0161359f565b63ffffffff1615155b156112c157604084015163ffffffff16614e20025a6111f56111ee6101408e018e613680565b9050612533565b63ffffffff9081168801919091036201d4c00181168087525f91839161121e9183919061255b16565b0390505f61123260608e0160408f0161359f565b63ffffffff168d602001602081019061124b91906133fb565b6001600160401b0316830281611263576112636136c9565b0490505f48830290505f6112a78f602001602081019061128391906133fb565b6001600160401b03168484101561129f5784840160011c6112a1565b845b90612570565b958690039590506112bb33826188b8612584565b50505050505b6112e9816188b86112d96101008e0160e08f01613256565b6001600160a01b03169190612584565b6112f3838861231e565b827f8580f507761043ecdd2bdca084d6fb0109150b3d9842d854d34e3dea6d69387d8b86604051611325929190613861565b60405180910390a2505050505061133c6001611fcc565b935093915050565b5f600261135360c95460ff1690565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036113a45760405162461bcd60e51b8152600401610a6b906138b5565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166113d66125c7565b6001600160a01b0316146113fc5760405162461bcd60e51b8152600401610a6b90613901565b611405816125e2565b604080515f80825260208201909252611420918391906125ea565b50565b5f61142f848484612754565b90505b9392505050565b6114416127a6565b61144b335f612836565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036114955760405162461bcd60e51b8152600401610a6b906138b5565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166114c76125c7565b6001600160a01b0316146114ed5760405162461bcd60e51b8152600401610a6b90613901565b6114f6826125e2565b611502828260016125ea565b5050565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000116146115a55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a6b565b505f516020613b1b5f395f51905f525b90565b5f466115ca60a08601608087016133fb565b6001600160401b0316146115df57505f611432565b61142f6115fd6d7369676e616c5f7365727669636560901b5f611d51565b61160c6106656105fe88613594565b61161c60e0880160c089016133fb565b86866128e3565b5f4661163560a08401608085016133fb565b6001600160401b03161461164a57505f919050565b6116656d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166332676bc6306116806105fe86613594565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156116c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116eb919061394d565b92915050565b6116f96123db565b61144b5f612965565b60655433906001600160a01b031681146117705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a6b565b61142081612965565b5f620c350061178783612533565b6116eb9190613968565b806001600160a01b0381166117b95760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b1580156117f7575f5ffd5b505af1158015611809573d5f5f3e3d5ffd5b505050505050565b61181961297e565b61144b336001612836565b5f61182d6125c7565b905090565b5f5f611849836562726964676560d01b6001611423565b6001600160a01b038116151594909350915050565b61186e60e0820160c083016133fb565b46816001600160401b03161461189757604051631c6c777560e31b815260040160405180910390fd5b6118a760a08301608084016133fb565b6001600160401b03811615806118c5575046816001600160401b0316145b156118e357604051631c6c777560e31b815260040160405180910390fd5b6118f760c954610100900460ff1660021490565b156119155760405163bae6e2a960e01b815260040160405180910390fd5b600261192360c95460ff1690565b60ff16036119445760405163dfc60d8560e01b815260040160405180910390fd5b61194e6002611fcc565b61195f610100840160e08501613256565b6001600160a01b0316336001600160a01b031614611990576040516372b6e1c360e11b815260040160405180910390fd5b5f61199d6105fe85613594565b90506119aa816001611fe2565b6119b581600361231e565b6119d06d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af1158015611a18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3c91906135b8565b5050611a486001611fcc565b505050565b611a5d60a08401608085016133fb565b46816001600160401b031614611a8657604051631c6c777560e31b815260040160405180910390fd5b611a9660e0850160c086016133fb565b6001600160401b0381161580611ab4575046816001600160401b0316145b15611ad257604051631c6c777560e31b815260040160405180910390fd5b611ae660c954610100900460ff1660021490565b15611b045760405163bae6e2a960e01b815260040160405180910390fd5b6002611b1260c95460ff1690565b60ff1603611b335760405163dfc60d8560e01b815260040160405180910390fd5b611b3d6002611fcc565b5f611b4a6105fe87613594565b9050611b56815f611fe2565b5f611b726d7369676e616c5f7365727669636560901b5f611d51565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611bbe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be2919061394d565b611bff5760405163ab035ad560e01b815260040160405180910390fd5b611c1e8160038418611c1760e08b0160c08c016133fb565b8989612488565b50611c2a82600461231e565b611c38876101200135612034565b611c55576040516335856fbd60e21b815260040160405180910390fd5b611c7e62bc399d60e11b611c6f60808a0160608b01613256565b6001600160a01b0316906129ef565b15611d2257611c9d8230611c9860a08b0160808c016133fb565b612a7c565b611cad6080880160608901613256565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611ce0929190613984565b5f604051808303818588803b158015611cf7575f5ffd5b505af1158015611d09573d5f5f3e3d5ffd5b5050505050611d1d5f195f1b5f1980612a7c565b611d3e565b611d3e6101208801356188b86112d960c08b0160a08c01613256565b5050611d4a6001611fcc565b5050505050565b5f611432468484612754565b5f46611d6f60e0860160c087016133fb565b6001600160401b031614611d8457505f611432565b61142f611da26d7369676e616c5f7365727669636560901b5f611d51565b611dae6105fe87613594565b61161c60a08801608089016133fb565b5f81604051602001611dd091906139a5565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611e64604080516060810182525f8082526020820181905291810191909152506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b80519091501580611e76575080515f19145b156115b557604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611eb257505f54600160ff909116105b80611ecb5750303b158015611ecb57505f5460ff166001145b611ee75760405162461bcd60e51b8152600401610a6b906135cf565b5f805460ff191660011790558015611f08575f805461ff0019166101001790555b611f128383612ad1565b8015611a48575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611f636123db565b606580546001600160a01b0383166001600160a01b03199091168117909155611f946033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b806004811115611ff457611ff46131df565b5f83815260fc602052604090205460ff166004811115612016576120166131df565b14611502576040516319d893ad60e21b815260040160405180910390fd5b5f5f6120516c38bab7ba30afb6b0b730b3b2b960991b6001611d51565b90506001600160a01b03811661206a5750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b1580156120af575f5ffd5b505af19250505080156120c0575060015b6120cc57505f92915050565b50600192915050565b5f806120e961012085016101008601613256565b6001600160a01b0316036120ff575060016116eb565b3061211261012085016101008601613256565b6001600160a01b031603612128575060016116eb565b6001600160a01b03821661214461012085016101008601613256565b6001600160a01b03160361215a575060016116eb565b600461216a610140850185613680565b9050101580156121a15750637f07c94760e01b61218b610140850185613680565b612194916139db565b6001600160e01b03191614155b801561143257506114326121bd61012085016101008601613256565b6001600160a01b03163b151590565b5f6001600160a01b0385166121f457604051634c67134d60e11b815260040160405180910390fd5b5f5f835160208501878988f195945050505050565b5f3061221b6080870160608801613256565b6001600160a01b03160361223157612231613a13565b61223f610140860186613680565b90505f0361224f57506001612316565b825f0361225d57505f612316565b612281846122716080880160608901613256565b611c9860a0890160808a016133fb565b5f61229461012087016101008801613256565b90506101208601355f6122ab610140890189613680565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509384935083925090506020850186888cf194505a90508515612305576123058188612b0b565b6123115f198080612a7c565b505050505b949350505050565b806004811115612330576123306131df565b5f83815260fc602052604090205460ff166004811115612352576123526131df565b03612370576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff1916600183600481111561239a5761239a6131df565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516123cf9190613288565b60405180910390a25050565b6033546001600160a01b0316331461144b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a6b565b5f8061244f612448610140850185613680565b9050611779565b63ffffffff1690508061248061246b606086016040870161359f565b63ffffffff168361255b90919063ffffffff16565b039392505050565b5f856001600160a01b031663910af6ed856124ad876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b81526004016124d0959493929190613a27565b6020604051808303815f875af192505050801561250a575060408051601f3d908101601f19168201909252612507918101906135b8565b60015b612527576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f815f0361254257505f919050565b60046020601f8401046020026101a001901b9050919050565b5f8183116125695781611432565b5090919050565b5f81831161257e5782611432565b50919050565b815f0361259057505050565b6125aa83838360405180602001604052805f8152506121cc565b611a4857604051634c67134d60e11b815260040160405180910390fd5b5f516020613b1b5f395f51905f52546001600160a01b031690565b6114206123db565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561261d57611a4883612b1f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612677575060408051601f3d908101601f19168201909252612674918101906135b8565b60015b6126da5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a6b565b5f516020613b1b5f395f51905f5281146127485760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a6b565b50611a48838383612bba565b5f61275f8484612bde565b90508115801561277657506001600160a01b038116155b1561143257604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610a6b565b6127ba60c954610100900460ff1660021490565b6127d75760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b038381169116148061287e57506128696d636861696e5f7761746368646f6760901b6001611d51565b6001600160a01b0316826001600160a01b0316145b15612887575050565b8080156128c157506128ac6e6272696467655f7761746368646f6760881b6001611d51565b6001600160a01b0316826001600160a01b0316145b156128ca575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d082085612908876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b815260040161292b959493929190613a27565b5f6040518083038186803b158015612941575f5ffd5b505afa925050508015612952575060015b61295d57505f61252a565b50600161252a565b606580546001600160a01b031916905561142081612c80565b61299260c954610100900460ff1660021490565b156129b05760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200161282c565b5f6001600160a01b0383163b612a0657505f6116eb565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612a70575060408051601f3d908101601f19168201909252612a6d9181019061394d565b60015b156116eb579392505050565b604080516060810182528481526001600160a01b03909316602084018190526001600160401b03909216920182905260fd9290925560fe8054600160a01b9092026001600160e01b0319909216909217179055565b806001600160a01b038116612af95760405163538ba4f960e01b815260040160405180910390fd5b612b0283612cd1565b611a4882612d2f565b612b16603f82613a68565b82101561150257fe5b6001600160a01b0381163b612b8c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a6b565b5f516020613b1b5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612bc383612d9f565b5f82511180612bcf5750805b15611a4857610a218383612dde565b6097545f906001600160a01b031680612c0a57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612c5c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123169190613a87565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612cf75760405162461bcd60e51b8152600401610a6b90613aa2565b612cff612e03565b612d1d6001600160a01b03821615612d175781612965565b33612965565b5060c9805461ff001916610100179055565b5f54610100900460ff16612d555760405162461bcd60e51b8152600401610a6b90613aa2565b6001600160401b03461115612d7d5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b612da881612b1f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606114328383604051806060016040528060278152602001613b3b60279139612e29565b5f54610100900460ff1661144b5760405162461bcd60e51b8152600401610a6b90613aa2565b60605f5f856001600160a01b031685604051612e459190613aed565b5f60405180830381855af49150503d805f8114612e7d576040519150601f19603f3d011682016040523d82523d5f602084013e612e82565b606091505b5091509150612e9386838387612e9d565b9695505050505050565b60608315612f0b5782515f03612f04576001600160a01b0385163b612f045760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a6b565b5081612316565b6123168383815115612f205781518083602001fd5b8060405162461bcd60e51b8152600401610a6b9190613b08565b5f610160828403121561257e575f5ffd5b8015158114611420575f5ffd5b5f5f60408385031215612f69575f5ffd5b82356001600160401b03811115612f7e575f5ffd5b612f8a85828601612f3a565b9250506020830135612f9b81612f4b565b809150509250929050565b5f60208284031215612fb6575f5ffd5b81356001600160401b03811115612fcb575f5ffd5b61231684828501612f3a565b5f5b83811015612ff1578181015183820152602001612fd9565b50505f910152565b5f8151808452613010816020860160208601612fd7565b601f01601f19169290920160200192915050565b80516001600160401b031682525f602082015161304c60208501826001600160401b03169052565b506040820151613064604085018263ffffffff169052565b50606082015161307f60608501826001600160a01b03169052565b50608082015161309a60808501826001600160401b03169052565b5060a08201516130b560a08501826001600160a01b03169052565b5060c08201516130d060c08501826001600160401b03169052565b5060e08201516130eb60e08501826001600160a01b03169052565b506101008201516131086101008501826001600160a01b03169052565b50610120820151610120840152610140820151610160610140850152612316610160850182612ff9565b828152604060208201525f61142f6040830184613024565b5f5f5f6040848603121561315c575f5ffd5b83356001600160401b03811115613171575f5ffd5b61317d86828701612f3a565b93505060208401356001600160401b03811115613198575f5ffd5b8401601f810186136131a8575f5ffd5b80356001600160401b038111156131bd575f5ffd5b8660208284010111156131ce575f5ffd5b939660209190910195509293505050565b634e487b7160e01b5f52602160045260245ffd5b60058110613203576132036131df565b9052565b6040810161321582856131f3565b60048310613225576132256131df565b8260208301529392505050565b6001600160a01b0381168114611420575f5ffd5b803561325181613232565b919050565b5f60208284031215613266575f5ffd5b813561143281613232565b5f60208284031215613281575f5ffd5b5035919050565b602081016116eb82846131f3565b80356001600160401b0381168114613251575f5ffd5b5f5f5f606084860312156132be575f5ffd5b6132c784613296565b92506020840135915060408401356132de81612f4b565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b0381118282101715613320576133206132e9565b60405290565b5f82601f830112613335575f5ffd5b81356001600160401b0381111561334e5761334e6132e9565b604051601f8201601f19908116603f011681016001600160401b038111828210171561337c5761337c6132e9565b604052818152838201602001851015613393575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f604083850312156133c0575f5ffd5b82356133cb81613232565b915060208301356001600160401b038111156133e5575f5ffd5b6133f185828601613326565b9150509250929050565b5f6020828403121561340b575f5ffd5b61143282613296565b5f5f60408385031215613425575f5ffd5b823591506020830135612f9b81612f4b565b803563ffffffff81168114613251575f5ffd5b5f610160828403121561345b575f5ffd5b6134636132fd565b905061346e82613296565b815261347c60208301613296565b602082015261348d60408301613437565b604082015261349e60608301613246565b60608201526134af60808301613296565b60808201526134c060a08301613246565b60a08201526134d160c08301613296565b60c08201526134e260e08301613246565b60e08201526134f46101008301613246565b61010082015261012082810135908201526101408201356001600160401b0381111561351e575f5ffd5b61352a84828501613326565b6101408301525092915050565b5f60208284031215613547575f5ffd5b81356001600160401b0381111561355c575f5ffd5b6123168482850161344a565b5f5f60408385031215613579575f5ffd5b823561358481613232565b91506020830135612f9b81613232565b5f6116eb368361344a565b5f602082840312156135af575f5ffd5b61143282613437565b5f602082840312156135c8575f5ffd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156116eb576116eb61361d565b5f6001600160401b0382166001600160401b0381036136655761366561361d565b60010192915050565b602081525f6114326020830184613024565b5f5f8335601e19843603018112613695575f5ffd5b8301803591506001600160401b038211156136ae575f5ffd5b6020019150368190038213156136c2575f5ffd5b9250929050565b634e487b7160e01b5f52601260045260245ffd5b5f5f8335601e198436030181126136f2575f5ffd5b83016020810192503590506001600160401b03811115613710575f5ffd5b8036038213156136c2575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6137608261375383613296565b6001600160401b03169052565b5f61376d60208301613296565b6001600160401b0316602084015261378760408301613437565b63ffffffff16604084015261379e60608301613246565b6001600160a01b031660608401526137b860808301613296565b6001600160401b031660808401526137d260a08301613246565b6001600160a01b031660a08401526137ec60c08301613296565b6001600160401b031660c084015261380660e08301613246565b6001600160a01b031660e08401526138216101008301613246565b6001600160a01b031661010084015261012082810135908401526138496101408301836136dd565b61016061014086015261252a6101608601828461371e565b60a081525f61387360a0830185613746565b905063ffffffff835116602083015263ffffffff602084015116604083015263ffffffff60408401511660608301526060830151151560808301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f6020828403121561395d575f5ffd5b815161143281612f4b565b63ffffffff81811683821601908111156116eb576116eb61361d565b604081525f6139966040830185613746565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f6114326080830184613024565b80356001600160e01b03198116906004841015613a0c576001600160e01b0319600485900360031b81901b82161691505b5092915050565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f613a5d60808301848661371e565b979650505050505050565b5f82613a8257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613a97575f5ffd5b815161143281613232565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613afe818460208701612fd7565b9190910192915050565b602081525f6114326020830184612ff956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122084fbcf170d382f2ee5760a60219c83376819d2bb8672a54f40ab14453a5eda4064736f6c634300081b0033", "balance": "0x0" }, "0x1670000000000000000000000000000000000001": { diff --git a/packages/protocol/test/genesis/data/genesis_storage_layout.json b/packages/protocol/test/genesis/data/genesis_storage_layout.json index f8577b300b5..2852d7dad98 100644 --- a/packages/protocol/test/genesis/data/genesis_storage_layout.json +++ b/packages/protocol/test/genesis/data/genesis_storage_layout.json @@ -2,7 +2,7 @@ "SharedAddressManagerImpl": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initialized", "offset": 0, @@ -10,7 +10,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initializing", "offset": 1, @@ -18,7 +18,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -26,7 +26,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_owner", "offset": 0, @@ -34,7 +34,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -42,7 +42,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_pendingOwner", "offset": 0, @@ -50,7 +50,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -58,7 +58,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "addressManager", "offset": 0, @@ -66,7 +66,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -74,7 +74,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__reentry", "offset": 0, @@ -82,7 +82,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__paused", "offset": 1, @@ -90,7 +90,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "lastUnpausedAt", "offset": 2, @@ -98,7 +98,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -106,7 +106,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3522, + "astId": 3536, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__addresses", "offset": 0, @@ -114,7 +114,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_bytes32,t_address))" }, { - "astId": 3526, + "astId": 3540, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -184,7 +184,7 @@ "SharedAddressManager": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initialized", "offset": 0, @@ -192,7 +192,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initializing", "offset": 1, @@ -200,7 +200,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -208,7 +208,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_owner", "offset": 0, @@ -216,7 +216,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -224,7 +224,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_pendingOwner", "offset": 0, @@ -232,7 +232,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -240,7 +240,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "addressManager", "offset": 0, @@ -248,7 +248,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -256,7 +256,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__reentry", "offset": 0, @@ -264,7 +264,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__paused", "offset": 1, @@ -272,7 +272,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "lastUnpausedAt", "offset": 2, @@ -280,7 +280,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -288,7 +288,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3522, + "astId": 3536, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__addresses", "offset": 0, @@ -296,7 +296,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_bytes32,t_address))" }, { - "astId": 3526, + "astId": 3540, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -366,7 +366,7 @@ "BridgeImpl": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_initialized", "offset": 0, @@ -374,7 +374,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_initializing", "offset": 1, @@ -382,7 +382,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -390,7 +390,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_owner", "offset": 0, @@ -398,7 +398,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -406,7 +406,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_pendingOwner", "offset": 0, @@ -414,7 +414,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -422,7 +422,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "addressManager", "offset": 0, @@ -430,7 +430,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -438,7 +438,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__reentry", "offset": 0, @@ -446,7 +446,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__paused", "offset": 1, @@ -454,7 +454,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "lastUnpausedAt", "offset": 2, @@ -462,7 +462,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -491,7 +491,7 @@ "label": "messageStatus", "offset": 0, "slot": "252", - "type": "t_mapping(t_bytes32,t_enum(Status)3347)" + "type": "t_mapping(t_bytes32,t_enum(Status)3361)" }, { "astId": 1743, @@ -499,7 +499,7 @@ "label": "__ctx", "offset": 0, "slot": "253", - "type": "t_struct(Context)3382_storage" + "type": "t_struct(Context)3396_storage" }, { "astId": 1746, @@ -560,25 +560,25 @@ "label": "bytes32", "numberOfBytes": "32" }, - "t_enum(Status)3347": { + "t_enum(Status)3361": { "encoding": "inplace", "label": "enum IBridge.Status", "numberOfBytes": "1" }, - "t_mapping(t_bytes32,t_enum(Status)3347)": { + "t_mapping(t_bytes32,t_enum(Status)3361)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => enum IBridge.Status)", "numberOfBytes": "32", - "value": "t_enum(Status)3347" + "value": "t_enum(Status)3361" }, - "t_struct(Context)3382_storage": { + "t_struct(Context)3396_storage": { "encoding": "inplace", "label": "struct IBridge.Context", "numberOfBytes": "64", "members": [ { - "astId": 3377, + "astId": 3391, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "msgHash", "offset": 0, @@ -586,7 +586,7 @@ "type": "t_bytes32" }, { - "astId": 3379, + "astId": 3393, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "from", "offset": 0, @@ -594,7 +594,7 @@ "type": "t_address" }, { - "astId": 3381, + "astId": 3395, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "srcChainId", "offset": 20, @@ -623,7 +623,7 @@ "Bridge": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_initialized", "offset": 0, @@ -631,7 +631,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_initializing", "offset": 1, @@ -639,7 +639,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -647,7 +647,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_owner", "offset": 0, @@ -655,7 +655,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -663,7 +663,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_pendingOwner", "offset": 0, @@ -671,7 +671,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -679,7 +679,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "addressManager", "offset": 0, @@ -687,7 +687,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -695,7 +695,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__reentry", "offset": 0, @@ -703,7 +703,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__paused", "offset": 1, @@ -711,7 +711,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "lastUnpausedAt", "offset": 2, @@ -719,7 +719,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -748,7 +748,7 @@ "label": "messageStatus", "offset": 0, "slot": "252", - "type": "t_mapping(t_bytes32,t_enum(Status)3347)" + "type": "t_mapping(t_bytes32,t_enum(Status)3361)" }, { "astId": 1743, @@ -756,7 +756,7 @@ "label": "__ctx", "offset": 0, "slot": "253", - "type": "t_struct(Context)3382_storage" + "type": "t_struct(Context)3396_storage" }, { "astId": 1746, @@ -817,25 +817,25 @@ "label": "bytes32", "numberOfBytes": "32" }, - "t_enum(Status)3347": { + "t_enum(Status)3361": { "encoding": "inplace", "label": "enum IBridge.Status", "numberOfBytes": "1" }, - "t_mapping(t_bytes32,t_enum(Status)3347)": { + "t_mapping(t_bytes32,t_enum(Status)3361)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => enum IBridge.Status)", "numberOfBytes": "32", - "value": "t_enum(Status)3347" + "value": "t_enum(Status)3361" }, - "t_struct(Context)3382_storage": { + "t_struct(Context)3396_storage": { "encoding": "inplace", "label": "struct IBridge.Context", "numberOfBytes": "64", "members": [ { - "astId": 3377, + "astId": 3391, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "msgHash", "offset": 0, @@ -843,7 +843,7 @@ "type": "t_bytes32" }, { - "astId": 3379, + "astId": 3393, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "from", "offset": 0, @@ -851,7 +851,7 @@ "type": "t_address" }, { - "astId": 3381, + "astId": 3395, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "srcChainId", "offset": 20, @@ -880,7 +880,7 @@ "ERC20VaultImpl": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_initialized", "offset": 0, @@ -888,7 +888,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_initializing", "offset": 1, @@ -896,7 +896,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -904,7 +904,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_owner", "offset": 0, @@ -912,7 +912,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -920,7 +920,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_pendingOwner", "offset": 0, @@ -928,7 +928,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -936,7 +936,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "addressManager", "offset": 0, @@ -944,7 +944,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -952,7 +952,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__reentry", "offset": 0, @@ -960,7 +960,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__paused", "offset": 1, @@ -968,7 +968,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "lastUnpausedAt", "offset": 2, @@ -976,7 +976,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -984,7 +984,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6436, + "astId": 6450, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -992,15 +992,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 8534, + "astId": 8548, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalERC20)8512_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalERC20)8526_storage)" }, { - "astId": 8541, + "astId": 8555, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "canonicalToBridged", "offset": 0, @@ -1008,7 +1008,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 8546, + "astId": 8560, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "btokenDenylist", "offset": 0, @@ -1016,7 +1016,7 @@ "type": "t_mapping(t_address,t_bool)" }, { - "astId": 8553, + "astId": 8567, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "lastMigrationStart", "offset": 0, @@ -1024,7 +1024,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))" }, { - "astId": 8557, + "astId": 8571, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1075,12 +1075,12 @@ "numberOfBytes": "32", "value": "t_bool" }, - "t_mapping(t_address,t_struct(CanonicalERC20)8512_storage)": { + "t_mapping(t_address,t_struct(CanonicalERC20)8526_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct ERC20Vault.CanonicalERC20)", "numberOfBytes": "32", - "value": "t_struct(CanonicalERC20)8512_storage" + "value": "t_struct(CanonicalERC20)8526_storage" }, "t_mapping(t_address,t_uint256)": { "encoding": "mapping", @@ -1108,13 +1108,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalERC20)8512_storage": { + "t_struct(CanonicalERC20)8526_storage": { "encoding": "inplace", "label": "struct ERC20Vault.CanonicalERC20", "numberOfBytes": "96", "members": [ { - "astId": 8503, + "astId": 8517, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "chainId", "offset": 0, @@ -1122,7 +1122,7 @@ "type": "t_uint64" }, { - "astId": 8505, + "astId": 8519, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "addr", "offset": 8, @@ -1130,7 +1130,7 @@ "type": "t_address" }, { - "astId": 8507, + "astId": 8521, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "decimals", "offset": 28, @@ -1138,7 +1138,7 @@ "type": "t_uint8" }, { - "astId": 8509, + "astId": 8523, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "symbol", "offset": 0, @@ -1146,7 +1146,7 @@ "type": "t_string_storage" }, { - "astId": 8511, + "astId": 8525, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "name", "offset": 0, @@ -1175,7 +1175,7 @@ "ERC20Vault": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_initialized", "offset": 0, @@ -1183,7 +1183,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_initializing", "offset": 1, @@ -1191,7 +1191,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1199,7 +1199,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_owner", "offset": 0, @@ -1207,7 +1207,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1215,7 +1215,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_pendingOwner", "offset": 0, @@ -1223,7 +1223,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1231,7 +1231,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "addressManager", "offset": 0, @@ -1239,7 +1239,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1247,7 +1247,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__reentry", "offset": 0, @@ -1255,7 +1255,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__paused", "offset": 1, @@ -1263,7 +1263,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "lastUnpausedAt", "offset": 2, @@ -1271,7 +1271,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1279,7 +1279,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6436, + "astId": 6450, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1287,15 +1287,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 8534, + "astId": 8548, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalERC20)8512_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalERC20)8526_storage)" }, { - "astId": 8541, + "astId": 8555, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "canonicalToBridged", "offset": 0, @@ -1303,7 +1303,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 8546, + "astId": 8560, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "btokenDenylist", "offset": 0, @@ -1311,7 +1311,7 @@ "type": "t_mapping(t_address,t_bool)" }, { - "astId": 8553, + "astId": 8567, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "lastMigrationStart", "offset": 0, @@ -1319,7 +1319,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))" }, { - "astId": 8557, + "astId": 8571, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1370,12 +1370,12 @@ "numberOfBytes": "32", "value": "t_bool" }, - "t_mapping(t_address,t_struct(CanonicalERC20)8512_storage)": { + "t_mapping(t_address,t_struct(CanonicalERC20)8526_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct ERC20Vault.CanonicalERC20)", "numberOfBytes": "32", - "value": "t_struct(CanonicalERC20)8512_storage" + "value": "t_struct(CanonicalERC20)8526_storage" }, "t_mapping(t_address,t_uint256)": { "encoding": "mapping", @@ -1403,13 +1403,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalERC20)8512_storage": { + "t_struct(CanonicalERC20)8526_storage": { "encoding": "inplace", "label": "struct ERC20Vault.CanonicalERC20", "numberOfBytes": "96", "members": [ { - "astId": 8503, + "astId": 8517, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "chainId", "offset": 0, @@ -1417,7 +1417,7 @@ "type": "t_uint64" }, { - "astId": 8505, + "astId": 8519, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "addr", "offset": 8, @@ -1425,7 +1425,7 @@ "type": "t_address" }, { - "astId": 8507, + "astId": 8521, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "decimals", "offset": 28, @@ -1433,7 +1433,7 @@ "type": "t_uint8" }, { - "astId": 8509, + "astId": 8523, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "symbol", "offset": 0, @@ -1441,7 +1441,7 @@ "type": "t_string_storage" }, { - "astId": 8511, + "astId": 8525, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "name", "offset": 0, @@ -1470,7 +1470,7 @@ "ERC721VaultImpl": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_initialized", "offset": 0, @@ -1478,7 +1478,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_initializing", "offset": 1, @@ -1486,7 +1486,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1494,7 +1494,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_owner", "offset": 0, @@ -1502,7 +1502,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1510,7 +1510,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_pendingOwner", "offset": 0, @@ -1518,7 +1518,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1526,7 +1526,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "addressManager", "offset": 0, @@ -1534,7 +1534,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1542,7 +1542,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__reentry", "offset": 0, @@ -1550,7 +1550,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__paused", "offset": 1, @@ -1558,7 +1558,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "lastUnpausedAt", "offset": 2, @@ -1566,7 +1566,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1574,7 +1574,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6436, + "astId": 6450, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1582,15 +1582,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 6278, + "astId": 6292, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalNFT)6252_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)" }, { - "astId": 6285, + "astId": 6299, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "canonicalToBridged", "offset": 0, @@ -1598,7 +1598,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 6289, + "astId": 6303, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1606,7 +1606,7 @@ "type": "t_array(t_uint256)48_storage" }, { - "astId": 9603, + "astId": 9617, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1650,12 +1650,12 @@ "numberOfBytes": "32", "value": "t_address" }, - "t_mapping(t_address,t_struct(CanonicalNFT)6252_storage)": { + "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct BaseNFTVault.CanonicalNFT)", "numberOfBytes": "32", - "value": "t_struct(CanonicalNFT)6252_storage" + "value": "t_struct(CanonicalNFT)6266_storage" }, "t_mapping(t_uint256,t_mapping(t_address,t_address))": { "encoding": "mapping", @@ -1669,13 +1669,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalNFT)6252_storage": { + "t_struct(CanonicalNFT)6266_storage": { "encoding": "inplace", "label": "struct BaseNFTVault.CanonicalNFT", "numberOfBytes": "96", "members": [ { - "astId": 6245, + "astId": 6259, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "chainId", "offset": 0, @@ -1683,7 +1683,7 @@ "type": "t_uint64" }, { - "astId": 6247, + "astId": 6261, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "addr", "offset": 8, @@ -1691,7 +1691,7 @@ "type": "t_address" }, { - "astId": 6249, + "astId": 6263, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "symbol", "offset": 0, @@ -1699,7 +1699,7 @@ "type": "t_string_storage" }, { - "astId": 6251, + "astId": 6265, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "name", "offset": 0, @@ -1728,7 +1728,7 @@ "ERC721Vault": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_initialized", "offset": 0, @@ -1736,7 +1736,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_initializing", "offset": 1, @@ -1744,7 +1744,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1752,7 +1752,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_owner", "offset": 0, @@ -1760,7 +1760,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1768,7 +1768,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_pendingOwner", "offset": 0, @@ -1776,7 +1776,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1784,7 +1784,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "addressManager", "offset": 0, @@ -1792,7 +1792,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1800,7 +1800,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__reentry", "offset": 0, @@ -1808,7 +1808,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__paused", "offset": 1, @@ -1816,7 +1816,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "lastUnpausedAt", "offset": 2, @@ -1824,7 +1824,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1832,7 +1832,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6436, + "astId": 6450, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1840,15 +1840,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 6278, + "astId": 6292, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalNFT)6252_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)" }, { - "astId": 6285, + "astId": 6299, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "canonicalToBridged", "offset": 0, @@ -1856,7 +1856,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 6289, + "astId": 6303, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1864,7 +1864,7 @@ "type": "t_array(t_uint256)48_storage" }, { - "astId": 9603, + "astId": 9617, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1908,12 +1908,12 @@ "numberOfBytes": "32", "value": "t_address" }, - "t_mapping(t_address,t_struct(CanonicalNFT)6252_storage)": { + "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct BaseNFTVault.CanonicalNFT)", "numberOfBytes": "32", - "value": "t_struct(CanonicalNFT)6252_storage" + "value": "t_struct(CanonicalNFT)6266_storage" }, "t_mapping(t_uint256,t_mapping(t_address,t_address))": { "encoding": "mapping", @@ -1927,13 +1927,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalNFT)6252_storage": { + "t_struct(CanonicalNFT)6266_storage": { "encoding": "inplace", "label": "struct BaseNFTVault.CanonicalNFT", "numberOfBytes": "96", "members": [ { - "astId": 6245, + "astId": 6259, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "chainId", "offset": 0, @@ -1941,7 +1941,7 @@ "type": "t_uint64" }, { - "astId": 6247, + "astId": 6261, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "addr", "offset": 8, @@ -1949,7 +1949,7 @@ "type": "t_address" }, { - "astId": 6249, + "astId": 6263, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "symbol", "offset": 0, @@ -1957,7 +1957,7 @@ "type": "t_string_storage" }, { - "astId": 6251, + "astId": 6265, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "name", "offset": 0, @@ -1986,7 +1986,7 @@ "ERC1155VaultImpl": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_initialized", "offset": 0, @@ -1994,7 +1994,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_initializing", "offset": 1, @@ -2002,7 +2002,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2010,7 +2010,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_owner", "offset": 0, @@ -2018,7 +2018,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2026,7 +2026,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_pendingOwner", "offset": 0, @@ -2034,7 +2034,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2042,7 +2042,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "addressManager", "offset": 0, @@ -2050,7 +2050,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2058,7 +2058,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__reentry", "offset": 0, @@ -2066,7 +2066,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__paused", "offset": 1, @@ -2074,7 +2074,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "lastUnpausedAt", "offset": 2, @@ -2082,7 +2082,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2090,7 +2090,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6436, + "astId": 6450, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2098,15 +2098,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 6278, + "astId": 6292, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalNFT)6252_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)" }, { - "astId": 6285, + "astId": 6299, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "canonicalToBridged", "offset": 0, @@ -2114,7 +2114,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 6289, + "astId": 6303, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2122,7 +2122,7 @@ "type": "t_array(t_uint256)48_storage" }, { - "astId": 16755, + "astId": 16769, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2130,7 +2130,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 12562, + "astId": 12576, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2138,7 +2138,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 7738, + "astId": 7752, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2182,12 +2182,12 @@ "numberOfBytes": "32", "value": "t_address" }, - "t_mapping(t_address,t_struct(CanonicalNFT)6252_storage)": { + "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct BaseNFTVault.CanonicalNFT)", "numberOfBytes": "32", - "value": "t_struct(CanonicalNFT)6252_storage" + "value": "t_struct(CanonicalNFT)6266_storage" }, "t_mapping(t_uint256,t_mapping(t_address,t_address))": { "encoding": "mapping", @@ -2201,13 +2201,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalNFT)6252_storage": { + "t_struct(CanonicalNFT)6266_storage": { "encoding": "inplace", "label": "struct BaseNFTVault.CanonicalNFT", "numberOfBytes": "96", "members": [ { - "astId": 6245, + "astId": 6259, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "chainId", "offset": 0, @@ -2215,7 +2215,7 @@ "type": "t_uint64" }, { - "astId": 6247, + "astId": 6261, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "addr", "offset": 8, @@ -2223,7 +2223,7 @@ "type": "t_address" }, { - "astId": 6249, + "astId": 6263, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "symbol", "offset": 0, @@ -2231,7 +2231,7 @@ "type": "t_string_storage" }, { - "astId": 6251, + "astId": 6265, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "name", "offset": 0, @@ -2260,7 +2260,7 @@ "ERC1155Vault": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_initialized", "offset": 0, @@ -2268,7 +2268,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_initializing", "offset": 1, @@ -2276,7 +2276,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2284,7 +2284,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_owner", "offset": 0, @@ -2292,7 +2292,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2300,7 +2300,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_pendingOwner", "offset": 0, @@ -2308,7 +2308,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2316,7 +2316,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "addressManager", "offset": 0, @@ -2324,7 +2324,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2332,7 +2332,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__reentry", "offset": 0, @@ -2340,7 +2340,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__paused", "offset": 1, @@ -2348,7 +2348,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "lastUnpausedAt", "offset": 2, @@ -2356,7 +2356,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2364,7 +2364,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6436, + "astId": 6450, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2372,15 +2372,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 6278, + "astId": 6292, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalNFT)6252_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)" }, { - "astId": 6285, + "astId": 6299, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "canonicalToBridged", "offset": 0, @@ -2388,7 +2388,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 6289, + "astId": 6303, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2396,7 +2396,7 @@ "type": "t_array(t_uint256)48_storage" }, { - "astId": 16755, + "astId": 16769, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2404,7 +2404,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 12562, + "astId": 12576, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2412,7 +2412,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 7738, + "astId": 7752, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2456,12 +2456,12 @@ "numberOfBytes": "32", "value": "t_address" }, - "t_mapping(t_address,t_struct(CanonicalNFT)6252_storage)": { + "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct BaseNFTVault.CanonicalNFT)", "numberOfBytes": "32", - "value": "t_struct(CanonicalNFT)6252_storage" + "value": "t_struct(CanonicalNFT)6266_storage" }, "t_mapping(t_uint256,t_mapping(t_address,t_address))": { "encoding": "mapping", @@ -2475,13 +2475,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalNFT)6252_storage": { + "t_struct(CanonicalNFT)6266_storage": { "encoding": "inplace", "label": "struct BaseNFTVault.CanonicalNFT", "numberOfBytes": "96", "members": [ { - "astId": 6245, + "astId": 6259, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "chainId", "offset": 0, @@ -2489,7 +2489,7 @@ "type": "t_uint64" }, { - "astId": 6247, + "astId": 6261, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "addr", "offset": 8, @@ -2497,7 +2497,7 @@ "type": "t_address" }, { - "astId": 6249, + "astId": 6263, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "symbol", "offset": 0, @@ -2505,7 +2505,7 @@ "type": "t_string_storage" }, { - "astId": 6251, + "astId": 6265, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "name", "offset": 0, @@ -2534,7 +2534,7 @@ "BridgedERC20": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_initialized", "offset": 0, @@ -2542,7 +2542,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_initializing", "offset": 1, @@ -2550,7 +2550,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2558,7 +2558,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_owner", "offset": 0, @@ -2566,7 +2566,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2574,7 +2574,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_pendingOwner", "offset": 0, @@ -2582,7 +2582,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2590,7 +2590,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "addressManager", "offset": 0, @@ -2598,7 +2598,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2606,7 +2606,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__reentry", "offset": 0, @@ -2614,7 +2614,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__paused", "offset": 1, @@ -2622,7 +2622,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "lastUnpausedAt", "offset": 2, @@ -2630,7 +2630,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2638,7 +2638,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 12583, + "astId": 12597, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_balances", "offset": 0, @@ -2646,7 +2646,7 @@ "type": "t_mapping(t_address,t_uint256)" }, { - "astId": 12589, + "astId": 12603, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_allowances", "offset": 0, @@ -2654,7 +2654,7 @@ "type": "t_mapping(t_address,t_mapping(t_address,t_uint256))" }, { - "astId": 12591, + "astId": 12605, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_totalSupply", "offset": 0, @@ -2662,7 +2662,7 @@ "type": "t_uint256" }, { - "astId": 12593, + "astId": 12607, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_name", "offset": 0, @@ -2670,7 +2670,7 @@ "type": "t_string_storage" }, { - "astId": 12595, + "astId": 12609, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_symbol", "offset": 0, @@ -2678,7 +2678,7 @@ "type": "t_string_storage" }, { - "astId": 13175, + "astId": 13189, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2686,7 +2686,7 @@ "type": "t_array(t_uint256)45_storage" }, { - "astId": 6880, + "astId": 6894, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "srcToken", "offset": 0, @@ -2694,7 +2694,7 @@ "type": "t_address" }, { - "astId": 6882, + "astId": 6896, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__srcDecimals", "offset": 20, @@ -2702,7 +2702,7 @@ "type": "t_uint8" }, { - "astId": 6885, + "astId": 6899, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "srcChainId", "offset": 0, @@ -2710,7 +2710,7 @@ "type": "t_uint256" }, { - "astId": 6888, + "astId": 6902, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "migratingAddress", "offset": 0, @@ -2718,7 +2718,7 @@ "type": "t_address" }, { - "astId": 6891, + "astId": 6905, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "migratingInbound", "offset": 20, @@ -2726,7 +2726,7 @@ "type": "t_bool" }, { - "astId": 6895, + "astId": 6909, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2808,7 +2808,7 @@ "BridgedERC721": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_initialized", "offset": 0, @@ -2816,7 +2816,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_initializing", "offset": 1, @@ -2824,7 +2824,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2832,7 +2832,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_owner", "offset": 0, @@ -2840,7 +2840,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2848,7 +2848,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_pendingOwner", "offset": 0, @@ -2856,7 +2856,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2864,7 +2864,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "addressManager", "offset": 0, @@ -2872,7 +2872,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2880,7 +2880,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__reentry", "offset": 0, @@ -2888,7 +2888,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__paused", "offset": 1, @@ -2896,7 +2896,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "lastUnpausedAt", "offset": 2, @@ -2904,7 +2904,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2912,7 +2912,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 16755, + "astId": 16769, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2920,7 +2920,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 14292, + "astId": 14306, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_name", "offset": 0, @@ -2928,7 +2928,7 @@ "type": "t_string_storage" }, { - "astId": 14294, + "astId": 14308, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_symbol", "offset": 0, @@ -2936,7 +2936,7 @@ "type": "t_string_storage" }, { - "astId": 14298, + "astId": 14312, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_owners", "offset": 0, @@ -2944,7 +2944,7 @@ "type": "t_mapping(t_uint256,t_address)" }, { - "astId": 14302, + "astId": 14316, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_balances", "offset": 0, @@ -2952,7 +2952,7 @@ "type": "t_mapping(t_address,t_uint256)" }, { - "astId": 14306, + "astId": 14320, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_tokenApprovals", "offset": 0, @@ -2960,7 +2960,7 @@ "type": "t_mapping(t_uint256,t_address)" }, { - "astId": 14312, + "astId": 14326, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_operatorApprovals", "offset": 0, @@ -2968,7 +2968,7 @@ "type": "t_mapping(t_address,t_mapping(t_address,t_bool))" }, { - "astId": 15214, + "astId": 15228, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2976,7 +2976,7 @@ "type": "t_array(t_uint256)44_storage" }, { - "astId": 7519, + "astId": 7533, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "srcToken", "offset": 0, @@ -2984,7 +2984,7 @@ "type": "t_address" }, { - "astId": 7522, + "astId": 7536, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "srcChainId", "offset": 0, @@ -2992,7 +2992,7 @@ "type": "t_uint256" }, { - "astId": 7526, + "astId": 7540, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -3088,7 +3088,7 @@ "BridgedERC1155": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_initialized", "offset": 0, @@ -3096,7 +3096,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_initializing", "offset": 1, @@ -3104,7 +3104,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3112,7 +3112,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_owner", "offset": 0, @@ -3120,7 +3120,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3128,7 +3128,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_pendingOwner", "offset": 0, @@ -3136,7 +3136,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3144,7 +3144,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "addressManager", "offset": 0, @@ -3152,7 +3152,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3160,7 +3160,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__reentry", "offset": 0, @@ -3168,7 +3168,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__paused", "offset": 1, @@ -3176,7 +3176,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "lastUnpausedAt", "offset": 2, @@ -3184,7 +3184,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3192,7 +3192,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 16755, + "astId": 16769, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3200,7 +3200,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 11114, + "astId": 11128, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_balances", "offset": 0, @@ -3208,7 +3208,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))" }, { - "astId": 11120, + "astId": 11134, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_operatorApprovals", "offset": 0, @@ -3216,7 +3216,7 @@ "type": "t_mapping(t_address,t_mapping(t_address,t_bool))" }, { - "astId": 11122, + "astId": 11136, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_uri", "offset": 0, @@ -3224,7 +3224,7 @@ "type": "t_string_storage" }, { - "astId": 12329, + "astId": 12343, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3232,7 +3232,7 @@ "type": "t_array(t_uint256)47_storage" }, { - "astId": 6653, + "astId": 6667, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "srcToken", "offset": 0, @@ -3240,7 +3240,7 @@ "type": "t_address" }, { - "astId": 6656, + "astId": 6670, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "srcChainId", "offset": 0, @@ -3248,7 +3248,7 @@ "type": "t_uint256" }, { - "astId": 6659, + "astId": 6673, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "symbol", "offset": 0, @@ -3256,7 +3256,7 @@ "type": "t_string_storage" }, { - "astId": 6662, + "astId": 6676, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "name", "offset": 0, @@ -3264,7 +3264,7 @@ "type": "t_string_storage" }, { - "astId": 6666, + "astId": 6680, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3360,7 +3360,7 @@ "SignalServiceImpl": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_initialized", "offset": 0, @@ -3368,7 +3368,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_initializing", "offset": 1, @@ -3376,7 +3376,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3384,7 +3384,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_owner", "offset": 0, @@ -3392,7 +3392,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3400,7 +3400,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_pendingOwner", "offset": 0, @@ -3408,7 +3408,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3416,7 +3416,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "addressManager", "offset": 0, @@ -3424,7 +3424,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3432,7 +3432,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__reentry", "offset": 0, @@ -3440,7 +3440,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__paused", "offset": 1, @@ -3448,7 +3448,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "lastUnpausedAt", "offset": 2, @@ -3456,7 +3456,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3464,7 +3464,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 5215, + "astId": 5229, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "topBlockId", "offset": 0, @@ -3472,7 +3472,7 @@ "type": "t_mapping(t_uint64,t_mapping(t_bytes32,t_uint64))" }, { - "astId": 5220, + "astId": 5234, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "isAuthorized", "offset": 0, @@ -3480,7 +3480,7 @@ "type": "t_mapping(t_address,t_bool)" }, { - "astId": 5224, + "astId": 5238, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3563,7 +3563,7 @@ "SignalService": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_initialized", "offset": 0, @@ -3571,7 +3571,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_initializing", "offset": 1, @@ -3579,7 +3579,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3587,7 +3587,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_owner", "offset": 0, @@ -3595,7 +3595,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3603,7 +3603,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_pendingOwner", "offset": 0, @@ -3611,7 +3611,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3619,7 +3619,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "addressManager", "offset": 0, @@ -3627,7 +3627,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3635,7 +3635,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__reentry", "offset": 0, @@ -3643,7 +3643,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__paused", "offset": 1, @@ -3651,7 +3651,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "lastUnpausedAt", "offset": 2, @@ -3659,7 +3659,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3667,7 +3667,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 5215, + "astId": 5229, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "topBlockId", "offset": 0, @@ -3675,7 +3675,7 @@ "type": "t_mapping(t_uint64,t_mapping(t_bytes32,t_uint64))" }, { - "astId": 5220, + "astId": 5234, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "isAuthorized", "offset": 0, @@ -3683,7 +3683,7 @@ "type": "t_mapping(t_address,t_bool)" }, { - "astId": 5224, + "astId": 5238, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3766,7 +3766,7 @@ "TaikoL2Impl": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_initialized", "offset": 0, @@ -3774,7 +3774,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_initializing", "offset": 1, @@ -3782,7 +3782,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -3790,7 +3790,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_owner", "offset": 0, @@ -3798,7 +3798,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -3806,7 +3806,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_pendingOwner", "offset": 0, @@ -3814,7 +3814,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -3822,7 +3822,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "addressManager", "offset": 0, @@ -3830,7 +3830,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -3838,7 +3838,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__reentry", "offset": 0, @@ -3846,7 +3846,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__paused", "offset": 1, @@ -3854,7 +3854,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "lastUnpausedAt", "offset": 2, @@ -3862,7 +3862,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -3995,7 +3995,7 @@ "TaikoL2": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_initialized", "offset": 0, @@ -4003,7 +4003,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_initializing", "offset": 1, @@ -4011,7 +4011,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -4019,7 +4019,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_owner", "offset": 0, @@ -4027,7 +4027,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -4035,7 +4035,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_pendingOwner", "offset": 0, @@ -4043,7 +4043,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -4051,7 +4051,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "addressManager", "offset": 0, @@ -4059,7 +4059,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -4067,7 +4067,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__reentry", "offset": 0, @@ -4075,7 +4075,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__paused", "offset": 1, @@ -4083,7 +4083,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "lastUnpausedAt", "offset": 2, @@ -4091,7 +4091,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -4224,7 +4224,7 @@ "RollupAddressManagerImpl": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initialized", "offset": 0, @@ -4232,7 +4232,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initializing", "offset": 1, @@ -4240,7 +4240,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4248,7 +4248,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_owner", "offset": 0, @@ -4256,7 +4256,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4264,7 +4264,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_pendingOwner", "offset": 0, @@ -4272,7 +4272,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4280,7 +4280,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "addressManager", "offset": 0, @@ -4288,7 +4288,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4296,7 +4296,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__reentry", "offset": 0, @@ -4304,7 +4304,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__paused", "offset": 1, @@ -4312,7 +4312,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "lastUnpausedAt", "offset": 2, @@ -4320,7 +4320,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4328,7 +4328,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3522, + "astId": 3536, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__addresses", "offset": 0, @@ -4336,7 +4336,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_bytes32,t_address))" }, { - "astId": 3526, + "astId": 3540, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4406,7 +4406,7 @@ "RollupAddressManager": { "storage": [ { - "astId": 10922, + "astId": 10936, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initialized", "offset": 0, @@ -4414,7 +4414,7 @@ "type": "t_uint8" }, { - "astId": 10925, + "astId": 10939, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initializing", "offset": 1, @@ -4422,7 +4422,7 @@ "type": "t_bool" }, { - "astId": 15756, + "astId": 15770, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4430,7 +4430,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10667, + "astId": 10681, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_owner", "offset": 0, @@ -4438,7 +4438,7 @@ "type": "t_address" }, { - "astId": 10787, + "astId": 10801, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4446,7 +4446,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10560, + "astId": 10574, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_pendingOwner", "offset": 0, @@ -4454,7 +4454,7 @@ "type": "t_address" }, { - "astId": 10654, + "astId": 10668, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4462,7 +4462,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3661, + "astId": 3675, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "addressManager", "offset": 0, @@ -4470,7 +4470,7 @@ "type": "t_address" }, { - "astId": 3665, + "astId": 3679, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4478,7 +4478,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3917, + "astId": 3931, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__reentry", "offset": 0, @@ -4486,7 +4486,7 @@ "type": "t_uint8" }, { - "astId": 3919, + "astId": 3933, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__paused", "offset": 1, @@ -4494,7 +4494,7 @@ "type": "t_uint8" }, { - "astId": 3921, + "astId": 3935, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "lastUnpausedAt", "offset": 2, @@ -4502,7 +4502,7 @@ "type": "t_uint64" }, { - "astId": 3925, + "astId": 3939, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4510,7 +4510,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3522, + "astId": 3536, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__addresses", "offset": 0, @@ -4518,7 +4518,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_bytes32,t_address))" }, { - "astId": 3526, + "astId": 3540, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4592,7 +4592,7 @@ "RegularERC20": { "storage": [ { - "astId": 20305, + "astId": 20319, "contract": "test/shared/token/RegularERC20.sol:RegularERC20", "label": "_balances", "offset": 0, @@ -4600,7 +4600,7 @@ "type": "t_mapping(t_address,t_uint256)" }, { - "astId": 20311, + "astId": 20325, "contract": "test/shared/token/RegularERC20.sol:RegularERC20", "label": "_allowances", "offset": 0, @@ -4608,7 +4608,7 @@ "type": "t_mapping(t_address,t_mapping(t_address,t_uint256))" }, { - "astId": 20313, + "astId": 20327, "contract": "test/shared/token/RegularERC20.sol:RegularERC20", "label": "_totalSupply", "offset": 0, @@ -4616,7 +4616,7 @@ "type": "t_uint256" }, { - "astId": 20315, + "astId": 20329, "contract": "test/shared/token/RegularERC20.sol:RegularERC20", "label": "_name", "offset": 0, @@ -4624,7 +4624,7 @@ "type": "t_string_storage" }, { - "astId": 20317, + "astId": 20331, "contract": "test/shared/token/RegularERC20.sol:RegularERC20", "label": "_symbol", "offset": 0, From 64e637506b793103720ea3ff9b6589bf86f1394d Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Wed, 18 Sep 2024 14:48:35 +0800 Subject: [PATCH 3/6] Update Bridge.sol --- packages/protocol/contracts/shared/bridge/Bridge.sol | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/protocol/contracts/shared/bridge/Bridge.sol b/packages/protocol/contracts/shared/bridge/Bridge.sol index 2ccf4eb70dd..1f6443a21e7 100644 --- a/packages/protocol/contracts/shared/bridge/Bridge.sol +++ b/packages/protocol/contracts/shared/bridge/Bridge.sol @@ -495,7 +495,9 @@ contract Bridge is EssentialContract, IBridge { returns (bool success_) { assert(_message.from != address(this)); + if (_message.data.length == 0) return true; + if (_gasLimit == 0) return false; _storeContext(_msgHash, _message.from, _message.srcChainId); From 6ec4927f92754a836bb79f795c18087cb929b211 Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Wed, 18 Sep 2024 18:14:06 +0800 Subject: [PATCH 4/6] Update Bridge.sol --- packages/protocol/contracts/shared/bridge/Bridge.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/protocol/contracts/shared/bridge/Bridge.sol b/packages/protocol/contracts/shared/bridge/Bridge.sol index 1f6443a21e7..7e5f1bbb20b 100644 --- a/packages/protocol/contracts/shared/bridge/Bridge.sol +++ b/packages/protocol/contracts/shared/bridge/Bridge.sol @@ -496,8 +496,8 @@ contract Bridge is EssentialContract, IBridge { { assert(_message.from != address(this)); - if (_message.data.length == 0) return true; - + if (_message.value == 0 && _message.data.length == 0) return true; + if (_gasLimit == 0) return false; _storeContext(_msgHash, _message.from, _message.srcChainId); From 5764fec2454561e3cf26a4948c1aeaf1bcde9a27 Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Wed, 18 Sep 2024 18:15:38 +0800 Subject: [PATCH 5/6] Update Bridge.sol --- packages/protocol/contracts/shared/bridge/Bridge.sol | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/protocol/contracts/shared/bridge/Bridge.sol b/packages/protocol/contracts/shared/bridge/Bridge.sol index 7e5f1bbb20b..d160c5a7436 100644 --- a/packages/protocol/contracts/shared/bridge/Bridge.sol +++ b/packages/protocol/contracts/shared/bridge/Bridge.sol @@ -637,8 +637,6 @@ contract Bridge is EssentialContract, IBridge { } function _messageCalldataCost(uint256 dataLength) private pure returns (uint32) { - if (dataLength == 0) return 0; - // The abi encoding of A = (Message calldata msg) is 10 * 32 bytes // + 32 bytes (A is a dynamic tuple, offset to first elements) // + 32 bytes (offset to last bytes element of Message) From 1de4866e0e38d40bb3218593992b59dcbdfd0e30 Mon Sep 17 00:00:00 2001 From: dantaik Date: Wed, 18 Sep 2024 10:18:37 +0000 Subject: [PATCH 6/6] forge fmt & update contract layout tables --- .../protocol/test/genesis/data/genesis.json | 2 +- .../test/genesis/data/genesis_alloc.json | 2 +- .../genesis/data/genesis_storage_layout.json | 806 +++++++++--------- 3 files changed, 405 insertions(+), 405 deletions(-) diff --git a/packages/protocol/test/genesis/data/genesis.json b/packages/protocol/test/genesis/data/genesis.json index d5cc52f2904..dd2018cf98e 100644 --- a/packages/protocol/test/genesis/data/genesis.json +++ b/packages/protocol/test/genesis/data/genesis.json @@ -62,7 +62,7 @@ "storage": { "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000df08f82de32b8d460adbe8d72043e3a7e25a3b39" }, - "code": "0x60806040526004361061021d575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba61461066b578063e30c3978146106a8578063eefbf17e146106c5578063f09a4016146106eb578063f2fde38b1461070a575f5ffd5b8063b8acae0e146105af578063be880c81146105ce578063c012fa77146105e4578063d0496d6a14610603578063d1aaa5df1461064b575f5ffd5b80638e3881a9116100ee5780638e3881a9146104fe578063913b16cb1461053c5780639efc7a2e1461055b578063a730cdfb1461057a578063a86f9d9e14610590575f5ffd5b806382b5e8891461049a5780638456cb59146104b95780638abf6077146104cd5780638da5cb5b146104e1575f5ffd5b80633f4ba83a116101aa5780635c975abb1161016f5780635c975abb146103ff57806360620c6b1461041f578063715018a61461043e57806379ba5097146104525780637cbadfaa14610466575f5ffd5b80633f4ba83a14610381578063422770fa146103955780634f1ef286146103b957806352d1902d146103cc5780635862f6e1146103e0575f5ffd5b80633075db56116101f05780633075db56146102ad5780633659cfe6146102d15780633ab76e9f146102f05780633c6cf473146103275780633eb6b8cf14610362575f5ffd5b80630432873c14610221578063069489a2146102425780631bdb0037146102565780632035065e14610280575b5f5ffd5b34801561022c575f5ffd5b5061024061023b366004612f58565b610729565b005b34801561024d575f5ffd5b50610240610a27565b610269610264366004612fa6565b610ade565b604051610277929190613132565b60405180910390f35b34801561028b575f5ffd5b5061029f61029a36600461314a565b610e94565b604051610277929190613207565b3480156102b8575f5ffd5b506102c1611344565b6040519015158152602001610277565b3480156102dc575f5ffd5b506102406102eb366004613256565b61135c565b3480156102fb575f5ffd5b5060975461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b348015610332575f5ffd5b50610355610341366004613271565b60fc6020525f908152604090205460ff1681565b6040516102779190613288565b34801561036d575f5ffd5b5061030f61037c3660046132ac565b611423565b34801561038c575f5ffd5b50610240611439565b3480156103a0575f5ffd5b506103ab62030d4081565b604051908152602001610277565b6102406103c73660046133af565b61144d565b3480156103d7575f5ffd5b506103ab611506565b3480156103eb575f5ffd5b506102c16103fa36600461314a565b6115b8565b34801561040a575f5ffd5b506102c160c954610100900460ff1660021490565b34801561042a575f5ffd5b506102c1610439366004612fa6565b611623565b348015610449575f5ffd5b506102406116f1565b34801561045d575f5ffd5b50610240611702565b348015610471575f5ffd5b50610485610480366004613271565b611779565b60405163ffffffff9091168152602001610277565b3480156104a5575f5ffd5b506102406104b4366004613256565b611791565b3480156104c4575f5ffd5b50610240611811565b3480156104d8575f5ffd5b5061030f611824565b3480156104ec575f5ffd5b506033546001600160a01b031661030f565b348015610509575f5ffd5b5061051d6105183660046133fb565b611832565b6040805192151583526001600160a01b03909116602083015201610277565b348015610547575f5ffd5b50610240610556366004612fa6565b61185e565b348015610566575f5ffd5b5061024061057536600461314a565b611a4d565b348015610585575f5ffd5b506104856201d4c081565b34801561059b575f5ffd5b5061030f6105aa366004613414565b611d51565b3480156105ba575f5ffd5b506102c16105c936600461314a565b611d5d565b3480156105d9575f5ffd5b50610485620c350081565b3480156105ef575f5ffd5b506103ab6105fe366004613537565b611dbe565b34801561060e575f5ffd5b50610617611ded565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610277565b348015610656575f5ffd5b506103ab610665366004613271565b60031890565b348015610676575f5ffd5b5060c954610690906201000090046001600160401b031681565b6040516001600160401b039091168152602001610277565b3480156106b3575f5ffd5b506065546001600160a01b031661030f565b3480156106d0575f5ffd5b5060fb5461069090600160401b90046001600160401b031681565b3480156106f6575f5ffd5b50610240610705366004613568565b611e94565b348015610715575f5ffd5b50610240610724366004613256565b611f5b565b61073960e0830160c084016133fb565b46816001600160401b03161461076257604051631c6c777560e31b815260040160405180910390fd5b61077260a08401608085016133fb565b6001600160401b0381161580610790575046816001600160401b0316145b156107ae57604051631c6c777560e31b815260040160405180910390fd5b6107c260c954610100900460ff1660021490565b156107e05760405163bae6e2a960e01b815260040160405180910390fd5b60026107ee60c95460ff1690565b60ff160361080f5760405163dfc60d8560e01b815260040160405180910390fd5b6108196002611fcc565b5f6108266105fe86613594565b9050610833816001611fe2565b610841856101200135612034565b61085e576040516335856fbd60e21b815260040160405180910390fd5b5f6108838661087e6d7369676e616c5f7365727669636560901b5f611d51565b6120d5565b156108ce576108c78661012001356188b860405180602001604052805f8152508960e00160208101906108b69190613256565b6001600160a01b03169291906121cc565b9050610948565b6108de606087016040880161359f565b63ffffffff1615806108ed5750845b801561091b5750610905610100870160e08801613256565b6001600160a01b0316336001600160a01b031614155b15610939576040516372b6e1c360e11b815260040160405180910390fd5b61094586835a5f612209565b90505b801561095e5761095982600261231e565b610a15565b84156109fc5761096f82600361231e565b61098a6d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156109d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f691906135b8565b50610a15565b60405163161e3ead60e01b815260040160405180910390fd5b5050610a216001611fcc565b50505050565b610a2f6123db565b5f54600290610100900460ff16158015610a4f57505f5460ff8083169116105b610a745760405162461bcd60e51b8152600401610a6b906135cf565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610b4460c0840160a08501613256565b6001600160a01b038116610b6b5760405163538ba4f960e01b815260040160405180910390fd5b610b7c610100850160e08601613256565b6001600160a01b038116610ba35760405163538ba4f960e01b815260040160405180910390fd5b610bb360e0860160c087016133fb565b6001600160401b0381161580610bd1575046816001600160401b0316145b15610bef57604051631c6c777560e31b815260040160405180910390fd5b610c0360c954610100900460ff1660021490565b15610c215760405163bae6e2a960e01b815260040160405180910390fd5b6002610c2f60c95460ff1690565b60ff1603610c505760405163dfc60d8560e01b815260040160405180910390fd5b610c5a6002611fcc565b610c6a606087016040880161359f565b63ffffffff165f03610cb257610c8660408701602088016133fb565b6001600160401b031615610cad5760405163c9f5178760e01b815260040160405180910390fd5b610cda565b610cbb86612435565b5f03610cda576040516308c2ad5360e01b815260040160405180910390fd5b5f610cee61051860e0890160c08a016133fb565b50905080610d0f57604051631c6c777560e31b815260040160405180910390fd5b34610d206040890160208a016133fb565b610d38906001600160401b03166101208a0135613631565b14610d5657604051634ac2abdf60e11b815260040160405180910390fd5b610d5f87613594565b60fb8054919650600160401b9091046001600160401b0316906008610d8383613644565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610dbe85611dbe565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610df0919061366e565b60405180910390a2610e136d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610e4091815260200190565b6020604051808303815f875af1158015610e5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8091906135b8565b5050610e8c6001611fcc565b505050915091565b5f5f610eaa60c954610100900460ff1660021490565b15610ec85760405163bae6e2a960e01b815260040160405180910390fd5b6002610ed660c95460ff1690565b60ff1603610ef75760405163dfc60d8560e01b815260040160405180910390fd5b610f016002611fcc565b5f5a905046610f1660e0880160c089016133fb565b6001600160401b031614610f3d57604051631c6c777560e31b815260040160405180910390fd5b610f4d60a08701608088016133fb565b6001600160401b03161580610f79575046610f6e60a08801608089016133fb565b6001600160401b0316145b15610f9757604051631c6c777560e31b815260040160405180910390fd5b604080516080810182525f808252602082018190529181018290526060810191909152610fcb610100880160e08901613256565b6001600160a01b031633148015606083015261103a57610ff1606088016040890161359f565b63ffffffff165f03611016576040516372b6e1c360e11b815260040160405180910390fd5b62030d4085111561103a57604051631e3b03c960e01b815260040160405180910390fd5b5f6110476105fe89613594565b9050611053815f611fe2565b5f61106f6d7369676e616c5f7365727669636560901b5f611d51565b63ffffffff881660208501529050611099818361109260a08d0160808e016133fb565b8b8b612488565b63ffffffff166040808501919091526110d8906110bb908b0160208c016133fb565b6110d3906001600160401b03166101208c0135613631565b612034565b6110f5576040516335856fbd60e21b815260040160405180910390fd5b5f6111008a836120d5565b1561111957506002955060019450610120890135611160565b5f8460600151611129575a611132565b6111328b612435565b90506111448b85838860600151612209565b1561115557600297505f965061115e565b60019750600296505b505b61117060408b0160208c016133fb565b6001600160401b0316156112c15761118e60408b0160208c016133fb565b6111a1906001600160401b031682613631565b9050836060015180156111c857506111bf60608b0160408c0161359f565b63ffffffff1615155b156112c157604084015163ffffffff16614e20025a6111f56111ee6101408e018e613680565b9050612533565b63ffffffff9081168801919091036201d4c00181168087525f91839161121e9183919061255b16565b0390505f61123260608e0160408f0161359f565b63ffffffff168d602001602081019061124b91906133fb565b6001600160401b0316830281611263576112636136c9565b0490505f48830290505f6112a78f602001602081019061128391906133fb565b6001600160401b03168484101561129f5784840160011c6112a1565b845b90612570565b958690039590506112bb33826188b8612584565b50505050505b6112e9816188b86112d96101008e0160e08f01613256565b6001600160a01b03169190612584565b6112f3838861231e565b827f8580f507761043ecdd2bdca084d6fb0109150b3d9842d854d34e3dea6d69387d8b86604051611325929190613861565b60405180910390a2505050505061133c6001611fcc565b935093915050565b5f600261135360c95460ff1690565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036113a45760405162461bcd60e51b8152600401610a6b906138b5565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166113d66125c7565b6001600160a01b0316146113fc5760405162461bcd60e51b8152600401610a6b90613901565b611405816125e2565b604080515f80825260208201909252611420918391906125ea565b50565b5f61142f848484612754565b90505b9392505050565b6114416127a6565b61144b335f612836565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036114955760405162461bcd60e51b8152600401610a6b906138b5565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166114c76125c7565b6001600160a01b0316146114ed5760405162461bcd60e51b8152600401610a6b90613901565b6114f6826125e2565b611502828260016125ea565b5050565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000116146115a55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a6b565b505f516020613b1b5f395f51905f525b90565b5f466115ca60a08601608087016133fb565b6001600160401b0316146115df57505f611432565b61142f6115fd6d7369676e616c5f7365727669636560901b5f611d51565b61160c6106656105fe88613594565b61161c60e0880160c089016133fb565b86866128e3565b5f4661163560a08401608085016133fb565b6001600160401b03161461164a57505f919050565b6116656d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166332676bc6306116806105fe86613594565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156116c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116eb919061394d565b92915050565b6116f96123db565b61144b5f612965565b60655433906001600160a01b031681146117705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a6b565b61142081612965565b5f620c350061178783612533565b6116eb9190613968565b806001600160a01b0381166117b95760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b1580156117f7575f5ffd5b505af1158015611809573d5f5f3e3d5ffd5b505050505050565b61181961297e565b61144b336001612836565b5f61182d6125c7565b905090565b5f5f611849836562726964676560d01b6001611423565b6001600160a01b038116151594909350915050565b61186e60e0820160c083016133fb565b46816001600160401b03161461189757604051631c6c777560e31b815260040160405180910390fd5b6118a760a08301608084016133fb565b6001600160401b03811615806118c5575046816001600160401b0316145b156118e357604051631c6c777560e31b815260040160405180910390fd5b6118f760c954610100900460ff1660021490565b156119155760405163bae6e2a960e01b815260040160405180910390fd5b600261192360c95460ff1690565b60ff16036119445760405163dfc60d8560e01b815260040160405180910390fd5b61194e6002611fcc565b61195f610100840160e08501613256565b6001600160a01b0316336001600160a01b031614611990576040516372b6e1c360e11b815260040160405180910390fd5b5f61199d6105fe85613594565b90506119aa816001611fe2565b6119b581600361231e565b6119d06d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af1158015611a18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3c91906135b8565b5050611a486001611fcc565b505050565b611a5d60a08401608085016133fb565b46816001600160401b031614611a8657604051631c6c777560e31b815260040160405180910390fd5b611a9660e0850160c086016133fb565b6001600160401b0381161580611ab4575046816001600160401b0316145b15611ad257604051631c6c777560e31b815260040160405180910390fd5b611ae660c954610100900460ff1660021490565b15611b045760405163bae6e2a960e01b815260040160405180910390fd5b6002611b1260c95460ff1690565b60ff1603611b335760405163dfc60d8560e01b815260040160405180910390fd5b611b3d6002611fcc565b5f611b4a6105fe87613594565b9050611b56815f611fe2565b5f611b726d7369676e616c5f7365727669636560901b5f611d51565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611bbe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be2919061394d565b611bff5760405163ab035ad560e01b815260040160405180910390fd5b611c1e8160038418611c1760e08b0160c08c016133fb565b8989612488565b50611c2a82600461231e565b611c38876101200135612034565b611c55576040516335856fbd60e21b815260040160405180910390fd5b611c7e62bc399d60e11b611c6f60808a0160608b01613256565b6001600160a01b0316906129ef565b15611d2257611c9d8230611c9860a08b0160808c016133fb565b612a7c565b611cad6080880160608901613256565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611ce0929190613984565b5f604051808303818588803b158015611cf7575f5ffd5b505af1158015611d09573d5f5f3e3d5ffd5b5050505050611d1d5f195f1b5f1980612a7c565b611d3e565b611d3e6101208801356188b86112d960c08b0160a08c01613256565b5050611d4a6001611fcc565b5050505050565b5f611432468484612754565b5f46611d6f60e0860160c087016133fb565b6001600160401b031614611d8457505f611432565b61142f611da26d7369676e616c5f7365727669636560901b5f611d51565b611dae6105fe87613594565b61161c60a08801608089016133fb565b5f81604051602001611dd091906139a5565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611e64604080516060810182525f8082526020820181905291810191909152506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b80519091501580611e76575080515f19145b156115b557604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611eb257505f54600160ff909116105b80611ecb5750303b158015611ecb57505f5460ff166001145b611ee75760405162461bcd60e51b8152600401610a6b906135cf565b5f805460ff191660011790558015611f08575f805461ff0019166101001790555b611f128383612ad1565b8015611a48575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611f636123db565b606580546001600160a01b0383166001600160a01b03199091168117909155611f946033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b806004811115611ff457611ff46131df565b5f83815260fc602052604090205460ff166004811115612016576120166131df565b14611502576040516319d893ad60e21b815260040160405180910390fd5b5f5f6120516c38bab7ba30afb6b0b730b3b2b960991b6001611d51565b90506001600160a01b03811661206a5750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b1580156120af575f5ffd5b505af19250505080156120c0575060015b6120cc57505f92915050565b50600192915050565b5f806120e961012085016101008601613256565b6001600160a01b0316036120ff575060016116eb565b3061211261012085016101008601613256565b6001600160a01b031603612128575060016116eb565b6001600160a01b03821661214461012085016101008601613256565b6001600160a01b03160361215a575060016116eb565b600461216a610140850185613680565b9050101580156121a15750637f07c94760e01b61218b610140850185613680565b612194916139db565b6001600160e01b03191614155b801561143257506114326121bd61012085016101008601613256565b6001600160a01b03163b151590565b5f6001600160a01b0385166121f457604051634c67134d60e11b815260040160405180910390fd5b5f5f835160208501878988f195945050505050565b5f3061221b6080870160608801613256565b6001600160a01b03160361223157612231613a13565b61223f610140860186613680565b90505f0361224f57506001612316565b825f0361225d57505f612316565b612281846122716080880160608901613256565b611c9860a0890160808a016133fb565b5f61229461012087016101008801613256565b90506101208601355f6122ab610140890189613680565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509384935083925090506020850186888cf194505a90508515612305576123058188612b0b565b6123115f198080612a7c565b505050505b949350505050565b806004811115612330576123306131df565b5f83815260fc602052604090205460ff166004811115612352576123526131df565b03612370576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff1916600183600481111561239a5761239a6131df565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516123cf9190613288565b60405180910390a25050565b6033546001600160a01b0316331461144b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a6b565b5f8061244f612448610140850185613680565b9050611779565b63ffffffff1690508061248061246b606086016040870161359f565b63ffffffff168361255b90919063ffffffff16565b039392505050565b5f856001600160a01b031663910af6ed856124ad876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b81526004016124d0959493929190613a27565b6020604051808303815f875af192505050801561250a575060408051601f3d908101601f19168201909252612507918101906135b8565b60015b612527576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f815f0361254257505f919050565b60046020601f8401046020026101a001901b9050919050565b5f8183116125695781611432565b5090919050565b5f81831161257e5782611432565b50919050565b815f0361259057505050565b6125aa83838360405180602001604052805f8152506121cc565b611a4857604051634c67134d60e11b815260040160405180910390fd5b5f516020613b1b5f395f51905f52546001600160a01b031690565b6114206123db565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561261d57611a4883612b1f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612677575060408051601f3d908101601f19168201909252612674918101906135b8565b60015b6126da5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a6b565b5f516020613b1b5f395f51905f5281146127485760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a6b565b50611a48838383612bba565b5f61275f8484612bde565b90508115801561277657506001600160a01b038116155b1561143257604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610a6b565b6127ba60c954610100900460ff1660021490565b6127d75760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b038381169116148061287e57506128696d636861696e5f7761746368646f6760901b6001611d51565b6001600160a01b0316826001600160a01b0316145b15612887575050565b8080156128c157506128ac6e6272696467655f7761746368646f6760881b6001611d51565b6001600160a01b0316826001600160a01b0316145b156128ca575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d082085612908876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b815260040161292b959493929190613a27565b5f6040518083038186803b158015612941575f5ffd5b505afa925050508015612952575060015b61295d57505f61252a565b50600161252a565b606580546001600160a01b031916905561142081612c80565b61299260c954610100900460ff1660021490565b156129b05760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200161282c565b5f6001600160a01b0383163b612a0657505f6116eb565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612a70575060408051601f3d908101601f19168201909252612a6d9181019061394d565b60015b156116eb579392505050565b604080516060810182528481526001600160a01b03909316602084018190526001600160401b03909216920182905260fd9290925560fe8054600160a01b9092026001600160e01b0319909216909217179055565b806001600160a01b038116612af95760405163538ba4f960e01b815260040160405180910390fd5b612b0283612cd1565b611a4882612d2f565b612b16603f82613a68565b82101561150257fe5b6001600160a01b0381163b612b8c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a6b565b5f516020613b1b5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612bc383612d9f565b5f82511180612bcf5750805b15611a4857610a218383612dde565b6097545f906001600160a01b031680612c0a57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612c5c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123169190613a87565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612cf75760405162461bcd60e51b8152600401610a6b90613aa2565b612cff612e03565b612d1d6001600160a01b03821615612d175781612965565b33612965565b5060c9805461ff001916610100179055565b5f54610100900460ff16612d555760405162461bcd60e51b8152600401610a6b90613aa2565b6001600160401b03461115612d7d5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b612da881612b1f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606114328383604051806060016040528060278152602001613b3b60279139612e29565b5f54610100900460ff1661144b5760405162461bcd60e51b8152600401610a6b90613aa2565b60605f5f856001600160a01b031685604051612e459190613aed565b5f60405180830381855af49150503d805f8114612e7d576040519150601f19603f3d011682016040523d82523d5f602084013e612e82565b606091505b5091509150612e9386838387612e9d565b9695505050505050565b60608315612f0b5782515f03612f04576001600160a01b0385163b612f045760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a6b565b5081612316565b6123168383815115612f205781518083602001fd5b8060405162461bcd60e51b8152600401610a6b9190613b08565b5f610160828403121561257e575f5ffd5b8015158114611420575f5ffd5b5f5f60408385031215612f69575f5ffd5b82356001600160401b03811115612f7e575f5ffd5b612f8a85828601612f3a565b9250506020830135612f9b81612f4b565b809150509250929050565b5f60208284031215612fb6575f5ffd5b81356001600160401b03811115612fcb575f5ffd5b61231684828501612f3a565b5f5b83811015612ff1578181015183820152602001612fd9565b50505f910152565b5f8151808452613010816020860160208601612fd7565b601f01601f19169290920160200192915050565b80516001600160401b031682525f602082015161304c60208501826001600160401b03169052565b506040820151613064604085018263ffffffff169052565b50606082015161307f60608501826001600160a01b03169052565b50608082015161309a60808501826001600160401b03169052565b5060a08201516130b560a08501826001600160a01b03169052565b5060c08201516130d060c08501826001600160401b03169052565b5060e08201516130eb60e08501826001600160a01b03169052565b506101008201516131086101008501826001600160a01b03169052565b50610120820151610120840152610140820151610160610140850152612316610160850182612ff9565b828152604060208201525f61142f6040830184613024565b5f5f5f6040848603121561315c575f5ffd5b83356001600160401b03811115613171575f5ffd5b61317d86828701612f3a565b93505060208401356001600160401b03811115613198575f5ffd5b8401601f810186136131a8575f5ffd5b80356001600160401b038111156131bd575f5ffd5b8660208284010111156131ce575f5ffd5b939660209190910195509293505050565b634e487b7160e01b5f52602160045260245ffd5b60058110613203576132036131df565b9052565b6040810161321582856131f3565b60048310613225576132256131df565b8260208301529392505050565b6001600160a01b0381168114611420575f5ffd5b803561325181613232565b919050565b5f60208284031215613266575f5ffd5b813561143281613232565b5f60208284031215613281575f5ffd5b5035919050565b602081016116eb82846131f3565b80356001600160401b0381168114613251575f5ffd5b5f5f5f606084860312156132be575f5ffd5b6132c784613296565b92506020840135915060408401356132de81612f4b565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b0381118282101715613320576133206132e9565b60405290565b5f82601f830112613335575f5ffd5b81356001600160401b0381111561334e5761334e6132e9565b604051601f8201601f19908116603f011681016001600160401b038111828210171561337c5761337c6132e9565b604052818152838201602001851015613393575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f604083850312156133c0575f5ffd5b82356133cb81613232565b915060208301356001600160401b038111156133e5575f5ffd5b6133f185828601613326565b9150509250929050565b5f6020828403121561340b575f5ffd5b61143282613296565b5f5f60408385031215613425575f5ffd5b823591506020830135612f9b81612f4b565b803563ffffffff81168114613251575f5ffd5b5f610160828403121561345b575f5ffd5b6134636132fd565b905061346e82613296565b815261347c60208301613296565b602082015261348d60408301613437565b604082015261349e60608301613246565b60608201526134af60808301613296565b60808201526134c060a08301613246565b60a08201526134d160c08301613296565b60c08201526134e260e08301613246565b60e08201526134f46101008301613246565b61010082015261012082810135908201526101408201356001600160401b0381111561351e575f5ffd5b61352a84828501613326565b6101408301525092915050565b5f60208284031215613547575f5ffd5b81356001600160401b0381111561355c575f5ffd5b6123168482850161344a565b5f5f60408385031215613579575f5ffd5b823561358481613232565b91506020830135612f9b81613232565b5f6116eb368361344a565b5f602082840312156135af575f5ffd5b61143282613437565b5f602082840312156135c8575f5ffd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156116eb576116eb61361d565b5f6001600160401b0382166001600160401b0381036136655761366561361d565b60010192915050565b602081525f6114326020830184613024565b5f5f8335601e19843603018112613695575f5ffd5b8301803591506001600160401b038211156136ae575f5ffd5b6020019150368190038213156136c2575f5ffd5b9250929050565b634e487b7160e01b5f52601260045260245ffd5b5f5f8335601e198436030181126136f2575f5ffd5b83016020810192503590506001600160401b03811115613710575f5ffd5b8036038213156136c2575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6137608261375383613296565b6001600160401b03169052565b5f61376d60208301613296565b6001600160401b0316602084015261378760408301613437565b63ffffffff16604084015261379e60608301613246565b6001600160a01b031660608401526137b860808301613296565b6001600160401b031660808401526137d260a08301613246565b6001600160a01b031660a08401526137ec60c08301613296565b6001600160401b031660c084015261380660e08301613246565b6001600160a01b031660e08401526138216101008301613246565b6001600160a01b031661010084015261012082810135908401526138496101408301836136dd565b61016061014086015261252a6101608601828461371e565b60a081525f61387360a0830185613746565b905063ffffffff835116602083015263ffffffff602084015116604083015263ffffffff60408401511660608301526060830151151560808301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f6020828403121561395d575f5ffd5b815161143281612f4b565b63ffffffff81811683821601908111156116eb576116eb61361d565b604081525f6139966040830185613746565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f6114326080830184613024565b80356001600160e01b03198116906004841015613a0c576001600160e01b0319600485900360031b81901b82161691505b5092915050565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f613a5d60808301848661371e565b979650505050505050565b5f82613a8257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613a97575f5ffd5b815161143281613232565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613afe818460208701612fd7565b9190910192915050565b602081525f6114326020830184612ff956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122084fbcf170d382f2ee5760a60219c83376819d2bb8672a54f40ab14453a5eda4064736f6c634300081b0033", + "code": "0x60806040526004361061021d575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba61461066b578063e30c3978146106a8578063eefbf17e146106c5578063f09a4016146106eb578063f2fde38b1461070a575f5ffd5b8063b8acae0e146105af578063be880c81146105ce578063c012fa77146105e4578063d0496d6a14610603578063d1aaa5df1461064b575f5ffd5b80638e3881a9116100ee5780638e3881a9146104fe578063913b16cb1461053c5780639efc7a2e1461055b578063a730cdfb1461057a578063a86f9d9e14610590575f5ffd5b806382b5e8891461049a5780638456cb59146104b95780638abf6077146104cd5780638da5cb5b146104e1575f5ffd5b80633f4ba83a116101aa5780635c975abb1161016f5780635c975abb146103ff57806360620c6b1461041f578063715018a61461043e57806379ba5097146104525780637cbadfaa14610466575f5ffd5b80633f4ba83a14610381578063422770fa146103955780634f1ef286146103b957806352d1902d146103cc5780635862f6e1146103e0575f5ffd5b80633075db56116101f05780633075db56146102ad5780633659cfe6146102d15780633ab76e9f146102f05780633c6cf473146103275780633eb6b8cf14610362575f5ffd5b80630432873c14610221578063069489a2146102425780631bdb0037146102565780632035065e14610280575b5f5ffd5b34801561022c575f5ffd5b5061024061023b366004612f67565b610729565b005b34801561024d575f5ffd5b50610240610a27565b610269610264366004612fb5565b610ade565b604051610277929190613141565b60405180910390f35b34801561028b575f5ffd5b5061029f61029a366004613159565b610e94565b604051610277929190613216565b3480156102b8575f5ffd5b506102c1611344565b6040519015158152602001610277565b3480156102dc575f5ffd5b506102406102eb366004613265565b61135c565b3480156102fb575f5ffd5b5060975461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b348015610332575f5ffd5b50610355610341366004613280565b60fc6020525f908152604090205460ff1681565b6040516102779190613297565b34801561036d575f5ffd5b5061030f61037c3660046132bb565b611423565b34801561038c575f5ffd5b50610240611439565b3480156103a0575f5ffd5b506103ab62030d4081565b604051908152602001610277565b6102406103c73660046133be565b61144d565b3480156103d7575f5ffd5b506103ab611506565b3480156103eb575f5ffd5b506102c16103fa366004613159565b6115b8565b34801561040a575f5ffd5b506102c160c954610100900460ff1660021490565b34801561042a575f5ffd5b506102c1610439366004612fb5565b611623565b348015610449575f5ffd5b506102406116f1565b34801561045d575f5ffd5b50610240611702565b348015610471575f5ffd5b50610485610480366004613280565b611779565b60405163ffffffff9091168152602001610277565b3480156104a5575f5ffd5b506102406104b4366004613265565b611791565b3480156104c4575f5ffd5b50610240611811565b3480156104d8575f5ffd5b5061030f611824565b3480156104ec575f5ffd5b506033546001600160a01b031661030f565b348015610509575f5ffd5b5061051d61051836600461340a565b611832565b6040805192151583526001600160a01b03909116602083015201610277565b348015610547575f5ffd5b50610240610556366004612fb5565b61185e565b348015610566575f5ffd5b50610240610575366004613159565b611a4d565b348015610585575f5ffd5b506104856201d4c081565b34801561059b575f5ffd5b5061030f6105aa366004613423565b611d51565b3480156105ba575f5ffd5b506102c16105c9366004613159565b611d5d565b3480156105d9575f5ffd5b50610485620c350081565b3480156105ef575f5ffd5b506103ab6105fe366004613546565b611dbe565b34801561060e575f5ffd5b50610617611ded565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610277565b348015610656575f5ffd5b506103ab610665366004613280565b60031890565b348015610676575f5ffd5b5060c954610690906201000090046001600160401b031681565b6040516001600160401b039091168152602001610277565b3480156106b3575f5ffd5b506065546001600160a01b031661030f565b3480156106d0575f5ffd5b5060fb5461069090600160401b90046001600160401b031681565b3480156106f6575f5ffd5b50610240610705366004613577565b611e94565b348015610715575f5ffd5b50610240610724366004613265565b611f5b565b61073960e0830160c0840161340a565b46816001600160401b03161461076257604051631c6c777560e31b815260040160405180910390fd5b61077260a084016080850161340a565b6001600160401b0381161580610790575046816001600160401b0316145b156107ae57604051631c6c777560e31b815260040160405180910390fd5b6107c260c954610100900460ff1660021490565b156107e05760405163bae6e2a960e01b815260040160405180910390fd5b60026107ee60c95460ff1690565b60ff160361080f5760405163dfc60d8560e01b815260040160405180910390fd5b6108196002611fcc565b5f6108266105fe866135a3565b9050610833816001611fe2565b610841856101200135612034565b61085e576040516335856fbd60e21b815260040160405180910390fd5b5f6108838661087e6d7369676e616c5f7365727669636560901b5f611d51565b6120d5565b156108ce576108c78661012001356188b860405180602001604052805f8152508960e00160208101906108b69190613265565b6001600160a01b03169291906121cc565b9050610948565b6108de60608701604088016135ae565b63ffffffff1615806108ed5750845b801561091b5750610905610100870160e08801613265565b6001600160a01b0316336001600160a01b031614155b15610939576040516372b6e1c360e11b815260040160405180910390fd5b61094586835a5f612209565b90505b801561095e5761095982600261232d565b610a15565b84156109fc5761096f82600361232d565b61098a6d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156109d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f691906135c7565b50610a15565b60405163161e3ead60e01b815260040160405180910390fd5b5050610a216001611fcc565b50505050565b610a2f6123ea565b5f54600290610100900460ff16158015610a4f57505f5460ff8083169116105b610a745760405162461bcd60e51b8152600401610a6b906135de565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610b4460c0840160a08501613265565b6001600160a01b038116610b6b5760405163538ba4f960e01b815260040160405180910390fd5b610b7c610100850160e08601613265565b6001600160a01b038116610ba35760405163538ba4f960e01b815260040160405180910390fd5b610bb360e0860160c0870161340a565b6001600160401b0381161580610bd1575046816001600160401b0316145b15610bef57604051631c6c777560e31b815260040160405180910390fd5b610c0360c954610100900460ff1660021490565b15610c215760405163bae6e2a960e01b815260040160405180910390fd5b6002610c2f60c95460ff1690565b60ff1603610c505760405163dfc60d8560e01b815260040160405180910390fd5b610c5a6002611fcc565b610c6a60608701604088016135ae565b63ffffffff165f03610cb257610c86604087016020880161340a565b6001600160401b031615610cad5760405163c9f5178760e01b815260040160405180910390fd5b610cda565b610cbb86612444565b5f03610cda576040516308c2ad5360e01b815260040160405180910390fd5b5f610cee61051860e0890160c08a0161340a565b50905080610d0f57604051631c6c777560e31b815260040160405180910390fd5b34610d206040890160208a0161340a565b610d38906001600160401b03166101208a0135613640565b14610d5657604051634ac2abdf60e11b815260040160405180910390fd5b610d5f876135a3565b60fb8054919650600160401b9091046001600160401b0316906008610d8383613653565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610dbe85611dbe565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610df0919061367d565b60405180910390a2610e136d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610e4091815260200190565b6020604051808303815f875af1158015610e5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8091906135c7565b5050610e8c6001611fcc565b505050915091565b5f5f610eaa60c954610100900460ff1660021490565b15610ec85760405163bae6e2a960e01b815260040160405180910390fd5b6002610ed660c95460ff1690565b60ff1603610ef75760405163dfc60d8560e01b815260040160405180910390fd5b610f016002611fcc565b5f5a905046610f1660e0880160c0890161340a565b6001600160401b031614610f3d57604051631c6c777560e31b815260040160405180910390fd5b610f4d60a087016080880161340a565b6001600160401b03161580610f79575046610f6e60a088016080890161340a565b6001600160401b0316145b15610f9757604051631c6c777560e31b815260040160405180910390fd5b604080516080810182525f808252602082018190529181018290526060810191909152610fcb610100880160e08901613265565b6001600160a01b031633148015606083015261103a57610ff160608801604089016135ae565b63ffffffff165f03611016576040516372b6e1c360e11b815260040160405180910390fd5b62030d4085111561103a57604051631e3b03c960e01b815260040160405180910390fd5b5f6110476105fe896135a3565b9050611053815f611fe2565b5f61106f6d7369676e616c5f7365727669636560901b5f611d51565b63ffffffff881660208501529050611099818361109260a08d0160808e0161340a565b8b8b612497565b63ffffffff166040808501919091526110d8906110bb908b0160208c0161340a565b6110d3906001600160401b03166101208c0135613640565b612034565b6110f5576040516335856fbd60e21b815260040160405180910390fd5b5f6111008a836120d5565b1561111957506002955060019450610120890135611160565b5f8460600151611129575a611132565b6111328b612444565b90506111448b85838860600151612209565b1561115557600297505f965061115e565b60019750600296505b505b61117060408b0160208c0161340a565b6001600160401b0316156112c15761118e60408b0160208c0161340a565b6111a1906001600160401b031682613640565b9050836060015180156111c857506111bf60608b0160408c016135ae565b63ffffffff1615155b156112c157604084015163ffffffff16614e20025a6111f56111ee6101408e018e61368f565b9050612542565b63ffffffff9081168801919091036201d4c00181168087525f91839161121e9183919061256a16565b0390505f61123260608e0160408f016135ae565b63ffffffff168d602001602081019061124b919061340a565b6001600160401b0316830281611263576112636136d8565b0490505f48830290505f6112a78f6020016020810190611283919061340a565b6001600160401b03168484101561129f5784840160011c6112a1565b845b9061257f565b958690039590506112bb33826188b8612593565b50505050505b6112e9816188b86112d96101008e0160e08f01613265565b6001600160a01b03169190612593565b6112f3838861232d565b827f8580f507761043ecdd2bdca084d6fb0109150b3d9842d854d34e3dea6d69387d8b86604051611325929190613870565b60405180910390a2505050505061133c6001611fcc565b935093915050565b5f600261135360c95460ff1690565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036113a45760405162461bcd60e51b8152600401610a6b906138c4565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166113d66125d6565b6001600160a01b0316146113fc5760405162461bcd60e51b8152600401610a6b90613910565b611405816125f1565b604080515f80825260208201909252611420918391906125f9565b50565b5f61142f848484612763565b90505b9392505050565b6114416127b5565b61144b335f612845565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036114955760405162461bcd60e51b8152600401610a6b906138c4565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166114c76125d6565b6001600160a01b0316146114ed5760405162461bcd60e51b8152600401610a6b90613910565b6114f6826125f1565b611502828260016125f9565b5050565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000116146115a55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a6b565b505f516020613b2a5f395f51905f525b90565b5f466115ca60a086016080870161340a565b6001600160401b0316146115df57505f611432565b61142f6115fd6d7369676e616c5f7365727669636560901b5f611d51565b61160c6106656105fe886135a3565b61161c60e0880160c0890161340a565b86866128f2565b5f4661163560a084016080850161340a565b6001600160401b03161461164a57505f919050565b6116656d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166332676bc6306116806105fe866135a3565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156116c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116eb919061395c565b92915050565b6116f96123ea565b61144b5f612974565b60655433906001600160a01b031681146117705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a6b565b61142081612974565b5f620c350061178783612542565b6116eb9190613977565b806001600160a01b0381166117b95760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b1580156117f7575f5ffd5b505af1158015611809573d5f5f3e3d5ffd5b505050505050565b61181961298d565b61144b336001612845565b5f61182d6125d6565b905090565b5f5f611849836562726964676560d01b6001611423565b6001600160a01b038116151594909350915050565b61186e60e0820160c0830161340a565b46816001600160401b03161461189757604051631c6c777560e31b815260040160405180910390fd5b6118a760a083016080840161340a565b6001600160401b03811615806118c5575046816001600160401b0316145b156118e357604051631c6c777560e31b815260040160405180910390fd5b6118f760c954610100900460ff1660021490565b156119155760405163bae6e2a960e01b815260040160405180910390fd5b600261192360c95460ff1690565b60ff16036119445760405163dfc60d8560e01b815260040160405180910390fd5b61194e6002611fcc565b61195f610100840160e08501613265565b6001600160a01b0316336001600160a01b031614611990576040516372b6e1c360e11b815260040160405180910390fd5b5f61199d6105fe856135a3565b90506119aa816001611fe2565b6119b581600361232d565b6119d06d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af1158015611a18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3c91906135c7565b5050611a486001611fcc565b505050565b611a5d60a084016080850161340a565b46816001600160401b031614611a8657604051631c6c777560e31b815260040160405180910390fd5b611a9660e0850160c0860161340a565b6001600160401b0381161580611ab4575046816001600160401b0316145b15611ad257604051631c6c777560e31b815260040160405180910390fd5b611ae660c954610100900460ff1660021490565b15611b045760405163bae6e2a960e01b815260040160405180910390fd5b6002611b1260c95460ff1690565b60ff1603611b335760405163dfc60d8560e01b815260040160405180910390fd5b611b3d6002611fcc565b5f611b4a6105fe876135a3565b9050611b56815f611fe2565b5f611b726d7369676e616c5f7365727669636560901b5f611d51565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611bbe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be2919061395c565b611bff5760405163ab035ad560e01b815260040160405180910390fd5b611c1e8160038418611c1760e08b0160c08c0161340a565b8989612497565b50611c2a82600461232d565b611c38876101200135612034565b611c55576040516335856fbd60e21b815260040160405180910390fd5b611c7e62bc399d60e11b611c6f60808a0160608b01613265565b6001600160a01b0316906129fe565b15611d2257611c9d8230611c9860a08b0160808c0161340a565b612a8b565b611cad6080880160608901613265565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611ce0929190613993565b5f604051808303818588803b158015611cf7575f5ffd5b505af1158015611d09573d5f5f3e3d5ffd5b5050505050611d1d5f195f1b5f1980612a8b565b611d3e565b611d3e6101208801356188b86112d960c08b0160a08c01613265565b5050611d4a6001611fcc565b5050505050565b5f611432468484612763565b5f46611d6f60e0860160c0870161340a565b6001600160401b031614611d8457505f611432565b61142f611da26d7369676e616c5f7365727669636560901b5f611d51565b611dae6105fe876135a3565b61161c60a088016080890161340a565b5f81604051602001611dd091906139b4565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611e64604080516060810182525f8082526020820181905291810191909152506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b80519091501580611e76575080515f19145b156115b557604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611eb257505f54600160ff909116105b80611ecb5750303b158015611ecb57505f5460ff166001145b611ee75760405162461bcd60e51b8152600401610a6b906135de565b5f805460ff191660011790558015611f08575f805461ff0019166101001790555b611f128383612ae0565b8015611a48575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611f636123ea565b606580546001600160a01b0383166001600160a01b03199091168117909155611f946033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b806004811115611ff457611ff46131ee565b5f83815260fc602052604090205460ff166004811115612016576120166131ee565b14611502576040516319d893ad60e21b815260040160405180910390fd5b5f5f6120516c38bab7ba30afb6b0b730b3b2b960991b6001611d51565b90506001600160a01b03811661206a5750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b1580156120af575f5ffd5b505af19250505080156120c0575060015b6120cc57505f92915050565b50600192915050565b5f806120e961012085016101008601613265565b6001600160a01b0316036120ff575060016116eb565b3061211261012085016101008601613265565b6001600160a01b031603612128575060016116eb565b6001600160a01b03821661214461012085016101008601613265565b6001600160a01b03160361215a575060016116eb565b600461216a61014085018561368f565b9050101580156121a15750637f07c94760e01b61218b61014085018561368f565b612194916139ea565b6001600160e01b03191614155b801561143257506114326121bd61012085016101008601613265565b6001600160a01b03163b151590565b5f6001600160a01b0385166121f457604051634c67134d60e11b815260040160405180910390fd5b5f5f835160208501878988f195945050505050565b5f3061221b6080870160608801613265565b6001600160a01b03160361223157612231613a22565b610120850135158015612251575061224d61014086018661368f565b1590505b1561225e57506001612325565b825f0361226c57505f612325565b612290846122806080880160608901613265565b611c9860a0890160808a0161340a565b5f6122a361012087016101008801613265565b90506101208601355f6122ba61014089018961368f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509384935083925090506020850186888cf194505a90508515612314576123148188612b1a565b6123205f198080612a8b565b505050505b949350505050565b80600481111561233f5761233f6131ee565b5f83815260fc602052604090205460ff166004811115612361576123616131ee565b0361237f576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff191660018360048111156123a9576123a96131ee565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516123de9190613297565b60405180910390a25050565b6033546001600160a01b0316331461144b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a6b565b5f8061245e61245761014085018561368f565b9050611779565b63ffffffff1690508061248f61247a60608601604087016135ae565b63ffffffff168361256a90919063ffffffff16565b039392505050565b5f856001600160a01b031663910af6ed856124bc876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b81526004016124df959493929190613a36565b6020604051808303815f875af1925050508015612519575060408051601f3d908101601f19168201909252612516918101906135c7565b60015b612536576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f815f0361255157505f919050565b60046020601f8401046020026101a001901b9050919050565b5f8183116125785781611432565b5090919050565b5f81831161258d5782611432565b50919050565b815f0361259f57505050565b6125b983838360405180602001604052805f8152506121cc565b611a4857604051634c67134d60e11b815260040160405180910390fd5b5f516020613b2a5f395f51905f52546001600160a01b031690565b6114206123ea565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561262c57611a4883612b2e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612686575060408051601f3d908101601f19168201909252612683918101906135c7565b60015b6126e95760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a6b565b5f516020613b2a5f395f51905f5281146127575760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a6b565b50611a48838383612bc9565b5f61276e8484612bed565b90508115801561278557506001600160a01b038116155b1561143257604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610a6b565b6127c960c954610100900460ff1660021490565b6127e65760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b038381169116148061288d57506128786d636861696e5f7761746368646f6760901b6001611d51565b6001600160a01b0316826001600160a01b0316145b15612896575050565b8080156128d057506128bb6e6272696467655f7761746368646f6760881b6001611d51565b6001600160a01b0316826001600160a01b0316145b156128d9575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d082085612917876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b815260040161293a959493929190613a36565b5f6040518083038186803b158015612950575f5ffd5b505afa925050508015612961575060015b61296c57505f612539565b506001612539565b606580546001600160a01b031916905561142081612c8f565b6129a160c954610100900460ff1660021490565b156129bf5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200161283b565b5f6001600160a01b0383163b612a1557505f6116eb565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612a7f575060408051601f3d908101601f19168201909252612a7c9181019061395c565b60015b156116eb579392505050565b604080516060810182528481526001600160a01b03909316602084018190526001600160401b03909216920182905260fd9290925560fe8054600160a01b9092026001600160e01b0319909216909217179055565b806001600160a01b038116612b085760405163538ba4f960e01b815260040160405180910390fd5b612b1183612ce0565b611a4882612d3e565b612b25603f82613a77565b82101561150257fe5b6001600160a01b0381163b612b9b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a6b565b5f516020613b2a5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612bd283612dae565b5f82511180612bde5750805b15611a4857610a218383612ded565b6097545f906001600160a01b031680612c1957604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612c6b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123259190613a96565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612d065760405162461bcd60e51b8152600401610a6b90613ab1565b612d0e612e12565b612d2c6001600160a01b03821615612d265781612974565b33612974565b5060c9805461ff001916610100179055565b5f54610100900460ff16612d645760405162461bcd60e51b8152600401610a6b90613ab1565b6001600160401b03461115612d8c5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b612db781612b2e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606114328383604051806060016040528060278152602001613b4a60279139612e38565b5f54610100900460ff1661144b5760405162461bcd60e51b8152600401610a6b90613ab1565b60605f5f856001600160a01b031685604051612e549190613afc565b5f60405180830381855af49150503d805f8114612e8c576040519150601f19603f3d011682016040523d82523d5f602084013e612e91565b606091505b5091509150612ea286838387612eac565b9695505050505050565b60608315612f1a5782515f03612f13576001600160a01b0385163b612f135760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a6b565b5081612325565b6123258383815115612f2f5781518083602001fd5b8060405162461bcd60e51b8152600401610a6b9190613b17565b5f610160828403121561258d575f5ffd5b8015158114611420575f5ffd5b5f5f60408385031215612f78575f5ffd5b82356001600160401b03811115612f8d575f5ffd5b612f9985828601612f49565b9250506020830135612faa81612f5a565b809150509250929050565b5f60208284031215612fc5575f5ffd5b81356001600160401b03811115612fda575f5ffd5b61232584828501612f49565b5f5b83811015613000578181015183820152602001612fe8565b50505f910152565b5f815180845261301f816020860160208601612fe6565b601f01601f19169290920160200192915050565b80516001600160401b031682525f602082015161305b60208501826001600160401b03169052565b506040820151613073604085018263ffffffff169052565b50606082015161308e60608501826001600160a01b03169052565b5060808201516130a960808501826001600160401b03169052565b5060a08201516130c460a08501826001600160a01b03169052565b5060c08201516130df60c08501826001600160401b03169052565b5060e08201516130fa60e08501826001600160a01b03169052565b506101008201516131176101008501826001600160a01b03169052565b50610120820151610120840152610140820151610160610140850152612325610160850182613008565b828152604060208201525f61142f6040830184613033565b5f5f5f6040848603121561316b575f5ffd5b83356001600160401b03811115613180575f5ffd5b61318c86828701612f49565b93505060208401356001600160401b038111156131a7575f5ffd5b8401601f810186136131b7575f5ffd5b80356001600160401b038111156131cc575f5ffd5b8660208284010111156131dd575f5ffd5b939660209190910195509293505050565b634e487b7160e01b5f52602160045260245ffd5b60058110613212576132126131ee565b9052565b604081016132248285613202565b60048310613234576132346131ee565b8260208301529392505050565b6001600160a01b0381168114611420575f5ffd5b803561326081613241565b919050565b5f60208284031215613275575f5ffd5b813561143281613241565b5f60208284031215613290575f5ffd5b5035919050565b602081016116eb8284613202565b80356001600160401b0381168114613260575f5ffd5b5f5f5f606084860312156132cd575f5ffd5b6132d6846132a5565b92506020840135915060408401356132ed81612f5a565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b038111828210171561332f5761332f6132f8565b60405290565b5f82601f830112613344575f5ffd5b81356001600160401b0381111561335d5761335d6132f8565b604051601f8201601f19908116603f011681016001600160401b038111828210171561338b5761338b6132f8565b6040528181528382016020018510156133a2575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f604083850312156133cf575f5ffd5b82356133da81613241565b915060208301356001600160401b038111156133f4575f5ffd5b61340085828601613335565b9150509250929050565b5f6020828403121561341a575f5ffd5b611432826132a5565b5f5f60408385031215613434575f5ffd5b823591506020830135612faa81612f5a565b803563ffffffff81168114613260575f5ffd5b5f610160828403121561346a575f5ffd5b61347261330c565b905061347d826132a5565b815261348b602083016132a5565b602082015261349c60408301613446565b60408201526134ad60608301613255565b60608201526134be608083016132a5565b60808201526134cf60a08301613255565b60a08201526134e060c083016132a5565b60c08201526134f160e08301613255565b60e08201526135036101008301613255565b61010082015261012082810135908201526101408201356001600160401b0381111561352d575f5ffd5b61353984828501613335565b6101408301525092915050565b5f60208284031215613556575f5ffd5b81356001600160401b0381111561356b575f5ffd5b61232584828501613459565b5f5f60408385031215613588575f5ffd5b823561359381613241565b91506020830135612faa81613241565b5f6116eb3683613459565b5f602082840312156135be575f5ffd5b61143282613446565b5f602082840312156135d7575f5ffd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156116eb576116eb61362c565b5f6001600160401b0382166001600160401b0381036136745761367461362c565b60010192915050565b602081525f6114326020830184613033565b5f5f8335601e198436030181126136a4575f5ffd5b8301803591506001600160401b038211156136bd575f5ffd5b6020019150368190038213156136d1575f5ffd5b9250929050565b634e487b7160e01b5f52601260045260245ffd5b5f5f8335601e19843603018112613701575f5ffd5b83016020810192503590506001600160401b0381111561371f575f5ffd5b8036038213156136d1575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b61376f82613762836132a5565b6001600160401b03169052565b5f61377c602083016132a5565b6001600160401b0316602084015261379660408301613446565b63ffffffff1660408401526137ad60608301613255565b6001600160a01b031660608401526137c7608083016132a5565b6001600160401b031660808401526137e160a08301613255565b6001600160a01b031660a08401526137fb60c083016132a5565b6001600160401b031660c084015261381560e08301613255565b6001600160a01b031660e08401526138306101008301613255565b6001600160a01b031661010084015261012082810135908401526138586101408301836136ec565b6101606101408601526125396101608601828461372d565b60a081525f61388260a0830185613755565b905063ffffffff835116602083015263ffffffff602084015116604083015263ffffffff60408401511660608301526060830151151560808301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f6020828403121561396c575f5ffd5b815161143281612f5a565b63ffffffff81811683821601908111156116eb576116eb61362c565b604081525f6139a56040830185613755565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f6114326080830184613033565b80356001600160e01b03198116906004841015613a1b576001600160e01b0319600485900360031b81901b82161691505b5092915050565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f613a6c60808301848661372d565b979650505050505050565b5f82613a9157634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613aa6575f5ffd5b815161143281613241565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613b0d818460208701612fe6565b9190910192915050565b602081525f611432602083018461300856fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206ccb67f04aaf63488576bbb651d54656794e2eac08c3401a79a0cda25cd7f6e664736f6c634300081b0033", "balance": "0x0" }, "0x1670000000000000000000000000000000000001": { diff --git a/packages/protocol/test/genesis/data/genesis_alloc.json b/packages/protocol/test/genesis/data/genesis_alloc.json index 40c18c53c28..f1a0cdd0d91 100644 --- a/packages/protocol/test/genesis/data/genesis_alloc.json +++ b/packages/protocol/test/genesis/data/genesis_alloc.json @@ -37,7 +37,7 @@ "storage": { "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000df08f82de32b8d460adbe8d72043e3a7e25a3b39" }, - "code": "0x60806040526004361061021d575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba61461066b578063e30c3978146106a8578063eefbf17e146106c5578063f09a4016146106eb578063f2fde38b1461070a575f5ffd5b8063b8acae0e146105af578063be880c81146105ce578063c012fa77146105e4578063d0496d6a14610603578063d1aaa5df1461064b575f5ffd5b80638e3881a9116100ee5780638e3881a9146104fe578063913b16cb1461053c5780639efc7a2e1461055b578063a730cdfb1461057a578063a86f9d9e14610590575f5ffd5b806382b5e8891461049a5780638456cb59146104b95780638abf6077146104cd5780638da5cb5b146104e1575f5ffd5b80633f4ba83a116101aa5780635c975abb1161016f5780635c975abb146103ff57806360620c6b1461041f578063715018a61461043e57806379ba5097146104525780637cbadfaa14610466575f5ffd5b80633f4ba83a14610381578063422770fa146103955780634f1ef286146103b957806352d1902d146103cc5780635862f6e1146103e0575f5ffd5b80633075db56116101f05780633075db56146102ad5780633659cfe6146102d15780633ab76e9f146102f05780633c6cf473146103275780633eb6b8cf14610362575f5ffd5b80630432873c14610221578063069489a2146102425780631bdb0037146102565780632035065e14610280575b5f5ffd5b34801561022c575f5ffd5b5061024061023b366004612f58565b610729565b005b34801561024d575f5ffd5b50610240610a27565b610269610264366004612fa6565b610ade565b604051610277929190613132565b60405180910390f35b34801561028b575f5ffd5b5061029f61029a36600461314a565b610e94565b604051610277929190613207565b3480156102b8575f5ffd5b506102c1611344565b6040519015158152602001610277565b3480156102dc575f5ffd5b506102406102eb366004613256565b61135c565b3480156102fb575f5ffd5b5060975461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b348015610332575f5ffd5b50610355610341366004613271565b60fc6020525f908152604090205460ff1681565b6040516102779190613288565b34801561036d575f5ffd5b5061030f61037c3660046132ac565b611423565b34801561038c575f5ffd5b50610240611439565b3480156103a0575f5ffd5b506103ab62030d4081565b604051908152602001610277565b6102406103c73660046133af565b61144d565b3480156103d7575f5ffd5b506103ab611506565b3480156103eb575f5ffd5b506102c16103fa36600461314a565b6115b8565b34801561040a575f5ffd5b506102c160c954610100900460ff1660021490565b34801561042a575f5ffd5b506102c1610439366004612fa6565b611623565b348015610449575f5ffd5b506102406116f1565b34801561045d575f5ffd5b50610240611702565b348015610471575f5ffd5b50610485610480366004613271565b611779565b60405163ffffffff9091168152602001610277565b3480156104a5575f5ffd5b506102406104b4366004613256565b611791565b3480156104c4575f5ffd5b50610240611811565b3480156104d8575f5ffd5b5061030f611824565b3480156104ec575f5ffd5b506033546001600160a01b031661030f565b348015610509575f5ffd5b5061051d6105183660046133fb565b611832565b6040805192151583526001600160a01b03909116602083015201610277565b348015610547575f5ffd5b50610240610556366004612fa6565b61185e565b348015610566575f5ffd5b5061024061057536600461314a565b611a4d565b348015610585575f5ffd5b506104856201d4c081565b34801561059b575f5ffd5b5061030f6105aa366004613414565b611d51565b3480156105ba575f5ffd5b506102c16105c936600461314a565b611d5d565b3480156105d9575f5ffd5b50610485620c350081565b3480156105ef575f5ffd5b506103ab6105fe366004613537565b611dbe565b34801561060e575f5ffd5b50610617611ded565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610277565b348015610656575f5ffd5b506103ab610665366004613271565b60031890565b348015610676575f5ffd5b5060c954610690906201000090046001600160401b031681565b6040516001600160401b039091168152602001610277565b3480156106b3575f5ffd5b506065546001600160a01b031661030f565b3480156106d0575f5ffd5b5060fb5461069090600160401b90046001600160401b031681565b3480156106f6575f5ffd5b50610240610705366004613568565b611e94565b348015610715575f5ffd5b50610240610724366004613256565b611f5b565b61073960e0830160c084016133fb565b46816001600160401b03161461076257604051631c6c777560e31b815260040160405180910390fd5b61077260a08401608085016133fb565b6001600160401b0381161580610790575046816001600160401b0316145b156107ae57604051631c6c777560e31b815260040160405180910390fd5b6107c260c954610100900460ff1660021490565b156107e05760405163bae6e2a960e01b815260040160405180910390fd5b60026107ee60c95460ff1690565b60ff160361080f5760405163dfc60d8560e01b815260040160405180910390fd5b6108196002611fcc565b5f6108266105fe86613594565b9050610833816001611fe2565b610841856101200135612034565b61085e576040516335856fbd60e21b815260040160405180910390fd5b5f6108838661087e6d7369676e616c5f7365727669636560901b5f611d51565b6120d5565b156108ce576108c78661012001356188b860405180602001604052805f8152508960e00160208101906108b69190613256565b6001600160a01b03169291906121cc565b9050610948565b6108de606087016040880161359f565b63ffffffff1615806108ed5750845b801561091b5750610905610100870160e08801613256565b6001600160a01b0316336001600160a01b031614155b15610939576040516372b6e1c360e11b815260040160405180910390fd5b61094586835a5f612209565b90505b801561095e5761095982600261231e565b610a15565b84156109fc5761096f82600361231e565b61098a6d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156109d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f691906135b8565b50610a15565b60405163161e3ead60e01b815260040160405180910390fd5b5050610a216001611fcc565b50505050565b610a2f6123db565b5f54600290610100900460ff16158015610a4f57505f5460ff8083169116105b610a745760405162461bcd60e51b8152600401610a6b906135cf565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610b4460c0840160a08501613256565b6001600160a01b038116610b6b5760405163538ba4f960e01b815260040160405180910390fd5b610b7c610100850160e08601613256565b6001600160a01b038116610ba35760405163538ba4f960e01b815260040160405180910390fd5b610bb360e0860160c087016133fb565b6001600160401b0381161580610bd1575046816001600160401b0316145b15610bef57604051631c6c777560e31b815260040160405180910390fd5b610c0360c954610100900460ff1660021490565b15610c215760405163bae6e2a960e01b815260040160405180910390fd5b6002610c2f60c95460ff1690565b60ff1603610c505760405163dfc60d8560e01b815260040160405180910390fd5b610c5a6002611fcc565b610c6a606087016040880161359f565b63ffffffff165f03610cb257610c8660408701602088016133fb565b6001600160401b031615610cad5760405163c9f5178760e01b815260040160405180910390fd5b610cda565b610cbb86612435565b5f03610cda576040516308c2ad5360e01b815260040160405180910390fd5b5f610cee61051860e0890160c08a016133fb565b50905080610d0f57604051631c6c777560e31b815260040160405180910390fd5b34610d206040890160208a016133fb565b610d38906001600160401b03166101208a0135613631565b14610d5657604051634ac2abdf60e11b815260040160405180910390fd5b610d5f87613594565b60fb8054919650600160401b9091046001600160401b0316906008610d8383613644565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610dbe85611dbe565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610df0919061366e565b60405180910390a2610e136d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610e4091815260200190565b6020604051808303815f875af1158015610e5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8091906135b8565b5050610e8c6001611fcc565b505050915091565b5f5f610eaa60c954610100900460ff1660021490565b15610ec85760405163bae6e2a960e01b815260040160405180910390fd5b6002610ed660c95460ff1690565b60ff1603610ef75760405163dfc60d8560e01b815260040160405180910390fd5b610f016002611fcc565b5f5a905046610f1660e0880160c089016133fb565b6001600160401b031614610f3d57604051631c6c777560e31b815260040160405180910390fd5b610f4d60a08701608088016133fb565b6001600160401b03161580610f79575046610f6e60a08801608089016133fb565b6001600160401b0316145b15610f9757604051631c6c777560e31b815260040160405180910390fd5b604080516080810182525f808252602082018190529181018290526060810191909152610fcb610100880160e08901613256565b6001600160a01b031633148015606083015261103a57610ff1606088016040890161359f565b63ffffffff165f03611016576040516372b6e1c360e11b815260040160405180910390fd5b62030d4085111561103a57604051631e3b03c960e01b815260040160405180910390fd5b5f6110476105fe89613594565b9050611053815f611fe2565b5f61106f6d7369676e616c5f7365727669636560901b5f611d51565b63ffffffff881660208501529050611099818361109260a08d0160808e016133fb565b8b8b612488565b63ffffffff166040808501919091526110d8906110bb908b0160208c016133fb565b6110d3906001600160401b03166101208c0135613631565b612034565b6110f5576040516335856fbd60e21b815260040160405180910390fd5b5f6111008a836120d5565b1561111957506002955060019450610120890135611160565b5f8460600151611129575a611132565b6111328b612435565b90506111448b85838860600151612209565b1561115557600297505f965061115e565b60019750600296505b505b61117060408b0160208c016133fb565b6001600160401b0316156112c15761118e60408b0160208c016133fb565b6111a1906001600160401b031682613631565b9050836060015180156111c857506111bf60608b0160408c0161359f565b63ffffffff1615155b156112c157604084015163ffffffff16614e20025a6111f56111ee6101408e018e613680565b9050612533565b63ffffffff9081168801919091036201d4c00181168087525f91839161121e9183919061255b16565b0390505f61123260608e0160408f0161359f565b63ffffffff168d602001602081019061124b91906133fb565b6001600160401b0316830281611263576112636136c9565b0490505f48830290505f6112a78f602001602081019061128391906133fb565b6001600160401b03168484101561129f5784840160011c6112a1565b845b90612570565b958690039590506112bb33826188b8612584565b50505050505b6112e9816188b86112d96101008e0160e08f01613256565b6001600160a01b03169190612584565b6112f3838861231e565b827f8580f507761043ecdd2bdca084d6fb0109150b3d9842d854d34e3dea6d69387d8b86604051611325929190613861565b60405180910390a2505050505061133c6001611fcc565b935093915050565b5f600261135360c95460ff1690565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036113a45760405162461bcd60e51b8152600401610a6b906138b5565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166113d66125c7565b6001600160a01b0316146113fc5760405162461bcd60e51b8152600401610a6b90613901565b611405816125e2565b604080515f80825260208201909252611420918391906125ea565b50565b5f61142f848484612754565b90505b9392505050565b6114416127a6565b61144b335f612836565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036114955760405162461bcd60e51b8152600401610a6b906138b5565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166114c76125c7565b6001600160a01b0316146114ed5760405162461bcd60e51b8152600401610a6b90613901565b6114f6826125e2565b611502828260016125ea565b5050565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000116146115a55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a6b565b505f516020613b1b5f395f51905f525b90565b5f466115ca60a08601608087016133fb565b6001600160401b0316146115df57505f611432565b61142f6115fd6d7369676e616c5f7365727669636560901b5f611d51565b61160c6106656105fe88613594565b61161c60e0880160c089016133fb565b86866128e3565b5f4661163560a08401608085016133fb565b6001600160401b03161461164a57505f919050565b6116656d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166332676bc6306116806105fe86613594565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156116c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116eb919061394d565b92915050565b6116f96123db565b61144b5f612965565b60655433906001600160a01b031681146117705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a6b565b61142081612965565b5f620c350061178783612533565b6116eb9190613968565b806001600160a01b0381166117b95760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b1580156117f7575f5ffd5b505af1158015611809573d5f5f3e3d5ffd5b505050505050565b61181961297e565b61144b336001612836565b5f61182d6125c7565b905090565b5f5f611849836562726964676560d01b6001611423565b6001600160a01b038116151594909350915050565b61186e60e0820160c083016133fb565b46816001600160401b03161461189757604051631c6c777560e31b815260040160405180910390fd5b6118a760a08301608084016133fb565b6001600160401b03811615806118c5575046816001600160401b0316145b156118e357604051631c6c777560e31b815260040160405180910390fd5b6118f760c954610100900460ff1660021490565b156119155760405163bae6e2a960e01b815260040160405180910390fd5b600261192360c95460ff1690565b60ff16036119445760405163dfc60d8560e01b815260040160405180910390fd5b61194e6002611fcc565b61195f610100840160e08501613256565b6001600160a01b0316336001600160a01b031614611990576040516372b6e1c360e11b815260040160405180910390fd5b5f61199d6105fe85613594565b90506119aa816001611fe2565b6119b581600361231e565b6119d06d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af1158015611a18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3c91906135b8565b5050611a486001611fcc565b505050565b611a5d60a08401608085016133fb565b46816001600160401b031614611a8657604051631c6c777560e31b815260040160405180910390fd5b611a9660e0850160c086016133fb565b6001600160401b0381161580611ab4575046816001600160401b0316145b15611ad257604051631c6c777560e31b815260040160405180910390fd5b611ae660c954610100900460ff1660021490565b15611b045760405163bae6e2a960e01b815260040160405180910390fd5b6002611b1260c95460ff1690565b60ff1603611b335760405163dfc60d8560e01b815260040160405180910390fd5b611b3d6002611fcc565b5f611b4a6105fe87613594565b9050611b56815f611fe2565b5f611b726d7369676e616c5f7365727669636560901b5f611d51565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611bbe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be2919061394d565b611bff5760405163ab035ad560e01b815260040160405180910390fd5b611c1e8160038418611c1760e08b0160c08c016133fb565b8989612488565b50611c2a82600461231e565b611c38876101200135612034565b611c55576040516335856fbd60e21b815260040160405180910390fd5b611c7e62bc399d60e11b611c6f60808a0160608b01613256565b6001600160a01b0316906129ef565b15611d2257611c9d8230611c9860a08b0160808c016133fb565b612a7c565b611cad6080880160608901613256565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611ce0929190613984565b5f604051808303818588803b158015611cf7575f5ffd5b505af1158015611d09573d5f5f3e3d5ffd5b5050505050611d1d5f195f1b5f1980612a7c565b611d3e565b611d3e6101208801356188b86112d960c08b0160a08c01613256565b5050611d4a6001611fcc565b5050505050565b5f611432468484612754565b5f46611d6f60e0860160c087016133fb565b6001600160401b031614611d8457505f611432565b61142f611da26d7369676e616c5f7365727669636560901b5f611d51565b611dae6105fe87613594565b61161c60a08801608089016133fb565b5f81604051602001611dd091906139a5565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611e64604080516060810182525f8082526020820181905291810191909152506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b80519091501580611e76575080515f19145b156115b557604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611eb257505f54600160ff909116105b80611ecb5750303b158015611ecb57505f5460ff166001145b611ee75760405162461bcd60e51b8152600401610a6b906135cf565b5f805460ff191660011790558015611f08575f805461ff0019166101001790555b611f128383612ad1565b8015611a48575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611f636123db565b606580546001600160a01b0383166001600160a01b03199091168117909155611f946033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b806004811115611ff457611ff46131df565b5f83815260fc602052604090205460ff166004811115612016576120166131df565b14611502576040516319d893ad60e21b815260040160405180910390fd5b5f5f6120516c38bab7ba30afb6b0b730b3b2b960991b6001611d51565b90506001600160a01b03811661206a5750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b1580156120af575f5ffd5b505af19250505080156120c0575060015b6120cc57505f92915050565b50600192915050565b5f806120e961012085016101008601613256565b6001600160a01b0316036120ff575060016116eb565b3061211261012085016101008601613256565b6001600160a01b031603612128575060016116eb565b6001600160a01b03821661214461012085016101008601613256565b6001600160a01b03160361215a575060016116eb565b600461216a610140850185613680565b9050101580156121a15750637f07c94760e01b61218b610140850185613680565b612194916139db565b6001600160e01b03191614155b801561143257506114326121bd61012085016101008601613256565b6001600160a01b03163b151590565b5f6001600160a01b0385166121f457604051634c67134d60e11b815260040160405180910390fd5b5f5f835160208501878988f195945050505050565b5f3061221b6080870160608801613256565b6001600160a01b03160361223157612231613a13565b61223f610140860186613680565b90505f0361224f57506001612316565b825f0361225d57505f612316565b612281846122716080880160608901613256565b611c9860a0890160808a016133fb565b5f61229461012087016101008801613256565b90506101208601355f6122ab610140890189613680565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509384935083925090506020850186888cf194505a90508515612305576123058188612b0b565b6123115f198080612a7c565b505050505b949350505050565b806004811115612330576123306131df565b5f83815260fc602052604090205460ff166004811115612352576123526131df565b03612370576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff1916600183600481111561239a5761239a6131df565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516123cf9190613288565b60405180910390a25050565b6033546001600160a01b0316331461144b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a6b565b5f8061244f612448610140850185613680565b9050611779565b63ffffffff1690508061248061246b606086016040870161359f565b63ffffffff168361255b90919063ffffffff16565b039392505050565b5f856001600160a01b031663910af6ed856124ad876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b81526004016124d0959493929190613a27565b6020604051808303815f875af192505050801561250a575060408051601f3d908101601f19168201909252612507918101906135b8565b60015b612527576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f815f0361254257505f919050565b60046020601f8401046020026101a001901b9050919050565b5f8183116125695781611432565b5090919050565b5f81831161257e5782611432565b50919050565b815f0361259057505050565b6125aa83838360405180602001604052805f8152506121cc565b611a4857604051634c67134d60e11b815260040160405180910390fd5b5f516020613b1b5f395f51905f52546001600160a01b031690565b6114206123db565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561261d57611a4883612b1f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612677575060408051601f3d908101601f19168201909252612674918101906135b8565b60015b6126da5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a6b565b5f516020613b1b5f395f51905f5281146127485760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a6b565b50611a48838383612bba565b5f61275f8484612bde565b90508115801561277657506001600160a01b038116155b1561143257604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610a6b565b6127ba60c954610100900460ff1660021490565b6127d75760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b038381169116148061287e57506128696d636861696e5f7761746368646f6760901b6001611d51565b6001600160a01b0316826001600160a01b0316145b15612887575050565b8080156128c157506128ac6e6272696467655f7761746368646f6760881b6001611d51565b6001600160a01b0316826001600160a01b0316145b156128ca575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d082085612908876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b815260040161292b959493929190613a27565b5f6040518083038186803b158015612941575f5ffd5b505afa925050508015612952575060015b61295d57505f61252a565b50600161252a565b606580546001600160a01b031916905561142081612c80565b61299260c954610100900460ff1660021490565b156129b05760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200161282c565b5f6001600160a01b0383163b612a0657505f6116eb565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612a70575060408051601f3d908101601f19168201909252612a6d9181019061394d565b60015b156116eb579392505050565b604080516060810182528481526001600160a01b03909316602084018190526001600160401b03909216920182905260fd9290925560fe8054600160a01b9092026001600160e01b0319909216909217179055565b806001600160a01b038116612af95760405163538ba4f960e01b815260040160405180910390fd5b612b0283612cd1565b611a4882612d2f565b612b16603f82613a68565b82101561150257fe5b6001600160a01b0381163b612b8c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a6b565b5f516020613b1b5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612bc383612d9f565b5f82511180612bcf5750805b15611a4857610a218383612dde565b6097545f906001600160a01b031680612c0a57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612c5c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123169190613a87565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612cf75760405162461bcd60e51b8152600401610a6b90613aa2565b612cff612e03565b612d1d6001600160a01b03821615612d175781612965565b33612965565b5060c9805461ff001916610100179055565b5f54610100900460ff16612d555760405162461bcd60e51b8152600401610a6b90613aa2565b6001600160401b03461115612d7d5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b612da881612b1f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606114328383604051806060016040528060278152602001613b3b60279139612e29565b5f54610100900460ff1661144b5760405162461bcd60e51b8152600401610a6b90613aa2565b60605f5f856001600160a01b031685604051612e459190613aed565b5f60405180830381855af49150503d805f8114612e7d576040519150601f19603f3d011682016040523d82523d5f602084013e612e82565b606091505b5091509150612e9386838387612e9d565b9695505050505050565b60608315612f0b5782515f03612f04576001600160a01b0385163b612f045760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a6b565b5081612316565b6123168383815115612f205781518083602001fd5b8060405162461bcd60e51b8152600401610a6b9190613b08565b5f610160828403121561257e575f5ffd5b8015158114611420575f5ffd5b5f5f60408385031215612f69575f5ffd5b82356001600160401b03811115612f7e575f5ffd5b612f8a85828601612f3a565b9250506020830135612f9b81612f4b565b809150509250929050565b5f60208284031215612fb6575f5ffd5b81356001600160401b03811115612fcb575f5ffd5b61231684828501612f3a565b5f5b83811015612ff1578181015183820152602001612fd9565b50505f910152565b5f8151808452613010816020860160208601612fd7565b601f01601f19169290920160200192915050565b80516001600160401b031682525f602082015161304c60208501826001600160401b03169052565b506040820151613064604085018263ffffffff169052565b50606082015161307f60608501826001600160a01b03169052565b50608082015161309a60808501826001600160401b03169052565b5060a08201516130b560a08501826001600160a01b03169052565b5060c08201516130d060c08501826001600160401b03169052565b5060e08201516130eb60e08501826001600160a01b03169052565b506101008201516131086101008501826001600160a01b03169052565b50610120820151610120840152610140820151610160610140850152612316610160850182612ff9565b828152604060208201525f61142f6040830184613024565b5f5f5f6040848603121561315c575f5ffd5b83356001600160401b03811115613171575f5ffd5b61317d86828701612f3a565b93505060208401356001600160401b03811115613198575f5ffd5b8401601f810186136131a8575f5ffd5b80356001600160401b038111156131bd575f5ffd5b8660208284010111156131ce575f5ffd5b939660209190910195509293505050565b634e487b7160e01b5f52602160045260245ffd5b60058110613203576132036131df565b9052565b6040810161321582856131f3565b60048310613225576132256131df565b8260208301529392505050565b6001600160a01b0381168114611420575f5ffd5b803561325181613232565b919050565b5f60208284031215613266575f5ffd5b813561143281613232565b5f60208284031215613281575f5ffd5b5035919050565b602081016116eb82846131f3565b80356001600160401b0381168114613251575f5ffd5b5f5f5f606084860312156132be575f5ffd5b6132c784613296565b92506020840135915060408401356132de81612f4b565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b0381118282101715613320576133206132e9565b60405290565b5f82601f830112613335575f5ffd5b81356001600160401b0381111561334e5761334e6132e9565b604051601f8201601f19908116603f011681016001600160401b038111828210171561337c5761337c6132e9565b604052818152838201602001851015613393575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f604083850312156133c0575f5ffd5b82356133cb81613232565b915060208301356001600160401b038111156133e5575f5ffd5b6133f185828601613326565b9150509250929050565b5f6020828403121561340b575f5ffd5b61143282613296565b5f5f60408385031215613425575f5ffd5b823591506020830135612f9b81612f4b565b803563ffffffff81168114613251575f5ffd5b5f610160828403121561345b575f5ffd5b6134636132fd565b905061346e82613296565b815261347c60208301613296565b602082015261348d60408301613437565b604082015261349e60608301613246565b60608201526134af60808301613296565b60808201526134c060a08301613246565b60a08201526134d160c08301613296565b60c08201526134e260e08301613246565b60e08201526134f46101008301613246565b61010082015261012082810135908201526101408201356001600160401b0381111561351e575f5ffd5b61352a84828501613326565b6101408301525092915050565b5f60208284031215613547575f5ffd5b81356001600160401b0381111561355c575f5ffd5b6123168482850161344a565b5f5f60408385031215613579575f5ffd5b823561358481613232565b91506020830135612f9b81613232565b5f6116eb368361344a565b5f602082840312156135af575f5ffd5b61143282613437565b5f602082840312156135c8575f5ffd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156116eb576116eb61361d565b5f6001600160401b0382166001600160401b0381036136655761366561361d565b60010192915050565b602081525f6114326020830184613024565b5f5f8335601e19843603018112613695575f5ffd5b8301803591506001600160401b038211156136ae575f5ffd5b6020019150368190038213156136c2575f5ffd5b9250929050565b634e487b7160e01b5f52601260045260245ffd5b5f5f8335601e198436030181126136f2575f5ffd5b83016020810192503590506001600160401b03811115613710575f5ffd5b8036038213156136c2575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6137608261375383613296565b6001600160401b03169052565b5f61376d60208301613296565b6001600160401b0316602084015261378760408301613437565b63ffffffff16604084015261379e60608301613246565b6001600160a01b031660608401526137b860808301613296565b6001600160401b031660808401526137d260a08301613246565b6001600160a01b031660a08401526137ec60c08301613296565b6001600160401b031660c084015261380660e08301613246565b6001600160a01b031660e08401526138216101008301613246565b6001600160a01b031661010084015261012082810135908401526138496101408301836136dd565b61016061014086015261252a6101608601828461371e565b60a081525f61387360a0830185613746565b905063ffffffff835116602083015263ffffffff602084015116604083015263ffffffff60408401511660608301526060830151151560808301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f6020828403121561395d575f5ffd5b815161143281612f4b565b63ffffffff81811683821601908111156116eb576116eb61361d565b604081525f6139966040830185613746565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f6114326080830184613024565b80356001600160e01b03198116906004841015613a0c576001600160e01b0319600485900360031b81901b82161691505b5092915050565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f613a5d60808301848661371e565b979650505050505050565b5f82613a8257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613a97575f5ffd5b815161143281613232565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613afe818460208701612fd7565b9190910192915050565b602081525f6114326020830184612ff956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122084fbcf170d382f2ee5760a60219c83376819d2bb8672a54f40ab14453a5eda4064736f6c634300081b0033", + "code": "0x60806040526004361061021d575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba61461066b578063e30c3978146106a8578063eefbf17e146106c5578063f09a4016146106eb578063f2fde38b1461070a575f5ffd5b8063b8acae0e146105af578063be880c81146105ce578063c012fa77146105e4578063d0496d6a14610603578063d1aaa5df1461064b575f5ffd5b80638e3881a9116100ee5780638e3881a9146104fe578063913b16cb1461053c5780639efc7a2e1461055b578063a730cdfb1461057a578063a86f9d9e14610590575f5ffd5b806382b5e8891461049a5780638456cb59146104b95780638abf6077146104cd5780638da5cb5b146104e1575f5ffd5b80633f4ba83a116101aa5780635c975abb1161016f5780635c975abb146103ff57806360620c6b1461041f578063715018a61461043e57806379ba5097146104525780637cbadfaa14610466575f5ffd5b80633f4ba83a14610381578063422770fa146103955780634f1ef286146103b957806352d1902d146103cc5780635862f6e1146103e0575f5ffd5b80633075db56116101f05780633075db56146102ad5780633659cfe6146102d15780633ab76e9f146102f05780633c6cf473146103275780633eb6b8cf14610362575f5ffd5b80630432873c14610221578063069489a2146102425780631bdb0037146102565780632035065e14610280575b5f5ffd5b34801561022c575f5ffd5b5061024061023b366004612f67565b610729565b005b34801561024d575f5ffd5b50610240610a27565b610269610264366004612fb5565b610ade565b604051610277929190613141565b60405180910390f35b34801561028b575f5ffd5b5061029f61029a366004613159565b610e94565b604051610277929190613216565b3480156102b8575f5ffd5b506102c1611344565b6040519015158152602001610277565b3480156102dc575f5ffd5b506102406102eb366004613265565b61135c565b3480156102fb575f5ffd5b5060975461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b348015610332575f5ffd5b50610355610341366004613280565b60fc6020525f908152604090205460ff1681565b6040516102779190613297565b34801561036d575f5ffd5b5061030f61037c3660046132bb565b611423565b34801561038c575f5ffd5b50610240611439565b3480156103a0575f5ffd5b506103ab62030d4081565b604051908152602001610277565b6102406103c73660046133be565b61144d565b3480156103d7575f5ffd5b506103ab611506565b3480156103eb575f5ffd5b506102c16103fa366004613159565b6115b8565b34801561040a575f5ffd5b506102c160c954610100900460ff1660021490565b34801561042a575f5ffd5b506102c1610439366004612fb5565b611623565b348015610449575f5ffd5b506102406116f1565b34801561045d575f5ffd5b50610240611702565b348015610471575f5ffd5b50610485610480366004613280565b611779565b60405163ffffffff9091168152602001610277565b3480156104a5575f5ffd5b506102406104b4366004613265565b611791565b3480156104c4575f5ffd5b50610240611811565b3480156104d8575f5ffd5b5061030f611824565b3480156104ec575f5ffd5b506033546001600160a01b031661030f565b348015610509575f5ffd5b5061051d61051836600461340a565b611832565b6040805192151583526001600160a01b03909116602083015201610277565b348015610547575f5ffd5b50610240610556366004612fb5565b61185e565b348015610566575f5ffd5b50610240610575366004613159565b611a4d565b348015610585575f5ffd5b506104856201d4c081565b34801561059b575f5ffd5b5061030f6105aa366004613423565b611d51565b3480156105ba575f5ffd5b506102c16105c9366004613159565b611d5d565b3480156105d9575f5ffd5b50610485620c350081565b3480156105ef575f5ffd5b506103ab6105fe366004613546565b611dbe565b34801561060e575f5ffd5b50610617611ded565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610277565b348015610656575f5ffd5b506103ab610665366004613280565b60031890565b348015610676575f5ffd5b5060c954610690906201000090046001600160401b031681565b6040516001600160401b039091168152602001610277565b3480156106b3575f5ffd5b506065546001600160a01b031661030f565b3480156106d0575f5ffd5b5060fb5461069090600160401b90046001600160401b031681565b3480156106f6575f5ffd5b50610240610705366004613577565b611e94565b348015610715575f5ffd5b50610240610724366004613265565b611f5b565b61073960e0830160c0840161340a565b46816001600160401b03161461076257604051631c6c777560e31b815260040160405180910390fd5b61077260a084016080850161340a565b6001600160401b0381161580610790575046816001600160401b0316145b156107ae57604051631c6c777560e31b815260040160405180910390fd5b6107c260c954610100900460ff1660021490565b156107e05760405163bae6e2a960e01b815260040160405180910390fd5b60026107ee60c95460ff1690565b60ff160361080f5760405163dfc60d8560e01b815260040160405180910390fd5b6108196002611fcc565b5f6108266105fe866135a3565b9050610833816001611fe2565b610841856101200135612034565b61085e576040516335856fbd60e21b815260040160405180910390fd5b5f6108838661087e6d7369676e616c5f7365727669636560901b5f611d51565b6120d5565b156108ce576108c78661012001356188b860405180602001604052805f8152508960e00160208101906108b69190613265565b6001600160a01b03169291906121cc565b9050610948565b6108de60608701604088016135ae565b63ffffffff1615806108ed5750845b801561091b5750610905610100870160e08801613265565b6001600160a01b0316336001600160a01b031614155b15610939576040516372b6e1c360e11b815260040160405180910390fd5b61094586835a5f612209565b90505b801561095e5761095982600261232d565b610a15565b84156109fc5761096f82600361232d565b61098a6d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156109d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f691906135c7565b50610a15565b60405163161e3ead60e01b815260040160405180910390fd5b5050610a216001611fcc565b50505050565b610a2f6123ea565b5f54600290610100900460ff16158015610a4f57505f5460ff8083169116105b610a745760405162461bcd60e51b8152600401610a6b906135de565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610b4460c0840160a08501613265565b6001600160a01b038116610b6b5760405163538ba4f960e01b815260040160405180910390fd5b610b7c610100850160e08601613265565b6001600160a01b038116610ba35760405163538ba4f960e01b815260040160405180910390fd5b610bb360e0860160c0870161340a565b6001600160401b0381161580610bd1575046816001600160401b0316145b15610bef57604051631c6c777560e31b815260040160405180910390fd5b610c0360c954610100900460ff1660021490565b15610c215760405163bae6e2a960e01b815260040160405180910390fd5b6002610c2f60c95460ff1690565b60ff1603610c505760405163dfc60d8560e01b815260040160405180910390fd5b610c5a6002611fcc565b610c6a60608701604088016135ae565b63ffffffff165f03610cb257610c86604087016020880161340a565b6001600160401b031615610cad5760405163c9f5178760e01b815260040160405180910390fd5b610cda565b610cbb86612444565b5f03610cda576040516308c2ad5360e01b815260040160405180910390fd5b5f610cee61051860e0890160c08a0161340a565b50905080610d0f57604051631c6c777560e31b815260040160405180910390fd5b34610d206040890160208a0161340a565b610d38906001600160401b03166101208a0135613640565b14610d5657604051634ac2abdf60e11b815260040160405180910390fd5b610d5f876135a3565b60fb8054919650600160401b9091046001600160401b0316906008610d8383613653565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610dbe85611dbe565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610df0919061367d565b60405180910390a2610e136d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610e4091815260200190565b6020604051808303815f875af1158015610e5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8091906135c7565b5050610e8c6001611fcc565b505050915091565b5f5f610eaa60c954610100900460ff1660021490565b15610ec85760405163bae6e2a960e01b815260040160405180910390fd5b6002610ed660c95460ff1690565b60ff1603610ef75760405163dfc60d8560e01b815260040160405180910390fd5b610f016002611fcc565b5f5a905046610f1660e0880160c0890161340a565b6001600160401b031614610f3d57604051631c6c777560e31b815260040160405180910390fd5b610f4d60a087016080880161340a565b6001600160401b03161580610f79575046610f6e60a088016080890161340a565b6001600160401b0316145b15610f9757604051631c6c777560e31b815260040160405180910390fd5b604080516080810182525f808252602082018190529181018290526060810191909152610fcb610100880160e08901613265565b6001600160a01b031633148015606083015261103a57610ff160608801604089016135ae565b63ffffffff165f03611016576040516372b6e1c360e11b815260040160405180910390fd5b62030d4085111561103a57604051631e3b03c960e01b815260040160405180910390fd5b5f6110476105fe896135a3565b9050611053815f611fe2565b5f61106f6d7369676e616c5f7365727669636560901b5f611d51565b63ffffffff881660208501529050611099818361109260a08d0160808e0161340a565b8b8b612497565b63ffffffff166040808501919091526110d8906110bb908b0160208c0161340a565b6110d3906001600160401b03166101208c0135613640565b612034565b6110f5576040516335856fbd60e21b815260040160405180910390fd5b5f6111008a836120d5565b1561111957506002955060019450610120890135611160565b5f8460600151611129575a611132565b6111328b612444565b90506111448b85838860600151612209565b1561115557600297505f965061115e565b60019750600296505b505b61117060408b0160208c0161340a565b6001600160401b0316156112c15761118e60408b0160208c0161340a565b6111a1906001600160401b031682613640565b9050836060015180156111c857506111bf60608b0160408c016135ae565b63ffffffff1615155b156112c157604084015163ffffffff16614e20025a6111f56111ee6101408e018e61368f565b9050612542565b63ffffffff9081168801919091036201d4c00181168087525f91839161121e9183919061256a16565b0390505f61123260608e0160408f016135ae565b63ffffffff168d602001602081019061124b919061340a565b6001600160401b0316830281611263576112636136d8565b0490505f48830290505f6112a78f6020016020810190611283919061340a565b6001600160401b03168484101561129f5784840160011c6112a1565b845b9061257f565b958690039590506112bb33826188b8612593565b50505050505b6112e9816188b86112d96101008e0160e08f01613265565b6001600160a01b03169190612593565b6112f3838861232d565b827f8580f507761043ecdd2bdca084d6fb0109150b3d9842d854d34e3dea6d69387d8b86604051611325929190613870565b60405180910390a2505050505061133c6001611fcc565b935093915050565b5f600261135360c95460ff1690565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036113a45760405162461bcd60e51b8152600401610a6b906138c4565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166113d66125d6565b6001600160a01b0316146113fc5760405162461bcd60e51b8152600401610a6b90613910565b611405816125f1565b604080515f80825260208201909252611420918391906125f9565b50565b5f61142f848484612763565b90505b9392505050565b6114416127b5565b61144b335f612845565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036114955760405162461bcd60e51b8152600401610a6b906138c4565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b03166114c76125d6565b6001600160a01b0316146114ed5760405162461bcd60e51b8152600401610a6b90613910565b6114f6826125f1565b611502828260016125f9565b5050565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000116146115a55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a6b565b505f516020613b2a5f395f51905f525b90565b5f466115ca60a086016080870161340a565b6001600160401b0316146115df57505f611432565b61142f6115fd6d7369676e616c5f7365727669636560901b5f611d51565b61160c6106656105fe886135a3565b61161c60e0880160c0890161340a565b86866128f2565b5f4661163560a084016080850161340a565b6001600160401b03161461164a57505f919050565b6116656d7369676e616c5f7365727669636560901b5f611d51565b6001600160a01b03166332676bc6306116806105fe866135a3565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156116c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116eb919061395c565b92915050565b6116f96123ea565b61144b5f612974565b60655433906001600160a01b031681146117705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a6b565b61142081612974565b5f620c350061178783612542565b6116eb9190613977565b806001600160a01b0381166117b95760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b1580156117f7575f5ffd5b505af1158015611809573d5f5f3e3d5ffd5b505050505050565b61181961298d565b61144b336001612845565b5f61182d6125d6565b905090565b5f5f611849836562726964676560d01b6001611423565b6001600160a01b038116151594909350915050565b61186e60e0820160c0830161340a565b46816001600160401b03161461189757604051631c6c777560e31b815260040160405180910390fd5b6118a760a083016080840161340a565b6001600160401b03811615806118c5575046816001600160401b0316145b156118e357604051631c6c777560e31b815260040160405180910390fd5b6118f760c954610100900460ff1660021490565b156119155760405163bae6e2a960e01b815260040160405180910390fd5b600261192360c95460ff1690565b60ff16036119445760405163dfc60d8560e01b815260040160405180910390fd5b61194e6002611fcc565b61195f610100840160e08501613265565b6001600160a01b0316336001600160a01b031614611990576040516372b6e1c360e11b815260040160405180910390fd5b5f61199d6105fe856135a3565b90506119aa816001611fe2565b6119b581600361232d565b6119d06d7369676e616c5f7365727669636560901b5f611d51565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af1158015611a18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3c91906135c7565b5050611a486001611fcc565b505050565b611a5d60a084016080850161340a565b46816001600160401b031614611a8657604051631c6c777560e31b815260040160405180910390fd5b611a9660e0850160c0860161340a565b6001600160401b0381161580611ab4575046816001600160401b0316145b15611ad257604051631c6c777560e31b815260040160405180910390fd5b611ae660c954610100900460ff1660021490565b15611b045760405163bae6e2a960e01b815260040160405180910390fd5b6002611b1260c95460ff1690565b60ff1603611b335760405163dfc60d8560e01b815260040160405180910390fd5b611b3d6002611fcc565b5f611b4a6105fe876135a3565b9050611b56815f611fe2565b5f611b726d7369676e616c5f7365727669636560901b5f611d51565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611bbe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be2919061395c565b611bff5760405163ab035ad560e01b815260040160405180910390fd5b611c1e8160038418611c1760e08b0160c08c0161340a565b8989612497565b50611c2a82600461232d565b611c38876101200135612034565b611c55576040516335856fbd60e21b815260040160405180910390fd5b611c7e62bc399d60e11b611c6f60808a0160608b01613265565b6001600160a01b0316906129fe565b15611d2257611c9d8230611c9860a08b0160808c0161340a565b612a8b565b611cad6080880160608901613265565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611ce0929190613993565b5f604051808303818588803b158015611cf7575f5ffd5b505af1158015611d09573d5f5f3e3d5ffd5b5050505050611d1d5f195f1b5f1980612a8b565b611d3e565b611d3e6101208801356188b86112d960c08b0160a08c01613265565b5050611d4a6001611fcc565b5050505050565b5f611432468484612763565b5f46611d6f60e0860160c0870161340a565b6001600160401b031614611d8457505f611432565b61142f611da26d7369676e616c5f7365727669636560901b5f611d51565b611dae6105fe876135a3565b61161c60a088016080890161340a565b5f81604051602001611dd091906139b4565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611e64604080516060810182525f8082526020820181905291810191909152506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b80519091501580611e76575080515f19145b156115b557604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611eb257505f54600160ff909116105b80611ecb5750303b158015611ecb57505f5460ff166001145b611ee75760405162461bcd60e51b8152600401610a6b906135de565b5f805460ff191660011790558015611f08575f805461ff0019166101001790555b611f128383612ae0565b8015611a48575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611f636123ea565b606580546001600160a01b0383166001600160a01b03199091168117909155611f946033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b806004811115611ff457611ff46131ee565b5f83815260fc602052604090205460ff166004811115612016576120166131ee565b14611502576040516319d893ad60e21b815260040160405180910390fd5b5f5f6120516c38bab7ba30afb6b0b730b3b2b960991b6001611d51565b90506001600160a01b03811661206a5750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b1580156120af575f5ffd5b505af19250505080156120c0575060015b6120cc57505f92915050565b50600192915050565b5f806120e961012085016101008601613265565b6001600160a01b0316036120ff575060016116eb565b3061211261012085016101008601613265565b6001600160a01b031603612128575060016116eb565b6001600160a01b03821661214461012085016101008601613265565b6001600160a01b03160361215a575060016116eb565b600461216a61014085018561368f565b9050101580156121a15750637f07c94760e01b61218b61014085018561368f565b612194916139ea565b6001600160e01b03191614155b801561143257506114326121bd61012085016101008601613265565b6001600160a01b03163b151590565b5f6001600160a01b0385166121f457604051634c67134d60e11b815260040160405180910390fd5b5f5f835160208501878988f195945050505050565b5f3061221b6080870160608801613265565b6001600160a01b03160361223157612231613a22565b610120850135158015612251575061224d61014086018661368f565b1590505b1561225e57506001612325565b825f0361226c57505f612325565b612290846122806080880160608901613265565b611c9860a0890160808a0161340a565b5f6122a361012087016101008801613265565b90506101208601355f6122ba61014089018961368f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509384935083925090506020850186888cf194505a90508515612314576123148188612b1a565b6123205f198080612a8b565b505050505b949350505050565b80600481111561233f5761233f6131ee565b5f83815260fc602052604090205460ff166004811115612361576123616131ee565b0361237f576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff191660018360048111156123a9576123a96131ee565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516123de9190613297565b60405180910390a25050565b6033546001600160a01b0316331461144b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a6b565b5f8061245e61245761014085018561368f565b9050611779565b63ffffffff1690508061248f61247a60608601604087016135ae565b63ffffffff168361256a90919063ffffffff16565b039392505050565b5f856001600160a01b031663910af6ed856124bc876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b81526004016124df959493929190613a36565b6020604051808303815f875af1925050508015612519575060408051601f3d908101601f19168201909252612516918101906135c7565b60015b612536576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f815f0361255157505f919050565b60046020601f8401046020026101a001901b9050919050565b5f8183116125785781611432565b5090919050565b5f81831161258d5782611432565b50919050565b815f0361259f57505050565b6125b983838360405180602001604052805f8152506121cc565b611a4857604051634c67134d60e11b815260040160405180910390fd5b5f516020613b2a5f395f51905f52546001600160a01b031690565b6114206123ea565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561262c57611a4883612b2e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612686575060408051601f3d908101601f19168201909252612683918101906135c7565b60015b6126e95760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a6b565b5f516020613b2a5f395f51905f5281146127575760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a6b565b50611a48838383612bc9565b5f61276e8484612bed565b90508115801561278557506001600160a01b038116155b1561143257604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610a6b565b6127c960c954610100900460ff1660021490565b6127e65760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b038381169116148061288d57506128786d636861696e5f7761746368646f6760901b6001611d51565b6001600160a01b0316826001600160a01b0316145b15612896575050565b8080156128d057506128bb6e6272696467655f7761746368646f6760881b6001611d51565b6001600160a01b0316826001600160a01b0316145b156128d9575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d082085612917876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b815260040161293a959493929190613a36565b5f6040518083038186803b158015612950575f5ffd5b505afa925050508015612961575060015b61296c57505f612539565b506001612539565b606580546001600160a01b031916905561142081612c8f565b6129a160c954610100900460ff1660021490565b156129bf5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200161283b565b5f6001600160a01b0383163b612a1557505f6116eb565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612a7f575060408051601f3d908101601f19168201909252612a7c9181019061395c565b60015b156116eb579392505050565b604080516060810182528481526001600160a01b03909316602084018190526001600160401b03909216920182905260fd9290925560fe8054600160a01b9092026001600160e01b0319909216909217179055565b806001600160a01b038116612b085760405163538ba4f960e01b815260040160405180910390fd5b612b1183612ce0565b611a4882612d3e565b612b25603f82613a77565b82101561150257fe5b6001600160a01b0381163b612b9b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a6b565b5f516020613b2a5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612bd283612dae565b5f82511180612bde5750805b15611a4857610a218383612ded565b6097545f906001600160a01b031680612c1957604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612c6b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123259190613a96565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612d065760405162461bcd60e51b8152600401610a6b90613ab1565b612d0e612e12565b612d2c6001600160a01b03821615612d265781612974565b33612974565b5060c9805461ff001916610100179055565b5f54610100900460ff16612d645760405162461bcd60e51b8152600401610a6b90613ab1565b6001600160401b03461115612d8c5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b612db781612b2e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606114328383604051806060016040528060278152602001613b4a60279139612e38565b5f54610100900460ff1661144b5760405162461bcd60e51b8152600401610a6b90613ab1565b60605f5f856001600160a01b031685604051612e549190613afc565b5f60405180830381855af49150503d805f8114612e8c576040519150601f19603f3d011682016040523d82523d5f602084013e612e91565b606091505b5091509150612ea286838387612eac565b9695505050505050565b60608315612f1a5782515f03612f13576001600160a01b0385163b612f135760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a6b565b5081612325565b6123258383815115612f2f5781518083602001fd5b8060405162461bcd60e51b8152600401610a6b9190613b17565b5f610160828403121561258d575f5ffd5b8015158114611420575f5ffd5b5f5f60408385031215612f78575f5ffd5b82356001600160401b03811115612f8d575f5ffd5b612f9985828601612f49565b9250506020830135612faa81612f5a565b809150509250929050565b5f60208284031215612fc5575f5ffd5b81356001600160401b03811115612fda575f5ffd5b61232584828501612f49565b5f5b83811015613000578181015183820152602001612fe8565b50505f910152565b5f815180845261301f816020860160208601612fe6565b601f01601f19169290920160200192915050565b80516001600160401b031682525f602082015161305b60208501826001600160401b03169052565b506040820151613073604085018263ffffffff169052565b50606082015161308e60608501826001600160a01b03169052565b5060808201516130a960808501826001600160401b03169052565b5060a08201516130c460a08501826001600160a01b03169052565b5060c08201516130df60c08501826001600160401b03169052565b5060e08201516130fa60e08501826001600160a01b03169052565b506101008201516131176101008501826001600160a01b03169052565b50610120820151610120840152610140820151610160610140850152612325610160850182613008565b828152604060208201525f61142f6040830184613033565b5f5f5f6040848603121561316b575f5ffd5b83356001600160401b03811115613180575f5ffd5b61318c86828701612f49565b93505060208401356001600160401b038111156131a7575f5ffd5b8401601f810186136131b7575f5ffd5b80356001600160401b038111156131cc575f5ffd5b8660208284010111156131dd575f5ffd5b939660209190910195509293505050565b634e487b7160e01b5f52602160045260245ffd5b60058110613212576132126131ee565b9052565b604081016132248285613202565b60048310613234576132346131ee565b8260208301529392505050565b6001600160a01b0381168114611420575f5ffd5b803561326081613241565b919050565b5f60208284031215613275575f5ffd5b813561143281613241565b5f60208284031215613290575f5ffd5b5035919050565b602081016116eb8284613202565b80356001600160401b0381168114613260575f5ffd5b5f5f5f606084860312156132cd575f5ffd5b6132d6846132a5565b92506020840135915060408401356132ed81612f5a565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b038111828210171561332f5761332f6132f8565b60405290565b5f82601f830112613344575f5ffd5b81356001600160401b0381111561335d5761335d6132f8565b604051601f8201601f19908116603f011681016001600160401b038111828210171561338b5761338b6132f8565b6040528181528382016020018510156133a2575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f604083850312156133cf575f5ffd5b82356133da81613241565b915060208301356001600160401b038111156133f4575f5ffd5b61340085828601613335565b9150509250929050565b5f6020828403121561341a575f5ffd5b611432826132a5565b5f5f60408385031215613434575f5ffd5b823591506020830135612faa81612f5a565b803563ffffffff81168114613260575f5ffd5b5f610160828403121561346a575f5ffd5b61347261330c565b905061347d826132a5565b815261348b602083016132a5565b602082015261349c60408301613446565b60408201526134ad60608301613255565b60608201526134be608083016132a5565b60808201526134cf60a08301613255565b60a08201526134e060c083016132a5565b60c08201526134f160e08301613255565b60e08201526135036101008301613255565b61010082015261012082810135908201526101408201356001600160401b0381111561352d575f5ffd5b61353984828501613335565b6101408301525092915050565b5f60208284031215613556575f5ffd5b81356001600160401b0381111561356b575f5ffd5b61232584828501613459565b5f5f60408385031215613588575f5ffd5b823561359381613241565b91506020830135612faa81613241565b5f6116eb3683613459565b5f602082840312156135be575f5ffd5b61143282613446565b5f602082840312156135d7575f5ffd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156116eb576116eb61362c565b5f6001600160401b0382166001600160401b0381036136745761367461362c565b60010192915050565b602081525f6114326020830184613033565b5f5f8335601e198436030181126136a4575f5ffd5b8301803591506001600160401b038211156136bd575f5ffd5b6020019150368190038213156136d1575f5ffd5b9250929050565b634e487b7160e01b5f52601260045260245ffd5b5f5f8335601e19843603018112613701575f5ffd5b83016020810192503590506001600160401b0381111561371f575f5ffd5b8036038213156136d1575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b61376f82613762836132a5565b6001600160401b03169052565b5f61377c602083016132a5565b6001600160401b0316602084015261379660408301613446565b63ffffffff1660408401526137ad60608301613255565b6001600160a01b031660608401526137c7608083016132a5565b6001600160401b031660808401526137e160a08301613255565b6001600160a01b031660a08401526137fb60c083016132a5565b6001600160401b031660c084015261381560e08301613255565b6001600160a01b031660e08401526138306101008301613255565b6001600160a01b031661010084015261012082810135908401526138586101408301836136ec565b6101606101408601526125396101608601828461372d565b60a081525f61388260a0830185613755565b905063ffffffff835116602083015263ffffffff602084015116604083015263ffffffff60408401511660608301526060830151151560808301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f6020828403121561396c575f5ffd5b815161143281612f5a565b63ffffffff81811683821601908111156116eb576116eb61362c565b604081525f6139a56040830185613755565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f6114326080830184613033565b80356001600160e01b03198116906004841015613a1b576001600160e01b0319600485900360031b81901b82161691505b5092915050565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f613a6c60808301848661372d565b979650505050505050565b5f82613a9157634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613aa6575f5ffd5b815161143281613241565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613b0d818460208701612fe6565b9190910192915050565b602081525f611432602083018461300856fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206ccb67f04aaf63488576bbb651d54656794e2eac08c3401a79a0cda25cd7f6e664736f6c634300081b0033", "balance": "0x0" }, "0x1670000000000000000000000000000000000001": { diff --git a/packages/protocol/test/genesis/data/genesis_storage_layout.json b/packages/protocol/test/genesis/data/genesis_storage_layout.json index 2852d7dad98..a7fb004322d 100644 --- a/packages/protocol/test/genesis/data/genesis_storage_layout.json +++ b/packages/protocol/test/genesis/data/genesis_storage_layout.json @@ -2,7 +2,7 @@ "SharedAddressManagerImpl": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initialized", "offset": 0, @@ -10,7 +10,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initializing", "offset": 1, @@ -18,7 +18,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -26,7 +26,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_owner", "offset": 0, @@ -34,7 +34,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -42,7 +42,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_pendingOwner", "offset": 0, @@ -50,7 +50,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -58,7 +58,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "addressManager", "offset": 0, @@ -66,7 +66,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -74,7 +74,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__reentry", "offset": 0, @@ -82,7 +82,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__paused", "offset": 1, @@ -90,7 +90,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "lastUnpausedAt", "offset": 2, @@ -98,7 +98,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -106,7 +106,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3536, + "astId": 3541, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__addresses", "offset": 0, @@ -114,7 +114,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_bytes32,t_address))" }, { - "astId": 3540, + "astId": 3545, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -184,7 +184,7 @@ "SharedAddressManager": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initialized", "offset": 0, @@ -192,7 +192,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initializing", "offset": 1, @@ -200,7 +200,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -208,7 +208,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_owner", "offset": 0, @@ -216,7 +216,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -224,7 +224,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_pendingOwner", "offset": 0, @@ -232,7 +232,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -240,7 +240,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "addressManager", "offset": 0, @@ -248,7 +248,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -256,7 +256,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__reentry", "offset": 0, @@ -264,7 +264,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__paused", "offset": 1, @@ -272,7 +272,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "lastUnpausedAt", "offset": 2, @@ -280,7 +280,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -288,7 +288,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3536, + "astId": 3541, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__addresses", "offset": 0, @@ -296,7 +296,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_bytes32,t_address))" }, { - "astId": 3540, + "astId": 3545, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -366,7 +366,7 @@ "BridgeImpl": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_initialized", "offset": 0, @@ -374,7 +374,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_initializing", "offset": 1, @@ -382,7 +382,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -390,7 +390,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_owner", "offset": 0, @@ -398,7 +398,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -406,7 +406,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_pendingOwner", "offset": 0, @@ -414,7 +414,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -422,7 +422,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "addressManager", "offset": 0, @@ -430,7 +430,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -438,7 +438,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__reentry", "offset": 0, @@ -446,7 +446,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__paused", "offset": 1, @@ -454,7 +454,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "lastUnpausedAt", "offset": 2, @@ -462,7 +462,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -491,7 +491,7 @@ "label": "messageStatus", "offset": 0, "slot": "252", - "type": "t_mapping(t_bytes32,t_enum(Status)3361)" + "type": "t_mapping(t_bytes32,t_enum(Status)3366)" }, { "astId": 1743, @@ -499,7 +499,7 @@ "label": "__ctx", "offset": 0, "slot": "253", - "type": "t_struct(Context)3396_storage" + "type": "t_struct(Context)3401_storage" }, { "astId": 1746, @@ -560,25 +560,25 @@ "label": "bytes32", "numberOfBytes": "32" }, - "t_enum(Status)3361": { + "t_enum(Status)3366": { "encoding": "inplace", "label": "enum IBridge.Status", "numberOfBytes": "1" }, - "t_mapping(t_bytes32,t_enum(Status)3361)": { + "t_mapping(t_bytes32,t_enum(Status)3366)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => enum IBridge.Status)", "numberOfBytes": "32", - "value": "t_enum(Status)3361" + "value": "t_enum(Status)3366" }, - "t_struct(Context)3396_storage": { + "t_struct(Context)3401_storage": { "encoding": "inplace", "label": "struct IBridge.Context", "numberOfBytes": "64", "members": [ { - "astId": 3391, + "astId": 3396, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "msgHash", "offset": 0, @@ -586,7 +586,7 @@ "type": "t_bytes32" }, { - "astId": 3393, + "astId": 3398, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "from", "offset": 0, @@ -594,7 +594,7 @@ "type": "t_address" }, { - "astId": 3395, + "astId": 3400, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "srcChainId", "offset": 20, @@ -623,7 +623,7 @@ "Bridge": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_initialized", "offset": 0, @@ -631,7 +631,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_initializing", "offset": 1, @@ -639,7 +639,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -647,7 +647,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_owner", "offset": 0, @@ -655,7 +655,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -663,7 +663,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "_pendingOwner", "offset": 0, @@ -671,7 +671,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -679,7 +679,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "addressManager", "offset": 0, @@ -687,7 +687,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -695,7 +695,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__reentry", "offset": 0, @@ -703,7 +703,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__paused", "offset": 1, @@ -711,7 +711,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "lastUnpausedAt", "offset": 2, @@ -719,7 +719,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "__gap", "offset": 0, @@ -748,7 +748,7 @@ "label": "messageStatus", "offset": 0, "slot": "252", - "type": "t_mapping(t_bytes32,t_enum(Status)3361)" + "type": "t_mapping(t_bytes32,t_enum(Status)3366)" }, { "astId": 1743, @@ -756,7 +756,7 @@ "label": "__ctx", "offset": 0, "slot": "253", - "type": "t_struct(Context)3396_storage" + "type": "t_struct(Context)3401_storage" }, { "astId": 1746, @@ -817,25 +817,25 @@ "label": "bytes32", "numberOfBytes": "32" }, - "t_enum(Status)3361": { + "t_enum(Status)3366": { "encoding": "inplace", "label": "enum IBridge.Status", "numberOfBytes": "1" }, - "t_mapping(t_bytes32,t_enum(Status)3361)": { + "t_mapping(t_bytes32,t_enum(Status)3366)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => enum IBridge.Status)", "numberOfBytes": "32", - "value": "t_enum(Status)3361" + "value": "t_enum(Status)3366" }, - "t_struct(Context)3396_storage": { + "t_struct(Context)3401_storage": { "encoding": "inplace", "label": "struct IBridge.Context", "numberOfBytes": "64", "members": [ { - "astId": 3391, + "astId": 3396, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "msgHash", "offset": 0, @@ -843,7 +843,7 @@ "type": "t_bytes32" }, { - "astId": 3393, + "astId": 3398, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "from", "offset": 0, @@ -851,7 +851,7 @@ "type": "t_address" }, { - "astId": 3395, + "astId": 3400, "contract": "contracts/shared/bridge/Bridge.sol:Bridge", "label": "srcChainId", "offset": 20, @@ -880,7 +880,7 @@ "ERC20VaultImpl": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_initialized", "offset": 0, @@ -888,7 +888,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_initializing", "offset": 1, @@ -896,7 +896,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -904,7 +904,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_owner", "offset": 0, @@ -912,7 +912,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -920,7 +920,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_pendingOwner", "offset": 0, @@ -928,7 +928,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -936,7 +936,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "addressManager", "offset": 0, @@ -944,7 +944,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -952,7 +952,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__reentry", "offset": 0, @@ -960,7 +960,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__paused", "offset": 1, @@ -968,7 +968,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "lastUnpausedAt", "offset": 2, @@ -976,7 +976,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -984,7 +984,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6450, + "astId": 6455, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -992,15 +992,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 8548, + "astId": 8553, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalERC20)8526_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalERC20)8531_storage)" }, { - "astId": 8555, + "astId": 8560, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "canonicalToBridged", "offset": 0, @@ -1008,7 +1008,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 8560, + "astId": 8565, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "btokenDenylist", "offset": 0, @@ -1016,7 +1016,7 @@ "type": "t_mapping(t_address,t_bool)" }, { - "astId": 8567, + "astId": 8572, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "lastMigrationStart", "offset": 0, @@ -1024,7 +1024,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))" }, { - "astId": 8571, + "astId": 8576, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1075,12 +1075,12 @@ "numberOfBytes": "32", "value": "t_bool" }, - "t_mapping(t_address,t_struct(CanonicalERC20)8526_storage)": { + "t_mapping(t_address,t_struct(CanonicalERC20)8531_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct ERC20Vault.CanonicalERC20)", "numberOfBytes": "32", - "value": "t_struct(CanonicalERC20)8526_storage" + "value": "t_struct(CanonicalERC20)8531_storage" }, "t_mapping(t_address,t_uint256)": { "encoding": "mapping", @@ -1108,13 +1108,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalERC20)8526_storage": { + "t_struct(CanonicalERC20)8531_storage": { "encoding": "inplace", "label": "struct ERC20Vault.CanonicalERC20", "numberOfBytes": "96", "members": [ { - "astId": 8517, + "astId": 8522, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "chainId", "offset": 0, @@ -1122,7 +1122,7 @@ "type": "t_uint64" }, { - "astId": 8519, + "astId": 8524, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "addr", "offset": 8, @@ -1130,7 +1130,7 @@ "type": "t_address" }, { - "astId": 8521, + "astId": 8526, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "decimals", "offset": 28, @@ -1138,7 +1138,7 @@ "type": "t_uint8" }, { - "astId": 8523, + "astId": 8528, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "symbol", "offset": 0, @@ -1146,7 +1146,7 @@ "type": "t_string_storage" }, { - "astId": 8525, + "astId": 8530, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "name", "offset": 0, @@ -1175,7 +1175,7 @@ "ERC20Vault": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_initialized", "offset": 0, @@ -1183,7 +1183,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_initializing", "offset": 1, @@ -1191,7 +1191,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1199,7 +1199,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_owner", "offset": 0, @@ -1207,7 +1207,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1215,7 +1215,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "_pendingOwner", "offset": 0, @@ -1223,7 +1223,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1231,7 +1231,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "addressManager", "offset": 0, @@ -1239,7 +1239,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1247,7 +1247,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__reentry", "offset": 0, @@ -1255,7 +1255,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__paused", "offset": 1, @@ -1263,7 +1263,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "lastUnpausedAt", "offset": 2, @@ -1271,7 +1271,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1279,7 +1279,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6450, + "astId": 6455, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1287,15 +1287,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 8548, + "astId": 8553, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalERC20)8526_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalERC20)8531_storage)" }, { - "astId": 8555, + "astId": 8560, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "canonicalToBridged", "offset": 0, @@ -1303,7 +1303,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 8560, + "astId": 8565, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "btokenDenylist", "offset": 0, @@ -1311,7 +1311,7 @@ "type": "t_mapping(t_address,t_bool)" }, { - "astId": 8567, + "astId": 8572, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "lastMigrationStart", "offset": 0, @@ -1319,7 +1319,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))" }, { - "astId": 8571, + "astId": 8576, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "__gap", "offset": 0, @@ -1370,12 +1370,12 @@ "numberOfBytes": "32", "value": "t_bool" }, - "t_mapping(t_address,t_struct(CanonicalERC20)8526_storage)": { + "t_mapping(t_address,t_struct(CanonicalERC20)8531_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct ERC20Vault.CanonicalERC20)", "numberOfBytes": "32", - "value": "t_struct(CanonicalERC20)8526_storage" + "value": "t_struct(CanonicalERC20)8531_storage" }, "t_mapping(t_address,t_uint256)": { "encoding": "mapping", @@ -1403,13 +1403,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalERC20)8526_storage": { + "t_struct(CanonicalERC20)8531_storage": { "encoding": "inplace", "label": "struct ERC20Vault.CanonicalERC20", "numberOfBytes": "96", "members": [ { - "astId": 8517, + "astId": 8522, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "chainId", "offset": 0, @@ -1417,7 +1417,7 @@ "type": "t_uint64" }, { - "astId": 8519, + "astId": 8524, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "addr", "offset": 8, @@ -1425,7 +1425,7 @@ "type": "t_address" }, { - "astId": 8521, + "astId": 8526, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "decimals", "offset": 28, @@ -1433,7 +1433,7 @@ "type": "t_uint8" }, { - "astId": 8523, + "astId": 8528, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "symbol", "offset": 0, @@ -1441,7 +1441,7 @@ "type": "t_string_storage" }, { - "astId": 8525, + "astId": 8530, "contract": "contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault", "label": "name", "offset": 0, @@ -1470,7 +1470,7 @@ "ERC721VaultImpl": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_initialized", "offset": 0, @@ -1478,7 +1478,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_initializing", "offset": 1, @@ -1486,7 +1486,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1494,7 +1494,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_owner", "offset": 0, @@ -1502,7 +1502,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1510,7 +1510,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_pendingOwner", "offset": 0, @@ -1518,7 +1518,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1526,7 +1526,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "addressManager", "offset": 0, @@ -1534,7 +1534,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1542,7 +1542,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__reentry", "offset": 0, @@ -1550,7 +1550,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__paused", "offset": 1, @@ -1558,7 +1558,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "lastUnpausedAt", "offset": 2, @@ -1566,7 +1566,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1574,7 +1574,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6450, + "astId": 6455, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1582,15 +1582,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 6292, + "astId": 6297, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalNFT)6271_storage)" }, { - "astId": 6299, + "astId": 6304, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "canonicalToBridged", "offset": 0, @@ -1598,7 +1598,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 6303, + "astId": 6308, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1606,7 +1606,7 @@ "type": "t_array(t_uint256)48_storage" }, { - "astId": 9617, + "astId": 9622, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1650,12 +1650,12 @@ "numberOfBytes": "32", "value": "t_address" }, - "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)": { + "t_mapping(t_address,t_struct(CanonicalNFT)6271_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct BaseNFTVault.CanonicalNFT)", "numberOfBytes": "32", - "value": "t_struct(CanonicalNFT)6266_storage" + "value": "t_struct(CanonicalNFT)6271_storage" }, "t_mapping(t_uint256,t_mapping(t_address,t_address))": { "encoding": "mapping", @@ -1669,13 +1669,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalNFT)6266_storage": { + "t_struct(CanonicalNFT)6271_storage": { "encoding": "inplace", "label": "struct BaseNFTVault.CanonicalNFT", "numberOfBytes": "96", "members": [ { - "astId": 6259, + "astId": 6264, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "chainId", "offset": 0, @@ -1683,7 +1683,7 @@ "type": "t_uint64" }, { - "astId": 6261, + "astId": 6266, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "addr", "offset": 8, @@ -1691,7 +1691,7 @@ "type": "t_address" }, { - "astId": 6263, + "astId": 6268, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "symbol", "offset": 0, @@ -1699,7 +1699,7 @@ "type": "t_string_storage" }, { - "astId": 6265, + "astId": 6270, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "name", "offset": 0, @@ -1728,7 +1728,7 @@ "ERC721Vault": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_initialized", "offset": 0, @@ -1736,7 +1736,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_initializing", "offset": 1, @@ -1744,7 +1744,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1752,7 +1752,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_owner", "offset": 0, @@ -1760,7 +1760,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1768,7 +1768,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "_pendingOwner", "offset": 0, @@ -1776,7 +1776,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1784,7 +1784,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "addressManager", "offset": 0, @@ -1792,7 +1792,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1800,7 +1800,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__reentry", "offset": 0, @@ -1808,7 +1808,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__paused", "offset": 1, @@ -1816,7 +1816,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "lastUnpausedAt", "offset": 2, @@ -1824,7 +1824,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1832,7 +1832,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6450, + "astId": 6455, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1840,15 +1840,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 6292, + "astId": 6297, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalNFT)6271_storage)" }, { - "astId": 6299, + "astId": 6304, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "canonicalToBridged", "offset": 0, @@ -1856,7 +1856,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 6303, + "astId": 6308, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1864,7 +1864,7 @@ "type": "t_array(t_uint256)48_storage" }, { - "astId": 9617, + "astId": 9622, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "__gap", "offset": 0, @@ -1908,12 +1908,12 @@ "numberOfBytes": "32", "value": "t_address" }, - "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)": { + "t_mapping(t_address,t_struct(CanonicalNFT)6271_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct BaseNFTVault.CanonicalNFT)", "numberOfBytes": "32", - "value": "t_struct(CanonicalNFT)6266_storage" + "value": "t_struct(CanonicalNFT)6271_storage" }, "t_mapping(t_uint256,t_mapping(t_address,t_address))": { "encoding": "mapping", @@ -1927,13 +1927,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalNFT)6266_storage": { + "t_struct(CanonicalNFT)6271_storage": { "encoding": "inplace", "label": "struct BaseNFTVault.CanonicalNFT", "numberOfBytes": "96", "members": [ { - "astId": 6259, + "astId": 6264, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "chainId", "offset": 0, @@ -1941,7 +1941,7 @@ "type": "t_uint64" }, { - "astId": 6261, + "astId": 6266, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "addr", "offset": 8, @@ -1949,7 +1949,7 @@ "type": "t_address" }, { - "astId": 6263, + "astId": 6268, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "symbol", "offset": 0, @@ -1957,7 +1957,7 @@ "type": "t_string_storage" }, { - "astId": 6265, + "astId": 6270, "contract": "contracts/shared/tokenvault/ERC721Vault.sol:ERC721Vault", "label": "name", "offset": 0, @@ -1986,7 +1986,7 @@ "ERC1155VaultImpl": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_initialized", "offset": 0, @@ -1994,7 +1994,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_initializing", "offset": 1, @@ -2002,7 +2002,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2010,7 +2010,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_owner", "offset": 0, @@ -2018,7 +2018,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2026,7 +2026,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_pendingOwner", "offset": 0, @@ -2034,7 +2034,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2042,7 +2042,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "addressManager", "offset": 0, @@ -2050,7 +2050,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2058,7 +2058,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__reentry", "offset": 0, @@ -2066,7 +2066,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__paused", "offset": 1, @@ -2074,7 +2074,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "lastUnpausedAt", "offset": 2, @@ -2082,7 +2082,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2090,7 +2090,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6450, + "astId": 6455, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2098,15 +2098,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 6292, + "astId": 6297, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalNFT)6271_storage)" }, { - "astId": 6299, + "astId": 6304, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "canonicalToBridged", "offset": 0, @@ -2114,7 +2114,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 6303, + "astId": 6308, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2122,7 +2122,7 @@ "type": "t_array(t_uint256)48_storage" }, { - "astId": 16769, + "astId": 16774, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2130,7 +2130,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 12576, + "astId": 12581, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2138,7 +2138,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 7752, + "astId": 7757, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2182,12 +2182,12 @@ "numberOfBytes": "32", "value": "t_address" }, - "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)": { + "t_mapping(t_address,t_struct(CanonicalNFT)6271_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct BaseNFTVault.CanonicalNFT)", "numberOfBytes": "32", - "value": "t_struct(CanonicalNFT)6266_storage" + "value": "t_struct(CanonicalNFT)6271_storage" }, "t_mapping(t_uint256,t_mapping(t_address,t_address))": { "encoding": "mapping", @@ -2201,13 +2201,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalNFT)6266_storage": { + "t_struct(CanonicalNFT)6271_storage": { "encoding": "inplace", "label": "struct BaseNFTVault.CanonicalNFT", "numberOfBytes": "96", "members": [ { - "astId": 6259, + "astId": 6264, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "chainId", "offset": 0, @@ -2215,7 +2215,7 @@ "type": "t_uint64" }, { - "astId": 6261, + "astId": 6266, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "addr", "offset": 8, @@ -2223,7 +2223,7 @@ "type": "t_address" }, { - "astId": 6263, + "astId": 6268, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "symbol", "offset": 0, @@ -2231,7 +2231,7 @@ "type": "t_string_storage" }, { - "astId": 6265, + "astId": 6270, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "name", "offset": 0, @@ -2260,7 +2260,7 @@ "ERC1155Vault": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_initialized", "offset": 0, @@ -2268,7 +2268,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_initializing", "offset": 1, @@ -2276,7 +2276,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2284,7 +2284,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_owner", "offset": 0, @@ -2292,7 +2292,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2300,7 +2300,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "_pendingOwner", "offset": 0, @@ -2308,7 +2308,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2316,7 +2316,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "addressManager", "offset": 0, @@ -2324,7 +2324,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2332,7 +2332,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__reentry", "offset": 0, @@ -2340,7 +2340,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__paused", "offset": 1, @@ -2348,7 +2348,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "lastUnpausedAt", "offset": 2, @@ -2356,7 +2356,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2364,7 +2364,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 6450, + "astId": 6455, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2372,15 +2372,15 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 6292, + "astId": 6297, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "bridgedToCanonical", "offset": 0, "slot": "301", - "type": "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)" + "type": "t_mapping(t_address,t_struct(CanonicalNFT)6271_storage)" }, { - "astId": 6299, + "astId": 6304, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "canonicalToBridged", "offset": 0, @@ -2388,7 +2388,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_address))" }, { - "astId": 6303, + "astId": 6308, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2396,7 +2396,7 @@ "type": "t_array(t_uint256)48_storage" }, { - "astId": 16769, + "astId": 16774, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2404,7 +2404,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 12576, + "astId": 12581, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2412,7 +2412,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 7752, + "astId": 7757, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "__gap", "offset": 0, @@ -2456,12 +2456,12 @@ "numberOfBytes": "32", "value": "t_address" }, - "t_mapping(t_address,t_struct(CanonicalNFT)6266_storage)": { + "t_mapping(t_address,t_struct(CanonicalNFT)6271_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct BaseNFTVault.CanonicalNFT)", "numberOfBytes": "32", - "value": "t_struct(CanonicalNFT)6266_storage" + "value": "t_struct(CanonicalNFT)6271_storage" }, "t_mapping(t_uint256,t_mapping(t_address,t_address))": { "encoding": "mapping", @@ -2475,13 +2475,13 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(CanonicalNFT)6266_storage": { + "t_struct(CanonicalNFT)6271_storage": { "encoding": "inplace", "label": "struct BaseNFTVault.CanonicalNFT", "numberOfBytes": "96", "members": [ { - "astId": 6259, + "astId": 6264, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "chainId", "offset": 0, @@ -2489,7 +2489,7 @@ "type": "t_uint64" }, { - "astId": 6261, + "astId": 6266, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "addr", "offset": 8, @@ -2497,7 +2497,7 @@ "type": "t_address" }, { - "astId": 6263, + "astId": 6268, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "symbol", "offset": 0, @@ -2505,7 +2505,7 @@ "type": "t_string_storage" }, { - "astId": 6265, + "astId": 6270, "contract": "contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault", "label": "name", "offset": 0, @@ -2534,7 +2534,7 @@ "BridgedERC20": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_initialized", "offset": 0, @@ -2542,7 +2542,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_initializing", "offset": 1, @@ -2550,7 +2550,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2558,7 +2558,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_owner", "offset": 0, @@ -2566,7 +2566,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2574,7 +2574,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_pendingOwner", "offset": 0, @@ -2582,7 +2582,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2590,7 +2590,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "addressManager", "offset": 0, @@ -2598,7 +2598,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2606,7 +2606,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__reentry", "offset": 0, @@ -2614,7 +2614,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__paused", "offset": 1, @@ -2622,7 +2622,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "lastUnpausedAt", "offset": 2, @@ -2630,7 +2630,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2638,7 +2638,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 12597, + "astId": 12602, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_balances", "offset": 0, @@ -2646,7 +2646,7 @@ "type": "t_mapping(t_address,t_uint256)" }, { - "astId": 12603, + "astId": 12608, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_allowances", "offset": 0, @@ -2654,7 +2654,7 @@ "type": "t_mapping(t_address,t_mapping(t_address,t_uint256))" }, { - "astId": 12605, + "astId": 12610, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_totalSupply", "offset": 0, @@ -2662,7 +2662,7 @@ "type": "t_uint256" }, { - "astId": 12607, + "astId": 12612, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_name", "offset": 0, @@ -2670,7 +2670,7 @@ "type": "t_string_storage" }, { - "astId": 12609, + "astId": 12614, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "_symbol", "offset": 0, @@ -2678,7 +2678,7 @@ "type": "t_string_storage" }, { - "astId": 13189, + "astId": 13194, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2686,7 +2686,7 @@ "type": "t_array(t_uint256)45_storage" }, { - "astId": 6894, + "astId": 6899, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "srcToken", "offset": 0, @@ -2694,7 +2694,7 @@ "type": "t_address" }, { - "astId": 6896, + "astId": 6901, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__srcDecimals", "offset": 20, @@ -2702,7 +2702,7 @@ "type": "t_uint8" }, { - "astId": 6899, + "astId": 6904, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "srcChainId", "offset": 0, @@ -2710,7 +2710,7 @@ "type": "t_uint256" }, { - "astId": 6902, + "astId": 6907, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "migratingAddress", "offset": 0, @@ -2718,7 +2718,7 @@ "type": "t_address" }, { - "astId": 6905, + "astId": 6910, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "migratingInbound", "offset": 20, @@ -2726,7 +2726,7 @@ "type": "t_bool" }, { - "astId": 6909, + "astId": 6914, "contract": "contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20", "label": "__gap", "offset": 0, @@ -2808,7 +2808,7 @@ "BridgedERC721": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_initialized", "offset": 0, @@ -2816,7 +2816,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_initializing", "offset": 1, @@ -2824,7 +2824,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2832,7 +2832,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_owner", "offset": 0, @@ -2840,7 +2840,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2848,7 +2848,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_pendingOwner", "offset": 0, @@ -2856,7 +2856,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2864,7 +2864,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "addressManager", "offset": 0, @@ -2872,7 +2872,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2880,7 +2880,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__reentry", "offset": 0, @@ -2888,7 +2888,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__paused", "offset": 1, @@ -2896,7 +2896,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "lastUnpausedAt", "offset": 2, @@ -2904,7 +2904,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2912,7 +2912,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 16769, + "astId": 16774, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2920,7 +2920,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 14306, + "astId": 14311, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_name", "offset": 0, @@ -2928,7 +2928,7 @@ "type": "t_string_storage" }, { - "astId": 14308, + "astId": 14313, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_symbol", "offset": 0, @@ -2936,7 +2936,7 @@ "type": "t_string_storage" }, { - "astId": 14312, + "astId": 14317, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_owners", "offset": 0, @@ -2944,7 +2944,7 @@ "type": "t_mapping(t_uint256,t_address)" }, { - "astId": 14316, + "astId": 14321, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_balances", "offset": 0, @@ -2952,7 +2952,7 @@ "type": "t_mapping(t_address,t_uint256)" }, { - "astId": 14320, + "astId": 14325, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_tokenApprovals", "offset": 0, @@ -2960,7 +2960,7 @@ "type": "t_mapping(t_uint256,t_address)" }, { - "astId": 14326, + "astId": 14331, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "_operatorApprovals", "offset": 0, @@ -2968,7 +2968,7 @@ "type": "t_mapping(t_address,t_mapping(t_address,t_bool))" }, { - "astId": 15228, + "astId": 15233, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -2976,7 +2976,7 @@ "type": "t_array(t_uint256)44_storage" }, { - "astId": 7533, + "astId": 7538, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "srcToken", "offset": 0, @@ -2984,7 +2984,7 @@ "type": "t_address" }, { - "astId": 7536, + "astId": 7541, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "srcChainId", "offset": 0, @@ -2992,7 +2992,7 @@ "type": "t_uint256" }, { - "astId": 7540, + "astId": 7545, "contract": "contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721", "label": "__gap", "offset": 0, @@ -3088,7 +3088,7 @@ "BridgedERC1155": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_initialized", "offset": 0, @@ -3096,7 +3096,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_initializing", "offset": 1, @@ -3104,7 +3104,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3112,7 +3112,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_owner", "offset": 0, @@ -3120,7 +3120,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3128,7 +3128,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_pendingOwner", "offset": 0, @@ -3136,7 +3136,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3144,7 +3144,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "addressManager", "offset": 0, @@ -3152,7 +3152,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3160,7 +3160,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__reentry", "offset": 0, @@ -3168,7 +3168,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__paused", "offset": 1, @@ -3176,7 +3176,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "lastUnpausedAt", "offset": 2, @@ -3184,7 +3184,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3192,7 +3192,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 16769, + "astId": 16774, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3200,7 +3200,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 11128, + "astId": 11133, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_balances", "offset": 0, @@ -3208,7 +3208,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_address,t_uint256))" }, { - "astId": 11134, + "astId": 11139, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_operatorApprovals", "offset": 0, @@ -3216,7 +3216,7 @@ "type": "t_mapping(t_address,t_mapping(t_address,t_bool))" }, { - "astId": 11136, + "astId": 11141, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "_uri", "offset": 0, @@ -3224,7 +3224,7 @@ "type": "t_string_storage" }, { - "astId": 12343, + "astId": 12348, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3232,7 +3232,7 @@ "type": "t_array(t_uint256)47_storage" }, { - "astId": 6667, + "astId": 6672, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "srcToken", "offset": 0, @@ -3240,7 +3240,7 @@ "type": "t_address" }, { - "astId": 6670, + "astId": 6675, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "srcChainId", "offset": 0, @@ -3248,7 +3248,7 @@ "type": "t_uint256" }, { - "astId": 6673, + "astId": 6678, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "symbol", "offset": 0, @@ -3256,7 +3256,7 @@ "type": "t_string_storage" }, { - "astId": 6676, + "astId": 6681, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "name", "offset": 0, @@ -3264,7 +3264,7 @@ "type": "t_string_storage" }, { - "astId": 6680, + "astId": 6685, "contract": "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155", "label": "__gap", "offset": 0, @@ -3360,7 +3360,7 @@ "SignalServiceImpl": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_initialized", "offset": 0, @@ -3368,7 +3368,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_initializing", "offset": 1, @@ -3376,7 +3376,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3384,7 +3384,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_owner", "offset": 0, @@ -3392,7 +3392,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3400,7 +3400,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_pendingOwner", "offset": 0, @@ -3408,7 +3408,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3416,7 +3416,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "addressManager", "offset": 0, @@ -3424,7 +3424,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3432,7 +3432,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__reentry", "offset": 0, @@ -3440,7 +3440,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__paused", "offset": 1, @@ -3448,7 +3448,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "lastUnpausedAt", "offset": 2, @@ -3456,7 +3456,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3464,7 +3464,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 5229, + "astId": 5234, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "topBlockId", "offset": 0, @@ -3472,7 +3472,7 @@ "type": "t_mapping(t_uint64,t_mapping(t_bytes32,t_uint64))" }, { - "astId": 5234, + "astId": 5239, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "isAuthorized", "offset": 0, @@ -3480,7 +3480,7 @@ "type": "t_mapping(t_address,t_bool)" }, { - "astId": 5238, + "astId": 5243, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3563,7 +3563,7 @@ "SignalService": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_initialized", "offset": 0, @@ -3571,7 +3571,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_initializing", "offset": 1, @@ -3579,7 +3579,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3587,7 +3587,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_owner", "offset": 0, @@ -3595,7 +3595,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3603,7 +3603,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "_pendingOwner", "offset": 0, @@ -3611,7 +3611,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3619,7 +3619,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "addressManager", "offset": 0, @@ -3627,7 +3627,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3635,7 +3635,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__reentry", "offset": 0, @@ -3643,7 +3643,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__paused", "offset": 1, @@ -3651,7 +3651,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "lastUnpausedAt", "offset": 2, @@ -3659,7 +3659,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3667,7 +3667,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 5229, + "astId": 5234, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "topBlockId", "offset": 0, @@ -3675,7 +3675,7 @@ "type": "t_mapping(t_uint64,t_mapping(t_bytes32,t_uint64))" }, { - "astId": 5234, + "astId": 5239, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "isAuthorized", "offset": 0, @@ -3683,7 +3683,7 @@ "type": "t_mapping(t_address,t_bool)" }, { - "astId": 5238, + "astId": 5243, "contract": "contracts/shared/signal/SignalService.sol:SignalService", "label": "__gap", "offset": 0, @@ -3766,7 +3766,7 @@ "TaikoL2Impl": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_initialized", "offset": 0, @@ -3774,7 +3774,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_initializing", "offset": 1, @@ -3782,7 +3782,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -3790,7 +3790,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_owner", "offset": 0, @@ -3798,7 +3798,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -3806,7 +3806,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_pendingOwner", "offset": 0, @@ -3814,7 +3814,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -3822,7 +3822,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "addressManager", "offset": 0, @@ -3830,7 +3830,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -3838,7 +3838,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__reentry", "offset": 0, @@ -3846,7 +3846,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__paused", "offset": 1, @@ -3854,7 +3854,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "lastUnpausedAt", "offset": 2, @@ -3862,7 +3862,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -3995,7 +3995,7 @@ "TaikoL2": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_initialized", "offset": 0, @@ -4003,7 +4003,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_initializing", "offset": 1, @@ -4011,7 +4011,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -4019,7 +4019,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_owner", "offset": 0, @@ -4027,7 +4027,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -4035,7 +4035,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "_pendingOwner", "offset": 0, @@ -4043,7 +4043,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -4051,7 +4051,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "addressManager", "offset": 0, @@ -4059,7 +4059,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -4067,7 +4067,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__reentry", "offset": 0, @@ -4075,7 +4075,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__paused", "offset": 1, @@ -4083,7 +4083,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "lastUnpausedAt", "offset": 2, @@ -4091,7 +4091,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/layer2/based/TaikoL2.sol:TaikoL2", "label": "__gap", "offset": 0, @@ -4224,7 +4224,7 @@ "RollupAddressManagerImpl": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initialized", "offset": 0, @@ -4232,7 +4232,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initializing", "offset": 1, @@ -4240,7 +4240,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4248,7 +4248,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_owner", "offset": 0, @@ -4256,7 +4256,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4264,7 +4264,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_pendingOwner", "offset": 0, @@ -4272,7 +4272,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4280,7 +4280,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "addressManager", "offset": 0, @@ -4288,7 +4288,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4296,7 +4296,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__reentry", "offset": 0, @@ -4304,7 +4304,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__paused", "offset": 1, @@ -4312,7 +4312,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "lastUnpausedAt", "offset": 2, @@ -4320,7 +4320,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4328,7 +4328,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3536, + "astId": 3541, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__addresses", "offset": 0, @@ -4336,7 +4336,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_bytes32,t_address))" }, { - "astId": 3540, + "astId": 3545, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4406,7 +4406,7 @@ "RollupAddressManager": { "storage": [ { - "astId": 10936, + "astId": 10941, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initialized", "offset": 0, @@ -4414,7 +4414,7 @@ "type": "t_uint8" }, { - "astId": 10939, + "astId": 10944, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_initializing", "offset": 1, @@ -4422,7 +4422,7 @@ "type": "t_bool" }, { - "astId": 15770, + "astId": 15775, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4430,7 +4430,7 @@ "type": "t_array(t_uint256)50_storage" }, { - "astId": 10681, + "astId": 10686, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_owner", "offset": 0, @@ -4438,7 +4438,7 @@ "type": "t_address" }, { - "astId": 10801, + "astId": 10806, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4446,7 +4446,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 10574, + "astId": 10579, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "_pendingOwner", "offset": 0, @@ -4454,7 +4454,7 @@ "type": "t_address" }, { - "astId": 10668, + "astId": 10673, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4462,7 +4462,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3675, + "astId": 3680, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "addressManager", "offset": 0, @@ -4470,7 +4470,7 @@ "type": "t_address" }, { - "astId": 3679, + "astId": 3684, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4478,7 +4478,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3931, + "astId": 3936, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__reentry", "offset": 0, @@ -4486,7 +4486,7 @@ "type": "t_uint8" }, { - "astId": 3933, + "astId": 3938, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__paused", "offset": 1, @@ -4494,7 +4494,7 @@ "type": "t_uint8" }, { - "astId": 3935, + "astId": 3940, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "lastUnpausedAt", "offset": 2, @@ -4502,7 +4502,7 @@ "type": "t_uint64" }, { - "astId": 3939, + "astId": 3944, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4510,7 +4510,7 @@ "type": "t_array(t_uint256)49_storage" }, { - "astId": 3536, + "astId": 3541, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__addresses", "offset": 0, @@ -4518,7 +4518,7 @@ "type": "t_mapping(t_uint256,t_mapping(t_bytes32,t_address))" }, { - "astId": 3540, + "astId": 3545, "contract": "contracts/shared/common/AddressManager.sol:AddressManager", "label": "__gap", "offset": 0, @@ -4592,7 +4592,7 @@ "RegularERC20": { "storage": [ { - "astId": 20319, + "astId": 20324, "contract": "test/shared/token/RegularERC20.sol:RegularERC20", "label": "_balances", "offset": 0, @@ -4600,7 +4600,7 @@ "type": "t_mapping(t_address,t_uint256)" }, { - "astId": 20325, + "astId": 20330, "contract": "test/shared/token/RegularERC20.sol:RegularERC20", "label": "_allowances", "offset": 0, @@ -4608,7 +4608,7 @@ "type": "t_mapping(t_address,t_mapping(t_address,t_uint256))" }, { - "astId": 20327, + "astId": 20332, "contract": "test/shared/token/RegularERC20.sol:RegularERC20", "label": "_totalSupply", "offset": 0, @@ -4616,7 +4616,7 @@ "type": "t_uint256" }, { - "astId": 20329, + "astId": 20334, "contract": "test/shared/token/RegularERC20.sol:RegularERC20", "label": "_name", "offset": 0, @@ -4624,7 +4624,7 @@ "type": "t_string_storage" }, { - "astId": 20331, + "astId": 20336, "contract": "test/shared/token/RegularERC20.sol:RegularERC20", "label": "_symbol", "offset": 0,