From ba586362a5343a5a83cb1dcf131e8af6c248400a Mon Sep 17 00:00:00 2001 From: "dcbuilder.eth" Date: Wed, 11 Oct 2023 11:24:10 +0100 Subject: [PATCH 1/4] update contract abi to match audit changes --- sol/WorldIDIdentityManagerImplV1.json | 18432 ++++++------------------ sol/WorldIDIdentityManagerImplV2.json | 3322 ++--- src/contracts/abi.rs | 2 +- src/contracts/mod.rs | 1 - 4 files changed, 6120 insertions(+), 15637 deletions(-) diff --git a/sol/WorldIDIdentityManagerImplV1.json b/sol/WorldIDIdentityManagerImplV1.json index 330a1807..cc716476 100644 --- a/sol/WorldIDIdentityManagerImplV1.json +++ b/sol/WorldIDIdentityManagerImplV1.json @@ -36,6 +36,16 @@ "name": "InvalidStateBridgeAddress", "type": "error" }, + { + "inputs": [], + "name": "InvalidVerifier", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidVerifierLUT", + "type": "error" + }, { "inputs": [], "name": "MismatchedInputLengths", @@ -326,18 +336,6 @@ "internalType": "uint256", "name": "initialRoot", "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "_enableStateBridge", - "type": "bool" - }, - { - "indexed": false, - "internalType": "contract IBridge", - "name": "__stateBridge", - "type": "address" } ], "name": "WorldIDIdentityManagerImplInitialized", @@ -414,72 +412,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "preRoot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "postRoot", - "type": "uint256" - }, - { - "internalType": "uint32[]", - "name": "leafIndices", - "type": "uint32[]" - }, - { - "internalType": "uint256[]", - "name": "oldIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "newIdentities", - "type": "uint256[]" - } - ], - "name": "calculateIdentityUpdateInputHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "hash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "disableStateBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "enableStateBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getIdentityUpdateVerifierLookupTableAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "getRegisterIdentitiesVerifierLookupTableAddress", @@ -571,16 +503,6 @@ "internalType": "contract ISemaphoreVerifier", "name": "_semaphoreVerifier", "type": "address" - }, - { - "internalType": "bool", - "name": "_enableStateBridge", - "type": "bool" - }, - { - "internalType": "contract IBridge", - "name": "__stateBridge", - "type": "address" } ], "name": "initialize", @@ -748,19 +670,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "contract VerifierLookupTable", - "name": "newTable", - "type": "address" - } - ], - "name": "setIdentityUpdateVerifierLookupTable", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -800,32 +709,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "contract IBridge", - "name": "newStateBridge", - "type": "address" - } - ], - "name": "setStateBridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "stateBridge", - "outputs": [ - { - "internalType": "contract IBridge", - "name": "stateBridgeContract", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -839,44 +722,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256[8]", - "name": "updateProof", - "type": "uint256[8]" - }, - { - "internalType": "uint256", - "name": "preRoot", - "type": "uint256" - }, - { - "internalType": "uint32[]", - "name": "leafIndices", - "type": "uint32[]" - }, - { - "internalType": "uint256[]", - "name": "oldIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "newIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256", - "name": "postRoot", - "type": "uint256" - } - ], - "name": "updateIdentities", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -943,242 +788,162 @@ } ], "bytecode": { - "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051613f506200028c6000396000818161060d01528181610656015281816107340152818161077401528181610bb301528181610bf301528181610ca801528181610ce801528181610de801528181610e2801528181610ecd01528181610f0d01528181611063015281816110a30152818161112f0152818161116f015281816111ea0152818161122a015281816112c101528181611371015281816113b1015281816114ab015281816114eb0152818161163a0152818161167a015281816117460152818161178601528181611849015281816118890152818161192001528181611960015281816119f601528181611a3601528181611aca01528181611b0a01528181611bfe01528181611c3e01528181611d1e01528181611d5e01528181611f9f01528181611fdf01528181612155015281816121950152818161222201528181612262015281816122f801528181612338015281816123cc0152818161240c01528181612781015281816127c101528181612a5601528181612a9601528181612ba801528181612be801528181612ded0152612e2d0152613f506000f3fe6080604052600436106101ee5760003560e01c80638c76a9091161010d578063c70aa727116100a0578063f2038f951161006f578063f2038f951461056e578063f2358e1d14610583578063f2ebe631146105a3578063f2fde38b146105c3578063fa8ca810146105e357600080fd5b8063c70aa72714610506578063d7b0fef114610526578063e30c39781461053b578063f134b6ca1461055957600080fd5b806391f262d3116100dc57806391f262d31461049c578063a26b810e146104b1578063a7bba582146104c6578063b843b4e5146104e657600080fd5b80638c76a909146104225780638da5cb5b146104425780638e5cdd50146104605780638fc22e9f1461048757600080fd5b80634ffbdde5116101855780636b056600116101545780636b056600146103b8578063715018a6146103d857806379ba5097146103ed57806386ec599a1461040257600080fd5b80634ffbdde51461031d57806352d1902d1461034a578063561f204b1461035f57806361ea6a8d146103a357600080fd5b80633659cfe6116101c15780633659cfe6146102755780633f7c178d1461029557806343f974cb146102e75780634f1ef2861461030a57600080fd5b80630e3a12f3146101f35780632217b211146102155780632f059fca14610235578063354ca12014610255575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461353f565b610603565b005b34801561022157600080fd5b506102136102303660046135ce565b61072a565b34801561024157600080fd5b5061021361025036600461353f565b610ba9565b34801561026157600080fd5b5061021361027036600461364b565b610c9e565b34801561028157600080fd5b5061021361029036600461353f565b610dde565b3480156102a157600080fd5b506102b56102b0366004613696565b610ea6565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b3480156102f357600080fd5b506102fc611057565b6040519081526020016102de565b6102136103183660046136f2565b611125565b34801561032957600080fd5b506103326111de565b6040516001600160a01b0390911681526020016102de565b34801561035657600080fd5b506102fc6112b4565b34801561036b57600080fd5b5060408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201526102b5565b3480156103af57600080fd5b50610213611367565b3480156103c457600080fd5b506102136103d336600461353f565b6114a1565b3480156103e457600080fd5b50610213611596565b3480156103f957600080fd5b506102136115b7565b34801561040e57600080fd5b506102fc61041d36600461379e565b61162e565b34801561042e57600080fd5b506102fc61043d36600461384b565b61173a565b34801561044e57600080fd5b506033546001600160a01b0316610332565b34801561046c57600080fd5b5061047561183d565b60405160ff90911681526020016102de565b34801561049357600080fd5b50610332611914565b3480156104a857600080fd5b506103326119ea565b3480156104bd57600080fd5b50610213611ac0565b3480156104d257600080fd5b506103326104e136600461353f565b611bf2565b3480156104f257600080fd5b506102136105013660046138b3565b611d14565b34801561051257600080fd5b50610213610521366004613696565b611f95565b34801561053257600080fd5b506102fc612149565b34801561054757600080fd5b506065546001600160a01b0316610332565b34801561056557600080fd5b50610332612216565b34801561057a57600080fd5b506103326122ec565b34801561058f57600080fd5b5061021361059e366004613696565b6123c2565b3480156105af57600080fd5b506102136105be366004613984565b6124ff565b3480156105cf57600080fd5b506102136105de36600461353f565b612706565b3480156105ef57600080fd5b506102136105fe36600461353f565b612777565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106545760405162461bcd60e51b815260040161064b90613a17565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106866128ad565b6001600160a01b0316146106ac5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166106cf57604051630103019560e11b815260040160405180910390fd5b6106d76128c9565b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107725760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107a46128ad565b6001600160a01b0316146107ca5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166107ed57604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b0316331461081b5760405163472511eb60e11b815233600482015260240161064b565b600080516020613ed4833981519152851061084e5760008560405163af1e188960e01b815260040161064b929190613aaf565b61012e5485146108805761012e5460405163542fced960e11b815261064b918791600401918252602082015260400190565b600080516020613ed483398151915281106108b35760028160405163af1e188960e01b815260040161064b929190613aaf565b6108bd8383612923565b60006108cc858784878761173a565b905060006108e8600080516020613ed483398151915283613adb565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c9190613afd565b9050806001600160a01b03166343753b4d60405180604001604052808c60006008811061098b5761098b613b1a565b602002013581526020018c6001600881106109a8576109a8613b1a565b60200201359052604080516080810182528d820135918101918252908190606082018f60036020020135815250815260200160405180604001604052808f6004600881106109f8576109f8613b1a565b602002013581526020018f600560088110610a1557610a15613b1a565b60200201359052905260408051808201909152808e6006602002013581526020018e600760088110610a4957610a49613b1a565b60200201358152506040518060200160405280888152506040518563ffffffff1660e01b8152600401610a7f9493929190613b53565b6020604051808303816000875af1925050508015610aba575060408051601f3d908101601f19168201909252610ab791810190613bfa565b60015b610b1a57610ac6613c17565b806308c379a003610aff5750610ada613c32565b80610ae55750610b01565b8060405162461bcd60e51b815260040161064b9190613ce0565b505b604051631e716a8b60e01b815260040160405180910390fd5b80610b3857604051631e716a8b60e01b815260040160405180910390fd5b61012e859055600089815261012f6020526040902080546001600160801b031916426001600160801b0316179055610b6e612a4c565b8460006040518b907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505b505050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610bf15760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c236128ad565b6001600160a01b031614610c495760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16610c6c57604051630103019560e11b815260040160405180910390fd5b610c746128c9565b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106fd565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ce65760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d186128ad565b6001600160a01b031614610d3e5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16610d6157604051630103019560e11b815260040160405180910390fd5b610d6a856123c2565b6101335461013454604051634d65479560e11b81526001600160a01b0390921691639aca8f2a91610db291899188918a9189918991600160a81b900460ff1690600401613d13565b60006040518083038186803b158015610dca57600080fd5b505afa158015610b9e573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e265760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e586128ad565b6001600160a01b031614610e7e5760405162461bcd60e51b815260040161064b90613a63565b610e8781612b9e565b60408051600080825260208201909252610ea391839190612c46565b50565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f0b5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f3d6128ad565b6001600160a01b031614610f635760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16610f8657604051630103019560e11b815260040160405180910390fd5b61012e548203610fb55750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b0316908190036110105760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b6101305460009061102a6001600160801b03841642613d4f565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110a15760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110d36128ad565b6001600160a01b0316146110f95760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661111c57604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361116d5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661119f6128ad565b6001600160a01b0316146111c55760405162461bcd60e51b815260040161064b90613a63565b6111ce82612b9e565b6111da82826001612c46565b5050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112285760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661125a6128ad565b6001600160a01b0316146112805760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166112a357604051630103019560e11b815260040160405180910390fd5b50610132546001600160a01b031690565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113545760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161064b565b50600080516020613eb483398151915290565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113af5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113e16128ad565b6001600160a01b0316146114075760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661142a57604051630103019560e11b815260040160405180910390fd5b6114326128c9565b61013454600160a01b900460ff1661148657610134805460ff60a01b1916600160a01b1790556040516001907fc2481c150ab648d8248c5a0b452a12da07a6a26d8e11b0ed6cee10375e14d5e490600090a2565b60405163963a8d4f60e01b815260040160405180910390fd5b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114e95760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661151b6128ad565b6001600160a01b0316146115415760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661156457604051630103019560e11b815260040160405180910390fd5b61156c6128c9565b61013280546001600160a01b038381166001600160a01b03198316811790935516908160026106fd565b61159e6128c9565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146116255760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161064b565b610ea381612db6565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116785760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116aa6128ad565b6001600160a01b0316146116d05760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166116f357604051630103019560e11b815260040160405180910390fd5b60008989898989898989604051602001611714989796959493929190613d99565b60408051601f1981840301815291905280516020909101209a9950505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117845760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117b66128ad565b6001600160a01b0316146117dc5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166117ff57604051630103019560e11b815260040160405180910390fd5b6000868686868660405160200161181a959493929190613dfd565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118875760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118b96128ad565b6001600160a01b0316146118df5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661190257604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361195e5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119906128ad565b6001600160a01b0316146119b65760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166119d957604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a345760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a666128ad565b6001600160a01b031614611a8c5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16611aaf57604051630103019560e11b815260040160405180910390fd5b50610134546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b085760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b3a6128ad565b6001600160a01b031614611b605760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16611b8357604051630103019560e11b815260040160405180910390fd5b611b8b6128c9565b61013454600160a01b900460ff1615611bd957610134805460ff60a01b191690556040516000907fc2481c150ab648d8248c5a0b452a12da07a6a26d8e11b0ed6cee10375e14d5e4908290a2565b6040516331ae429160e21b815260040160405180910390fd5b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611c3c5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c6e6128ad565b6001600160a01b031614611c945760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16611cb757604051630103019560e11b815260040160405180910390fd5b611cbf6128c9565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611d5c5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d8e6128ad565b6001600160a01b031614611db45760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16611dd757604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e055760405163472511eb60e11b815233600482015260240161064b565b600080516020613ed48339815191528810611e385760008860405163af1e188960e01b815260040161064b929190613aaf565b61012e548814611e6a5761012e5460405163542fced960e11b815261064b918a91600401918252602082015260400190565b600080516020613ed48339815191528110611e9d5760028160405163af1e188960e01b815260040161064b929190613aaf565b8584141580611eac5750858214155b15611eca5760405163a0b1d72d60e01b815260040160405180910390fd5b611ed685858585612dcf565b6000611ee889838a8a8a8a8a8a61162e565b90506000611f04600080516020613ed483398151915283613adb565b61013254604051638a283fc360e01b8152600481018b90529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f789190613afd565b9050611f87818d848e88612de3565b505050505050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611fdd5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661200f6128ad565b6001600160a01b0316146120355760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661205857604051630103019560e11b815260040160405180910390fd5b6120606128c9565b806000036120b05760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e0000000000604482015260640161064b565b6101308054908290556101345460405163c70aa72760e01b8152600481018490526001600160a01b039091169063c70aa72790602401600060405180830381600087803b15801561210057600080fd5b505af1158015612114573d6000803e3d6000fd5b50506040518492508391507ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121935760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121c56128ad565b6001600160a01b0316146121eb5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661220e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122605760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122926128ad565b6001600160a01b0316146122b85760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166122db57604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036123365760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166123686128ad565b6001600160a01b03161461238e5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166123b157604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361240a5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661243c6128ad565b6001600160a01b0316146124625760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661248557604051630103019560e11b815260040160405180910390fd5b61012e548114610ea357600081815261012f60205260408120546001600160801b0316908190036124c95760405163ddae3b7160e01b815260040160405180910390fd5b610130546124e06001600160801b03831642613d4f565b11156111da57604051631d739acf60e11b815260040160405180910390fd5b600054600190610100900460ff16158015612521575060005460ff8083169116105b6125845760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161064b565b6000805461ffff191660ff8316176101001790556125a06130e2565b6125a988613111565b6125cb57604051630220cee360e61b815260ff8916600482015260240161064b565b6101348054610e106101305561012e89905561013180546001600160a01b03199081166001600160a01b038b811691909117909255610132805482168a8416179055610133805482168984161790558582166001600160b01b0319909316600160a81b60ff8e16026001600160a81b0319161792909217600160a01b871515021790925560335461012d8054919093169116179055612668613138565b6040805160ff8a16815260208101899052841515818301526001600160a01b038416606082015290517fd93f9e4e87e2eb65cf1cc7027724822fb326319f779480e9e74e58dc0993d2609181900360800190a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b61270e6128c9565b606580546001600160a01b0383166001600160a01b0319909116811790915561273f6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036127bf5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166127f16128ad565b6001600160a01b0316146128175760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661283a57604051630103019560e11b815260040160405180910390fd5b6128426128c9565b6001600160a01b0381166128695760405163ed4cf55760e01b815260040160405180910390fd5b61013454600160a01b900460ff1661288357612883611367565b61013480546001600160a01b038381166001600160a01b03198316811790935516908160006106fd565b600080516020613eb4833981519152546001600160a01b031690565b6033546001600160a01b0316331461149f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b81600582901b81015b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060018335031081831016156129675760208201915061292c565b80821015612a46576000600561297d8484613d4f565b612988911c85613d4f565b9050600085858381811061299e5761299e613b1a565b90506020020135905080600003612a10576020840193505b83351583851016156129cd576020840193506129b6565b82841015612a0b5760056129e18585613d4f565b6129ec911c86613d4f565b91508160405163018f31f560e51b815260040161064b91815260200190565b612a43565b600080516020613ed48339815191528110612a435760018160405163af1e188960e01b815260040161064b929190613aaf565b50505b50505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612a945760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612ac66128ad565b6001600160a01b031614612aec5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16612b0f57604051630103019560e11b815260040160405180910390fd5b61013454600160a01b900460ff168015612b345750610134546001600160a01b031615155b1561149f576101345461012e5460405163393170cf60e01b81526001600160a01b039092169163393170cf91612b709160040190815260200190565b600060405180830381600087803b158015612b8a57600080fd5b505af1158015612a46573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612be65760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612c186128ad565b6001600160a01b031614612c3e5760405162461bcd60e51b815260040161064b90613a63565b610ea36128c9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612c7e57612c798361316e565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612cd8575060408051601f3d908101601f19168201909252612cd591810190613e33565b60015b612d3b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161064b565b600080516020613eb48339815191528114612daa5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161064b565b50612c7983838361320a565b606580546001600160a01b0319169055610ea38161322f565b612dd98484613281565b612a468282613281565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612e2b5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612e5d6128ad565b6001600160a01b031614612e835760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16612ea657604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314612ed45760405163472511eb60e11b815233600482015260240161064b565b6000604051806040016040528086600060088110612ef457612ef4613b1a565b6020020135815260200186600160088110612f1157612f11613b1a565b6020020135905260408051608081018252878201359181019182529192506000919081906060820189600360200201358152508152602001604051806040016040528089600460088110612f6757612f67613b1a565b6020020135815260200189600560088110612f8457612f84613b1a565b60200201359052905260408051808201909152909150600090808860066020020135815260200188600760088110612fbe57612fbe613b1a565b6020020135815250905060006040518060200160405280888152509050886001600160a01b03166343753b4d858585856040518563ffffffff1660e01b815260040161300d9493929190613b53565b6020604051808303816000875af1925050508015613048575060408051601f3d908101601f1916820190925261304591810190613bfa565b60015b61305457610ac6613c17565b8061307257604051631e716a8b60e01b815260040160405180910390fd5b61012e869055600087815261012f6020526040902080546001600160801b031916426001600160801b03161790556130a8612a4c565b85600160405189907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a450505050505050505050565b600054610100900460ff166131095760405162461bcd60e51b815260040161064b90613e4c565b61149f61330e565b60006010602060ff8416821180159061313057508060ff168460ff1611155b949350505050565b600054610100900460ff1661315f5760405162461bcd60e51b815260040161064b90613e4c565b60fb805460ff19166001179055565b6001600160a01b0381163b6131db5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161064b565b600080516020613eb483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61321383613345565b6000825111806132205750805b15612c7957612a468383613385565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b81600582901b81015b600080516020613ed483398151915282351081831016156132b05760208201915061328a565b80821015612a4657600060056132c68484613d4f565b6132d1911c85613d4f565b905060008585838181106132e7576132e7613b1a565b90506020020135905060018160405163af1e188960e01b815260040161064b929190613aaf565b600054610100900460ff166133355760405162461bcd60e51b815260040161064b90613e4c565b61333d61347b565b61149f6134aa565b61334e8161316e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6133ed5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161064b565b600080846001600160a01b0316846040516134089190613e97565b600060405180830381855af49150503d8060008114613443576040519150601f19603f3d011682016040523d82523d6000602084013e613448565b606091505b50915091506134708282604051806060016040528060278152602001613ef4602791396134d1565b925050505b92915050565b600054610100900460ff166134a25760405162461bcd60e51b815260040161064b90613e4c565b61149f6134ea565b600054610100900460ff1661149f5760405162461bcd60e51b815260040161064b90613e4c565b606083156134e0575081611009565b611009838361351a565b600054610100900460ff166135115760405162461bcd60e51b815260040161064b90613e4c565b61149f33612db6565b815115610ae55781518083602001fd5b6001600160a01b0381168114610ea357600080fd5b60006020828403121561355157600080fd5b81356110098161352a565b80610100810183101561347557600080fd5b803563ffffffff8116811461105257600080fd5b60008083601f84011261359457600080fd5b50813567ffffffffffffffff8111156135ac57600080fd5b6020830191508360208260051b85010111156135c757600080fd5b9250929050565b60008060008060008061018087890312156135e857600080fd5b6135f2888861355c565b95506101008701359450613609610120880161356e565b935061014087013567ffffffffffffffff81111561362657600080fd5b61363289828a01613582565b979a969950949794969561016090950135949350505050565b6000806000806000610180868803121561366457600080fd5b8535945060208601359350604086013592506060860135915061368a876080880161355c565b90509295509295909350565b6000602082840312156136a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156136eb576136eb6136af565b6040525050565b6000806040838503121561370557600080fd5b82356137108161352a565b915060208381013567ffffffffffffffff8082111561372e57600080fd5b818601915086601f83011261374257600080fd5b813581811115613754576137546136af565b604051915061376c601f8201601f19168501836136c5565b808252878482850101111561378057600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060008060008060a0898b0312156137ba57600080fd5b8835975060208901359650604089013567ffffffffffffffff808211156137e057600080fd5b6137ec8c838d01613582565b909850965060608b013591508082111561380557600080fd5b6138118c838d01613582565b909650945060808b013591508082111561382a57600080fd5b506138378b828c01613582565b999c989b5096995094979396929594505050565b60008060008060006080868803121561386357600080fd5b61386c8661356e565b94506020860135935060408601359250606086013567ffffffffffffffff81111561389657600080fd5b6138a288828901613582565b969995985093965092949392505050565b60008060008060008060008060006101a08a8c0312156138d257600080fd5b6138dc8b8b61355c565b98506101008a013597506101208a013567ffffffffffffffff8082111561390257600080fd5b61390e8d838e01613582565b90995097506101408c013591508082111561392857600080fd5b6139348d838e01613582565b90975095506101608c013591508082111561394e57600080fd5b5061395b8c828d01613582565b9a9d999c50979a969995989497966101800135949350505050565b8015158114610ea357600080fd5b600080600080600080600060e0888a03121561399f57600080fd5b873560ff811681146139b057600080fd5b96506020880135955060408801356139c78161352a565b945060608801356139d78161352a565b935060808801356139e78161352a565b925060a08801356139f781613976565b915060c0880135613a078161352a565b8091505092959891949750929550565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6040810160038410613ad157634e487b7160e01b600052602160045260246000fd5b9281526020015290565b600082613af857634e487b7160e01b600052601260045260246000fd5b500690565b600060208284031215613b0f57600080fd5b81516110098161352a565b634e487b7160e01b600052603260045260246000fd5b8060005b6002811015612a46578151845260209384019390910190600101613b34565b6101208101613b628287613b30565b60408083018660005b6002808210613b7a5750613bb5565b82518460005b83811015613b9e578251825260209283019290910190600101613b80565b505050928401925060209190910190600101613b6b565b50505050613bc660c0830185613b30565b61010082018360005b6001811015613bee578151835260209283019290910190600101613bcf565b50505095945050505050565b600060208284031215613c0c57600080fd5b815161100981613976565b600060033d11156111225760046000803e5060005160e01c90565b600060443d1015613c405790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715613c7057505050505090565b8285019150815181811115613c885750505050505090565b843d8701016020828501011115613ca25750505050505090565b613cb1602082860101876136c5565b509095945050505050565b60005b83811015613cd7578181015183820152602001613cbf565b50506000910152565b6020815260008251806020840152613cff816040850160208701613cbc565b601f01601f19169190910160400192915050565b60006101a08201905087825286602083015285604083015284606083015261010084608084013760ff8316610180830152979650505050505050565b8181038181111561347557634e487b7160e01b600052601160045260246000fd5b60006001600160fb1b03831115613d8657600080fd5b8260051b80838637939093019392505050565b888152600060208981840152604083018960005b8a811015613dd65763ffffffff613dc38361356e565b1683529183019190830190600101613dad565b5050613ded613de682898b613d70565b8688613d70565b9c9b505050505050505050505050565b63ffffffff60e01b8660e01b1681528460048201528360248201526000613e28604483018486613d70565b979650505050505050565b600060208284031215613e4557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613ea9818460208701613cbc565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a6bd3b4b30c83f6b688e2bb816c3a65abbd0dd57b8326384c0691073056504b664736f6c63430008130033", - "sourceMap": "885:51718:42:-:0;;;1332:4:23;1289:48;;12676:281:42;;;;;;;;;-1:-1:-1;12928:22:42;:20;:22::i;:::-;885:51718;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:90;5987:66:22;;;198:21:90;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:90;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:90;;;6162:28:22;;552:2:90;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:90:-;885:51718:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161299f62000200600039600081816104ad015281816104f6015281816105fb0152818161063b015281816109060152818161094601528181610a2201528181610a6201528181610b6c01528181610bac01528181610e9301528181610ed30152818161102901528181611069015281816110f501528181611135015281816111b1015281816112fb0152818161133b015281816113fe0152818161143e015281816114d501528181611515015281816115ab015281816115eb015281816116cb0152818161170b0152818161182201528181611862015281816118ef0152818161192f015281816119c501528181611a0501528181611a9901528181611ad901528181611cbf0152611cff015261299f6000f3fe6080604052600436106101665760003560e01c806379ba5097116100d1578063c70aa7271161008a578063f134b6ca11610064578063f134b6ca14610439578063f2038f951461044e578063f2358e1d14610463578063f2fde38b1461048357600080fd5b8063c70aa727146103e6578063d7b0fef114610406578063e30c39781461041b57600080fd5b806379ba5097146103235780638c76a909146103385780638da5cb5b146103585780638e5cdd501461038a5780638fc22e9f146103b1578063a7bba582146103c657600080fd5b80633f7c178d116101235780633f7c178d1461022d57806343f974cb1461027f5780634f1ef286146102a257806352d1902d146102b5578063561f204b146102ca578063715018a61461030e57600080fd5b80630e3a12f31461016b5780632217b2111461018d5780632f059fca146101ad578063354ca120146101cd5780633659cfe6146101ed57806338c870651461020d575b600080fd5b34801561017757600080fd5b5061018b6101863660046122bc565b6104a3565b005b34801561019957600080fd5b5061018b6101a836600461234b565b6105f1565b3480156101b957600080fd5b5061018b6101c83660046122bc565b6108fc565b3480156101d957600080fd5b5061018b6101e83660046123c8565b610a18565b3480156101f957600080fd5b5061018b6102083660046122bc565b610b62565b34801561021957600080fd5b5061018b610228366004612413565b610c2a565b34801561023957600080fd5b5061024d610248366004612481565b610e6c565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b34801561028b57600080fd5b5061029461101d565b604051908152602001610276565b61018b6102b03660046124dd565b6110eb565b3480156102c157600080fd5b506102946111a4565b3480156102d657600080fd5b50604080516060808201835260008083526020808401829052928401819052835191820184528082529181018290529182015261024d565b34801561031a57600080fd5b5061018b611257565b34801561032f57600080fd5b5061018b611278565b34801561034457600080fd5b50610294610353366004612589565b6112ef565b34801561036457600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561039657600080fd5b5061039f6113f2565b60405160ff9091168152602001610276565b3480156103bd57600080fd5b506103726114c9565b3480156103d257600080fd5b506103726103e13660046122bc565b61159f565b3480156103f257600080fd5b5061018b610401366004612481565b6116c1565b34801561041257600080fd5b50610294611816565b34801561042757600080fd5b506065546001600160a01b0316610372565b34801561044557600080fd5b506103726118e3565b34801561045a57600080fd5b506103726119b9565b34801561046f57600080fd5b5061018b61047e366004612481565b611a8f565b34801561048f57600080fd5b5061018b61049e3660046122bc565b611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104f45760405162461bcd60e51b81526004016104eb906125f1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610526611c3d565b6001600160a01b03161461054c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661056f57604051630103019560e11b815260040160405180910390fd5b610577611c59565b6001600160a01b03811661059e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066b611c3d565b6001600160a01b0316146106915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166106b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146106e25760405163472511eb60e11b81523360048201526024016104eb565b61012e5485146107145761012e5460405163542fced960e11b81526104eb918791600401918252602082015260400190565b600061072385878487876112ef565b905060006107517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612689565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c591906126ab565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610801918d91906004016126c8565b600060405180830381600087803b15801561081b57600080fd5b505af192505050801561082c575060015b61088c57610838612703565b806308c379a003610871575061084c61271e565b806108575750610873565b8060405162461bcd60e51b81526004016104eb91906127cc565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546fffffffffffffffffffffffffffffffff1916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109445760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610976611c3d565b6001600160a01b03161461099c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166109bf57604051630103019560e11b815260040160405180910390fd5b6109c7611c59565b6001600160a01b0381166109ee57604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016105c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a92611c3d565b6001600160a01b031614610ab85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610adb57604051630103019560e11b815260040160405180910390fd5b610ae485611a8f565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610b36918591906004016127ff565b60006040518083038186803b158015610b4e57600080fd5b505afa1580156108f1573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610baa5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611c3d565b6001600160a01b031614610c025760405162461bcd60e51b81526004016104eb9061263d565b610c0b81611cb5565b60408051600080825260208201909252610c2791839190611d5d565b50565b600054600190610100900460ff16158015610c4c575060005460ff8083169116105b610caf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104eb565b6000805461ffff191660ff8316176101001790556001600160a01b038416610cea57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610d1157604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610d385760405163baa3de5f60e01b815260040160405180910390fd5b610d40611ecd565b610d4986611efc565b610d6b57604051630220cee360e61b815260ff871660048201526024016104eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055610de7611f23565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ed15760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f03611c3d565b6001600160a01b031614610f295760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610f4c57604051630103019560e11b815260040160405180910390fd5b61012e548203610f7b5750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b031690819003610fd65760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b61013054600090610ff06001600160801b03841642612830565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110675760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611099611c3d565b6001600160a01b0316146110bf5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166110e257604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111335760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611165611c3d565b6001600160a01b03161461118b5760405162461bcd60e51b81526004016104eb9061263d565b61119482611cb5565b6111a082826001611d5d565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104eb565b5060008051602061292383398151915290565b61125f611c59565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146112e65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104eb565b610c2781611f59565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661136b611c3d565b6001600160a01b0316146113915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166113b457604051630103019560e11b815260040160405180910390fd5b600086868686866040516020016113cf959493929190612851565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361143c5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661146e611c3d565b6001600160a01b0316146114945760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166114b757604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115135760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611545611c3d565b6001600160a01b03161461156b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661158e57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115e95760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661161b611c3d565b6001600160a01b0316146116415760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661166457604051630103019560e11b815260040160405180910390fd5b61166c611c59565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117095760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661173b611c3d565b6001600160a01b0316146117615760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661178457604051630103019560e11b815260040160405180910390fd5b61178c611c59565b806000036117dc5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016104eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611892611c3d565b6001600160a01b0316146118b85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166118db57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361192d5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661195f611c3d565b6001600160a01b0316146119855760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166119a857604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a035760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a35611c3d565b6001600160a01b031614611a5b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611a7e57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ad75760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b09611c3d565b6001600160a01b031614611b2f5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611b5257604051630103019560e11b815260040160405180910390fd5b61012e548114610c2757600081815261012f60205260408120546001600160801b031690819003611b965760405163ddae3b7160e01b815260040160405180910390fd5b61013054611bad6001600160801b03831642612830565b11156111a057604051631d739acf60e11b815260040160405180910390fd5b611bd4611c59565b606580546001600160a01b0383166001600160a01b03199091168117909155611c056033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612923833981519152546001600160a01b031690565b6033546001600160a01b03163314611cb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104eb565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cfd5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d2f611c3d565b6001600160a01b031614611d555760405162461bcd60e51b81526004016104eb9061263d565b610c27611c59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d9557611d9083611f72565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611def575060408051601f3d908101601f19168201909252611dec918101906128a2565b60015b611e525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104eb565b6000805160206129238339815191528114611ec15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104eb565b50611d9083838361200e565b600054610100900460ff16611ef45760405162461bcd60e51b81526004016104eb906128bb565b611cb3612039565b60006010602060ff84168211801590611f1b57508060ff168460ff1611155b949350505050565b600054610100900460ff16611f4a5760405162461bcd60e51b81526004016104eb906128bb565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610c2781612070565b6001600160a01b0381163b611fdf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104eb565b60008051602061292383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612017836120c2565b6000825111806120245750805b15611d90576120338383612102565b50505050565b600054610100900460ff166120605760405162461bcd60e51b81526004016104eb906128bb565b6120686121f8565b611cb3612227565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120cb81611f72565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61216a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104eb565b600080846001600160a01b0316846040516121859190612906565b600060405180830381855af49150503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121ed82826040518060600160405280602781526020016129436027913961224e565b925050505b92915050565b600054610100900460ff1661221f5760405162461bcd60e51b81526004016104eb906128bb565b611cb3612267565b600054610100900460ff16611cb35760405162461bcd60e51b81526004016104eb906128bb565b6060831561225d575081610fcf565b610fcf8383612297565b600054610100900460ff1661228e5760405162461bcd60e51b81526004016104eb906128bb565b611cb333611f59565b8151156108575781518083602001fd5b6001600160a01b0381168114610c2757600080fd5b6000602082840312156122ce57600080fd5b8135610fcf816122a7565b8061010081018310156121f257600080fd5b803563ffffffff8116811461101857600080fd5b60008083601f84011261231157600080fd5b50813567ffffffffffffffff81111561232957600080fd5b6020830191508360208260051b850101111561234457600080fd5b9250929050565b600080600080600080610180878903121561236557600080fd5b61236f88886122d9565b9550610100870135945061238661012088016122eb565b935061014087013567ffffffffffffffff8111156123a357600080fd5b6123af89828a016122ff565b979a969950949794969561016090950135949350505050565b600080600080600061018086880312156123e157600080fd5b8535945060208601359350604086013592506060860135915061240787608088016122d9565b90509295509295909350565b600080600080600060a0868803121561242b57600080fd5b853560ff8116811461243c57600080fd5b9450602086013593506040860135612453816122a7565b92506060860135612463816122a7565b91506080860135612473816122a7565b809150509295509295909350565b60006020828403121561249357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156124d6576124d661249a565b6040525050565b600080604083850312156124f057600080fd5b82356124fb816122a7565b915060208381013567ffffffffffffffff8082111561251957600080fd5b818601915086601f83011261252d57600080fd5b81358181111561253f5761253f61249a565b6040519150612557601f8201601f19168501836124b0565b808252878482850101111561256b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806000608086880312156125a157600080fd5b6125aa866122eb565b94506020860135935060408601359250606086013567ffffffffffffffff8111156125d457600080fd5b6125e0888289016122ff565b969995985093965092949392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826126a657634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156126bd57600080fd5b8151610fcf816122a7565b61012081016101008085843782018360005b60018110156126f95781518352602092830192909101906001016126da565b5050509392505050565b600060033d11156110e85760046000803e5060005160e01c90565b600060443d101561272c5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561275c57505050505090565b82850191508151818111156127745750505050505090565b843d870101602082850101111561278e5750505050505090565b61279d602082860101876124b0565b509095945050505050565b60005b838110156127c35781810151838201526020016127ab565b50506000910152565b60208152600082518060208401526127eb8160408501602087016127a8565b601f01601f19169190910160400192915050565b61018081016101008085843782018360005b60048110156126f9578151835260209283019290910190600101612811565b818103818111156121f257634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561288657600080fd5b8260051b80856044850137919091016044019695505050505050565b6000602082840312156128b457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516129188184602087016127a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d633b870ce7639e47f939f23913c37dfc96a2846c751924ff2ef6c68d09aa72264736f6c63430008150033", + "sourceMap": "879:30959:43:-:0;;;1332:4:23;1289:48;;13484:281:43;;;;;;;;;-1:-1:-1;13736:22:43;:20;:22::i;:::-;879:30959;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:77;5987:66:22;;;198:21:77;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:77;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:77;;;6162:28:22;;552:2:77;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:77:-;879:30959:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6080604052600436106101ee5760003560e01c80638c76a9091161010d578063c70aa727116100a0578063f2038f951161006f578063f2038f951461056e578063f2358e1d14610583578063f2ebe631146105a3578063f2fde38b146105c3578063fa8ca810146105e357600080fd5b8063c70aa72714610506578063d7b0fef114610526578063e30c39781461053b578063f134b6ca1461055957600080fd5b806391f262d3116100dc57806391f262d31461049c578063a26b810e146104b1578063a7bba582146104c6578063b843b4e5146104e657600080fd5b80638c76a909146104225780638da5cb5b146104425780638e5cdd50146104605780638fc22e9f1461048757600080fd5b80634ffbdde5116101855780636b056600116101545780636b056600146103b8578063715018a6146103d857806379ba5097146103ed57806386ec599a1461040257600080fd5b80634ffbdde51461031d57806352d1902d1461034a578063561f204b1461035f57806361ea6a8d146103a357600080fd5b80633659cfe6116101c15780633659cfe6146102755780633f7c178d1461029557806343f974cb146102e75780634f1ef2861461030a57600080fd5b80630e3a12f3146101f35780632217b211146102155780632f059fca14610235578063354ca12014610255575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461353f565b610603565b005b34801561022157600080fd5b506102136102303660046135ce565b61072a565b34801561024157600080fd5b5061021361025036600461353f565b610ba9565b34801561026157600080fd5b5061021361027036600461364b565b610c9e565b34801561028157600080fd5b5061021361029036600461353f565b610dde565b3480156102a157600080fd5b506102b56102b0366004613696565b610ea6565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b3480156102f357600080fd5b506102fc611057565b6040519081526020016102de565b6102136103183660046136f2565b611125565b34801561032957600080fd5b506103326111de565b6040516001600160a01b0390911681526020016102de565b34801561035657600080fd5b506102fc6112b4565b34801561036b57600080fd5b5060408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201526102b5565b3480156103af57600080fd5b50610213611367565b3480156103c457600080fd5b506102136103d336600461353f565b6114a1565b3480156103e457600080fd5b50610213611596565b3480156103f957600080fd5b506102136115b7565b34801561040e57600080fd5b506102fc61041d36600461379e565b61162e565b34801561042e57600080fd5b506102fc61043d36600461384b565b61173a565b34801561044e57600080fd5b506033546001600160a01b0316610332565b34801561046c57600080fd5b5061047561183d565b60405160ff90911681526020016102de565b34801561049357600080fd5b50610332611914565b3480156104a857600080fd5b506103326119ea565b3480156104bd57600080fd5b50610213611ac0565b3480156104d257600080fd5b506103326104e136600461353f565b611bf2565b3480156104f257600080fd5b506102136105013660046138b3565b611d14565b34801561051257600080fd5b50610213610521366004613696565b611f95565b34801561053257600080fd5b506102fc612149565b34801561054757600080fd5b506065546001600160a01b0316610332565b34801561056557600080fd5b50610332612216565b34801561057a57600080fd5b506103326122ec565b34801561058f57600080fd5b5061021361059e366004613696565b6123c2565b3480156105af57600080fd5b506102136105be366004613984565b6124ff565b3480156105cf57600080fd5b506102136105de36600461353f565b612706565b3480156105ef57600080fd5b506102136105fe36600461353f565b612777565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106545760405162461bcd60e51b815260040161064b90613a17565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106866128ad565b6001600160a01b0316146106ac5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166106cf57604051630103019560e11b815260040160405180910390fd5b6106d76128c9565b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107725760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107a46128ad565b6001600160a01b0316146107ca5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166107ed57604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b0316331461081b5760405163472511eb60e11b815233600482015260240161064b565b600080516020613ed4833981519152851061084e5760008560405163af1e188960e01b815260040161064b929190613aaf565b61012e5485146108805761012e5460405163542fced960e11b815261064b918791600401918252602082015260400190565b600080516020613ed483398151915281106108b35760028160405163af1e188960e01b815260040161064b929190613aaf565b6108bd8383612923565b60006108cc858784878761173a565b905060006108e8600080516020613ed483398151915283613adb565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c9190613afd565b9050806001600160a01b03166343753b4d60405180604001604052808c60006008811061098b5761098b613b1a565b602002013581526020018c6001600881106109a8576109a8613b1a565b60200201359052604080516080810182528d820135918101918252908190606082018f60036020020135815250815260200160405180604001604052808f6004600881106109f8576109f8613b1a565b602002013581526020018f600560088110610a1557610a15613b1a565b60200201359052905260408051808201909152808e6006602002013581526020018e600760088110610a4957610a49613b1a565b60200201358152506040518060200160405280888152506040518563ffffffff1660e01b8152600401610a7f9493929190613b53565b6020604051808303816000875af1925050508015610aba575060408051601f3d908101601f19168201909252610ab791810190613bfa565b60015b610b1a57610ac6613c17565b806308c379a003610aff5750610ada613c32565b80610ae55750610b01565b8060405162461bcd60e51b815260040161064b9190613ce0565b505b604051631e716a8b60e01b815260040160405180910390fd5b80610b3857604051631e716a8b60e01b815260040160405180910390fd5b61012e859055600089815261012f6020526040902080546001600160801b031916426001600160801b0316179055610b6e612a4c565b8460006040518b907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505b505050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610bf15760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c236128ad565b6001600160a01b031614610c495760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16610c6c57604051630103019560e11b815260040160405180910390fd5b610c746128c9565b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106fd565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ce65760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d186128ad565b6001600160a01b031614610d3e5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16610d6157604051630103019560e11b815260040160405180910390fd5b610d6a856123c2565b6101335461013454604051634d65479560e11b81526001600160a01b0390921691639aca8f2a91610db291899188918a9189918991600160a81b900460ff1690600401613d13565b60006040518083038186803b158015610dca57600080fd5b505afa158015610b9e573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e265760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e586128ad565b6001600160a01b031614610e7e5760405162461bcd60e51b815260040161064b90613a63565b610e8781612b9e565b60408051600080825260208201909252610ea391839190612c46565b50565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f0b5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f3d6128ad565b6001600160a01b031614610f635760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16610f8657604051630103019560e11b815260040160405180910390fd5b61012e548203610fb55750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b0316908190036110105760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b6101305460009061102a6001600160801b03841642613d4f565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110a15760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110d36128ad565b6001600160a01b0316146110f95760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661111c57604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361116d5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661119f6128ad565b6001600160a01b0316146111c55760405162461bcd60e51b815260040161064b90613a63565b6111ce82612b9e565b6111da82826001612c46565b5050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112285760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661125a6128ad565b6001600160a01b0316146112805760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166112a357604051630103019560e11b815260040160405180910390fd5b50610132546001600160a01b031690565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113545760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161064b565b50600080516020613eb483398151915290565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113af5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113e16128ad565b6001600160a01b0316146114075760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661142a57604051630103019560e11b815260040160405180910390fd5b6114326128c9565b61013454600160a01b900460ff1661148657610134805460ff60a01b1916600160a01b1790556040516001907fc2481c150ab648d8248c5a0b452a12da07a6a26d8e11b0ed6cee10375e14d5e490600090a2565b60405163963a8d4f60e01b815260040160405180910390fd5b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114e95760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661151b6128ad565b6001600160a01b0316146115415760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661156457604051630103019560e11b815260040160405180910390fd5b61156c6128c9565b61013280546001600160a01b038381166001600160a01b03198316811790935516908160026106fd565b61159e6128c9565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146116255760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161064b565b610ea381612db6565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116785760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116aa6128ad565b6001600160a01b0316146116d05760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166116f357604051630103019560e11b815260040160405180910390fd5b60008989898989898989604051602001611714989796959493929190613d99565b60408051601f1981840301815291905280516020909101209a9950505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117845760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117b66128ad565b6001600160a01b0316146117dc5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166117ff57604051630103019560e11b815260040160405180910390fd5b6000868686868660405160200161181a959493929190613dfd565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118875760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118b96128ad565b6001600160a01b0316146118df5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661190257604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361195e5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119906128ad565b6001600160a01b0316146119b65760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166119d957604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a345760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a666128ad565b6001600160a01b031614611a8c5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16611aaf57604051630103019560e11b815260040160405180910390fd5b50610134546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b085760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b3a6128ad565b6001600160a01b031614611b605760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16611b8357604051630103019560e11b815260040160405180910390fd5b611b8b6128c9565b61013454600160a01b900460ff1615611bd957610134805460ff60a01b191690556040516000907fc2481c150ab648d8248c5a0b452a12da07a6a26d8e11b0ed6cee10375e14d5e4908290a2565b6040516331ae429160e21b815260040160405180910390fd5b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611c3c5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c6e6128ad565b6001600160a01b031614611c945760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16611cb757604051630103019560e11b815260040160405180910390fd5b611cbf6128c9565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611d5c5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d8e6128ad565b6001600160a01b031614611db45760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16611dd757604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e055760405163472511eb60e11b815233600482015260240161064b565b600080516020613ed48339815191528810611e385760008860405163af1e188960e01b815260040161064b929190613aaf565b61012e548814611e6a5761012e5460405163542fced960e11b815261064b918a91600401918252602082015260400190565b600080516020613ed48339815191528110611e9d5760028160405163af1e188960e01b815260040161064b929190613aaf565b8584141580611eac5750858214155b15611eca5760405163a0b1d72d60e01b815260040160405180910390fd5b611ed685858585612dcf565b6000611ee889838a8a8a8a8a8a61162e565b90506000611f04600080516020613ed483398151915283613adb565b61013254604051638a283fc360e01b8152600481018b90529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f789190613afd565b9050611f87818d848e88612de3565b505050505050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611fdd5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661200f6128ad565b6001600160a01b0316146120355760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661205857604051630103019560e11b815260040160405180910390fd5b6120606128c9565b806000036120b05760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e0000000000604482015260640161064b565b6101308054908290556101345460405163c70aa72760e01b8152600481018490526001600160a01b039091169063c70aa72790602401600060405180830381600087803b15801561210057600080fd5b505af1158015612114573d6000803e3d6000fd5b50506040518492508391507ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121935760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121c56128ad565b6001600160a01b0316146121eb5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661220e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122605760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122926128ad565b6001600160a01b0316146122b85760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166122db57604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036123365760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166123686128ad565b6001600160a01b03161461238e5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff166123b157604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361240a5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661243c6128ad565b6001600160a01b0316146124625760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661248557604051630103019560e11b815260040160405180910390fd5b61012e548114610ea357600081815261012f60205260408120546001600160801b0316908190036124c95760405163ddae3b7160e01b815260040160405180910390fd5b610130546124e06001600160801b03831642613d4f565b11156111da57604051631d739acf60e11b815260040160405180910390fd5b600054600190610100900460ff16158015612521575060005460ff8083169116105b6125845760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161064b565b6000805461ffff191660ff8316176101001790556125a06130e2565b6125a988613111565b6125cb57604051630220cee360e61b815260ff8916600482015260240161064b565b6101348054610e106101305561012e89905561013180546001600160a01b03199081166001600160a01b038b811691909117909255610132805482168a8416179055610133805482168984161790558582166001600160b01b0319909316600160a81b60ff8e16026001600160a81b0319161792909217600160a01b871515021790925560335461012d8054919093169116179055612668613138565b6040805160ff8a16815260208101899052841515818301526001600160a01b038416606082015290517fd93f9e4e87e2eb65cf1cc7027724822fb326319f779480e9e74e58dc0993d2609181900360800190a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b61270e6128c9565b606580546001600160a01b0383166001600160a01b0319909116811790915561273f6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036127bf5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166127f16128ad565b6001600160a01b0316146128175760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff1661283a57604051630103019560e11b815260040160405180910390fd5b6128426128c9565b6001600160a01b0381166128695760405163ed4cf55760e01b815260040160405180910390fd5b61013454600160a01b900460ff1661288357612883611367565b61013480546001600160a01b038381166001600160a01b03198316811790935516908160006106fd565b600080516020613eb4833981519152546001600160a01b031690565b6033546001600160a01b0316331461149f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b81600582901b81015b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060018335031081831016156129675760208201915061292c565b80821015612a46576000600561297d8484613d4f565b612988911c85613d4f565b9050600085858381811061299e5761299e613b1a565b90506020020135905080600003612a10576020840193505b83351583851016156129cd576020840193506129b6565b82841015612a0b5760056129e18585613d4f565b6129ec911c86613d4f565b91508160405163018f31f560e51b815260040161064b91815260200190565b612a43565b600080516020613ed48339815191528110612a435760018160405163af1e188960e01b815260040161064b929190613aaf565b50505b50505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612a945760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612ac66128ad565b6001600160a01b031614612aec5760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16612b0f57604051630103019560e11b815260040160405180910390fd5b61013454600160a01b900460ff168015612b345750610134546001600160a01b031615155b1561149f576101345461012e5460405163393170cf60e01b81526001600160a01b039092169163393170cf91612b709160040190815260200190565b600060405180830381600087803b158015612b8a57600080fd5b505af1158015612a46573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612be65760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612c186128ad565b6001600160a01b031614612c3e5760405162461bcd60e51b815260040161064b90613a63565b610ea36128c9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612c7e57612c798361316e565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612cd8575060408051601f3d908101601f19168201909252612cd591810190613e33565b60015b612d3b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161064b565b600080516020613eb48339815191528114612daa5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161064b565b50612c7983838361320a565b606580546001600160a01b0319169055610ea38161322f565b612dd98484613281565b612a468282613281565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612e2b5760405162461bcd60e51b815260040161064b90613a17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612e5d6128ad565b6001600160a01b031614612e835760405162461bcd60e51b815260040161064b90613a63565b60fb5460ff16612ea657604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314612ed45760405163472511eb60e11b815233600482015260240161064b565b6000604051806040016040528086600060088110612ef457612ef4613b1a565b6020020135815260200186600160088110612f1157612f11613b1a565b6020020135905260408051608081018252878201359181019182529192506000919081906060820189600360200201358152508152602001604051806040016040528089600460088110612f6757612f67613b1a565b6020020135815260200189600560088110612f8457612f84613b1a565b60200201359052905260408051808201909152909150600090808860066020020135815260200188600760088110612fbe57612fbe613b1a565b6020020135815250905060006040518060200160405280888152509050886001600160a01b03166343753b4d858585856040518563ffffffff1660e01b815260040161300d9493929190613b53565b6020604051808303816000875af1925050508015613048575060408051601f3d908101601f1916820190925261304591810190613bfa565b60015b61305457610ac6613c17565b8061307257604051631e716a8b60e01b815260040160405180910390fd5b61012e869055600087815261012f6020526040902080546001600160801b031916426001600160801b03161790556130a8612a4c565b85600160405189907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a450505050505050505050565b600054610100900460ff166131095760405162461bcd60e51b815260040161064b90613e4c565b61149f61330e565b60006010602060ff8416821180159061313057508060ff168460ff1611155b949350505050565b600054610100900460ff1661315f5760405162461bcd60e51b815260040161064b90613e4c565b60fb805460ff19166001179055565b6001600160a01b0381163b6131db5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161064b565b600080516020613eb483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61321383613345565b6000825111806132205750805b15612c7957612a468383613385565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b81600582901b81015b600080516020613ed483398151915282351081831016156132b05760208201915061328a565b80821015612a4657600060056132c68484613d4f565b6132d1911c85613d4f565b905060008585838181106132e7576132e7613b1a565b90506020020135905060018160405163af1e188960e01b815260040161064b929190613aaf565b600054610100900460ff166133355760405162461bcd60e51b815260040161064b90613e4c565b61333d61347b565b61149f6134aa565b61334e8161316e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6133ed5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161064b565b600080846001600160a01b0316846040516134089190613e97565b600060405180830381855af49150503d8060008114613443576040519150601f19603f3d011682016040523d82523d6000602084013e613448565b606091505b50915091506134708282604051806060016040528060278152602001613ef4602791396134d1565b925050505b92915050565b600054610100900460ff166134a25760405162461bcd60e51b815260040161064b90613e4c565b61149f6134ea565b600054610100900460ff1661149f5760405162461bcd60e51b815260040161064b90613e4c565b606083156134e0575081611009565b611009838361351a565b600054610100900460ff166135115760405162461bcd60e51b815260040161064b90613e4c565b61149f33612db6565b815115610ae55781518083602001fd5b6001600160a01b0381168114610ea357600080fd5b60006020828403121561355157600080fd5b81356110098161352a565b80610100810183101561347557600080fd5b803563ffffffff8116811461105257600080fd5b60008083601f84011261359457600080fd5b50813567ffffffffffffffff8111156135ac57600080fd5b6020830191508360208260051b85010111156135c757600080fd5b9250929050565b60008060008060008061018087890312156135e857600080fd5b6135f2888861355c565b95506101008701359450613609610120880161356e565b935061014087013567ffffffffffffffff81111561362657600080fd5b61363289828a01613582565b979a969950949794969561016090950135949350505050565b6000806000806000610180868803121561366457600080fd5b8535945060208601359350604086013592506060860135915061368a876080880161355c565b90509295509295909350565b6000602082840312156136a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156136eb576136eb6136af565b6040525050565b6000806040838503121561370557600080fd5b82356137108161352a565b915060208381013567ffffffffffffffff8082111561372e57600080fd5b818601915086601f83011261374257600080fd5b813581811115613754576137546136af565b604051915061376c601f8201601f19168501836136c5565b808252878482850101111561378057600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060008060008060a0898b0312156137ba57600080fd5b8835975060208901359650604089013567ffffffffffffffff808211156137e057600080fd5b6137ec8c838d01613582565b909850965060608b013591508082111561380557600080fd5b6138118c838d01613582565b909650945060808b013591508082111561382a57600080fd5b506138378b828c01613582565b999c989b5096995094979396929594505050565b60008060008060006080868803121561386357600080fd5b61386c8661356e565b94506020860135935060408601359250606086013567ffffffffffffffff81111561389657600080fd5b6138a288828901613582565b969995985093965092949392505050565b60008060008060008060008060006101a08a8c0312156138d257600080fd5b6138dc8b8b61355c565b98506101008a013597506101208a013567ffffffffffffffff8082111561390257600080fd5b61390e8d838e01613582565b90995097506101408c013591508082111561392857600080fd5b6139348d838e01613582565b90975095506101608c013591508082111561394e57600080fd5b5061395b8c828d01613582565b9a9d999c50979a969995989497966101800135949350505050565b8015158114610ea357600080fd5b600080600080600080600060e0888a03121561399f57600080fd5b873560ff811681146139b057600080fd5b96506020880135955060408801356139c78161352a565b945060608801356139d78161352a565b935060808801356139e78161352a565b925060a08801356139f781613976565b915060c0880135613a078161352a565b8091505092959891949750929550565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6040810160038410613ad157634e487b7160e01b600052602160045260246000fd5b9281526020015290565b600082613af857634e487b7160e01b600052601260045260246000fd5b500690565b600060208284031215613b0f57600080fd5b81516110098161352a565b634e487b7160e01b600052603260045260246000fd5b8060005b6002811015612a46578151845260209384019390910190600101613b34565b6101208101613b628287613b30565b60408083018660005b6002808210613b7a5750613bb5565b82518460005b83811015613b9e578251825260209283019290910190600101613b80565b505050928401925060209190910190600101613b6b565b50505050613bc660c0830185613b30565b61010082018360005b6001811015613bee578151835260209283019290910190600101613bcf565b50505095945050505050565b600060208284031215613c0c57600080fd5b815161100981613976565b600060033d11156111225760046000803e5060005160e01c90565b600060443d1015613c405790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715613c7057505050505090565b8285019150815181811115613c885750505050505090565b843d8701016020828501011115613ca25750505050505090565b613cb1602082860101876136c5565b509095945050505050565b60005b83811015613cd7578181015183820152602001613cbf565b50506000910152565b6020815260008251806020840152613cff816040850160208701613cbc565b601f01601f19169190910160400192915050565b60006101a08201905087825286602083015285604083015284606083015261010084608084013760ff8316610180830152979650505050505050565b8181038181111561347557634e487b7160e01b600052601160045260246000fd5b60006001600160fb1b03831115613d8657600080fd5b8260051b80838637939093019392505050565b888152600060208981840152604083018960005b8a811015613dd65763ffffffff613dc38361356e565b1683529183019190830190600101613dad565b5050613ded613de682898b613d70565b8688613d70565b9c9b505050505050505050505050565b63ffffffff60e01b8660e01b1681528460048201528360248201526000613e28604483018486613d70565b979650505050505050565b600060208284031215613e4557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613ea9818460208701613cbc565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a6bd3b4b30c83f6b688e2bb816c3a65abbd0dd57b8326384c0691073056504b664736f6c63430008130033", - "sourceMap": "885:51718:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47877:393;;;;;;;;;;-1:-1:-1;47877:393:42;;;;;:::i;:::-;;:::i;:::-;;18712:3449;;;;;;;;;;-1:-1:-1;18712:3449:42;;;;;:::i;:::-;;:::i;45437:423::-;;;;;;;;;;-1:-1:-1;45437:423:42;;;;;:::i;:::-;;:::i;51457:508::-;;;;;;;;;;-1:-1:-1;51457:508:42;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;37286:567:42:-;;;;;;;;;;-1:-1:-1;37286:567:42;;;;;:::i;:::-;;:::i;:::-;;;;3443:13:90;;3425:32;;3517:4;3505:17;;;3499:24;-1:-1:-1;;;;;3495:65:90;3473:20;;;3466:95;3619:17;;;3613:24;3606:32;3599:40;3577:20;;;3570:70;3413:2;3398:18;37286:567:42;;;;;;;;48446:189;;;;;;;;;;;;;:::i;:::-;;;3797:25:90;;;3785:2;3770:18;48446:189:42;3651:177:90;3763:222:23;;;;;;:::i;:::-;;:::i;46153:227:42:-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;5341:32:90;;;5323:51;;5311:2;5296:18;46153:227:42;5177:203:90;3006:131:23;;;;;;;;;;;;;:::i;7289:120:42:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7377:25:42;;;;;;;;;;;;;;;;;;;;7289:120;;36092:289;;;;;;;;;;;;;:::i;46770:416::-;;;;;;;;;;-1:-1:-1;46770:416:42;;;;;:::i;:::-;;:::i;4649:109:45:-;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;33753:465:42:-;;;;;;;;;;-1:-1:-1;33753:465:42;;;;;:::i;:::-;;:::i;31799:413::-;;;;;;;;;;-1:-1:-1;31799:413:42;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;49472:119:42;;;;;;;;;;;;;:::i;:::-;;;7620:4:90;7608:17;;;7590:36;;7578:2;7563:18;49472:119:42;7448:184:90;44878:231:42;;;;;;;;;;;;;:::i;35021:195::-;;;;;;;;;;;;;:::i;36498:292::-;;;;;;;;;;;;;:::i;50238:384::-;;;;;;;;;;-1:-1:-1;50238:384:42;;;;;:::i;:::-;;:::i;24891:2047::-;;;;;;;;;;-1:-1:-1;24891:2047:42;;;;;:::i;:::-;;:::i;48867:461::-;;;;;;;;;;-1:-1:-1;48867:461:42;;;;;:::i;:::-;;:::i;34346:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;49812:133:42;;;;;;;;;;;;;:::i;47369:205::-;;;;;;;;;;;;;:::i;44008:638::-;;;;;;;;;;-1:-1:-1;44008:638:42;;;;;:::i;:::-;;:::i;14447:1225::-;;;;;;;;;;-1:-1:-1;14447:1225:42;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;35417:559:42:-;;;;;;;;;;-1:-1:-1;35417:559:42;;;;;:::i;:::-;;:::i;47877:393::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;48077:17:42::3;::::0;;-1:-1:-1;;;;;48104:31:42;;::::3;-1:-1:-1::0;;;;;;48104:31:42;::::3;::::0;::::3;::::0;;;48077:17:::3;::::0;;48181:28:::3;48150:113;;::::0;::::3;::::0;;;::::3;48034:236;47877:393:::0;:::o;18712:3449::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;52508:17:42::2;::::0;-1:-1:-1;;;;;52508:17:42::2;52494:10;:31;52490:93;;52548:24;::::0;-1:-1:-1;;;52548:24:42;;52561:10:::2;52548:24;::::0;::::2;5323:51:90::0;5296:18;;52548:24:42::2;5177:203:90::0;52490:93:42::2;-1:-1:-1::0;;;;;;;;;;;19059:7:42::3;:29;19055:122;;19128:28;19158:7;19111:55;;-1:-1:-1::0;;;19111:55:42::3;;;;;;;;;:::i;19055:122::-;19201:11;;19190:7;:22;19186:95;;19258:11;::::0;19235:35:::3;::::0;-1:-1:-1;;;19235:35:42;;::::3;::::0;19249:7;;19235:35:::3;;12421:25:90::0;;;12477:2;12462:18;;12455:34;12409:2;12394:18;;12247:248;19186:95:42::3;-1:-1:-1::0;;;;;;;;;;;19669:8:42::3;:30;19665:125;;19739:29;19770:8;19722:57;;-1:-1:-1::0;;;19722:57:42::3;;;;;;;;;:::i;19665:125::-;19881:63;19924:19;;19881:42;:63::i;:::-;20036:17;20056:112;20108:10;20120:7;20129:8;20139:19;;20056:38;:112::i;:::-;20036:132:::0;-1:-1:-1;20392:22:42::3;20417:39;-1:-1:-1::0;;;;;;;;;;;20036:132:42;20417:39:::3;:::i;:::-;20586:23;::::0;:66:::3;::::0;-1:-1:-1;;;20586:66:42;;::::3;::::0;::::3;3797:25:90::0;;;20392:64:42;;-1:-1:-1;20540:31:42::3;::::0;-1:-1:-1;;;;;20586:23:42;;::::3;::::0;:38:::3;::::0;3770:18:90;;20586:66:42::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20540:112;;20721:17;-1:-1:-1::0;;;;;20721:29:42::3;;:267;;;;;;;;20765:14;20780:1;20765:17;;;;;;;:::i;:::-;;;;;20721:267;;;;20784:14;20799:1;20784:17;;;;;;;:::i;:::-;;;;;20721:267:::0;;::::3;::::0;;;;;;;20818:17;;::::3;;20721:267:::0;;::::3;::::0;;;;;;;;;20818:14;20852:1:::3;20837:17;;;;20721:267;;::::0;::::3;;;;;;;;;;;;20858:14;20873:1;20858:17;;;;;;;:::i;:::-;;;;;20721:267;;;;20877:14;20892:1;20877:17;;;;;;;:::i;:::-;;;;;20721:267:::0;;;;::::3;::::0;;;;::::3;::::0;;;;20911:14;20926:1:::3;20911:17;;;;20721:267;;;;20930:14;20945:1;20930:17;;;;;;;:::i;:::-;;;;;20721:267;;::::0;::::3;;;;;;;;20963:14;20721:267;;::::0;::::3;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;20721:267:42::3;::::0;;::::3;;::::0;;::::3;-1:-1:-1::0;;20721:267:42::3;::::0;::::3;::::0;;;::::3;::::0;;::::3;::::0;::::3;:::i;:::-;;;20717:1438;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;21907:9;21900:17;;-1:-1:-1::0;;;21900:17:42::3;;;;;;;;:::i;20717:1438::-;;;22120:24;;-1:-1:-1::0;;;22120:24:42::3;;;;;;;;;;;20717:1438;21108:14;21103:85;;21149:24;;-1:-1:-1::0;;;21149:24:42::3;;;;;;;;;;;21103:85;21356:11;:22:::0;;;21524:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;21524:47:42::3;21555:15;-1:-1:-1::0;;;;;21524:47:42::3;;::::0;;21684:23:::3;:21;:23::i;:::-;21770:8:::0;21748:20:::3;21727:52;::::0;21739:7;;21727:52:::3;::::0;;;::::3;20989:801;20717:1438;18978:3183;;;18712:3449:::0;;;;;;:::o;45437:423::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;45653:23:42::3;::::0;;-1:-1:-1;;;;;45686:34:42;;::::3;-1:-1:-1::0;;;;;;45686:34:42;::::3;::::0;::::3;::::0;;;45653:23:::3;::::0;;;45735:118:::3;::::0;51457:508;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;51745:22:42::2;51762:4;51745:16;:22::i;:::-;51833:17;::::0;51939:9:::2;::::0;51833:125:::2;::::0;-1:-1:-1;;;51833:125:42;;-1:-1:-1;;;;;51833:17:42;;::::2;::::0;:29:::2;::::0;:125:::2;::::0;51876:4;;51882:13;;51897:10;;51909:21;;51932:5;;-1:-1:-1;;;51939:9:42;::::2;;;::::0;51833:125:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;37286:567:42:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;37465:11:42::2;;37457:4;:19:::0;37453:394:::2;;-1:-1:-1::0;;37499:30:42::2;::::0;;::::2;::::0;::::2;::::0;;37508:11:::2;::::0;37499:30;;-1:-1:-1;37499:30:42::2;::::0;::::2;::::0;37524:4:::2;37499:30:::0;;;;;;;;37286:567::o;37453:394::-:2;37560:21;37584:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;37584:17:42::2;::::0;37620:18;;;37616:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7377:25:42;;;;;;;;;;;;;;;;;;;;37665:14:::2;37658:21:::0;37286:567;-1:-1:-1;;;37286:567:42:o;37616:78::-:2;37759:17;::::0;37708:12:::2;::::0;37725:31:::2;-1:-1:-1::0;;;;;37725:31:42;::::2;:15;:31;:::i;:::-;37798:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;37798:38:42;;::::2;;::::0;::::2;::::0;37725:51;-1:-1:-1;37723:54:42::2;37798:38:::0;;;;-1:-1:-1;37798:38:42;-1:-1:-1;37453:394:42::2;37286:567:::0;;;:::o;48446:189::-;48581:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;-1:-1:-1::0;48611:17:42::2;::::0;1144:1:87::2;48446:189:42::0;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;46153:227:42:-;46311:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;-1:-1:-1::0;46349:23:42::2;::::0;-1:-1:-1;;;;;46349:23:42::2;46153:227:::0;:::o;3006:131:23:-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;17917:2:90;2308:92:23;;;17899:21:90;17956:2;17936:18;;;17929:30;17995:34;17975:18;;;17968:62;18066:26;18046:18;;;18039:54;18110:19;;2308:92:23;17715:420:90;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;36092:289:42:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;36187:21:42::3;::::0;-1:-1:-1;;;36187:21:42;::::3;;;36182:193;;36224:21;:28:::0;;-1:-1:-1;;;;36224:28:42::3;-1:-1:-1::0;;;36224:28:42::3;::::0;;36271::::3;::::0;36248:4:::3;::::0;36271:28:::3;::::0;36224;;36271::::3;36092:289::o:0;36182:193::-:3;36337:27;;-1:-1:-1::0;;;36337:27:42::3;;;;;;;;;;;36182:193;36092:289::o:0;46770:416::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;46982:23:42::3;::::0;;-1:-1:-1;;;;;47015:34:42;;::::3;-1:-1:-1::0;;;;;;47015:34:42;::::3;::::0;::::3;::::0;;;46982:23:::3;::::0;;47095:36:::3;47064:115;::::0;4649:109:45;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;18342:2:90;2095:78:17;;;18324:21:90;18381:2;18361:18;;;18354:30;18420:34;18400:18;;;18393:62;-1:-1:-1;;;18471:18:90;;;18464:39;18520:19;;2095:78:17;18140:405:90;2095:78:17;2183:26;2202:6;2183:18;:26::i;33753:465:42:-;34030:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;34054:24:42::2;34110:7;34119:8;34129:11;;34142:13;;34157;;34093:78;;;;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;34093:78:42;;::::2;::::0;;;;;;34189:22;;34093:78:::2;34189:22:::0;;::::2;::::0;;33753:465;-1:-1:-1;;;;;;;;;;33753:465:42:o;31799:413::-;32034:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;32058:24:42::2;32114:10;32126:7;32135:8;32145:19;;32097:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;32097:68:42;;::::2;::::0;;;;;;32183:22;;32097:68:::2;32183:22:::0;;::::2;::::0;;31799:413;-1:-1:-1;;;;;;;31799:413:42:o;49472:119::-;49551:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;-1:-1:-1::0;49575:9:42::2;::::0;-1:-1:-1;;;49575:9:42;::::2;;;::::0;49472:119::o;44878:231::-;45040:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;-1:-1:-1::0;45078:23:42::2;::::0;-1:-1:-1;;;;;45078:23:42::2;44878:231:::0;:::o;35021:195::-;35147:27;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;-1:-1:-1::0;35197:12:42::2;::::0;-1:-1:-1;;;;;35197:12:42::2;35021:195:::0;:::o;36498:292::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;36593:21:42::3;::::0;-1:-1:-1;;;36593:21:42;::::3;;;36589:195;;;36630:21;:29:::0;;-1:-1:-1;;;;36630:29:42::3;::::0;;36678::::3;::::0;36654:5:::3;::::0;36678:29:::3;::::0;36654:5;;36678:29:::3;36092:289::o:0;36589:195::-:3;36745:28;;-1:-1:-1::0;;;36745:28:42::3;;;;;;;;;;;50238:384:::0;50404:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;50449:17:42::3;::::0;;-1:-1:-1;;;;;50476:39:42;;::::3;-1:-1:-1::0;;;;;;50476:39:42;::::3;::::0;::::3;::::0;;;50530:57:::3;::::0;50449:17;::::3;::::0;50476:39;50449:17;;50530:57:::3;::::0;50427:19:::3;::::0;50530:57:::3;50604:11:::0;50238:384;-1:-1:-1;;50238:384:42:o;24891:2047::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;52508:17:42::2;::::0;-1:-1:-1;;;;;52508:17:42::2;52494:10;:31;52490:93;;52548:24;::::0;-1:-1:-1;;;52548:24:42;;52561:10:::2;52548:24;::::0;::::2;5323:51:90::0;5296:18;;52548:24:42::2;5177:203:90::0;52490:93:42::2;-1:-1:-1::0;;;;;;;;;;;25281:7:42::3;:29;25277:122;;25350:28;25380:7;25333:55;;-1:-1:-1::0;;;25333:55:42::3;;;;;;;;;:::i;25277:122::-;25423:11;;25412:7;:22;25408:95;;25480:11;::::0;25457:35:::3;::::0;-1:-1:-1;;;25457:35:42;;::::3;::::0;25471:7;;25457:35:::3;;12421:25:90::0;;;12477:2;12462:18;;12455:34;12409:2;12394:18;;12247:248;25408:95:42::3;-1:-1:-1::0;;;;;;;;;;;25578:8:42::3;:30;25574:125;;25648:29;25679:8;25631:57;;-1:-1:-1::0;;;25631:57:42::3;;;;;;;;;:::i;25574:125::-;25787:42:::0;;::::3;;::::0;:88:::3;;-1:-1:-1::0;25833:42:42;;::::3;;25787:88;25770:172;;;25907:24;;-1:-1:-1::0;;;25907:24:42::3;;;;;;;;;;;25770:172;26019:57;26047:13;;26062;;26019:27;:57::i;:::-;26164:17;26184:116;26230:7;26239:8;26249:11;;26262:13;;26277;;26184:32;:116::i;:::-;26164:136:::0;-1:-1:-1;26499:24:42::3;26526:39;-1:-1:-1::0;;;;;;;;;;;26164:136:42;26526:39:::3;:::i;:::-;26680:23;::::0;:58:::3;::::0;-1:-1:-1;;;26680:58:42;;::::3;::::0;::::3;3797:25:90::0;;;26499:66:42;;-1:-1:-1;26649:28:42::3;::::0;-1:-1:-1;;;;;26680:23:42;;::::3;::::0;:38:::3;::::0;3770:18:90;;26680:58:42::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26649:89;;26844:87;26866:14;26882:11;26895:16;26913:7;26922:8;26844:21;:87::i;:::-;25200:1738;;;24891:2047:::0;;;;;;;;;:::o;48867:461::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;49029::42::3;49046:1;49029:18:::0;49025:86:::3;;49063:37;::::0;-1:-1:-1;;;49063:37:42;;20468:2:90;49063:37:42::3;::::0;::::3;20450:21:90::0;20507:2;20487:18;;;20480:30;20546:29;20526:18;;;20519:57;20593:18;;49063:37:42::3;20266:351:90::0;49025:86:42::3;49140:17;::::0;;49167:33;;;;49211:12:::3;::::0;:48:::3;::::0;-1:-1:-1;;;49211:48:42;;::::3;::::0;::::3;3797:25:90::0;;;-1:-1:-1;;;;;49211:12:42;;::::3;::::0;:33:::3;::::0;3770:18:90;;49211:48:42::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;49275:46:42::3;::::0;49307:13;;-1:-1:-1;49296:9:42;;-1:-1:-1;49275:46:42::3;::::0;;;::::3;49015:313;48867:461:::0;:::o;34346:121::-;34423:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;-1:-1:-1::0;34449:11:42::2;::::0;34346:121;:::o;49812:133::-;49895:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;-1:-1:-1::0;49921:17:42::2;::::0;-1:-1:-1;;;;;49921:17:42::2;49812:133:::0;:::o;47369:205::-;47511:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;-1:-1:-1::0;47549:17:42::2;::::0;-1:-1:-1;;;;;47549:17:42::2;47369:205:::0;:::o;44008:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;44160:11:42::2;::::0;44148:56;;44187:7:::2;44148:56;44279:21;44303:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;44303:17:42::2;::::0;44403:18;;;44399:73:::2;;44444:17;;-1:-1:-1::0;;;44444:17:42::2;;;;;;;;;;;44399:73;44576:17;::::0;44542:31:::2;-1:-1:-1::0;;;;;44542:31:42;::::2;:15;:31;:::i;:::-;:51;44538:102;;;44616:13;;-1:-1:-1::0;;;44616:13:42::2;;;;;;;;;;;14447:1225:::0;4871:13:22;;14765:1:42;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;20824:2:90;4862:99:22;;;20806:21:90;20863:2;20843:18;;;20836:30;20902:34;20882:18;;;20875:62;-1:-1:-1;;;20953:18:90;;;20946:44;21007:19;;4862:99:22;20622:410:90;4862:99:22;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;14853:16:42::1;:14;:16::i;:::-;14885:48;14922:10;14885:36;:48::i;:::-;14880:119;;14956:32;::::0;-1:-1:-1;;;14956:32:42;;7620:4:90;7608:17;;14956:32:42::1;::::0;::::1;7590:36:90::0;7563:18;;14956:32:42::1;7448:184:90::0;14880:119:42::1;15066:9;:22:::0;;15118:7:::1;15098:17;:27:::0;15135:11:::1;:25:::0;;;15170:23:::1;:50:::0;;-1:-1:-1;;;;;;15170:50:42;;::::1;-1:-1:-1::0;;;;;15170:50:42;;::::1;::::0;;;::::1;::::0;;;15230:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;15287:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;15335:28;;::::1;-1:-1:-1::0;;;;;;15373:42:42;;;-1:-1:-1;;;15066:22:42::1;::::0;::::1;;-1:-1:-1::0;;;;;;15373:42:42;;;;;;-1:-1:-1;;;15373:42:42;::::1;;;;::::0;;;1513:6:18;;15425:17:42::1;:27:::0;;1513:6:18;;;;15425:27:42;::::1;;::::0;;15512:18:::1;:16;:18::i;:::-;15546:119;::::0;;21305:4:90;21293:17;;21275:36;;21342:2;21327:18;;21320:34;;;21397:14;;21390:22;21370:18;;;21363:50;-1:-1:-1;;;;;21449:32:90;;21444:2;21429:18;;21422:60;15546:119:42;;::::1;::::0;;;;21262:3:90;15546:119:42;;::::1;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;7620:4:90;7608:17;;7590:36;;5080:20:22;;7578:2:90;7563:18;5080:20:22;;;;;;;14447:1225:42;;;;;;;;:::o;1415:178:17:-;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;35417:559:42:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;35574:37:42;::::3;35570:102;;35634:27;;-1:-1:-1::0;;;35634:27:42::3;;;;;;;;;;;35570:102;35687:21;::::0;-1:-1:-1;;;35687:21:42;::::3;;;35682:72;;35724:19;:17;:19::i;:::-;35789:12;::::0;;-1:-1:-1;;;;;35811:29:42;;::::3;-1:-1:-1::0;;;;;;35811:29:42;::::3;::::0;::::3;::::0;;;35789:12:::3;::::0;;35764:22:::3;35856:113;::::0;1563:151:20;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;21695:2:90;1654:68:18;;;21677:21:90;;;21714:18;;;21707:30;21773:34;21753:18;;;21746:62;21825:18;;1654:68:18;21493:356:90;38522:3055:42;38824:26;38951:1;38947:34;;;38935:47;;39714:188;39808:26;39804:1;39795:6;39782:20;39778:28;39775:60;39769:3;39761:6;39758:15;39754:82;39714:188;;;39877:2;39869:6;39865:15;39855:25;;39714:188;;;40029:3;40020:6;:12;40016:1555;;;40048:13;40112:1;40095:12;40101:6;40095:3;:12;:::i;:::-;40064:50;;40094:19;40064;:50;:::i;:::-;40048:66;;40128:15;40146:19;;40166:5;40146:26;;;;;;;:::i;:::-;;;;;;;40128:44;;40358:7;40369:1;40358:12;40354:1207;;40517:2;40509:6;40505:15;40495:25;;40764:180;40857:6;40844:20;40837:28;40831:3;40823:6;40820:15;40816:50;40764:180;;;40913:2;40905:6;40901:15;40891:25;;40764:180;;;41112:3;41103:6;:12;41099:170;;;41195:1;41178:12;41184:6;41178:3;:12;:::i;:::-;41147:50;;41177:19;41147;:50;:::i;:::-;41139:58;;41244:5;41226:24;;-1:-1:-1;;;41226:24:42;;;;;;3797:25:90;;3785:2;3770:18;;3651:177;41099:170:42;40354:1207;;;-1:-1:-1;;;;;;;;;;;41426:7:42;:29;41422:139;;41497:39;41538:7;41480:66;;-1:-1:-1;;;41480:66:42;;;;;;;;;:::i;41422:139::-;40034:1537;;40016:1555;38664:2913;;38522:3055;;:::o;34617:227::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;34707:21:42::2;::::0;-1:-1:-1;;;34707:21:42;::::2;;;:60:::0;::::2;;;-1:-1:-1::0;34740:12:42::2;::::0;-1:-1:-1;;;;;34740:12:42::2;34732:35:::0;::::2;34707:60;34703:135;;;34783:12;::::0;34815:11:::2;::::0;34783:44:::2;::::0;-1:-1:-1;;;34783:44:42;;-1:-1:-1;;;;;34783:12:42;;::::2;::::0;:31:::2;::::0;:44:::2;::::0;::::2;;3797:25:90::0;;;3785:2;3770:18;;3651:177;34783:44:42::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;4067:204:45::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;22245:2:90;3758:56:20;;;22227:21:90;22284:2;22264:18;;;22257:30;22323:34;22303:18;;;22296:62;-1:-1:-1;;;22374:18:90;;;22367:44;22428:19;;3758:56:20;22043:410:90;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;22660:2:90;3636:82:20;;;22642:21:90;22699:2;22679:18;;;22672:30;22738:34;22718:18;;;22711:62;-1:-1:-1;;;22789:18:90;;;22782:39;22838:19;;3636:82:20;22458:405:90;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;43303:262:42:-;43462:43;43491:13;;43462:28;:43::i;:::-;43515;43544:13;;43515:28;:43::i;28770:1899::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:87::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:87::1;;;;;;;;;;;1054:81;52508:17:42::2;::::0;-1:-1:-1;;;;;52508:17:42::2;52494:10;:31;52490:93;;52548:24;::::0;-1:-1:-1;;;52548:24:42;;52561:10:::2;52548:24;::::0;::::2;5323:51:90::0;5296:18;;52548:24:42::2;5177:203:90::0;52490:93:42::2;29094:20:::3;:55;;;;;;;;29118:11;29130:1;29118:14;;;;;;;:::i;:::-;;;;;29094:55;;;;29134:11;29146:1;29134:14;;;;;;;:::i;:::-;;;;;29094:55:::0;;29159:106:::3;::::0;;;;;;;29199:14;;::::3;;29159:106:::0;;::::3;::::0;;;29094:55;;-1:-1:-1;;;29159:106:42;;;;;;29199:11;29227:1:::3;29215:14;;;;29159:106;;::::0;::::3;;;;;;;;;;;;29233:11;29245:1;29233:14;;;;;;;:::i;:::-;;;;;29159:106;;;;29249:11;29261:1;29249:14;;;;;;;:::i;:::-;;;;;29159:106:::0;;;;29275:56:::3;::::0;;;;::::3;::::0;;;29159:106;;-1:-1:-1;29275:21:42::3;::::0;:56;29300:11;29312:1:::3;29300:14;;;;29275:56;;;;29316:11;29328:1;29316:14;;;;;;;:::i;:::-;;;;;29275:56;;::::0;::::3;;29341:28;:42;;;;;;;;29373:9;29341:42;;::::0;::::3;;29448:14;-1:-1:-1::0;;;;;29448:26:42::3;;29475:2;29479;29483:3;29488:10;29448:51;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;29448:51:42::3;::::0;;::::3;;::::0;;::::3;-1:-1:-1::0;;29448:51:42::3;::::0;::::3;::::0;;;::::3;::::0;;::::3;::::0;::::3;:::i;:::-;;;29444:1219;;;;:::i;:::-;29619:14;29614:85;;29660:24;;-1:-1:-1::0;;;29660:24:42::3;;;;;;;;;;;29614:85;29867:11;:22:::0;;;30035:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;30035:47:42::3;30066:15;-1:-1:-1::0;;;;;30035:47:42::3;;::::0;;30195:23:::3;:21;:23::i;:::-;30278:8:::0;30259:17:::3;30238:49;::::0;30250:7;;30238:49:::3;::::0;;;::::3;29500:798;29028:1641;;;;28770:1899:::0;;;;;:::o;16006:97::-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;16076:20:42::1;:18;:20::i;434:207:88:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:88;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:88:o;794:90:87:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:87::1;:19:::0;;-1:-1:-1;;858:19:87::1;873:4;858:19;::::0;;794:90::o;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;23482:2:90;1878:106:20;;;23464:21:90;23521:2;23501:18;;;23494:30;23560:34;23540:18;;;23533:62;-1:-1:-1;;;23611:18:90;;;23604:43;23664:19;;1878:106:20;23280:409:90;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;2673:187:18:-;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;41583:1231:42:-;41871:26;41998:1;41994:34;;;41982:47;;42284:172;-1:-1:-1;;;;;;;;;;;42361:6:42;42348:20;42345:44;42339:3;42331:6;42328:15;42324:66;42284:172;;;42431:2;42423:6;42419:15;42409:25;;42284:172;;;42567:3;42558:6;:12;42554:254;;;42586:13;42650:1;42633:12;42639:6;42633:3;:12;:::i;:::-;42602:50;;42632:19;42602;:50;:::i;:::-;42586:66;;42666:15;42684:19;;42704:5;42684:26;;;;;;;:::i;:::-;;;;;;;42666:44;;42748:39;42789:7;42731:66;;-1:-1:-1;;;42731:66:42;;;;;;;;;:::i;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2192:152:20:-:0;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;23896:2:90;7195:88:20;;;23878:21:90;23935:2;23915:18;;;23908:30;23974:34;23954:18;;;23947:62;-1:-1:-1;;;24025:18:90;;;24018:36;24071:19;;7195:88:20;23694:402:90;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:90;-1:-1:-1;;;;;109:31:90;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:90;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:90;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:90;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:90:o;2254:509::-;2374:6;2382;2390;2398;2406;2459:3;2447:9;2438:7;2434:23;2430:33;2427:53;;;2476:1;2473;2466:12;2427:53;2512:9;2499:23;2489:33;;2569:2;2558:9;2554:18;2541:32;2531:42;;2620:2;2609:9;2605:18;2592:32;2582:42;;2671:2;2660:9;2656:18;2643:32;2633:42;;2694:63;2749:7;2743:3;2732:9;2728:19;2694:63;:::i;:::-;2684:73;;2254:509;;;;;;;;:::o;3040:180::-;3099:6;3152:2;3140:9;3131:7;3127:23;3123:32;3120:52;;;3168:1;3165;3158:12;3120:52;-1:-1:-1;3191:23:90;;3040:180;-1:-1:-1;3040:180:90:o;3833:127::-;3894:10;3889:3;3885:20;3882:1;3875:31;3925:4;3922:1;3915:15;3949:4;3946:1;3939:15;3965:249;4075:2;4056:13;;-1:-1:-1;;4052:27:90;4040:40;;4110:18;4095:34;;4131:22;;;4092:62;4089:88;;;4157:18;;:::i;:::-;4193:2;4186:22;-1:-1:-1;;3965:249:90:o;4219:953::-;4296:6;4304;4357:2;4345:9;4336:7;4332:23;4328:32;4325:52;;;4373:1;4370;4363:12;4325:52;4412:9;4399:23;4431:51;4476:5;4431:51;:::i;:::-;4501:5;-1:-1:-1;4525:2:90;4563:18;;;4550:32;4601:18;4631:14;;;4628:34;;;4658:1;4655;4648:12;4628:34;4696:6;4685:9;4681:22;4671:32;;4741:7;4734:4;4730:2;4726:13;4722:27;4712:55;;4763:1;4760;4753:12;4712:55;4799:2;4786:16;4821:2;4817;4814:10;4811:36;;;4827:18;;:::i;:::-;4876:2;4870:9;;-1:-1:-1;4888:65:90;4943:2;4924:13;;-1:-1:-1;;4920:27:90;4916:36;;4870:9;4888:65;:::i;:::-;4977:2;4969:6;4962:18;5017:7;5012:2;5007;5003;4999:11;4995:20;4992:33;4989:53;;;5038:1;5035;5028:12;4989:53;5094:2;5089;5085;5081:11;5076:2;5068:6;5064:15;5051:46;5139:1;5134:2;5129;5121:6;5117:15;5113:24;5106:35;;5160:6;5150:16;;;;;4219:953;;;;;:::o;5567:1225::-;5742:6;5750;5758;5766;5774;5782;5790;5798;5851:3;5839:9;5830:7;5826:23;5822:33;5819:53;;;5868:1;5865;5858:12;5819:53;5904:9;5891:23;5881:33;;5961:2;5950:9;5946:18;5933:32;5923:42;;6016:2;6005:9;6001:18;5988:32;6039:18;6080:2;6072:6;6069:14;6066:34;;;6096:1;6093;6086:12;6066:34;6135:70;6197:7;6188:6;6177:9;6173:22;6135:70;:::i;:::-;6224:8;;-1:-1:-1;6109:96:90;-1:-1:-1;6312:2:90;6297:18;;6284:32;;-1:-1:-1;6328:16:90;;;6325:36;;;6357:1;6354;6347:12;6325:36;6396:72;6460:7;6449:8;6438:9;6434:24;6396:72;:::i;:::-;6487:8;;-1:-1:-1;6370:98:90;-1:-1:-1;6575:3:90;6560:19;;6547:33;;-1:-1:-1;6592:16:90;;;6589:36;;;6621:1;6618;6611:12;6589:36;;6660:72;6724:7;6713:8;6702:9;6698:24;6660:72;:::i;:::-;5567:1225;;;;-1:-1:-1;5567:1225:90;;-1:-1:-1;5567:1225:90;;;;;;6751:8;-1:-1:-1;;;5567:1225:90:o;6797:646::-;6909:6;6917;6925;6933;6941;6994:3;6982:9;6973:7;6969:23;6965:33;6962:53;;;7011:1;7008;7001:12;6962:53;7034:28;7052:9;7034:28;:::i;:::-;7024:38;;7109:2;7098:9;7094:18;7081:32;7071:42;;7160:2;7149:9;7145:18;7132:32;7122:42;;7215:2;7204:9;7200:18;7187:32;7242:18;7234:6;7231:30;7228:50;;;7274:1;7271;7264:12;7228:50;7313:70;7375:7;7366:6;7355:9;7351:22;7313:70;:::i;:::-;6797:646;;;;-1:-1:-1;6797:646:90;;-1:-1:-1;7402:8:90;;7287:96;6797:646;-1:-1:-1;;;6797:646:90:o;7862:1352::-;8071:6;8079;8087;8095;8103;8111;8119;8127;8135;8188:3;8176:9;8167:7;8163:23;8159:33;8156:53;;;8205:1;8202;8195:12;8156:53;8228;8273:7;8262:9;8228:53;:::i;:::-;8218:63;;8328:3;8317:9;8313:19;8300:33;8290:43;;8384:3;8373:9;8369:19;8356:33;8408:18;8449:2;8441:6;8438:14;8435:34;;;8465:1;8462;8455:12;8435:34;8504:70;8566:7;8557:6;8546:9;8542:22;8504:70;:::i;:::-;8593:8;;-1:-1:-1;8478:96:90;-1:-1:-1;8681:3:90;8666:19;;8653:33;;-1:-1:-1;8698:16:90;;;8695:36;;;8727:1;8724;8717:12;8695:36;8766:72;8830:7;8819:8;8808:9;8804:24;8766:72;:::i;:::-;8857:8;;-1:-1:-1;8740:98:90;-1:-1:-1;8945:3:90;8930:19;;8917:33;;-1:-1:-1;8962:16:90;;;8959:36;;;8991:1;8988;8981:12;8959:36;;9030:72;9094:7;9083:8;9072:9;9068:24;9030:72;:::i;:::-;7862:1352;;;;-1:-1:-1;7862:1352:90;;;;;;;;9121:8;9203:3;9188:19;9175:33;;7862:1352;-1:-1:-1;;;;7862:1352:90:o;9219:118::-;9305:5;9298:13;9291:21;9284:5;9281:32;9271:60;;9327:1;9324;9317:12;9342:1223;9553:6;9561;9569;9577;9585;9593;9601;9654:3;9642:9;9633:7;9629:23;9625:33;9622:53;;;9671:1;9668;9661:12;9622:53;9710:9;9697:23;9760:4;9753:5;9749:16;9742:5;9739:27;9729:55;;9780:1;9777;9770:12;9729:55;9803:5;-1:-1:-1;9855:2:90;9840:18;;9827:32;;-1:-1:-1;9911:2:90;9896:18;;9883:32;9924:53;9883:32;9924:53;:::i;:::-;9996:7;-1:-1:-1;10055:2:90;10040:18;;10027:32;10068:53;10027:32;10068:53;:::i;:::-;10140:7;-1:-1:-1;10199:3:90;10184:19;;10171:33;10213:53;10171:33;10213:53;:::i;:::-;10285:7;-1:-1:-1;10344:3:90;10329:19;;10316:33;10358:30;10316:33;10358:30;:::i;:::-;10407:7;-1:-1:-1;10466:3:90;10451:19;;10438:33;10480:53;10438:33;10480:53;:::i;:::-;10552:7;10542:17;;;9342:1223;;;;;;;;;;:::o;10859:408::-;11061:2;11043:21;;;11100:2;11080:18;;;11073:30;11139:34;11134:2;11119:18;;11112:62;-1:-1:-1;;;11205:2:90;11190:18;;11183:42;11257:3;11242:19;;10859:408::o;11272:::-;11474:2;11456:21;;;11513:2;11493:18;;;11486:30;11552:34;11547:2;11532:18;;11525:62;-1:-1:-1;;;11618:2:90;11603:18;;11596:42;11670:3;11655:19;;11272:408::o;11817:425::-;12003:2;11988:18;;12036:1;12025:13;;12015:144;;12081:10;12076:3;12072:20;12069:1;12062:31;12116:4;12113:1;12106:15;12144:4;12141:1;12134:15;12015:144;12168:25;;;12224:2;12209:18;12202:34;11817:425;:::o;12500:209::-;12532:1;12558;12548:132;;12602:10;12597:3;12593:20;12590:1;12583:31;12637:4;12634:1;12627:15;12665:4;12662:1;12655:15;12548:132;-1:-1:-1;12694:9:90;;12500:209::o;12714:294::-;12807:6;12860:2;12848:9;12839:7;12835:23;12831:32;12828:52;;;12876:1;12873;12866:12;12828:52;12908:9;12902:16;12927:51;12972:5;12927:51;:::i;13013:127::-;13074:10;13069:3;13065:20;13062:1;13055:31;13105:4;13102:1;13095:15;13129:4;13126:1;13119:15;13145:326;13238:5;13261:1;13271:194;13285:4;13282:1;13279:11;13271:194;;;13344:13;;13332:26;;13381:4;13405:12;;;;13440:15;;;;13305:1;13298:9;13271:194;;13476:1627;13924:3;13909:19;;13937:43;13913:9;13962:6;13937:43;:::i;:::-;13999:2;14036;14025:9;14021:18;14081:6;14105:1;14115:586;14179:4;14212:2;14209:1;14206:9;14196:30;;14219:5;;;14196:30;14249:13;;14288:3;14371:1;14385:234;14401:2;14396:3;14393:11;14385:234;;;14472:15;;14458:30;;14515:4;14588:17;;;;14545:14;;;;14423:1;14414:11;14385:234;;;-1:-1:-1;;;14639:12:90;;;;-1:-1:-1;14686:4:90;14674:17;;;;;14142:1;14135:9;14115:586;;;14119:3;;;;14710:53;14758:3;14747:9;14743:19;14735:6;14710:53;:::i;:::-;14800:3;14789:9;14785:19;14852:6;14878:1;14888:209;14904:1;14899:3;14896:10;14888:209;;;14966:15;;14952:30;;15005:4;15031:14;;;;15070:17;;;;14925:1;14916:11;14888:209;;;14892:3;;;13476:1627;;;;;;;:::o;15108:245::-;15175:6;15228:2;15216:9;15207:7;15203:23;15199:32;15196:52;;;15244:1;15241;15234:12;15196:52;15276:9;15270:16;15295:28;15317:5;15295:28;:::i;15358:179::-;15393:3;15435:1;15417:16;15414:23;15411:120;;;15481:1;15478;15475;15460:23;-1:-1:-1;15518:1:90;15512:8;15507:3;15503:18;15358:179;:::o;15542:671::-;15581:3;15623:4;15605:16;15602:26;15599:39;;;15542:671;:::o;15599:39::-;15665:2;15659:9;-1:-1:-1;;15730:16:90;15726:25;;15723:1;15659:9;15702:50;15781:4;15775:11;15805:16;15840:18;15911:2;15904:4;15896:6;15892:17;15889:25;15884:2;15876:6;15873:14;15870:45;15867:58;;;15918:5;;;;;15542:671;:::o;15867:58::-;15955:6;15949:4;15945:17;15934:28;;15991:3;15985:10;16018:2;16010:6;16007:14;16004:27;;;16024:5;;;;;;15542:671;:::o;16004:27::-;16108:2;16089:16;16083:4;16079:27;16075:36;16068:4;16059:6;16054:3;16050:16;16046:27;16043:69;16040:82;;;16115:5;;;;;;15542:671;:::o;16040:82::-;16131:57;16182:4;16173:6;16165;16161:19;16157:30;16151:4;16131:57;:::i;:::-;-1:-1:-1;16204:3:90;;15542:671;-1:-1:-1;;;;;15542:671:90:o;16218:250::-;16303:1;16313:113;16327:6;16324:1;16321:13;16313:113;;;16403:11;;;16397:18;16384:11;;;16377:39;16349:2;16342:10;16313:113;;;-1:-1:-1;;16460:1:90;16442:16;;16435:27;16218:250::o;16473:396::-;16622:2;16611:9;16604:21;16585:4;16654:6;16648:13;16697:6;16692:2;16681:9;16677:18;16670:34;16713:79;16785:6;16780:2;16769:9;16765:18;16760:2;16752:6;16748:15;16713:79;:::i;:::-;16853:2;16832:15;-1:-1:-1;;16828:29:90;16813:45;;;;16860:2;16809:54;;16473:396;-1:-1:-1;;16473:396:90:o;16874:606::-;17152:4;17194:3;17183:9;17179:19;17171:27;;17225:6;17214:9;17207:25;17268:6;17263:2;17252:9;17248:18;17241:34;17311:6;17306:2;17295:9;17291:18;17284:34;17354:6;17349:2;17338:9;17334:18;17327:34;17412:6;17404;17398:3;17387:9;17383:19;17370:49;17468:4;17460:6;17456:17;17450:3;17439:9;17435:19;17428:46;16874:606;;;;;;;;;:::o;17485:225::-;17552:9;;;17573:11;;;17570:134;;;17626:10;17621:3;17617:20;17614:1;17607:31;17661:4;17658:1;17651:15;17689:4;17686:1;17679:15;18550:261;18620:3;-1:-1:-1;;;;;18641:31:90;;18638:51;;;18685:1;18682;18675:12;18638:51;18721:6;18718:1;18714:14;18762:8;18755:5;18750:3;18737:34;18787:18;;;;;18550:261;-1:-1:-1;;;18550:261:90:o;18816:951::-;19247:6;19242:3;19235:19;19217:3;19273:2;19305:6;19300:2;19295:3;19291:12;19284:28;19343:2;19338:3;19334:12;19392:6;19416:1;19426:204;19440:6;19437:1;19434:13;19426:204;;;19534:10;19507:25;19525:6;19507:25;:::i;:::-;19503:42;19489:57;;19568:14;;;;19605:15;;;;19462:1;19455:9;19426:204;;;19430:3;;19646:115;19700:60;19754:5;19746:6;19738;19700:60;:::i;:::-;19692:6;19684;19646:115;:::i;:::-;19639:122;18816:951;-1:-1:-1;;;;;;;;;;;;18816:951:90:o;19772:489::-;20086:10;20081:3;20077:20;20068:6;20063:3;20059:16;20055:43;20050:3;20043:56;20128:6;20124:1;20119:3;20115:11;20108:27;20165:6;20160:2;20155:3;20151:12;20144:28;20025:3;20188:67;20251:2;20246:3;20242:12;20234:6;20226;20188:67;:::i;:::-;20181:74;19772:489;-1:-1:-1;;;;;;;19772:489:90:o;21854:184::-;21924:6;21977:2;21965:9;21956:7;21952:23;21948:32;21945:52;;;21993:1;21990;21983:12;21945:52;-1:-1:-1;22016:16:90;;21854:184;-1:-1:-1;21854:184:90:o;22868:407::-;23070:2;23052:21;;;23109:2;23089:18;;;23082:30;23148:34;23143:2;23128:18;;23121:62;-1:-1:-1;;;23214:2:90;23199:18;;23192:41;23265:3;23250:19;;22868:407::o;24101:287::-;24230:3;24268:6;24262:13;24284:66;24343:6;24338:3;24331:4;24323:6;24319:17;24284:66;:::i;:::-;24366:16;;;;;24101:287;-1:-1:-1;;24101:287:90:o", + "object": "0x6080604052600436106101665760003560e01c806379ba5097116100d1578063c70aa7271161008a578063f134b6ca11610064578063f134b6ca14610439578063f2038f951461044e578063f2358e1d14610463578063f2fde38b1461048357600080fd5b8063c70aa727146103e6578063d7b0fef114610406578063e30c39781461041b57600080fd5b806379ba5097146103235780638c76a909146103385780638da5cb5b146103585780638e5cdd501461038a5780638fc22e9f146103b1578063a7bba582146103c657600080fd5b80633f7c178d116101235780633f7c178d1461022d57806343f974cb1461027f5780634f1ef286146102a257806352d1902d146102b5578063561f204b146102ca578063715018a61461030e57600080fd5b80630e3a12f31461016b5780632217b2111461018d5780632f059fca146101ad578063354ca120146101cd5780633659cfe6146101ed57806338c870651461020d575b600080fd5b34801561017757600080fd5b5061018b6101863660046122bc565b6104a3565b005b34801561019957600080fd5b5061018b6101a836600461234b565b6105f1565b3480156101b957600080fd5b5061018b6101c83660046122bc565b6108fc565b3480156101d957600080fd5b5061018b6101e83660046123c8565b610a18565b3480156101f957600080fd5b5061018b6102083660046122bc565b610b62565b34801561021957600080fd5b5061018b610228366004612413565b610c2a565b34801561023957600080fd5b5061024d610248366004612481565b610e6c565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b34801561028b57600080fd5b5061029461101d565b604051908152602001610276565b61018b6102b03660046124dd565b6110eb565b3480156102c157600080fd5b506102946111a4565b3480156102d657600080fd5b50604080516060808201835260008083526020808401829052928401819052835191820184528082529181018290529182015261024d565b34801561031a57600080fd5b5061018b611257565b34801561032f57600080fd5b5061018b611278565b34801561034457600080fd5b50610294610353366004612589565b6112ef565b34801561036457600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561039657600080fd5b5061039f6113f2565b60405160ff9091168152602001610276565b3480156103bd57600080fd5b506103726114c9565b3480156103d257600080fd5b506103726103e13660046122bc565b61159f565b3480156103f257600080fd5b5061018b610401366004612481565b6116c1565b34801561041257600080fd5b50610294611816565b34801561042757600080fd5b506065546001600160a01b0316610372565b34801561044557600080fd5b506103726118e3565b34801561045a57600080fd5b506103726119b9565b34801561046f57600080fd5b5061018b61047e366004612481565b611a8f565b34801561048f57600080fd5b5061018b61049e3660046122bc565b611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104f45760405162461bcd60e51b81526004016104eb906125f1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610526611c3d565b6001600160a01b03161461054c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661056f57604051630103019560e11b815260040160405180910390fd5b610577611c59565b6001600160a01b03811661059e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066b611c3d565b6001600160a01b0316146106915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166106b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146106e25760405163472511eb60e11b81523360048201526024016104eb565b61012e5485146107145761012e5460405163542fced960e11b81526104eb918791600401918252602082015260400190565b600061072385878487876112ef565b905060006107517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612689565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c591906126ab565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610801918d91906004016126c8565b600060405180830381600087803b15801561081b57600080fd5b505af192505050801561082c575060015b61088c57610838612703565b806308c379a003610871575061084c61271e565b806108575750610873565b8060405162461bcd60e51b81526004016104eb91906127cc565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546fffffffffffffffffffffffffffffffff1916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109445760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610976611c3d565b6001600160a01b03161461099c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166109bf57604051630103019560e11b815260040160405180910390fd5b6109c7611c59565b6001600160a01b0381166109ee57604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016105c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a92611c3d565b6001600160a01b031614610ab85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610adb57604051630103019560e11b815260040160405180910390fd5b610ae485611a8f565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610b36918591906004016127ff565b60006040518083038186803b158015610b4e57600080fd5b505afa1580156108f1573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610baa5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611c3d565b6001600160a01b031614610c025760405162461bcd60e51b81526004016104eb9061263d565b610c0b81611cb5565b60408051600080825260208201909252610c2791839190611d5d565b50565b600054600190610100900460ff16158015610c4c575060005460ff8083169116105b610caf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104eb565b6000805461ffff191660ff8316176101001790556001600160a01b038416610cea57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610d1157604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610d385760405163baa3de5f60e01b815260040160405180910390fd5b610d40611ecd565b610d4986611efc565b610d6b57604051630220cee360e61b815260ff871660048201526024016104eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055610de7611f23565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ed15760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f03611c3d565b6001600160a01b031614610f295760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610f4c57604051630103019560e11b815260040160405180910390fd5b61012e548203610f7b5750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b031690819003610fd65760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b61013054600090610ff06001600160801b03841642612830565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110675760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611099611c3d565b6001600160a01b0316146110bf5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166110e257604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111335760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611165611c3d565b6001600160a01b03161461118b5760405162461bcd60e51b81526004016104eb9061263d565b61119482611cb5565b6111a082826001611d5d565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104eb565b5060008051602061292383398151915290565b61125f611c59565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146112e65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104eb565b610c2781611f59565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661136b611c3d565b6001600160a01b0316146113915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166113b457604051630103019560e11b815260040160405180910390fd5b600086868686866040516020016113cf959493929190612851565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361143c5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661146e611c3d565b6001600160a01b0316146114945760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166114b757604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115135760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611545611c3d565b6001600160a01b03161461156b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661158e57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115e95760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661161b611c3d565b6001600160a01b0316146116415760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661166457604051630103019560e11b815260040160405180910390fd5b61166c611c59565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117095760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661173b611c3d565b6001600160a01b0316146117615760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661178457604051630103019560e11b815260040160405180910390fd5b61178c611c59565b806000036117dc5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016104eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611892611c3d565b6001600160a01b0316146118b85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166118db57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361192d5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661195f611c3d565b6001600160a01b0316146119855760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166119a857604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a035760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a35611c3d565b6001600160a01b031614611a5b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611a7e57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ad75760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b09611c3d565b6001600160a01b031614611b2f5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611b5257604051630103019560e11b815260040160405180910390fd5b61012e548114610c2757600081815261012f60205260408120546001600160801b031690819003611b965760405163ddae3b7160e01b815260040160405180910390fd5b61013054611bad6001600160801b03831642612830565b11156111a057604051631d739acf60e11b815260040160405180910390fd5b611bd4611c59565b606580546001600160a01b0383166001600160a01b03199091168117909155611c056033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612923833981519152546001600160a01b031690565b6033546001600160a01b03163314611cb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104eb565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cfd5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d2f611c3d565b6001600160a01b031614611d555760405162461bcd60e51b81526004016104eb9061263d565b610c27611c59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d9557611d9083611f72565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611def575060408051601f3d908101601f19168201909252611dec918101906128a2565b60015b611e525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104eb565b6000805160206129238339815191528114611ec15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104eb565b50611d9083838361200e565b600054610100900460ff16611ef45760405162461bcd60e51b81526004016104eb906128bb565b611cb3612039565b60006010602060ff84168211801590611f1b57508060ff168460ff1611155b949350505050565b600054610100900460ff16611f4a5760405162461bcd60e51b81526004016104eb906128bb565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610c2781612070565b6001600160a01b0381163b611fdf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104eb565b60008051602061292383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612017836120c2565b6000825111806120245750805b15611d90576120338383612102565b50505050565b600054610100900460ff166120605760405162461bcd60e51b81526004016104eb906128bb565b6120686121f8565b611cb3612227565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120cb81611f72565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61216a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104eb565b600080846001600160a01b0316846040516121859190612906565b600060405180830381855af49150503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121ed82826040518060600160405280602781526020016129436027913961224e565b925050505b92915050565b600054610100900460ff1661221f5760405162461bcd60e51b81526004016104eb906128bb565b611cb3612267565b600054610100900460ff16611cb35760405162461bcd60e51b81526004016104eb906128bb565b6060831561225d575081610fcf565b610fcf8383612297565b600054610100900460ff1661228e5760405162461bcd60e51b81526004016104eb906128bb565b611cb333611f59565b8151156108575781518083602001fd5b6001600160a01b0381168114610c2757600080fd5b6000602082840312156122ce57600080fd5b8135610fcf816122a7565b8061010081018310156121f257600080fd5b803563ffffffff8116811461101857600080fd5b60008083601f84011261231157600080fd5b50813567ffffffffffffffff81111561232957600080fd5b6020830191508360208260051b850101111561234457600080fd5b9250929050565b600080600080600080610180878903121561236557600080fd5b61236f88886122d9565b9550610100870135945061238661012088016122eb565b935061014087013567ffffffffffffffff8111156123a357600080fd5b6123af89828a016122ff565b979a969950949794969561016090950135949350505050565b600080600080600061018086880312156123e157600080fd5b8535945060208601359350604086013592506060860135915061240787608088016122d9565b90509295509295909350565b600080600080600060a0868803121561242b57600080fd5b853560ff8116811461243c57600080fd5b9450602086013593506040860135612453816122a7565b92506060860135612463816122a7565b91506080860135612473816122a7565b809150509295509295909350565b60006020828403121561249357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156124d6576124d661249a565b6040525050565b600080604083850312156124f057600080fd5b82356124fb816122a7565b915060208381013567ffffffffffffffff8082111561251957600080fd5b818601915086601f83011261252d57600080fd5b81358181111561253f5761253f61249a565b6040519150612557601f8201601f19168501836124b0565b808252878482850101111561256b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806000608086880312156125a157600080fd5b6125aa866122eb565b94506020860135935060408601359250606086013567ffffffffffffffff8111156125d457600080fd5b6125e0888289016122ff565b969995985093965092949392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826126a657634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156126bd57600080fd5b8151610fcf816122a7565b61012081016101008085843782018360005b60018110156126f95781518352602092830192909101906001016126da565b5050509392505050565b600060033d11156110e85760046000803e5060005160e01c90565b600060443d101561272c5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561275c57505050505090565b82850191508151818111156127745750505050505090565b843d870101602082850101111561278e5750505050505090565b61279d602082860101876124b0565b509095945050505050565b60005b838110156127c35781810151838201526020016127ab565b50506000910152565b60208152600082518060208401526127eb8160408501602087016127a8565b601f01601f19169190910160400192915050565b61018081016101008085843782018360005b60048110156126f9578151835260209283019290910190600101612811565b818103818111156121f257634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561288657600080fd5b8260051b80856044850137919091016044019695505050505050565b6000602082840312156128b457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516129188184602087016127a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d633b870ce7639e47f939f23913c37dfc96a2846c751924ff2ef6c68d09aa72264736f6c63430008150033", + "sourceMap": "879:30959:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27081:492;;;;;;;;;;-1:-1:-1;27081:492:43;;;;;:::i;:::-;;:::i;:::-;;19019:2122;;;;;;;;;;-1:-1:-1;19019:2122:43;;;;;:::i;:::-;;:::i;25868:522::-;;;;;;;;;;-1:-1:-1;25868:522:43;;;;;:::i;:::-;;:::i;30701:499::-;;;;;;;;;;-1:-1:-1;30701:499:43;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;15045:1346:43:-;;;;;;;;;;-1:-1:-1;15045:1346:43;;;;;:::i;:::-;;:::i;23429:567::-;;;;;;;;;;-1:-1:-1;23429:567:43;;;;;:::i;:::-;;:::i;:::-;;;;4356:13:77;;4338:32;;4430:4;4418:17;;;4412:24;-1:-1:-1;;;;;4408:65:77;4386:20;;;4379:95;4532:17;;;4526:24;4519:32;4512:40;4490:20;;;4483:70;4326:2;4311:18;23429:567:43;;;;;;;;27749:189;;;;;;;;;;;;;:::i;:::-;;;4710:25:77;;;4698:2;4683:18;27749:189:43;4564:177:77;3763:222:23;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;7325:120:43:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;7325:120;;4649:109:45;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;22271:413:43:-;;;;;;;;;;-1:-1:-1;22271:413:43;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;;-1:-1:-1;;;;;7087:32:77;;;7069:51;;7057:2;7042:18;1441:85:18;6923:203:77;28716:119:43;;;;;;;;;;;;;:::i;:::-;;;7303:4:77;7291:17;;;7273:36;;7261:2;7246:18;28716:119:43;7131:184:77;25309:231:43;;;;;;;;;;;;;:::i;29482:384::-;;;;;;;;;;-1:-1:-1;29482:384:43;;;;;:::i;:::-;;:::i;28170:402::-;;;;;;;;;;-1:-1:-1;28170:402:43;;;;;:::i;:::-;;:::i;22812:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;29056:133:43;;;;;;;;;;;;;:::i;26573:205::-;;;;;;;;;;;;;:::i;24439:638::-;;;;;;;;;;-1:-1:-1;24439:638:43;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;27081:492:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;27252:34:43;::::3;27248:89;;27309:17;;-1:-1:-1::0;;;27309:17:43::3;;;;;;;;;;;27248:89;27380:17;::::0;;-1:-1:-1;;;;;27407:31:43;;::::3;-1:-1:-1::0;;;;;;27407:31:43;::::3;::::0;::::3;::::0;;;27380:17:::3;::::0;;27484:28:::3;27453:113;;::::0;::::3;::::0;;;::::3;27238:335;27081:492:::0;:::o;19019:2122::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;31743:17:43::2;::::0;-1:-1:-1;;;;;31743:17:43::2;31729:10;:31;31725:93;;31783:24;::::0;-1:-1:-1;;;31783:24:43;;31796:10:::2;31783:24;::::0;::::2;7069:51:77::0;7042:18;;31783:24:43::2;6923:203:77::0;31725:93:43::2;19310:11:::3;;19299:7;:22;19295:95;;19367:11;::::0;19344:35:::3;::::0;-1:-1:-1;;;19344:35:43;;::::3;::::0;19358:7;;19344:35:::3;;8452:25:77::0;;;8508:2;8493:18;;8486:34;8440:2;8425:18;;8278:248;19295:95:43::3;19480:17;19500:112;19552:10;19564:7;19573:8;19583:19;;19500:38;:112::i;:::-;19480:132:::0;-1:-1:-1;19911:22:43::3;19936:39;4362:77;19480:132:::0;19936:39:::3;:::i;:::-;20105:23;::::0;:66:::3;::::0;-1:-1:-1;;;20105:66:43;;::::3;::::0;::::3;4710:25:77::0;;;19911:64:43;;-1:-1:-1;20059:31:43::3;::::0;-1:-1:-1;;;;;20105:23:43;;::::3;::::0;:38:::3;::::0;4683:18:77;;20105:66:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20240:63;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;20240:63:43;;20059:112;;-1:-1:-1;;;;;;20240:29:43;::::3;::::0;::::3;::::0;:63:::3;::::0;20270:14;;20240:63;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;20236:899;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;20887:9;20880:17;;-1:-1:-1::0;;;20880:17:43::3;;;;;;;;:::i;20236:899::-;;;21100:24;;-1:-1:-1::0;;;21100:24:43::3;;;;;;;;;;;20236:899;20472:11;:22:::0;;;20640:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;20640:47:43::3;20671:15;-1:-1:-1::0;;;;;20640:47:43::3;;::::0;;20472:22;;20707:52:::3;::::0;20719:7;;20707:52:::3;::::0;;;::::3;20236:899;19285:1856;;;19019:2122:::0;;;;;;:::o;25868:522::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;26057:31:43;::::3;26053:89;;26111:20;;-1:-1:-1::0;;;26111:20:43::3;;;;;;;;;;;26053:89;26183:23;::::0;;-1:-1:-1;;;;;26216:34:43;;::::3;-1:-1:-1::0;;;;;;26216:34:43;::::3;::::0;::::3;::::0;;;26183:23:::3;::::0;;;26265:118:::3;::::0;30701:499;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;30989:22:43::2;31006:4;30989:16;:22::i;:::-;31077:17;::::0;:116:::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;31077:116:43;;-1:-1:-1;;;;;31077:17:43;;::::2;::::0;:29:::2;::::0;:116:::2;::::0;31120:5;;31077:116;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;15045:1346:43:-;4871:13:22;;15299:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;12061:2:77;4862:99:22;;;12043:21:77;12100:2;12080:18;;;12073:30;12139:34;12119:18;;;12112:62;-1:-1:-1;;;12190:18:77;;;12183:44;12244:19;;4862:99:22;11859:410:77;4862:99:22;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;15316:47:43;::::1;15312:105;;15386:20;;-1:-1:-1::0;;;15386:20:43::1;;;;;;;;;;;15312:105;-1:-1:-1::0;;;;;15431:44:43;::::1;15427:102;;15498:20;;-1:-1:-1::0;;;15498:20:43::1;;;;;;;;;;;15427:102;-1:-1:-1::0;;;;;15543:41:43;::::1;15539:96;;15607:17;;-1:-1:-1::0;;;15607:17:43::1;;;;;;;;;;;15539:96;15719:16;:14;:16::i;:::-;15751:48;15788:10;15751:36;:48::i;:::-;15746:119;;15822:32;::::0;-1:-1:-1;;;15822:32:43;;7303:4:77;7291:17;;15822:32:43::1;::::0;::::1;7273:36:77::0;7246:18;;15822:32:43::1;7131:184:77::0;15746:119:43::1;15932:9;:22:::0;;-1:-1:-1;;;;15932:22:43::1;-1:-1:-1::0;;;15932:22:43::1;::::0;::::1;;;::::0;;15984:7:::1;15964:17;:27:::0;16001:11:::1;:25:::0;;;16036:23:::1;:50:::0;;-1:-1:-1;;;;;;16036:50:43;;::::1;-1:-1:-1::0;;;;;16036:50:43;;::::1;::::0;;;::::1;::::0;;;16096:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;16153:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;16201:17:43::1;:27:::0;;1513:6:18;;;;16201:27:43;::::1;;::::0;;16288:18:::1;:16;:18::i;:::-;16322:62;::::0;;12474:4:77;12462:17;;12444:36;;12511:2;12496:18;;12489:34;;;16322:62:43::1;::::0;12417:18:77;16322:62:43::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;7303:4:77;7291:17;;7273:36;;5080:20:22;;7261:2:77;7246:18;5080:20:22;;;;;;;15045:1346:43;;;;;;:::o;23429:567::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;23608:11:43::2;;23600:4;:19:::0;23596:394:::2;;-1:-1:-1::0;;23642:30:43::2;::::0;;::::2;::::0;::::2;::::0;;23651:11:::2;::::0;23642:30;;-1:-1:-1;23642:30:43::2;::::0;::::2;::::0;23667:4:::2;23642:30:::0;;;;;;;;23429:567::o;23596:394::-:2;23703:21;23727:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;23727:17:43::2;::::0;23763:18;;;23759:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;23808:14:::2;23801:21:::0;23429:567;-1:-1:-1;;;23429:567:43:o;23759:78::-:2;23902:17;::::0;23851:12:::2;::::0;23868:31:::2;-1:-1:-1::0;;;;;23868:31:43;::::2;:15;:31;:::i;:::-;23941:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;23941:38:43;;::::2;;::::0;::::2;::::0;23868:51;-1:-1:-1;23866:54:43::2;23941:38:::0;;;;-1:-1:-1;23941:38:43;-1:-1:-1;23596:394:43::2;23429:567:::0;;;:::o;27749:189::-;27884:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;27914:17:43::2;::::0;1144:1:74::2;27749:189:43::0;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;12966:2:77;2308:92:23;;;12948:21:77;13005:2;12985:18;;;12978:30;13044:34;13024:18;;;13017:62;13115:26;13095:18;;;13088:54;13159:19;;2308:92:23;12764:420:77;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;4649:109:45:-;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;13391:2:77;2095:78:17;;;13373:21:77;13430:2;13410:18;;;13403:30;13469:34;13449:18;;;13442:62;-1:-1:-1;;;13520:18:77;;;13513:39;13569:19;;2095:78:17;13189:405:77;2095:78:17;2183:26;2202:6;2183:18;:26::i;22271:413:43:-;22506:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;22530:24:43::2;22586:10;22598:7;22607:8;22617:19;;22569:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22569:68:43;;::::2;::::0;;;;;;22655:22;;22569:68:::2;22655:22:::0;;::::2;::::0;;22271:413;-1:-1:-1;;;;;;;22271:413:43:o;28716:119::-;28795:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;28819:9:43::2;::::0;-1:-1:-1;;;28819:9:43;::::2;;;::::0;28716:119::o;25309:231::-;25471:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;25509:23:43::2;::::0;-1:-1:-1;;;;;25509:23:43::2;25309:231:::0;:::o;29482:384::-;29648:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;29693:17:43::3;::::0;;-1:-1:-1;;;;;29720:39:43;;::::3;-1:-1:-1::0;;;;;;29720:39:43;::::3;::::0;::::3;::::0;;;29774:57:::3;::::0;29693:17;::::3;::::0;29720:39;29693:17;;29774:57:::3;::::0;29671:19:::3;::::0;29774:57:::3;29848:11:::0;29482:384;-1:-1:-1;;29482:384:43:o;28170:402::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;28332::43::3;28349:1;28332:18:::0;28328:86:::3;;28366:37;::::0;-1:-1:-1;;;28366:37:43;;14401:2:77;28366:37:43::3;::::0;::::3;14383:21:77::0;14440:2;14420:18;;;14413:30;14479:29;14459:18;;;14452:57;14526:18;;28366:37:43::3;14199:351:77::0;28328:86:43::3;28443:17;::::0;;28470:33;;;;28519:46:::3;::::0;28490:13;;28443:17;;28519:46:::3;::::0;28423:17:::3;::::0;28519:46:::3;28318:254;28170:402:::0;:::o;22812:121::-;22889:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;22915:11:43::2;::::0;22812:121;:::o;29056:133::-;29139:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29165:17:43::2;::::0;-1:-1:-1;;;;;29165:17:43::2;29056:133:::0;:::o;26573:205::-;26715:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;26753:17:43::2;::::0;-1:-1:-1;;;;;26753:17:43::2;26573:205:::0;:::o;24439:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;24591:11:43::2;::::0;24579:56;;24618:7:::2;24579:56;24710:21;24734:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;24734:17:43::2;::::0;24834:18;;;24830:73:::2;;24875:17;;-1:-1:-1::0;;;24875:17:43::2;;;;;;;;;;;24830:73;25007:17;::::0;24973:31:::2;-1:-1:-1::0;;;;;24973:31:43;::::2;:15;:31;:::i;:::-;:51;24969:102;;;25047:13;;-1:-1:-1::0;;;25047:13:43::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;14757:2:77;1654:68:18;;;14739:21:77;;;14776:18;;;14769:30;14835:34;14815:18;;;14808:62;14887:18;;1654:68:18;14555:356:77;1654:68:18;1599:130::o;4067:204:45:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;15307:2:77;3758:56:20;;;15289:21:77;15346:2;15326:18;;;15319:30;15385:34;15365:18;;;15358:62;-1:-1:-1;;;15436:18:77;;;15429:44;15490:19;;3758:56:20;15105:410:77;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;15722:2:77;3636:82:20;;;15704:21:77;15761:2;15741:18;;;15734:30;15800:34;15780:18;;;15773:62;-1:-1:-1;;;15851:18:77;;;15844:39;15900:19;;3636:82:20;15520:405:77;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;16725:97:43:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;16795:20:43::1;:18;:20::i;434:207:75:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:75;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:75:o;794:90:74:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:74::1;:19:::0;;-1:-1:-1;;858:19:74::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;16544:2:77;1878:106:20;;;16526:21:77;16583:2;16563:18;;;16556:30;16622:34;16602:18;;;16595:62;-1:-1:-1;;;16673:18:77;;;16666:43;16726:19;;1878:106:20;16342:409:77;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;16958:2:77;7195:88:20;;;16940:21:77;16997:2;16977:18;;;16970:30;17036:34;17016:18;;;17009:62;-1:-1:-1;;;17087:18:77;;;17080:36;17133:19;;7195:88:20;16756:402:77;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:77;-1:-1:-1;;;;;109:31:77;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:77;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:77;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:77;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:77:o;2254:509::-;2374:6;2382;2390;2398;2406;2459:3;2447:9;2438:7;2434:23;2430:33;2427:53;;;2476:1;2473;2466:12;2427:53;2512:9;2499:23;2489:33;;2569:2;2558:9;2554:18;2541:32;2531:42;;2620:2;2609:9;2605:18;2592:32;2582:42;;2671:2;2660:9;2656:18;2643:32;2633:42;;2694:63;2749:7;2743:3;2732:9;2728:19;2694:63;:::i;:::-;2684:73;;2254:509;;;;;;;;:::o;3040:908::-;3219:6;3227;3235;3243;3251;3304:3;3292:9;3283:7;3279:23;3275:33;3272:53;;;3321:1;3318;3311:12;3272:53;3360:9;3347:23;3410:4;3403:5;3399:16;3392:5;3389:27;3379:55;;3430:1;3427;3420:12;3379:55;3453:5;-1:-1:-1;3505:2:77;3490:18;;3477:32;;-1:-1:-1;3561:2:77;3546:18;;3533:32;3574:53;3533:32;3574:53;:::i;:::-;3646:7;-1:-1:-1;3705:2:77;3690:18;;3677:32;3718:53;3677:32;3718:53;:::i;:::-;3790:7;-1:-1:-1;3849:3:77;3834:19;;3821:33;3863:53;3821:33;3863:53;:::i;:::-;3935:7;3925:17;;;3040:908;;;;;;;;:::o;3953:180::-;4012:6;4065:2;4053:9;4044:7;4040:23;4036:32;4033:52;;;4081:1;4078;4071:12;4033:52;-1:-1:-1;4104:23:77;;3953:180;-1:-1:-1;3953:180:77:o;4746:127::-;4807:10;4802:3;4798:20;4795:1;4788:31;4838:4;4835:1;4828:15;4862:4;4859:1;4852:15;4878:249;4988:2;4969:13;;-1:-1:-1;;4965:27:77;4953:40;;5023:18;5008:34;;5044:22;;;5005:62;5002:88;;;5070:18;;:::i;:::-;5106:2;5099:22;-1:-1:-1;;4878:249:77:o;5132:953::-;5209:6;5217;5270:2;5258:9;5249:7;5245:23;5241:32;5238:52;;;5286:1;5283;5276:12;5238:52;5325:9;5312:23;5344:51;5389:5;5344:51;:::i;:::-;5414:5;-1:-1:-1;5438:2:77;5476:18;;;5463:32;5514:18;5544:14;;;5541:34;;;5571:1;5568;5561:12;5541:34;5609:6;5598:9;5594:22;5584:32;;5654:7;5647:4;5643:2;5639:13;5635:27;5625:55;;5676:1;5673;5666:12;5625:55;5712:2;5699:16;5734:2;5730;5727:10;5724:36;;;5740:18;;:::i;:::-;5789:2;5783:9;;-1:-1:-1;5801:65:77;5856:2;5837:13;;-1:-1:-1;;5833:27:77;5829:36;;5783:9;5801:65;:::i;:::-;5890:2;5882:6;5875:18;5930:7;5925:2;5920;5916;5912:11;5908:20;5905:33;5902:53;;;5951:1;5948;5941:12;5902:53;6007:2;6002;5998;5994:11;5989:2;5981:6;5977:15;5964:46;6052:1;6047:2;6042;6034:6;6030:15;6026:24;6019:35;;6073:6;6063:16;;;;;5132:953;;;;;:::o;6272:646::-;6384:6;6392;6400;6408;6416;6469:3;6457:9;6448:7;6444:23;6440:33;6437:53;;;6486:1;6483;6476:12;6437:53;6509:28;6527:9;6509:28;:::i;:::-;6499:38;;6584:2;6573:9;6569:18;6556:32;6546:42;;6635:2;6624:9;6620:18;6607:32;6597:42;;6690:2;6679:9;6675:18;6662:32;6717:18;6709:6;6706:30;6703:50;;;6749:1;6746;6739:12;6703:50;6788:70;6850:7;6841:6;6830:9;6826:22;6788:70;:::i;:::-;6272:646;;;;-1:-1:-1;6272:646:77;;-1:-1:-1;6877:8:77;;6762:96;6272:646;-1:-1:-1;;;6272:646:77:o;7320:408::-;7522:2;7504:21;;;7561:2;7541:18;;;7534:30;7600:34;7595:2;7580:18;;7573:62;-1:-1:-1;;;7666:2:77;7651:18;;7644:42;7718:3;7703:19;;7320:408::o;7733:::-;7935:2;7917:21;;;7974:2;7954:18;;;7947:30;8013:34;8008:2;7993:18;;7986:62;-1:-1:-1;;;8079:2:77;8064:18;;8057:42;8131:3;8116:19;;7733:408::o;8531:209::-;8563:1;8589;8579:132;;8633:10;8628:3;8624:20;8621:1;8614:31;8668:4;8665:1;8658:15;8696:4;8693:1;8686:15;8579:132;-1:-1:-1;8725:9:77;;8531:209::o;8745:294::-;8838:6;8891:2;8879:9;8870:7;8866:23;8862:32;8859:52;;;8907:1;8904;8897:12;8859:52;8939:9;8933:16;8958:51;9003:5;8958:51;:::i;9044:646::-;9300:3;9285:19;;9323:6;;9362;9289:9;9338:35;9393:18;;9453:6;9477:1;9487:197;9501:4;9498:1;9495:11;9487:197;;;9563:13;;9551:26;;9600:4;9624:12;;;;9659:15;;;;9521:4;9514:12;9487:197;;;9491:3;;;9044:646;;;;;:::o;9695:179::-;9730:3;9772:1;9754:16;9751:23;9748:120;;;9818:1;9815;9812;9797:23;-1:-1:-1;9855:1:77;9849:8;9844:3;9840:18;9695:179;:::o;9879:671::-;9918:3;9960:4;9942:16;9939:26;9936:39;;;9879:671;:::o;9936:39::-;10002:2;9996:9;-1:-1:-1;;10067:16:77;10063:25;;10060:1;9996:9;10039:50;10118:4;10112:11;10142:16;10177:18;10248:2;10241:4;10233:6;10229:17;10226:25;10221:2;10213:6;10210:14;10207:45;10204:58;;;10255:5;;;;;9879:671;:::o;10204:58::-;10292:6;10286:4;10282:17;10271:28;;10328:3;10322:10;10355:2;10347:6;10344:14;10341:27;;;10361:5;;;;;;9879:671;:::o;10341:27::-;10445:2;10426:16;10420:4;10416:27;10412:36;10405:4;10396:6;10391:3;10387:16;10383:27;10380:69;10377:82;;;10452:5;;;;;;9879:671;:::o;10377:82::-;10468:57;10519:4;10510:6;10502;10498:19;10494:30;10488:4;10468:57;:::i;:::-;-1:-1:-1;10541:3:77;;9879:671;-1:-1:-1;;;;;9879:671:77:o;10555:250::-;10640:1;10650:113;10664:6;10661:1;10658:13;10650:113;;;10740:11;;;10734:18;10721:11;;;10714:39;10686:2;10679:10;10650:113;;;-1:-1:-1;;10797:1:77;10779:16;;10772:27;10555:250::o;10810:396::-;10959:2;10948:9;10941:21;10922:4;10991:6;10985:13;11034:6;11029:2;11018:9;11014:18;11007:34;11050:79;11122:6;11117:2;11106:9;11102:18;11097:2;11089:6;11085:15;11050:79;:::i;:::-;11190:2;11169:15;-1:-1:-1;;11165:29:77;11150:45;;;;11197:2;11146:54;;10810:396;-1:-1:-1;;10810:396:77:o;11211:643::-;11467:3;11452:19;;11490:6;;11529;11456:9;11505:35;11560:18;;11620:6;11644:1;11654:194;11668:4;11665:1;11662:11;11654:194;;;11727:13;;11715:26;;11764:4;11788:12;;;;11823:15;;;;11688:1;11681:9;11654:194;;12534:225;12601:9;;;12622:11;;;12619:134;;;12675:10;12670:3;12666:20;12663:1;12656:31;12710:4;12707:1;12700:15;12738:4;12735:1;12728:15;13599:595;13908:3;13886:16;;;-1:-1:-1;;;;;;13882:43:77;13870:56;;13951:1;13942:11;;13935:27;;;13987:2;13978:12;;13971:28;;;-1:-1:-1;;;;;;14011:31:77;;14008:51;;;14055:1;14052;14045:12;14008:51;14089:6;14086:1;14082:14;14140:6;14132;14127:2;14122:3;14118:12;14105:42;14167:16;;;;14185:2;14163:25;;13599:595;-1:-1:-1;;;;;;13599:595:77:o;14916:184::-;14986:6;15039:2;15027:9;15018:7;15014:23;15010:32;15007:52;;;15055:1;15052;15045:12;15007:52;-1:-1:-1;15078:16:77;;14916:184;-1:-1:-1;14916:184:77:o;15930:407::-;16132:2;16114:21;;;16171:2;16151:18;;;16144:30;16210:34;16205:2;16190:18;;16183:62;-1:-1:-1;;;16276:2:77;16261:18;;16254:41;16327:3;16312:19;;15930:407::o;17163:287::-;17292:3;17330:6;17324:13;17346:66;17405:6;17400:3;17393:4;17385:6;17381:17;17346:66;:::i;:::-;17428:16;;;;;17163:287;-1:-1:-1;;17163:287:77:o", "linkReferences": {}, "immutableReferences": { "29832": [ { - "start": 1549, - "length": 32 - }, - { - "start": 1622, - "length": 32 - }, - { - "start": 1844, - "length": 32 - }, - { - "start": 1908, - "length": 32 - }, - { - "start": 2995, - "length": 32 - }, - { - "start": 3059, - "length": 32 - }, - { - "start": 3240, - "length": 32 - }, - { - "start": 3304, - "length": 32 - }, - { - "start": 3560, - "length": 32 - }, - { - "start": 3624, - "length": 32 - }, - { - "start": 3789, - "length": 32 - }, - { - "start": 3853, - "length": 32 - }, - { - "start": 4195, - "length": 32 - }, - { - "start": 4259, - "length": 32 - }, - { - "start": 4399, - "length": 32 - }, - { - "start": 4463, - "length": 32 - }, - { - "start": 4586, + "start": 1197, "length": 32 }, { - "start": 4650, + "start": 1270, "length": 32 }, { - "start": 4801, + "start": 1531, "length": 32 }, { - "start": 4977, + "start": 1595, "length": 32 }, { - "start": 5041, + "start": 2310, "length": 32 }, { - "start": 5291, + "start": 2374, "length": 32 }, { - "start": 5355, + "start": 2594, "length": 32 }, { - "start": 5690, + "start": 2658, "length": 32 }, { - "start": 5754, + "start": 2924, "length": 32 }, { - "start": 5958, + "start": 2988, "length": 32 }, { - "start": 6022, + "start": 3731, "length": 32 }, { - "start": 6217, + "start": 3795, "length": 32 }, { - "start": 6281, + "start": 4137, "length": 32 }, { - "start": 6432, + "start": 4201, "length": 32 }, { - "start": 6496, + "start": 4341, "length": 32 }, { - "start": 6646, + "start": 4405, "length": 32 }, { - "start": 6710, + "start": 4529, "length": 32 }, { - "start": 6858, + "start": 4859, "length": 32 }, { - "start": 6922, + "start": 4923, "length": 32 }, { - "start": 7166, + "start": 5118, "length": 32 }, { - "start": 7230, + "start": 5182, "length": 32 }, { - "start": 7454, + "start": 5333, "length": 32 }, { - "start": 7518, + "start": 5397, "length": 32 }, { - "start": 8095, + "start": 5547, "length": 32 }, { - "start": 8159, + "start": 5611, "length": 32 }, { - "start": 8533, + "start": 5835, "length": 32 }, { - "start": 8597, + "start": 5899, "length": 32 }, { - "start": 8738, + "start": 6178, "length": 32 }, { - "start": 8802, + "start": 6242, "length": 32 }, { - "start": 8952, + "start": 6383, "length": 32 }, { - "start": 9016, + "start": 6447, "length": 32 }, { - "start": 9164, + "start": 6597, "length": 32 }, { - "start": 9228, + "start": 6661, "length": 32 }, { - "start": 10113, + "start": 6809, "length": 32 }, { - "start": 10177, + "start": 6873, "length": 32 }, { - "start": 10838, + "start": 7359, "length": 32 }, { - "start": 10902, - "length": 32 - }, - { - "start": 11176, - "length": 32 - }, - { - "start": 11240, - "length": 32 - }, - { - "start": 11757, - "length": 32 - }, - { - "start": 11821, + "start": 7423, "length": 32 } ] @@ -1188,16 +953,12 @@ "NO_SUCH_ROOT()": "561f204b", "acceptOwnership()": "79ba5097", "calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])": "8c76a909", - "calculateIdentityUpdateInputHash(uint256,uint256,uint32[],uint256[],uint256[])": "86ec599a", - "disableStateBridge()": "a26b810e", - "enableStateBridge()": "61ea6a8d", - "getIdentityUpdateVerifierLookupTableAddress()": "4ffbdde5", "getRegisterIdentitiesVerifierLookupTableAddress()": "8fc22e9f", "getRootHistoryExpiry()": "43f974cb", "getSemaphoreVerifierAddress()": "f2038f95", "getTreeDepth()": "8e5cdd50", "identityOperator()": "f134b6ca", - "initialize(uint8,uint256,address,address,address,bool,address)": "f2ebe631", + "initialize(uint8,uint256,address,address,address)": "38c87065", "latestRoot()": "d7b0fef1", "owner()": "8da5cb5b", "pendingOwner()": "e30c3978", @@ -1207,22 +968,18 @@ "renounceOwnership()": "715018a6", "requireValidRoot(uint256)": "f2358e1d", "setIdentityOperator(address)": "a7bba582", - "setIdentityUpdateVerifierLookupTable(address)": "6b056600", "setRegisterIdentitiesVerifierLookupTable(address)": "2f059fca", "setRootHistoryExpiry(uint256)": "c70aa727", "setSemaphoreVerifier(address)": "0e3a12f3", - "setStateBridge(address)": "fa8ca810", - "stateBridge()": "91f262d3", "transferOwnership(address)": "f2fde38b", - "updateIdentities(uint256[8],uint256,uint32[],uint256[],uint256[],uint256)": "b843b4e5", "upgradeTo(address)": "3659cfe6", "upgradeToAndCall(address,bytes)": "4f1ef286", "verifyProof(uint256,uint256,uint256,uint256,uint256[8])": "354ca120" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_enableStateBridge\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"contract IBridge\",\"name\":\"__stateBridge\",\"type\":\"address\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"leafIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"oldIdentities\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"newIdentities\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityUpdateInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableStateBridge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableStateBridge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIdentityUpdateVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_enableStateBridge\",\"type\":\"bool\"},{\"internalType\":\"contract IBridge\",\"name\":\"__stateBridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setIdentityUpdateVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IBridge\",\"name\":\"newStateBridge\",\"type\":\"address\"}],\"name\":\"setStateBridge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateBridge\",\"outputs\":[{\"internalType\":\"contract IBridge\",\"name\":\"stateBridgeContract\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"updateProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"leafIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"oldIdentities\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"newIdentities\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"updateIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the insertions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256,bool,address)\":{\"params\":{\"__stateBridge\":\"The initial state bridge contract to use.\",\"_enableStateBridge\":\"Whether or not the state bridge should be enabled when initialising the identity manager.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"calculateIdentityUpdateInputHash(uint256,uint256,uint32[],uint256[],uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"leafIndices\":\"The array of leaf indices at which the update operations take place in the tree. Elements in this array are extended to 256 bits when encoding.\",\"newIdentities\":\"The array of new values for the identities. Length must match that of `leafIndices`.\",\"oldIdentities\":\"The array of old values for the identities. Length must match that of `leafIndices`.\",\"postRoot\":\"The root value of the tree after the updates were made.\",\"preRoot\":\"The root value of the tree before the updates were made.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. The arrays `leafIndices`, `oldIdentities` and `newIdentities` are arranged such that the triple at an element `i` in those arrays corresponds to one update operation. We keccak hash all input to save verification gas. The inputs are arranged as follows: preRoot || postRoot || ix[0] || ... || ix[n] || oi[0] || ... || oi[n] || ni[0] || ... || ni[n] || 256 || 256 || 256 || ... || 256 || 256 || ... || 256 || 256 || ... || 256 || where: - `ix[i] == leafIndices[i]` - `oi[i] == oldIdentities[i]` - `ni[i] == newIdentities[i]` - `id[i] == identities[i]` - `n == batchSize - 1`\"}},\"disableStateBridge()\":{\"details\":\"Only the owner of the contract can call this function.\"},\"enableStateBridge()\":{\"details\":\"Only the owner of the contract can call this function.\"},\"getIdentityUpdateVerifierLookupTableAddress()\":{\"details\":\"The update verifier is also used for member removals.\",\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address,bool,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"__stateBridge\":\"The initial state bridge contract to use.\",\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_enableStateBridge\":\"Whether or not the state bridge should be enabled when initialising the identity manager.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.InvalidCommitment If one or more of the provided commitments is invalid.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.UnreducedElement If any of the `preRoot`, `postRoot` and `identityCommitments` is not an element of the field `Kr`. It describes the type and value of the unreduced element.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.VerifierLookupTable.BatchTooLarge If the batch size exceeds the maximum batch size.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`.\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setIdentityUpdateVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.The update verifier is also used for member removals.\",\"params\":{\"newTable\":\"The new lookup table instance to be used for verifying identity updates.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"setStateBridge(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newStateBridge\":\"The new stateBridge contract\"}},\"stateBridge()\":{\"returns\":{\"stateBridgeContract\":\"The address of the currently used stateBridge\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"updateIdentities(uint256[8],uint256,uint32[],uint256[],uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to update identities.NotLatestRoot If the provided `preRoot` is not the latest root.MismatchedInputLengths If the provided arrays for `leafIndices`, `oldIdentities` and `newIdentities` do not match in length.ProofValidationFailure If `removalProof` cannot be verified using the provided inputs.UnreducedElement If any of the `preRoot`, `postRoot` and `identities` is not an element of the field `Kr`. It describes the type and value of the unreduced element.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"leafIndices\":\"The array of leaf indices at which the update operations take place in the tree. Elements in this array are extended to 256 bits when encoding.\",\"newIdentities\":\"The array of new values for the identities. Length must match that of `leafIndices`.\",\"oldIdentities\":\"The array of old values for the identities. Length must match that of `leafIndices`.\",\"postRoot\":\"The root obtained after removing all of `removedIdentities` from the tree described by `preRoot`. Must be an element of the field `Kr`. The arrays `leafIndices`, `oldIdentities` and `newIdentities` are arranged such that the triple at an element `i` in those arrays corresponds to one update operation.\"}},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"stateVariables\":{\"EMPTY_LEAF\":{\"details\":\"Prevents the empty leaf from being inserted into the root history.\"},\"SNARK_SCALAR_FIELD\":{\"details\":\"Used internally to ensure that the proof input is scaled to within the field `Fr`.\"},\"_identityOperator\":{\"details\":\"The identity operator defaults to being the same as the owner.\"},\"rootHistoryExpiry\":{\"details\":\"This prevents proofs getting invalidated in the mempool by another tx modifying the group.\"}},\"title\":\"WorldID Identity Manager Implementation Version 1\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` or `updateIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"calculateIdentityUpdateInputHash(uint256,uint256,uint32[],uint256[],uint256[])\":{\"notice\":\"Calculates the input hash for the identity update verifier.\"},\"constructor\":{\"notice\":\"Constructs the contract.\"},\"disableStateBridge()\":{\"notice\":\"Disables the state bridge.\"},\"enableStateBridge()\":{\"notice\":\"Enables the state bridge.\"},\"getIdentityUpdateVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity updates.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address,bool,address)\":{\"notice\":\"Initializes the contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setIdentityUpdateVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers to be used for verification of identity updates.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"setStateBridge(address)\":{\"notice\":\"Allows a caller to upgrade the stateBridge.\"},\"stateBridge()\":{\"notice\":\"Allows a caller to query the address of the current stateBridge.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV1.sol\":\"WorldIDIdentityManagerImplV1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/semaphore/packages/contracts/contracts/base/Pairing.sol\":{\"keccak256\":\"0x44390032d1247a0e3931eb39f1220f170db653c6b3b4321b2e2b0034f5e07334\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://725cc4bdf047d17bf9d47c9a0205d90897c0da334de8e556c1a3049b1beb9aed\",\"dweb:/ipfs/QmSo7SXpqyrqHFhYi7F8SGjcVxCdVr6FNdgiw7Qfre1NGt\"]},\"lib/semaphore/packages/contracts/contracts/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0x5b5b1118ed7936014d3e410419d6048cc9c0ae69fd700442593f2c2cc782e1af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://601cf2c7e3c98735ff38eaff225af090ec847d63ec599ecc2340323145430668\",\"dweb:/ipfs/QmUoZYgge8GmQokXrYiRXn24s4HgBZetiNWQssiSoTFrdi\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x06648b66be3422e6ebc14d2ede323411a5dcc4e6764ef4d7aaa7b3c50b2bc1a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce85d2ad0db7acac0d089b4c5aa123f5268ac9db50e834b52f1e6e808ec06bec\",\"dweb:/ipfs/QmaBF6eGZ2HrN8May85YkmtbYca28fPBdQZkLqBLNAXTeu\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0x07f1144ca0dbd85c51eff8047ebe565f4961b2751616cc0b6832583a66a72af5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cee071fcba52e68066c952944adde9c641e272d57d720238d9761f8e470d3f03\",\"dweb:/ipfs/Qmd2rADEwHJ2XorSfZ8FqMbBa1TjLuq1XA9YL1dS246iog\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0x2fee36d3ce0431a74f70456c666bf573ab3035b5bcb3c408827c44e8acdb3e20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8072baa645ce8b72ff0de6beb5b731d744feb82099704f71f36b4628099004a\",\"dweb:/ipfs/QmYpXrYTYaUwKCgdKKNmrZF2rMXFgoGaG5kBwF6uA5ZND4\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0x13b96100d9f8ec9e8677992222097d406e353bb21f368211f7f7b28b8d9eba4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5dcb340e1eb33f2bc5daf6acf3a4bfb9eda213833a2fe71fb8ee3747ea60580\",\"dweb:/ipfs/QmRSNSV9Ui8HSW1yKNJBsnaWe7dQDrVa6SiKChqirn7fnK\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x40bebbf9ebe417bc1a79d9119a9630dd0fcb2a9b59399c54a3aa29eabff7d092\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94ab38577b03c031fecf54f30b44f2e90c4f159947c7e4c96adcbc6bf84103ce\",\"dweb:/ipfs/QmecA8qGEGYty7Yg7JfVhRJE6WbHPxWLY6LUqtPf8qWQkG\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x3f980c7fa04a40d3e128a27ac7eb2fba6020a2a81baec4172e3ce809a1189388\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e7cca84723edc4bfffec31b48dcd93bf78b677b80939d97209c57ad8a248f15\",\"dweb:/ipfs/QmSxNKodWF1Fh94b3UmKQS63KE7arLqgdrXyGxVq7gXJHR\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0xa6d3bf7a1cc13356a7a0215381a60101c7f760eb17daa887a6a9ef1a92532d0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d20e4b0ab7ff19c1c0aaaaa6ba96179d229eebbbfe77357ab10b64e62eb2d953\",\"dweb:/ipfs/QmSoqU5RB4PgsYBbk7uP866JqSnSi4DM7fe3iVzdNRFd7o\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0x7584ed171e4ed8d98b52ad166b1c357e2fd98cde5eb6de2e7f60eb4d12be1742\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f5f8065c502cf9f1ee508c875ebaa71fc09456d6501cc0c2724c28fc221138b\",\"dweb:/ipfs/QmNwqpcNUyDZKuPBAtBTdPfGEKHMJY83aHBETgReDFJq9m\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0xa1fc61c574575ffc686ca1ffc18d0b2236588f783d8fab0dfadfe7cd12188978\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0393f27b5c73eebfa053e3bfa666784df261e4d68ffa86240064702d378c22e6\",\"dweb:/ipfs/QmYs3cKa45V78irViZWfSnLHpDaRqPLNrLHuQGJqSnZmnY\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierLUT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the insertions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"details\":\"This error is no longer in use as we now verify the commitments off-chain within the circuit no need to check for reduced elements or invalid commitments.preserved for ABI backwards compatibility with V1, no longer used, all elements are validated by the circuit\",\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"InvalidStateBridgeAddress()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"MismatchedInputLengths()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"StateBridgeAlreadyDisabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"StateBridgeAlreadyEnabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.preserved for ABI backwards compatibility with V1, no longer used, all elements come out reduced from the circuit\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\",\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"stateVariables\":{\"SNARK_SCALAR_FIELD\":{\"details\":\"Used internally to ensure that the proof input is scaled to within the field `Fr`.\"},\"_identityOperator\":{\"details\":\"The identity operator defaults to being the same as the owner.\"},\"_stateBridge\":{\"details\":\"preserved for storage reasons, no longer used\"},\"identityUpdateVerifiers\":{\"details\":\"preserved for storage reasons, no longer used\"},\"rootHistoryExpiry\":{\"details\":\"This prevents proofs getting invalidated in the mempool by another tx modifying the group.\"}},\"title\":\"WorldID Identity Manager Implementation Version 1\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"InvalidVerifier()\":[{\"notice\":\"Thrown when a verifier is initialized to be the zero address\"}],\"InvalidVerifierLUT()\":[{\"notice\":\"Thrown when a verifier lookup table is initialized to be the zero address\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"constructor\":{\"notice\":\"Constructs the contract.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV1.sol\":\"WorldIDIdentityManagerImplV1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x5d05b909d5ea55446c4b3009ed6283924992fdb7bd9f93179b92f84b60d583ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27eae247b4e8ce77ae921a4ba0a947d82a19eb303451a28ccc2771b99f348123\",\"dweb:/ipfs/QmUKTYz3UTNBEF3zBrS82mmrDzcZ992LEBSUAiS4cmMBtX\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b\",\"dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", "metadata": { "compiler": { - "version": "0.8.19+commit.7dd6d404" + "version": "0.8.21+commit.d9974bed" }, "language": "Solidity", "output": { @@ -1263,6 +1020,16 @@ "type": "error", "name": "InvalidStateBridgeAddress" }, + { + "inputs": [], + "type": "error", + "name": "InvalidVerifier" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidVerifierLUT" + }, { "inputs": [], "type": "error", @@ -1552,18 +1319,6 @@ "name": "initialRoot", "type": "uint256", "indexed": false - }, - { - "internalType": "bool", - "name": "_enableStateBridge", - "type": "bool", - "indexed": false - }, - { - "internalType": "contract IBridge", - "name": "__stateBridge", - "type": "address", - "indexed": false } ], "type": "event", @@ -1641,85 +1396,21 @@ ] }, { - "inputs": [ - { - "internalType": "uint256", - "name": "preRoot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "postRoot", - "type": "uint256" - }, - { - "internalType": "uint32[]", - "name": "leafIndices", - "type": "uint32[]" - }, - { - "internalType": "uint256[]", - "name": "oldIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "newIdentities", - "type": "uint256[]" - } - ], + "inputs": [], "stateMutability": "view", "type": "function", - "name": "calculateIdentityUpdateInputHash", + "name": "getRegisterIdentitiesVerifierLookupTableAddress", "outputs": [ { - "internalType": "bytes32", - "name": "hash", - "type": "bytes32" + "internalType": "address", + "name": "", + "type": "address" } ] }, { "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "disableStateBridge" - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "enableStateBridge" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getIdentityUpdateVerifierLookupTableAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getRegisterIdentitiesVerifierLookupTableAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", + "stateMutability": "view", "type": "function", "name": "getRootHistoryExpiry", "outputs": [ @@ -1795,16 +1486,6 @@ "internalType": "contract ISemaphoreVerifier", "name": "_semaphoreVerifier", "type": "address" - }, - { - "internalType": "bool", - "name": "_enableStateBridge", - "type": "bool" - }, - { - "internalType": "contract IBridge", - "name": "__stateBridge", - "type": "address" } ], "stateMutability": "nonpayable", @@ -1968,18 +1649,6 @@ } ] }, - { - "inputs": [ - { - "internalType": "contract VerifierLookupTable", - "name": "newTable", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setIdentityUpdateVerifierLookupTable" - }, { "inputs": [ { @@ -2016,31 +1685,6 @@ "type": "function", "name": "setSemaphoreVerifier" }, - { - "inputs": [ - { - "internalType": "contract IBridge", - "name": "newStateBridge", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setStateBridge" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "stateBridge", - "outputs": [ - { - "internalType": "contract IBridge", - "name": "stateBridgeContract", - "type": "address" - } - ] - }, { "inputs": [ { @@ -2053,43 +1697,6 @@ "type": "function", "name": "transferOwnership" }, - { - "inputs": [ - { - "internalType": "uint256[8]", - "name": "updateProof", - "type": "uint256[8]" - }, - { - "internalType": "uint256", - "name": "preRoot", - "type": "uint256" - }, - { - "internalType": "uint32[]", - "name": "leafIndices", - "type": "uint32[]" - }, - { - "internalType": "uint256[]", - "name": "oldIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "newIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256", - "name": "postRoot", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "updateIdentities" - }, { "inputs": [ { @@ -2173,31 +1780,6 @@ "hash": "The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\t || 256 || 256 || 256 || 256 || ... || 256 bits" } }, - "calculateIdentityUpdateInputHash(uint256,uint256,uint32[],uint256[],uint256[])": { - "details": "Implements the computation described below.", - "params": { - "leafIndices": "The array of leaf indices at which the update operations take place in the tree. Elements in this array are extended to 256 bits when encoding.", - "newIdentities": "The array of new values for the identities. Length must match that of `leafIndices`.", - "oldIdentities": "The array of old values for the identities. Length must match that of `leafIndices`.", - "postRoot": "The root value of the tree after the updates were made.", - "preRoot": "The root value of the tree before the updates were made." - }, - "returns": { - "hash": "The input hash calculated as described below. The arrays `leafIndices`, `oldIdentities` and `newIdentities` are arranged such that the triple at an element `i` in those arrays corresponds to one update operation. We keccak hash all input to save verification gas. The inputs are arranged as follows: preRoot || postRoot || ix[0] || ... || ix[n] || oi[0] || ... || oi[n] || ni[0] || ... || ni[n] || 256 || 256 || 256 || ... || 256 || 256 || ... || 256 || 256 || ... || 256 || where: - `ix[i] == leafIndices[i]` - `oi[i] == oldIdentities[i]` - `ni[i] == newIdentities[i]` - `id[i] == identities[i]` - `n == batchSize - 1`" - } - }, - "disableStateBridge()": { - "details": "Only the owner of the contract can call this function." - }, - "enableStateBridge()": { - "details": "Only the owner of the contract can call this function." - }, - "getIdentityUpdateVerifierLookupTableAddress()": { - "details": "The update verifier is also used for member removals.", - "returns": { - "_0": "addr The address of the contract being used as the verifier lookup table." - } - }, "getRegisterIdentitiesVerifierLookupTableAddress()": { "returns": { "_0": "addr The address of the contract being used as the verifier lookup table." @@ -2223,14 +1805,12 @@ "_0": "_ The address authorized to perform identity operations." } }, - "initialize(uint8,uint256,address,address,address,bool,address)": { + "initialize(uint8,uint256,address,address,address)": { "custom:reverts": "string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.", "details": "Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.", "params": { - "__stateBridge": "The initial state bridge contract to use.", "_batchInsertionVerifiers": "The verifier lookup table for batch insertions.", "_batchUpdateVerifiers": "The verifier lookup table for batch updates.", - "_enableStateBridge": "Whether or not the state bridge should be enabled when initialising the identity manager.", "_semaphoreVerifier": "The verifier to use for semaphore protocol proofs.", "_treeDepth": "The depth of the MerkeTree", "initialRoot": "The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree." @@ -2260,10 +1840,10 @@ } }, "registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)": { - "custom:reverts": "Unauthorized If the message sender is not authorised to add identities.InvalidCommitment If one or more of the provided commitments is invalid.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.UnreducedElement If any of the `preRoot`, `postRoot` and `identityCommitments` is not an element of the field `Kr`. It describes the type and value of the unreduced element.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.VerifierLookupTable.BatchTooLarge If the batch size exceeds the maximum batch size.", + "custom:reverts": "Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.", "params": { "identityCommitments": "The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.", - "postRoot": "The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`.", + "postRoot": "The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)", "startIndex": "The position in the tree at which the insertions were made." } }, @@ -2285,12 +1865,6 @@ "_0": "_ The address of the old identity operator." } }, - "setIdentityUpdateVerifierLookupTable(address)": { - "details": "Only the owner of the contract can call this function.The update verifier is also used for member removals.", - "params": { - "newTable": "The new lookup table instance to be used for verifying identity updates." - } - }, "setRegisterIdentitiesVerifierLookupTable(address)": { "details": "Only the owner of the contract can call this function.", "params": { @@ -2309,29 +1883,9 @@ "newVerifier": "The new verifier instance to be used for verifying semaphore proofs." } }, - "setStateBridge(address)": { - "details": "Only the owner of the contract can call this function.", - "params": { - "newStateBridge": "The new stateBridge contract" - } - }, - "stateBridge()": { - "returns": { - "stateBridgeContract": "The address of the currently used stateBridge" - } - }, "transferOwnership(address)": { "details": "Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner." }, - "updateIdentities(uint256[8],uint256,uint32[],uint256[],uint256[],uint256)": { - "custom:reverts": "Unauthorized If the message sender is not authorised to update identities.NotLatestRoot If the provided `preRoot` is not the latest root.MismatchedInputLengths If the provided arrays for `leafIndices`, `oldIdentities` and `newIdentities` do not match in length.ProofValidationFailure If `removalProof` cannot be verified using the provided inputs.UnreducedElement If any of the `preRoot`, `postRoot` and `identities` is not an element of the field `Kr`. It describes the type and value of the unreduced element.NoSuchVerifier If the batch sizes doesn't match a known verifier.", - "params": { - "leafIndices": "The array of leaf indices at which the update operations take place in the tree. Elements in this array are extended to 256 bits when encoding.", - "newIdentities": "The array of new values for the identities. Length must match that of `leafIndices`.", - "oldIdentities": "The array of old values for the identities. Length must match that of `leafIndices`.", - "postRoot": "The root obtained after removing all of `removedIdentities` from the tree described by `preRoot`. Must be an element of the field `Kr`. The arrays `leafIndices`, `oldIdentities` and `newIdentities` are arranged such that the triple at an element `i` in those arrays corresponds to one update operation." - } - }, "upgradeTo(address)": { "details": "Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." }, @@ -2361,21 +1915,9 @@ "calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])": { "notice": "Calculates the input hash for the identity registration verifier." }, - "calculateIdentityUpdateInputHash(uint256,uint256,uint32[],uint256[],uint256[])": { - "notice": "Calculates the input hash for the identity update verifier." - }, "constructor": { "notice": "Constructs the contract." }, - "disableStateBridge()": { - "notice": "Disables the state bridge." - }, - "enableStateBridge()": { - "notice": "Enables the state bridge." - }, - "getIdentityUpdateVerifierLookupTableAddress()": { - "notice": "Gets the address for the lookup table of merkle tree verifiers used for identity updates." - }, "getRegisterIdentitiesVerifierLookupTableAddress()": { "notice": "Gets the address for the lookup table of merkle tree verifiers used for identity registrations." }, @@ -2391,7 +1933,7 @@ "identityOperator()": { "notice": "Gets the address that is authorised to perform identity operations on this identity manager instance." }, - "initialize(uint8,uint256,address,address,address,bool,address)": { + "initialize(uint8,uint256,address,address,address)": { "notice": "Initializes the contract." }, "latestRoot()": { @@ -2409,9 +1951,6 @@ "setIdentityOperator(address)": { "notice": "Sets the address that is authorised to perform identity operations on this identity manager instance." }, - "setIdentityUpdateVerifierLookupTable(address)": { - "notice": "Sets the address for the lookup table of merkle tree verifiers to be used for verification of identity updates." - }, "setRegisterIdentitiesVerifierLookupTable(address)": { "notice": "Sets the address for the lookup table of merkle tree verifiers used for identity registrations." }, @@ -2421,12 +1960,6 @@ "setSemaphoreVerifier(address)": { "notice": "Sets the address for the semaphore verifier to be used for verification of semaphore proofs." }, - "setStateBridge(address)": { - "notice": "Allows a caller to upgrade the stateBridge." - }, - "stateBridge()": { - "notice": "Allows a caller to query the address of the current stateBridge." - }, "verifyProof(uint256,uint256,uint256,uint256,uint256[8])": { "notice": "A verifier for the semaphore protocol." } @@ -2439,7 +1972,6 @@ "@zk-kit/=lib/zk-kit/packages/", "contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "ds-test/=lib/ds-test/src/", - "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", @@ -2565,91 +2097,83 @@ ], "license": "MIT" }, - "lib/semaphore/packages/contracts/contracts/base/Pairing.sol": { - "keccak256": "0x44390032d1247a0e3931eb39f1220f170db653c6b3b4321b2e2b0034f5e07334", - "urls": [ - "bzz-raw://725cc4bdf047d17bf9d47c9a0205d90897c0da334de8e556c1a3049b1beb9aed", - "dweb:/ipfs/QmSo7SXpqyrqHFhYi7F8SGjcVxCdVr6FNdgiw7Qfre1NGt" - ], - "license": "MIT" - }, - "lib/semaphore/packages/contracts/contracts/interfaces/ISemaphoreVerifier.sol": { - "keccak256": "0x5b5b1118ed7936014d3e410419d6048cc9c0ae69fd700442593f2c2cc782e1af", - "urls": [ - "bzz-raw://601cf2c7e3c98735ff38eaff225af090ec847d63ec599ecc2340323145430668", - "dweb:/ipfs/QmUoZYgge8GmQokXrYiRXn24s4HgBZetiNWQssiSoTFrdi" - ], - "license": "MIT" - }, "src/WorldIDIdentityManagerImplV1.sol": { - "keccak256": "0x06648b66be3422e6ebc14d2ede323411a5dcc4e6764ef4d7aaa7b3c50b2bc1a9", + "keccak256": "0x5d05b909d5ea55446c4b3009ed6283924992fdb7bd9f93179b92f84b60d583ad", "urls": [ - "bzz-raw://ce85d2ad0db7acac0d089b4c5aa123f5268ac9db50e834b52f1e6e808ec06bec", - "dweb:/ipfs/QmaBF6eGZ2HrN8May85YkmtbYca28fPBdQZkLqBLNAXTeu" + "bzz-raw://27eae247b4e8ce77ae921a4ba0a947d82a19eb303451a28ccc2771b99f348123", + "dweb:/ipfs/QmUKTYz3UTNBEF3zBrS82mmrDzcZ992LEBSUAiS4cmMBtX" ], "license": "MIT" }, "src/abstract/WorldIDImpl.sol": { - "keccak256": "0x07f1144ca0dbd85c51eff8047ebe565f4961b2751616cc0b6832583a66a72af5", + "keccak256": "0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0", "urls": [ - "bzz-raw://cee071fcba52e68066c952944adde9c641e272d57d720238d9761f8e470d3f03", - "dweb:/ipfs/Qmd2rADEwHJ2XorSfZ8FqMbBa1TjLuq1XA9YL1dS246iog" + "bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e", + "dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ" ], "license": "MIT" }, "src/data/VerifierLookupTable.sol": { - "keccak256": "0x2fee36d3ce0431a74f70456c666bf573ab3035b5bcb3c408827c44e8acdb3e20", + "keccak256": "0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc", "urls": [ - "bzz-raw://e8072baa645ce8b72ff0de6beb5b731d744feb82099704f71f36b4628099004a", - "dweb:/ipfs/QmYpXrYTYaUwKCgdKKNmrZF2rMXFgoGaG5kBwF6uA5ZND4" + "bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83", + "dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3" ], "license": "MIT" }, "src/interfaces/IBaseWorldID.sol": { - "keccak256": "0x13b96100d9f8ec9e8677992222097d406e353bb21f368211f7f7b28b8d9eba4b", + "keccak256": "0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144", "urls": [ - "bzz-raw://b5dcb340e1eb33f2bc5daf6acf3a4bfb9eda213833a2fe71fb8ee3747ea60580", - "dweb:/ipfs/QmRSNSV9Ui8HSW1yKNJBsnaWe7dQDrVa6SiKChqirn7fnK" + "bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5", + "dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8" ], "license": "MIT" }, "src/interfaces/IBridge.sol": { - "keccak256": "0x40bebbf9ebe417bc1a79d9119a9630dd0fcb2a9b59399c54a3aa29eabff7d092", + "keccak256": "0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac", + "urls": [ + "bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d", + "dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ" + ], + "license": "MIT" + }, + "src/interfaces/ISemaphoreVerifier.sol": { + "keccak256": "0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787", "urls": [ - "bzz-raw://94ab38577b03c031fecf54f30b44f2e90c4f159947c7e4c96adcbc6bf84103ce", - "dweb:/ipfs/QmecA8qGEGYty7Yg7JfVhRJE6WbHPxWLY6LUqtPf8qWQkG" + "bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b", + "dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa" ], "license": "MIT" }, "src/interfaces/ITreeVerifier.sol": { - "keccak256": "0x3f980c7fa04a40d3e128a27ac7eb2fba6020a2a81baec4172e3ce809a1189388", + "keccak256": "0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f", "urls": [ - "bzz-raw://5e7cca84723edc4bfffec31b48dcd93bf78b677b80939d97209c57ad8a248f15", - "dweb:/ipfs/QmSxNKodWF1Fh94b3UmKQS63KE7arLqgdrXyGxVq7gXJHR" + "bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4", + "dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw" ], "license": "MIT" }, "src/interfaces/IWorldID.sol": { - "keccak256": "0xa6d3bf7a1cc13356a7a0215381a60101c7f760eb17daa887a6a9ef1a92532d0b", + "keccak256": "0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1", "urls": [ - "bzz-raw://d20e4b0ab7ff19c1c0aaaaa6ba96179d229eebbbfe77357ab10b64e62eb2d953", - "dweb:/ipfs/QmSoqU5RB4PgsYBbk7uP866JqSnSi4DM7fe3iVzdNRFd7o" + "bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f", + "dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc" ], "license": "MIT" }, "src/utils/CheckInitialized.sol": { - "keccak256": "0x7584ed171e4ed8d98b52ad166b1c357e2fd98cde5eb6de2e7f60eb4d12be1742", + "keccak256": "0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4", "urls": [ - "bzz-raw://8f5f8065c502cf9f1ee508c875ebaa71fc09456d6501cc0c2724c28fc221138b", - "dweb:/ipfs/QmNwqpcNUyDZKuPBAtBTdPfGEKHMJY83aHBETgReDFJq9m" + "bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04", + "dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ" ], "license": "MIT" }, "src/utils/SemaphoreTreeDepthValidator.sol": { - "keccak256": "0xa1fc61c574575ffc686ca1ffc18d0b2236588f783d8fab0dfadfe7cd12188978", + "keccak256": "0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872", "urls": [ - "bzz-raw://0393f27b5c73eebfa053e3bfa666784df261e4d68ffa86240064702d378c22e6", - "dweb:/ipfs/QmYs3cKa45V78irViZWfSnLHpDaRqPLNrLHuQGJqSnZmnY" + "bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661", + "dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs" ], "license": "MIT" } @@ -2658,67 +2182,67 @@ }, "ast": { "absolutePath": "src/WorldIDIdentityManagerImplV1.sol", - "id": 34276, + "id": 34870, "exportedSymbols": { "IBridge": [ - 34981 + 35413 ], "ISemaphoreVerifier": [ - 32716 + 35429 ], "ITreeVerifier": [ - 35009 + 35445 ], "IWorldID": [ - 35033 + 35469 ], "SemaphoreTreeDepthValidator": [ - 49426 + 48479 ], "VerifierLookupTable": [ - 34956 + 35388 ], "WorldIDIdentityManagerImplV1": [ - 34275 + 34869 ], "WorldIDImpl": [ - 34721 + 35153 ] }, "nodeType": "SourceUnit", - "src": "32:52572:42", + "src": "32:31807:43", "nodes": [ { - "id": 32739, + "id": 33999, "nodeType": "PragmaDirective", - "src": "32:24:42", + "src": "32:24:43", "nodes": [], "literals": [ "solidity", "^", "0.8", - ".19" + ".21" ] }, { - "id": 32741, + "id": 34001, "nodeType": "ImportDirective", - "src": "58:55:42", + "src": "58:55:43", "nodes": [], "absolutePath": "src/abstract/WorldIDImpl.sol", "file": "./abstract/WorldIDImpl.sol", "nameLocation": "-1:-1:-1", - "scope": 34276, - "sourceUnit": 34722, + "scope": 34870, + "sourceUnit": 35154, "symbolAliases": [ { "foreign": { - "id": 32740, + "id": 34000, "name": "WorldIDImpl", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34721, - "src": "66:11:42", + "referencedDeclaration": 35153, + "src": "66:11:43", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2727,24 +2251,24 @@ "unitAlias": "" }, { - "id": 32743, + "id": 34003, "nodeType": "ImportDirective", - "src": "115:51:42", + "src": "115:51:43", "nodes": [], "absolutePath": "src/interfaces/IWorldID.sol", "file": "./interfaces/IWorldID.sol", "nameLocation": "-1:-1:-1", - "scope": 34276, - "sourceUnit": 35034, + "scope": 34870, + "sourceUnit": 35470, "symbolAliases": [ { "foreign": { - "id": 32742, + "id": 34002, "name": "IWorldID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35033, - "src": "123:8:42", + "referencedDeclaration": 35469, + "src": "123:8:43", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2753,24 +2277,24 @@ "unitAlias": "" }, { - "id": 32745, + "id": 34005, "nodeType": "ImportDirective", - "src": "167:61:42", + "src": "167:61:43", "nodes": [], "absolutePath": "src/interfaces/ITreeVerifier.sol", "file": "./interfaces/ITreeVerifier.sol", "nameLocation": "-1:-1:-1", - "scope": 34276, - "sourceUnit": 35010, + "scope": 34870, + "sourceUnit": 35446, "symbolAliases": [ { "foreign": { - "id": 32744, + "id": 34004, "name": "ITreeVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35009, - "src": "175:13:42", + "referencedDeclaration": 35445, + "src": "175:13:43", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2779,24 +2303,24 @@ "unitAlias": "" }, { - "id": 32747, + "id": 34007, "nodeType": "ImportDirective", - "src": "229:79:42", + "src": "229:73:43", "nodes": [], - "absolutePath": "lib/semaphore/packages/contracts/contracts/interfaces/ISemaphoreVerifier.sol", - "file": "semaphore/interfaces/ISemaphoreVerifier.sol", + "absolutePath": "src/interfaces/ISemaphoreVerifier.sol", + "file": "src/interfaces/ISemaphoreVerifier.sol", "nameLocation": "-1:-1:-1", - "scope": 34276, - "sourceUnit": 32717, + "scope": 34870, + "sourceUnit": 35430, "symbolAliases": [ { "foreign": { - "id": 32746, + "id": 34006, "name": "ISemaphoreVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32716, - "src": "237:18:42", + "referencedDeclaration": 35429, + "src": "237:18:43", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2805,24 +2329,24 @@ "unitAlias": "" }, { - "id": 32749, + "id": 34009, "nodeType": "ImportDirective", - "src": "309:49:42", + "src": "303:49:43", "nodes": [], "absolutePath": "src/interfaces/IBridge.sol", "file": "./interfaces/IBridge.sol", "nameLocation": "-1:-1:-1", - "scope": 34276, - "sourceUnit": 34982, + "scope": 34870, + "sourceUnit": 35414, "symbolAliases": [ { "foreign": { - "id": 32748, + "id": 34008, "name": "IBridge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34981, - "src": "317:7:42", + "referencedDeclaration": 35413, + "src": "311:7:43", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2831,24 +2355,24 @@ "unitAlias": "" }, { - "id": 32751, + "id": 34011, "nodeType": "ImportDirective", - "src": "360:84:42", + "src": "354:84:43", "nodes": [], "absolutePath": "src/utils/SemaphoreTreeDepthValidator.sol", "file": "./utils/SemaphoreTreeDepthValidator.sol", "nameLocation": "-1:-1:-1", - "scope": 34276, - "sourceUnit": 49427, + "scope": 34870, + "sourceUnit": 48480, "symbolAliases": [ { "foreign": { - "id": 32750, + "id": 34010, "name": "SemaphoreTreeDepthValidator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49426, - "src": "368:27:42", + "referencedDeclaration": 48479, + "src": "362:27:43", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2857,24 +2381,24 @@ "unitAlias": "" }, { - "id": 32753, + "id": 34013, "nodeType": "ImportDirective", - "src": "445:67:42", + "src": "439:67:43", "nodes": [], "absolutePath": "src/data/VerifierLookupTable.sol", "file": "./data/VerifierLookupTable.sol", "nameLocation": "-1:-1:-1", - "scope": 34276, - "sourceUnit": 34957, + "scope": 34870, + "sourceUnit": 35389, "symbolAliases": [ { "foreign": { - "id": 32752, + "id": 34012, "name": "VerifierLookupTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34956, - "src": "453:19:42", + "referencedDeclaration": 35388, + "src": "447:19:43", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2883,26 +2407,26 @@ "unitAlias": "" }, { - "id": 34275, + "id": 34869, "nodeType": "ContractDefinition", - "src": "885:51718:42", + "src": "879:30959:43", "nodes": [ { - "id": 32761, + "id": 34021, "nodeType": "VariableDeclaration", - "src": "3543:34:42", + "src": "3537:34:43", "nodes": [], "constant": false, "documentation": { - "id": 32759, + "id": 34019, "nodeType": "StructuredDocumentation", - "src": "3369:169:42", + "src": "3363:169:43", "text": "@notice The address of the contract authorized to perform identity management operations.\n @dev The identity operator defaults to being the same as the owner." }, "mutability": "mutable", "name": "_identityOperator", - "nameLocation": "3560:17:42", - "scope": 34275, + "nameLocation": "3554:17:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2910,10 +2434,10 @@ "typeString": "address" }, "typeName": { - "id": 32760, + "id": 34020, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3543:7:42", + "src": "3537:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2923,21 +2447,21 @@ "visibility": "internal" }, { - "id": 32764, + "id": 34024, "nodeType": "VariableDeclaration", - "src": "3645:28:42", + "src": "3639:28:43", "nodes": [], "constant": false, "documentation": { - "id": 32762, + "id": 34022, "nodeType": "StructuredDocumentation", - "src": "3584:56:42", + "src": "3578:56:43", "text": "@notice The latest root of the identity merkle tree." }, "mutability": "mutable", "name": "_latestRoot", - "nameLocation": "3662:11:42", - "scope": 34275, + "nameLocation": "3656:11:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2945,10 +2469,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32763, + "id": 34023, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3645:7:42", + "src": "3639:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2957,21 +2481,21 @@ "visibility": "internal" }, { - "id": 32769, + "id": 34029, "nodeType": "VariableDeclaration", - "src": "3827:48:42", + "src": "3821:48:43", "nodes": [], "constant": false, "documentation": { - "id": 32765, + "id": 34025, "nodeType": "StructuredDocumentation", - "src": "3680:142:42", + "src": "3674:142:43", "text": "@notice A mapping from the value of the merkle tree root to the timestamp at which the root\n was superseded by a newer one." }, "mutability": "mutable", "name": "rootHistory", - "nameLocation": "3864:11:42", - "scope": 34275, + "nameLocation": "3858:11:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2979,21 +2503,21 @@ "typeString": "mapping(uint256 => uint128)" }, "typeName": { - "id": 32768, + "id": 34028, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 32766, + "id": 34026, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3835:7:42", + "src": "3829:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "3827:27:42", + "src": "3821:27:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", "typeString": "mapping(uint256 => uint128)" @@ -3001,10 +2525,10 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 32767, + "id": 34027, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "3846:7:42", + "src": "3840:7:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -3014,55 +2538,21 @@ "visibility": "internal" }, { - "id": 32772, + "id": 34032, "nodeType": "VariableDeclaration", - "src": "4075:34:42", + "src": "4069:34:43", "nodes": [], "constant": false, "documentation": { - "id": 32770, + "id": 34030, "nodeType": "StructuredDocumentation", - "src": "3882:188:42", + "src": "3876:188:43", "text": "@notice The amount of time an outdated root is considered as valid.\n @dev This prevents proofs getting invalidated in the mempool by another tx modifying the\n group." }, "mutability": "mutable", "name": "rootHistoryExpiry", - "nameLocation": "4092:17:42", - "scope": 34275, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4075:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "id": 32779, - "nodeType": "VariableDeclaration", - "src": "4265:49:42", - "nodes": [], - "constant": true, - "documentation": { - "id": 32773, - "nodeType": "StructuredDocumentation", - "src": "4116:144:42", - "text": "@notice Represents the initial leaf in an empty merkle tree.\n @dev Prevents the empty leaf from being inserted into the root history." - }, - "mutability": "constant", - "name": "EMPTY_LEAF", - "nameLocation": "4291:10:42", - "scope": 34275, + "nameLocation": "4086:17:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3070,71 +2560,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32774, + "id": 34031, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4265:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "arguments": [ - { - "hexValue": "30", - "id": 32777, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4312:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 32776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4304:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 32775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4304:7:42", - "typeDescriptions": {} - } - }, - "id": 32778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4304:10:42", - "tryCall": false, + "src": "4069:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3143,21 +2572,21 @@ "visibility": "internal" }, { - "id": 32783, + "id": 34036, "nodeType": "VariableDeclaration", - "src": "4518:132:42", + "src": "4307:132:43", "nodes": [], "constant": true, "documentation": { - "id": 32780, + "id": 34033, "nodeType": "StructuredDocumentation", - "src": "4321:192:42", + "src": "4110:192:43", "text": "@notice The `r` for the finite field `Fr` under which arithmetic is done on the proof input.\n @dev Used internally to ensure that the proof input is scaled to within the field `Fr`." }, "mutability": "constant", "name": "SNARK_SCALAR_FIELD", - "nameLocation": "4544:18:42", - "scope": 34275, + "nameLocation": "4333:18:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3165,10 +2594,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32781, + "id": 34034, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4518:7:42", + "src": "4307:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3176,14 +2605,14 @@ }, "value": { "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137", - "id": 32782, + "id": 34035, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4573:77:42", + "src": "4362:77:43", "typeDescriptions": { "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", "typeString": "int_const 2188...(69 digits omitted)...5617" @@ -3193,15 +2622,15 @@ "visibility": "internal" }, { - "id": 32786, + "id": 34039, "nodeType": "VariableDeclaration", - "src": "4656:140:42", + "src": "4445:140:43", "nodes": [], "constant": true, "mutability": "constant", "name": "SNARK_SCALAR_FIELD_MIN_ONE", - "nameLocation": "4682:26:42", - "scope": 34275, + "nameLocation": "4471:26:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3209,10 +2638,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32784, + "id": 34037, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4656:7:42", + "src": "4445:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3220,14 +2649,14 @@ }, "value": { "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363136", - "id": 32785, + "id": 34038, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4719:77:42", + "src": "4508:77:43", "typeDescriptions": { "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495616_by_1", "typeString": "int_const 2188...(69 digits omitted)...5616" @@ -3237,197 +2666,197 @@ "visibility": "internal" }, { - "id": 32790, + "id": 34043, "nodeType": "VariableDeclaration", - "src": "4883:52:42", + "src": "4672:52:43", "nodes": [], "constant": false, "documentation": { - "id": 32787, + "id": 34040, "nodeType": "StructuredDocumentation", - "src": "4803:75:42", + "src": "4592:75:43", "text": "@notice The table of verifiers for verifying batch identity insertions." }, "mutability": "mutable", "name": "batchInsertionVerifiers", - "nameLocation": "4912:23:42", - "scope": 34275, + "nameLocation": "4701:23:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 32789, + "id": 34042, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32788, + "id": 34041, "name": "VerifierLookupTable", "nameLocations": [ - "4883:19:42" + "4672:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34956, - "src": "4883:19:42" + "referencedDeclaration": 35388, + "src": "4672:19:43" }, - "referencedDeclaration": 34956, - "src": "4883:19:42", + "referencedDeclaration": 35388, + "src": "4672:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" }, { - "id": 32794, + "id": 34047, "nodeType": "VariableDeclaration", - "src": "5022:52:42", + "src": "4861:52:43", "nodes": [], "constant": false, "documentation": { - "id": 32791, + "id": 34044, "nodeType": "StructuredDocumentation", - "src": "4942:75:42", - "text": "@notice The table of verifiers for verifying batch identity insertions." + "src": "4731:125:43", + "text": "@notice The table of verifiers for verifying identity updates.\n @dev preserved for storage reasons, no longer used" }, "mutability": "mutable", "name": "identityUpdateVerifiers", - "nameLocation": "5051:23:42", - "scope": 34275, + "nameLocation": "4890:23:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 32793, + "id": 34046, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32792, + "id": 34045, "name": "VerifierLookupTable", "nameLocations": [ - "5022:19:42" + "4861:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34956, - "src": "5022:19:42" + "referencedDeclaration": 35388, + "src": "4861:19:43" }, - "referencedDeclaration": 34956, - "src": "5022:19:42", + "referencedDeclaration": 35388, + "src": "4861:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" }, { - "id": 32798, + "id": 34051, "nodeType": "VariableDeclaration", - "src": "5171:45:42", + "src": "5010:45:43", "nodes": [], "constant": false, "documentation": { - "id": 32795, + "id": 34048, "nodeType": "StructuredDocumentation", - "src": "5081:85:42", + "src": "4920:85:43", "text": "@notice The verifier instance needed for operating within the semaphore protocol." }, "mutability": "mutable", "name": "semaphoreVerifier", - "nameLocation": "5199:17:42", - "scope": 34275, + "nameLocation": "5038:17:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" }, "typeName": { - "id": 32797, + "id": 34050, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32796, + "id": 34049, "name": "ISemaphoreVerifier", "nameLocations": [ - "5171:18:42" + "5010:18:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 32716, - "src": "5171:18:42" + "referencedDeclaration": 35429, + "src": "5010:18:43" }, - "referencedDeclaration": 32716, - "src": "5171:18:42", + "referencedDeclaration": 35429, + "src": "5010:18:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } }, "visibility": "internal" }, { - "id": 32802, + "id": 34055, "nodeType": "VariableDeclaration", - "src": "5312:29:42", + "src": "5210:29:43", "nodes": [], "constant": false, "documentation": { - "id": 32799, + "id": 34052, "nodeType": "StructuredDocumentation", - "src": "5223:84:42", - "text": "@notice The interface of the bridge contract from L1 to supported target chains." + "src": "5062:143:43", + "text": "@notice The interface of the bridge contract from L1 to supported target chains.\n @dev preserved for storage reasons, no longer used" }, "mutability": "mutable", "name": "_stateBridge", - "nameLocation": "5329:12:42", - "scope": 34275, + "nameLocation": "5227:12:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", + "typeIdentifier": "t_contract$_IBridge_$35413", "typeString": "contract IBridge" }, "typeName": { - "id": 32801, + "id": 34054, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32800, + "id": 34053, "name": "IBridge", "nameLocations": [ - "5312:7:42" + "5210:7:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34981, - "src": "5312:7:42" + "referencedDeclaration": 35413, + "src": "5210:7:43" }, - "referencedDeclaration": 34981, - "src": "5312:7:42", + "referencedDeclaration": 35413, + "src": "5210:7:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", + "typeIdentifier": "t_contract$_IBridge_$35413", "typeString": "contract IBridge" } }, "visibility": "internal" }, { - "id": 32805, + "id": 34058, "nodeType": "VariableDeclaration", - "src": "5413:35:42", + "src": "5311:35:43", "nodes": [], "constant": false, "documentation": { - "id": 32803, + "id": 34056, "nodeType": "StructuredDocumentation", - "src": "5348:60:42", + "src": "5246:60:43", "text": "@notice Boolean flag to enable/disable the state bridge." }, "mutability": "mutable", "name": "_isStateBridgeEnabled", - "nameLocation": "5427:21:42", - "scope": 34275, + "nameLocation": "5325:21:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3435,10 +2864,10 @@ "typeString": "bool" }, "typeName": { - "id": 32804, + "id": 34057, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5413:4:42", + "src": "5311:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3447,21 +2876,21 @@ "visibility": "internal" }, { - "id": 32808, + "id": 34061, "nodeType": "VariableDeclaration", - "src": "5511:24:42", + "src": "5409:24:43", "nodes": [], "constant": false, "documentation": { - "id": 32806, + "id": 34059, "nodeType": "StructuredDocumentation", - "src": "5455:51:42", + "src": "5353:51:43", "text": "@notice The depth of the Semaphore merkle tree." }, "mutability": "mutable", "name": "treeDepth", - "nameLocation": "5526:9:42", - "scope": 34275, + "nameLocation": "5424:9:43", + "scope": 34869, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3469,10 +2898,10 @@ "typeString": "uint8" }, "typeName": { - "id": 32807, + "id": 34060, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5511:5:42", + "src": "5409:5:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3481,21 +2910,27 @@ "visibility": "internal" }, { - "id": 32815, + "id": 34069, "nodeType": "StructDefinition", - "src": "6232:104:42", + "src": "6130:104:43", "nodes": [], "canonicalName": "WorldIDIdentityManagerImplV1.RootInfo", + "documentation": { + "id": 34062, + "nodeType": "StructuredDocumentation", + "src": "5693:432:43", + "text": "@notice Provides information about a merkle tree root.\n @param root The value of the merkle tree root.\n @param supersededTimestamp The timestamp at which the root was inserted into the history.\n This may be 0 if the requested root is the current root (which has not yet been\n inserted into the history).\n @param isValid Whether or not the root is valid (has not expired)." + }, "members": [ { "constant": false, - "id": 32810, + "id": 34064, "mutability": "mutable", "name": "root", - "nameLocation": "6266:4:42", + "nameLocation": "6164:4:43", "nodeType": "VariableDeclaration", - "scope": 32815, - "src": "6258:12:42", + "scope": 34069, + "src": "6156:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3503,10 +2938,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32809, + "id": 34063, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6258:7:42", + "src": "6156:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3516,13 +2951,13 @@ }, { "constant": false, - "id": 32812, + "id": 34066, "mutability": "mutable", "name": "supersededTimestamp", - "nameLocation": "6288:19:42", + "nameLocation": "6186:19:43", "nodeType": "VariableDeclaration", - "scope": 32815, - "src": "6280:27:42", + "scope": 34069, + "src": "6178:27:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3530,10 +2965,10 @@ "typeString": "uint128" }, "typeName": { - "id": 32811, + "id": 34065, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "6280:7:42", + "src": "6178:7:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -3543,13 +2978,13 @@ }, { "constant": false, - "id": 32814, + "id": 34068, "mutability": "mutable", "name": "isValid", - "nameLocation": "6322:7:42", + "nameLocation": "6220:7:43", "nodeType": "VariableDeclaration", - "scope": 32815, - "src": "6317:12:42", + "scope": 34069, + "src": "6215:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3557,10 +2992,10 @@ "typeString": "bool" }, "typeName": { - "id": 32813, + "id": 34067, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6317:4:42", + "src": "6215:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3570,115 +3005,133 @@ } ], "name": "RootInfo", - "nameLocation": "6239:8:42", - "scope": 34275, + "nameLocation": "6137:8:43", + "scope": 34869, "visibility": "public" }, { - "id": 32819, + "id": 34074, "nodeType": "EnumDefinition", - "src": "6433:95:42", + "src": "6465:95:43", "nodes": [], "canonicalName": "WorldIDIdentityManagerImplV1.UnreducedElementType", + "documentation": { + "id": 34070, + "nodeType": "StructuredDocumentation", + "src": "6240:220:43", + "text": "@notice Represents the kind of element that has not been provided in reduced form.\n @dev preserved for ABI backwards compatibility with V1, no longer used\n all elements come out reduced from the circuit" + }, "members": [ { - "id": 32816, + "id": 34071, "name": "PreRoot", - "nameLocation": "6469:7:42", + "nameLocation": "6501:7:43", "nodeType": "EnumValue", - "src": "6469:7:42" + "src": "6501:7:43" }, { - "id": 32817, + "id": 34072, "name": "IdentityCommitment", - "nameLocation": "6486:18:42", + "nameLocation": "6518:18:43", "nodeType": "EnumValue", - "src": "6486:18:42" + "src": "6518:18:43" }, { - "id": 32818, + "id": 34073, "name": "PostRoot", - "nameLocation": "6514:8:42", + "nameLocation": "6546:8:43", "nodeType": "EnumValue", - "src": "6514:8:42" + "src": "6546:8:43" } ], "name": "UnreducedElementType", - "nameLocation": "6438:20:42" + "nameLocation": "6470:20:43" }, { - "id": 32822, + "id": 34078, "nodeType": "EnumDefinition", - "src": "6618:57:42", + "src": "6650:59:43", "nodes": [], "canonicalName": "WorldIDIdentityManagerImplV1.TreeChange", + "documentation": { + "id": 34075, + "nodeType": "StructuredDocumentation", + "src": "6566:79:43", + "text": "@notice Represents the kind of change that is made to the root of the tree." + }, "members": [ { - "id": 32820, + "id": 34076, "name": "Insertion", - "nameLocation": "6644:9:42", + "nameLocation": "6676:9:43", "nodeType": "EnumValue", - "src": "6644:9:42" + "src": "6676:9:43" }, { - "id": 32821, - "name": "Update", - "nameLocation": "6663:6:42", + "id": 34077, + "name": "Deletion", + "nameLocation": "6695:8:43", "nodeType": "EnumValue", - "src": "6663:6:42" + "src": "6695:8:43" } ], "name": "TreeChange", - "nameLocation": "6623:10:42" + "nameLocation": "6655:10:43" }, { - "id": 32827, + "id": 34084, "nodeType": "EnumDefinition", - "src": "6755:143:42", + "src": "6789:145:43", "nodes": [], "canonicalName": "WorldIDIdentityManagerImplV1.Dependency", + "documentation": { + "id": 34079, + "nodeType": "StructuredDocumentation", + "src": "6715:69:43", + "text": "@notice Represents the kinds of dependencies that can be updated." + }, "members": [ { - "id": 32823, + "id": 34080, "name": "StateBridge", - "nameLocation": "6781:11:42", + "nameLocation": "6815:11:43", "nodeType": "EnumValue", - "src": "6781:11:42" + "src": "6815:11:43" }, { - "id": 32824, + "id": 34081, "name": "InsertionVerifierLookupTable", - "nameLocation": "6802:28:42", + "nameLocation": "6836:28:43", "nodeType": "EnumValue", - "src": "6802:28:42" + "src": "6836:28:43" }, { - "id": 32825, - "name": "UpdateVerifierLookupTable", - "nameLocation": "6840:25:42", + "id": 34082, + "name": "DeletionVerifierLookupTable", + "nameLocation": "6874:27:43", "nodeType": "EnumValue", - "src": "6840:25:42" + "src": "6874:27:43" }, { - "id": 32826, + "id": 34083, "name": "SemaphoreVerifier", - "nameLocation": "6875:17:42", + "nameLocation": "6911:17:43", "nodeType": "EnumValue", - "src": "6875:17:42" + "src": "6911:17:43" } ], "name": "Dependency", - "nameLocation": "6760:10:42" + "nameLocation": "6794:10:43" }, { - "id": 32841, + "id": 34098, "nodeType": "FunctionDefinition", - "src": "7289:120:42", + "src": "7325:120:43", "nodes": [], "body": { - "id": 32840, + "id": 34097, "nodeType": "Block", - "src": "7360:49:42", + "src": "7396:49:43", "nodes": [], "statements": [ { @@ -3686,14 +3139,14 @@ "arguments": [ { "hexValue": "307830", - "id": 32835, + "id": 34092, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7386:3:42", + "src": "7422:3:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3702,14 +3155,14 @@ }, { "hexValue": "307830", - "id": 32836, + "id": 34093, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7391:3:42", + "src": "7427:3:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3718,14 +3171,14 @@ }, { "hexValue": "66616c7365", - "id": 32837, + "id": 34094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7396:5:42", + "src": "7432:5:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3748,18 +3201,18 @@ "typeString": "bool" } ], - "id": 32834, + "id": 34091, "name": "RootInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32815, - "src": "7377:8:42", + "referencedDeclaration": 34069, + "src": "7413:8:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_RootInfo_$32815_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_RootInfo_$34069_storage_ptr_$", "typeString": "type(struct WorldIDIdentityManagerImplV1.RootInfo storage pointer)" } }, - "id": 32838, + "id": 34095, "isConstant": false, "isLValue": false, "isPure": true, @@ -3768,24 +3221,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7377:25:42", + "src": "7413:25:43", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_RootInfo_$32815_memory_ptr", + "typeIdentifier": "t_struct$_RootInfo_$34069_memory_ptr", "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo memory" } }, - "functionReturnParameters": 32833, - "id": 32839, + "functionReturnParameters": 34090, + "id": 34096, "nodeType": "Return", - "src": "7370:32:42" + "src": "7406:32:43" } ] }, "documentation": { - "id": 32828, + "id": 34085, "nodeType": "StructuredDocumentation", - "src": "7157:127:42", + "src": "7193:127:43", "text": "@notice A constant representing a root that doesn't exist.\n @dev Can be checked against when querying for root data." }, "functionSelector": "561f204b", @@ -3793,112 +3246,112 @@ "kind": "function", "modifiers": [], "name": "NO_SUCH_ROOT", - "nameLocation": "7298:12:42", + "nameLocation": "7334:12:43", "parameters": { - "id": 32829, + "id": 34086, "nodeType": "ParameterList", "parameters": [], - "src": "7310:2:42" + "src": "7346:2:43" }, "returnParameters": { - "id": 32833, + "id": 34090, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32832, + "id": 34089, "mutability": "mutable", "name": "rootInfo", - "nameLocation": "7350:8:42", + "nameLocation": "7386:8:43", "nodeType": "VariableDeclaration", - "scope": 32841, - "src": "7334:24:42", + "scope": 34098, + "src": "7370:24:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_RootInfo_$32815_memory_ptr", + "typeIdentifier": "t_struct$_RootInfo_$34069_memory_ptr", "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo" }, "typeName": { - "id": 32831, + "id": 34088, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32830, + "id": 34087, "name": "RootInfo", "nameLocations": [ - "7334:8:42" + "7370:8:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 32815, - "src": "7334:8:42" + "referencedDeclaration": 34069, + "src": "7370:8:43" }, - "referencedDeclaration": 32815, - "src": "7334:8:42", + "referencedDeclaration": 34069, + "src": "7370:8:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_RootInfo_$32815_storage_ptr", + "typeIdentifier": "t_struct$_RootInfo_$34069_storage_ptr", "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo" } }, "visibility": "internal" } ], - "src": "7333:26:42" + "src": "7369:26:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { - "id": 32849, + "id": 34106, "nodeType": "ErrorDefinition", - "src": "7992:74:42", + "src": "8163:74:43", "nodes": [], "documentation": { - "id": 32842, + "id": 34099, "nodeType": "StructuredDocumentation", - "src": "7668:319:42", - "text": "@notice Thrown when encountering an element that should be reduced as a member of `Fr` but\n is not.\n @dev `r` in this case is given by `SNARK_SCALAR_FIELD`.\n @param elementType The kind of element that was encountered unreduced.\n @param element The value of that element." + "src": "7704:454:43", + "text": "@notice Thrown when encountering an element that should be reduced as a member of `Fr` but\n is not.\n @dev `r` in this case is given by `SNARK_SCALAR_FIELD`.\n @param elementType The kind of element that was encountered unreduced.\n @param element The value of that element.\n @dev preserved for ABI backwards compatibility with V1, no longer used,\n all elements come out reduced from the circuit" }, "errorSelector": "af1e1889", "name": "UnreducedElement", - "nameLocation": "7998:16:42", + "nameLocation": "8169:16:43", "parameters": { - "id": 32848, + "id": 34105, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32845, + "id": 34102, "mutability": "mutable", "name": "elementType", - "nameLocation": "8036:11:42", + "nameLocation": "8207:11:43", "nodeType": "VariableDeclaration", - "scope": 32849, - "src": "8015:32:42", + "scope": 34106, + "src": "8186:32:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", + "typeIdentifier": "t_enum$_UnreducedElementType_$34074", "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" }, "typeName": { - "id": 32844, + "id": 34101, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32843, + "id": 34100, "name": "UnreducedElementType", "nameLocations": [ - "8015:20:42" + "8186:20:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 32819, - "src": "8015:20:42" + "referencedDeclaration": 34074, + "src": "8186:20:43" }, - "referencedDeclaration": 32819, - "src": "8015:20:42", + "referencedDeclaration": 34074, + "src": "8186:20:43", "typeDescriptions": { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", + "typeIdentifier": "t_enum$_UnreducedElementType_$34074", "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" } }, @@ -3906,13 +3359,13 @@ }, { "constant": false, - "id": 32847, + "id": 34104, "mutability": "mutable", "name": "element", - "nameLocation": "8057:7:42", + "nameLocation": "8228:7:43", "nodeType": "VariableDeclaration", - "scope": 32849, - "src": "8049:15:42", + "scope": 34106, + "src": "8220:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3920,10 +3373,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32846, + "id": 34103, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8049:7:42", + "src": "8220:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3932,36 +3385,36 @@ "visibility": "internal" } ], - "src": "8014:51:42" + "src": "8185:51:43" } }, { - "id": 32854, + "id": 34111, "nodeType": "ErrorDefinition", - "src": "8288:33:42", + "src": "8459:33:43", "nodes": [], "documentation": { - "id": 32850, + "id": 34107, "nodeType": "StructuredDocumentation", - "src": "8072:211:42", + "src": "8243:211:43", "text": "@notice Thrown when trying to execute a privileged action without being the contract\n manager.\n @param user The user that attempted the action that they were not authorised for." }, "errorSelector": "8e4a23d6", "name": "Unauthorized", - "nameLocation": "8294:12:42", + "nameLocation": "8465:12:43", "parameters": { - "id": 32853, + "id": 34110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32852, + "id": 34109, "mutability": "mutable", "name": "user", - "nameLocation": "8315:4:42", + "nameLocation": "8486:4:43", "nodeType": "VariableDeclaration", - "scope": 32854, - "src": "8307:12:42", + "scope": 34111, + "src": "8478:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3969,10 +3422,10 @@ "typeString": "address" }, "typeName": { - "id": 32851, + "id": 34108, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8307:7:42", + "src": "8478:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3982,36 +3435,36 @@ "visibility": "internal" } ], - "src": "8306:14:42" + "src": "8477:14:43" } }, { - "id": 32859, + "id": 34116, "nodeType": "ErrorDefinition", - "src": "8553:39:42", + "src": "9030:39:43", "nodes": [], "documentation": { - "id": 32855, + "id": 34112, "nodeType": "StructuredDocumentation", - "src": "8327:221:42", - "text": "@notice Thrown when one or more of the identity commitments to be inserted is invalid.\n @param index The index in the array of identity commitments where the invalid commitment was\n found." + "src": "8498:527:43", + "text": "@notice Thrown when one or more of the identity commitments to be inserted is invalid.\n @param index The index in the array of identity commitments where the invalid commitment was\n found.\n @dev This error is no longer in use as we now verify the commitments off-chain within the circuit\n no need to check for reduced elements or invalid commitments.\n @dev preserved for ABI backwards compatibility with V1, no longer used,\n all elements are validated by the circuit" }, "errorSelector": "31e63ea0", "name": "InvalidCommitment", - "nameLocation": "8559:17:42", + "nameLocation": "9036:17:43", "parameters": { - "id": 32858, + "id": 34115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32857, + "id": 34114, "mutability": "mutable", "name": "index", - "nameLocation": "8585:5:42", + "nameLocation": "9062:5:43", "nodeType": "VariableDeclaration", - "scope": 32859, - "src": "8577:13:42", + "scope": 34116, + "src": "9054:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4019,10 +3472,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32856, + "id": 34113, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8577:7:42", + "src": "9054:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4031,57 +3484,57 @@ "visibility": "internal" } ], - "src": "8576:15:42" + "src": "9053:15:43" } }, { - "id": 32862, + "id": 34119, "nodeType": "ErrorDefinition", - "src": "8693:31:42", + "src": "9170:31:43", "nodes": [], "documentation": { - "id": 32860, + "id": 34117, "nodeType": "StructuredDocumentation", - "src": "8598:90:42", + "src": "9075:90:43", "text": "@notice Thrown when the provided proof cannot be verified for the accompanying inputs." }, "errorSelector": "1e716a8b", "name": "ProofValidationFailure", - "nameLocation": "8699:22:42", + "nameLocation": "9176:22:43", "parameters": { - "id": 32861, + "id": 34118, "nodeType": "ParameterList", "parameters": [], - "src": "8721:2:42" + "src": "9198:2:43" } }, { - "id": 32869, + "id": 34126, "nodeType": "ErrorDefinition", - "src": "8985:62:42", + "src": "9462:62:43", "nodes": [], "documentation": { - "id": 32863, + "id": 34120, "nodeType": "StructuredDocumentation", - "src": "8730:250:42", + "src": "9207:250:43", "text": "@notice Thrown when the provided root is not the very latest root.\n @param providedRoot The root that was provided as the `preRoot` for a transaction.\n @param latestRoot The actual latest root at the time of the transaction." }, "errorSelector": "a85f9db2", "name": "NotLatestRoot", - "nameLocation": "8991:13:42", + "nameLocation": "9468:13:43", "parameters": { - "id": 32868, + "id": 34125, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32865, + "id": 34122, "mutability": "mutable", "name": "providedRoot", - "nameLocation": "9013:12:42", + "nameLocation": "9490:12:43", "nodeType": "VariableDeclaration", - "scope": 32869, - "src": "9005:20:42", + "scope": 34126, + "src": "9482:20:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4089,10 +3542,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32864, + "id": 34121, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9005:7:42", + "src": "9482:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4102,13 +3555,13 @@ }, { "constant": false, - "id": 32867, + "id": 34124, "mutability": "mutable", "name": "latestRoot", - "nameLocation": "9035:10:42", + "nameLocation": "9512:10:43", "nodeType": "VariableDeclaration", - "scope": 32869, - "src": "9027:18:42", + "scope": 34126, + "src": "9504:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4116,10 +3569,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32866, + "id": 34123, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9027:7:42", + "src": "9504:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4128,99 +3581,99 @@ "visibility": "internal" } ], - "src": "9004:42:42" + "src": "9481:42:43" } }, { - "id": 32872, + "id": 34129, "nodeType": "ErrorDefinition", - "src": "9141:34:42", + "src": "9697:34:43", "nodes": [], "documentation": { - "id": 32870, + "id": 34127, "nodeType": "StructuredDocumentation", - "src": "9053:83:42", - "text": "@notice Thrown when attempting to enable the bridge when it is already enabled." + "src": "9530:162:43", + "text": "@notice Thrown when attempting to enable the bridge when it is already enabled.\n @dev preserved for ABI backwards compatibility with V1, no longer used" }, "errorSelector": "963a8d4f", "name": "StateBridgeAlreadyEnabled", - "nameLocation": "9147:25:42", + "nameLocation": "9703:25:43", "parameters": { - "id": 32871, + "id": 34128, "nodeType": "ParameterList", "parameters": [], - "src": "9172:2:42" + "src": "9728:2:43" } }, { - "id": 32875, + "id": 34132, "nodeType": "ErrorDefinition", - "src": "9271:35:42", + "src": "9906:35:43", "nodes": [], "documentation": { - "id": 32873, + "id": 34130, "nodeType": "StructuredDocumentation", - "src": "9181:85:42", - "text": "@notice Thrown when attempting to disable the bridge when it is already disabled." + "src": "9737:164:43", + "text": "@notice Thrown when attempting to disable the bridge when it is already disabled.\n @dev preserved for ABI backwards compatibility with V1, no longer used" }, "errorSelector": "c6b90a44", "name": "StateBridgeAlreadyDisabled", - "nameLocation": "9277:26:42", + "nameLocation": "9912:26:43", "parameters": { - "id": 32874, + "id": 34131, "nodeType": "ParameterList", "parameters": [], - "src": "9303:2:42" + "src": "9938:2:43" } }, { - "id": 32878, + "id": 34135, "nodeType": "ErrorDefinition", - "src": "9404:34:42", + "src": "10118:34:43", "nodes": [], "documentation": { - "id": 32876, + "id": 34133, "nodeType": "StructuredDocumentation", - "src": "9312:87:42", - "text": "@notice Thrown when attempting to set the state bridge address to the zero address." + "src": "9947:166:43", + "text": "@notice Thrown when attempting to set the state bridge address to the zero address.\n @dev preserved for ABI backwards compatibility with V1, no longer used" }, "errorSelector": "ed4cf557", "name": "InvalidStateBridgeAddress", - "nameLocation": "9410:25:42", + "nameLocation": "10124:25:43", "parameters": { - "id": 32877, + "id": 34134, "nodeType": "ParameterList", "parameters": [], - "src": "9435:2:42" + "src": "10149:2:43" } }, { - "id": 32883, + "id": 34140, "nodeType": "ErrorDefinition", - "src": "9559:40:42", + "src": "10273:40:43", "nodes": [], "documentation": { - "id": 32879, + "id": 34136, "nodeType": "StructuredDocumentation", - "src": "9444:110:42", + "src": "10158:110:43", "text": "@notice Thrown when Semaphore tree depth is not supported.\n @param depth Passed tree depth." }, "errorSelector": "8833b8c0", "name": "UnsupportedTreeDepth", - "nameLocation": "9565:20:42", + "nameLocation": "10279:20:43", "parameters": { - "id": 32882, + "id": 34139, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32881, + "id": 34138, "mutability": "mutable", "name": "depth", - "nameLocation": "9592:5:42", + "nameLocation": "10306:5:43", "nodeType": "VariableDeclaration", - "scope": 32883, - "src": "9586:11:42", + "scope": 34140, + "src": "10300:11:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4228,10 +3681,10 @@ "typeString": "uint8" }, "typeName": { - "id": 32880, + "id": 34137, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "9586:5:42", + "src": "10300:5:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4240,59 +3693,101 @@ "visibility": "internal" } ], - "src": "9585:13:42" + "src": "10299:13:43" } }, { - "id": 32886, + "id": 34143, "nodeType": "ErrorDefinition", - "src": "9728:31:42", + "src": "10499:31:43", "nodes": [], "documentation": { - "id": 32884, + "id": 34141, "nodeType": "StructuredDocumentation", - "src": "9605:118:42", - "text": "@notice Thrown when the inputs to `removeIdentities` or `updateIdentities` do not match in\n length." + "src": "10319:175:43", + "text": "@notice Thrown when the inputs to `removeIdentities` do not match in\n length.\n @dev preserved for ABI backwards compatibility with V1, no longer used" }, "errorSelector": "a0b1d72d", "name": "MismatchedInputLengths", - "nameLocation": "9734:22:42", + "nameLocation": "10505:22:43", + "parameters": { + "id": 34142, + "nodeType": "ParameterList", + "parameters": [], + "src": "10527:2:43" + } + }, + { + "id": 34146, + "nodeType": "ErrorDefinition", + "src": "10613:24:43", + "nodes": [], + "documentation": { + "id": 34144, + "nodeType": "StructuredDocumentation", + "src": "10536:72:43", + "text": "@notice Thrown when a verifier is initialized to be the zero address" + }, + "errorSelector": "baa3de5f", + "name": "InvalidVerifier", + "nameLocation": "10619:15:43", + "parameters": { + "id": 34145, + "nodeType": "ParameterList", + "parameters": [], + "src": "10634:2:43" + } + }, + { + "id": 34149, + "nodeType": "ErrorDefinition", + "src": "10733:27:43", + "nodes": [], + "documentation": { + "id": 34147, + "nodeType": "StructuredDocumentation", + "src": "10643:85:43", + "text": "@notice Thrown when a verifier lookup table is initialized to be the zero address" + }, + "errorSelector": "4fdab253", + "name": "InvalidVerifierLUT", + "nameLocation": "10739:18:43", "parameters": { - "id": 32885, + "id": 34148, "nodeType": "ParameterList", "parameters": [], - "src": "9756:2:42" + "src": "10757:2:43" } }, { - "id": 32896, + "id": 34159, "nodeType": "EventDefinition", - "src": "10355:94:42", + "src": "11356:94:43", "nodes": [], "anonymous": false, "documentation": { - "id": 32887, + "id": 34150, "nodeType": "StructuredDocumentation", - "src": "10018:332:42", + "src": "11019:332:43", "text": "@notice Emitted when the current root of the tree is updated.\n @param preRoot The value of the tree's root before the update.\n @param kind Either \"insertion\" or \"update\", the kind of alteration that was made to the\n tree.\n @param postRoot The value of the tree's root after the update." }, "eventSelector": "25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf04", "name": "TreeChanged", - "nameLocation": "10361:11:42", + "nameLocation": "11362:11:43", "parameters": { - "id": 32895, + "id": 34158, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32889, + "id": 34152, "indexed": true, "mutability": "mutable", "name": "preRoot", - "nameLocation": "10389:7:42", + "nameLocation": "11390:7:43", "nodeType": "VariableDeclaration", - "scope": 32896, - "src": "10373:23:42", + "scope": 34159, + "src": "11374:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4300,10 +3795,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32888, + "id": 34151, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10373:7:42", + "src": "11374:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4313,37 +3808,37 @@ }, { "constant": false, - "id": 32892, + "id": 34155, "indexed": true, "mutability": "mutable", "name": "kind", - "nameLocation": "10417:4:42", + "nameLocation": "11418:4:43", "nodeType": "VariableDeclaration", - "scope": 32896, - "src": "10398:23:42", + "scope": 34159, + "src": "11399:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TreeChange_$32822", + "typeIdentifier": "t_enum$_TreeChange_$34078", "typeString": "enum WorldIDIdentityManagerImplV1.TreeChange" }, "typeName": { - "id": 32891, + "id": 34154, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32890, + "id": 34153, "name": "TreeChange", "nameLocations": [ - "10398:10:42" + "11399:10:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 32822, - "src": "10398:10:42" + "referencedDeclaration": 34078, + "src": "11399:10:43" }, - "referencedDeclaration": 32822, - "src": "10398:10:42", + "referencedDeclaration": 34078, + "src": "11399:10:43", "typeDescriptions": { - "typeIdentifier": "t_enum$_TreeChange_$32822", + "typeIdentifier": "t_enum$_TreeChange_$34078", "typeString": "enum WorldIDIdentityManagerImplV1.TreeChange" } }, @@ -4351,14 +3846,14 @@ }, { "constant": false, - "id": 32894, + "id": 34157, "indexed": true, "mutability": "mutable", "name": "postRoot", - "nameLocation": "10439:8:42", + "nameLocation": "11440:8:43", "nodeType": "VariableDeclaration", - "scope": 32896, - "src": "10423:24:42", + "scope": 34159, + "src": "11424:24:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4366,10 +3861,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32893, + "id": 34156, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10423:7:42", + "src": "11424:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4378,61 +3873,61 @@ "visibility": "internal" } ], - "src": "10372:76:42" + "src": "11373:76:43" } }, { - "id": 32906, + "id": 34169, "nodeType": "EventDefinition", - "src": "10732:119:42", + "src": "11733:119:43", "nodes": [], "anonymous": false, "documentation": { - "id": 32897, + "id": 34160, "nodeType": "StructuredDocumentation", - "src": "10455:272:42", + "src": "11456:272:43", "text": "@notice Emitted when a dependency's address is updated via an admin action.\n @param kind The kind of dependency that was updated.\n @param oldAddress The old address of that dependency.\n @param newAddress The new address of that dependency." }, "eventSelector": "d194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b1", "name": "DependencyUpdated", - "nameLocation": "10738:17:42", + "nameLocation": "11739:17:43", "parameters": { - "id": 32905, + "id": 34168, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32900, + "id": 34163, "indexed": true, "mutability": "mutable", "name": "kind", - "nameLocation": "10784:4:42", + "nameLocation": "11785:4:43", "nodeType": "VariableDeclaration", - "scope": 32906, - "src": "10765:23:42", + "scope": 34169, + "src": "11766:23:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Dependency_$32827", + "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" }, "typeName": { - "id": 32899, + "id": 34162, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32898, + "id": 34161, "name": "Dependency", "nameLocations": [ - "10765:10:42" + "11766:10:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 32827, - "src": "10765:10:42" + "referencedDeclaration": 34084, + "src": "11766:10:43" }, - "referencedDeclaration": 32827, - "src": "10765:10:42", + "referencedDeclaration": 34084, + "src": "11766:10:43", "typeDescriptions": { - "typeIdentifier": "t_enum$_Dependency_$32827", + "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" } }, @@ -4440,14 +3935,14 @@ }, { "constant": false, - "id": 32902, + "id": 34165, "indexed": true, "mutability": "mutable", "name": "oldAddress", - "nameLocation": "10806:10:42", + "nameLocation": "11807:10:43", "nodeType": "VariableDeclaration", - "scope": 32906, - "src": "10790:26:42", + "scope": 34169, + "src": "11791:26:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4455,10 +3950,10 @@ "typeString": "address" }, "typeName": { - "id": 32901, + "id": 34164, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10790:7:42", + "src": "11791:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4469,14 +3964,14 @@ }, { "constant": false, - "id": 32904, + "id": 34167, "indexed": true, "mutability": "mutable", "name": "newAddress", - "nameLocation": "10834:10:42", + "nameLocation": "11835:10:43", "nodeType": "VariableDeclaration", - "scope": 32906, - "src": "10818:26:42", + "scope": 34169, + "src": "11819:26:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4484,10 +3979,10 @@ "typeString": "address" }, "typeName": { - "id": 32903, + "id": 34166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10818:7:42", + "src": "11819:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4497,38 +3992,38 @@ "visibility": "internal" } ], - "src": "10755:95:42" + "src": "11756:95:43" } }, { - "id": 32911, + "id": 34174, "nodeType": "EventDefinition", - "src": "11064:53:42", + "src": "12144:53:43", "nodes": [], "anonymous": false, "documentation": { - "id": 32907, + "id": 34170, "nodeType": "StructuredDocumentation", - "src": "10857:202:42", - "text": "@notice Emitted when the state bridge is enabled or disabled.\n @param isEnabled Set to `true` if the event comes from the state bridge being enabled,\n `false` otherwise." + "src": "11858:281:43", + "text": "@notice Emitted when the state bridge is enabled or disabled.\n @param isEnabled Set to `true` if the event comes from the state bridge being enabled,\n `false` otherwise.\n @dev preserved for ABI backwards compatibility with V1, no longer used" }, "eventSelector": "c2481c150ab648d8248c5a0b452a12da07a6a26d8e11b0ed6cee10375e14d5e4", "name": "StateBridgeStateChange", - "nameLocation": "11070:22:42", + "nameLocation": "12150:22:43", "parameters": { - "id": 32910, + "id": 34173, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32909, + "id": 34172, "indexed": true, "mutability": "mutable", "name": "isEnabled", - "nameLocation": "11106:9:42", + "nameLocation": "12186:9:43", "nodeType": "VariableDeclaration", - "scope": 32911, - "src": "11093:22:42", + "scope": 34174, + "src": "12173:22:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4536,10 +4031,10 @@ "typeString": "bool" }, "typeName": { - "id": 32908, + "id": 34171, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11093:4:42", + "src": "12173:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4548,38 +4043,38 @@ "visibility": "internal" } ], - "src": "11092:24:42" + "src": "12172:24:43" } }, { - "id": 32918, + "id": 34181, "nodeType": "EventDefinition", - "src": "11330:89:42", + "src": "12410:89:43", "nodes": [], "anonymous": false, "documentation": { - "id": 32912, + "id": 34175, "nodeType": "StructuredDocumentation", - "src": "11123:202:42", + "src": "12203:202:43", "text": "@notice Emitted when the root history expiry time is changed.\n @param oldExpiryTime The expiry time prior to the change.\n @param newExpiryTime The expiry time after the change." }, "eventSelector": "f62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e70", "name": "RootHistoryExpirySet", - "nameLocation": "11336:20:42", + "nameLocation": "12416:20:43", "parameters": { - "id": 32917, + "id": 34180, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32914, + "id": 34177, "indexed": true, "mutability": "mutable", "name": "oldExpiryTime", - "nameLocation": "11373:13:42", + "nameLocation": "12453:13:43", "nodeType": "VariableDeclaration", - "scope": 32918, - "src": "11357:29:42", + "scope": 34181, + "src": "12437:29:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4587,10 +4082,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32913, + "id": 34176, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11357:7:42", + "src": "12437:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4600,14 +4095,14 @@ }, { "constant": false, - "id": 32916, + "id": 34179, "indexed": true, "mutability": "mutable", "name": "newExpiryTime", - "nameLocation": "11404:13:42", + "nameLocation": "12484:13:43", "nodeType": "VariableDeclaration", - "scope": 32918, - "src": "11388:29:42", + "scope": 34181, + "src": "12468:29:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4615,10 +4110,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32915, + "id": 34178, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11388:7:42", + "src": "12468:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4627,38 +4122,38 @@ "visibility": "internal" } ], - "src": "11356:62:42" + "src": "12436:62:43" } }, { - "id": 32925, + "id": 34188, "nodeType": "EventDefinition", - "src": "11634:88:42", + "src": "12714:88:43", "nodes": [], "anonymous": false, "documentation": { - "id": 32919, + "id": 34182, "nodeType": "StructuredDocumentation", - "src": "11425:204:42", + "src": "12505:204:43", "text": "@notice Emitted when the identity operator is changed.\n @param oldOperator The address of the old identity operator.\n @param newOperator The address of the new identity operator." }, "eventSelector": "5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e6", "name": "IdentityOperatorChanged", - "nameLocation": "11640:23:42", + "nameLocation": "12720:23:43", "parameters": { - "id": 32924, + "id": 34187, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32921, + "id": 34184, "indexed": true, "mutability": "mutable", "name": "oldOperator", - "nameLocation": "11680:11:42", + "nameLocation": "12760:11:43", "nodeType": "VariableDeclaration", - "scope": 32925, - "src": "11664:27:42", + "scope": 34188, + "src": "12744:27:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4666,10 +4161,10 @@ "typeString": "address" }, "typeName": { - "id": 32920, + "id": 34183, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11664:7:42", + "src": "12744:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4680,14 +4175,14 @@ }, { "constant": false, - "id": 32923, + "id": 34186, "indexed": true, "mutability": "mutable", "name": "newOperator", - "nameLocation": "11709:11:42", + "nameLocation": "12789:11:43", "nodeType": "VariableDeclaration", - "scope": 32925, - "src": "11693:27:42", + "scope": 34188, + "src": "12773:27:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4695,10 +4190,10 @@ "typeString": "address" }, "typeName": { - "id": 32922, + "id": 34185, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11693:7:42", + "src": "12773:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4708,38 +4203,38 @@ "visibility": "internal" } ], - "src": "11663:58:42" + "src": "12743:58:43" } }, { - "id": 32937, + "id": 34195, "nodeType": "EventDefinition", - "src": "12231:145:42", + "src": "13101:83:43", "nodes": [], "anonymous": false, "documentation": { - "id": 32926, + "id": 34189, "nodeType": "StructuredDocumentation", - "src": "11805:421:42", - "text": "@param _treeDepth The depth of the MerkeTree\n @param initialRoot The initial value for the `latestRoot` in the contract. When deploying\n this should be set to the root of the empty tree.\n @param _enableStateBridge Whether or not the state bridge should be enabled when\n initialising the identity manager.\n @param __stateBridge The initial state bridge contract to use." + "src": "12885:211:43", + "text": "@param _treeDepth The depth of the MerkeTree\n @param initialRoot The initial value for the `latestRoot` in the contract. When deploying\n this should be set to the root of the empty tree." }, - "eventSelector": "d93f9e4e87e2eb65cf1cc7027724822fb326319f779480e9e74e58dc0993d260", + "eventSelector": "d1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8", "name": "WorldIDIdentityManagerImplInitialized", - "nameLocation": "12237:37:42", + "nameLocation": "13107:37:43", "parameters": { - "id": 32936, + "id": 34194, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32928, + "id": 34191, "indexed": false, "mutability": "mutable", "name": "_treeDepth", - "nameLocation": "12290:10:42", + "nameLocation": "13151:10:43", "nodeType": "VariableDeclaration", - "scope": 32937, - "src": "12284:16:42", + "scope": 34195, + "src": "13145:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4747,10 +4242,10 @@ "typeString": "uint8" }, "typeName": { - "id": 32927, + "id": 34190, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "12284:5:42", + "src": "13145:5:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4760,14 +4255,14 @@ }, { "constant": false, - "id": 32930, + "id": 34193, "indexed": false, "mutability": "mutable", "name": "initialRoot", - "nameLocation": "12310:11:42", + "nameLocation": "13171:11:43", "nodeType": "VariableDeclaration", - "scope": 32937, - "src": "12302:19:42", + "scope": 34195, + "src": "13163:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4775,96 +4270,30 @@ "typeString": "uint256" }, "typeName": { - "id": 32929, + "id": 34192, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12302:7:42", + "src": "13163:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" - }, - { - "constant": false, - "id": 32932, - "indexed": false, - "mutability": "mutable", - "name": "_enableStateBridge", - "nameLocation": "12328:18:42", - "nodeType": "VariableDeclaration", - "scope": 32937, - "src": "12323:23:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 32931, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12323:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32935, - "indexed": false, - "mutability": "mutable", - "name": "__stateBridge", - "nameLocation": "12356:13:42", - "nodeType": "VariableDeclaration", - "scope": 32937, - "src": "12348:21:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - }, - "typeName": { - "id": 32934, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32933, - "name": "IBridge", - "nameLocations": [ - "12348:7:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34981, - "src": "12348:7:42" - }, - "referencedDeclaration": 34981, - "src": "12348:7:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "visibility": "internal" } ], - "src": "12274:101:42" + "src": "13144:39:43" } }, { - "id": 32945, + "id": 34203, "nodeType": "FunctionDefinition", - "src": "12676:281:42", + "src": "13484:281:43", "nodes": [], "body": { - "id": 32944, + "id": 34202, "nodeType": "Block", - "src": "12690:267:42", + "src": "13498:267:43", "nodes": [], "statements": [ { @@ -4872,18 +4301,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 32941, + "id": 34199, "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29782, - "src": "12928:20:42", + "src": "13736:20:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 32942, + "id": 34200, "isConstant": false, "isLValue": false, "isPure": false, @@ -4892,23 +4321,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12928:22:42", + "src": "13736:22:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 32943, + "id": 34201, "nodeType": "ExpressionStatement", - "src": "12928:22:42" + "src": "13736:22:43" } ] }, "documentation": { - "id": 32938, + "id": 34196, "nodeType": "StructuredDocumentation", - "src": "12635:36:42", + "src": "13443:36:43", "text": "@notice Constructs the contract." }, "implemented": true, @@ -4917,193 +4346,195 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 32939, + "id": 34197, "nodeType": "ParameterList", "parameters": [], - "src": "12687:2:42" + "src": "13495:2:43" }, "returnParameters": { - "id": 32940, + "id": 34198, "nodeType": "ParameterList", "parameters": [], - "src": "12690:0:42" + "src": "13498:0:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 33032, + "id": 34317, "nodeType": "FunctionDefinition", - "src": "14447:1225:42", + "src": "15045:1346:43", "nodes": [], "body": { - "id": 33031, + "id": 34316, "nodeType": "Block", - "src": "14768:904:42", + "src": "15302:1089:43", "nodes": [], "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 32970, - "name": "__delegateInit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33042, - "src": "14853:14:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 32971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14853:16:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 32972, - "nodeType": "ExpressionStatement", - "src": "14853:16:42" - }, { "condition": { - "id": 32977, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 34231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14884:49:42", - "subExpression": { + "leftExpression": { "arguments": [ { - "id": 32975, - "name": "_treeDepth", + "id": 34225, + "name": "_batchInsertionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32948, - "src": "14922:10:42", + "referencedDeclaration": 34211, + "src": "15324:24:43", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" } ], - "expression": { - "id": 32973, - "name": "SemaphoreTreeDepthValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49426, - "src": "14885:27:42", + "id": 34224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15316:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15316:7:43", + "typeDescriptions": {} + } + }, + "id": 34226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15316:33:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 34229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15361:1:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SemaphoreTreeDepthValidator_$49426_$", - "typeString": "type(library SemaphoreTreeDepthValidator)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } - }, - "id": 32974, + ], + "id": 34228, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberLocation": "14913:8:42", - "memberName": "validate", - "nodeType": "MemberAccess", - "referencedDeclaration": 49425, - "src": "14885:36:42", + "nodeType": "ElementaryTypeNameExpression", + "src": "15353:7:43", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", - "typeString": "function (uint8) pure returns (bool)" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15353:7:43", + "typeDescriptions": {} } }, - "id": 32976, + "id": 34230, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14885:48:42", + "src": "15353:10:43", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, + "src": "15316:47:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 32983, + "id": 34236, "nodeType": "IfStatement", - "src": "14880:119:42", + "src": "15312:105:43", "trueBody": { - "id": 32982, + "id": 34235, "nodeType": "Block", - "src": "14935:64:42", + "src": "15365:52:43", "statements": [ { "errorCall": { - "arguments": [ - { - "id": 32979, - "name": "_treeDepth", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32948, - "src": "14977:10:42", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 32978, - "name": "UnsupportedTreeDepth", + "argumentTypes": [], + "id": 34232, + "name": "InvalidVerifierLUT", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32883, - "src": "14956:20:42", + "referencedDeclaration": 34149, + "src": "15386:18:43", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$returns$__$", - "typeString": "function (uint8) pure" + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" } }, - "id": 32980, + "id": 34233, "isConstant": false, "isLValue": false, "isPure": false, @@ -5112,407 +4543,871 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14956:32:42", + "src": "15386:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 32981, + "id": 34234, "nodeType": "RevertStatement", - "src": "14949:39:42" + "src": "15379:27:43" } ] } }, { - "expression": { - "id": 32986, + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 34245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 32984, - "name": "treeDepth", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32808, - "src": "15066:9:42", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 32985, - "name": "_treeDepth", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32948, - "src": "15078:10:42", + "leftExpression": { + "arguments": [ + { + "id": 34239, + "name": "_batchUpdateVerifiers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34214, + "src": "15439:21:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" + } + ], + "id": 34238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15431:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15431:7:43", + "typeDescriptions": {} + } + }, + "id": 34240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15431:30:43", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "15066:22:42", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 32987, - "nodeType": "ExpressionStatement", - "src": "15066:22:42" - }, - { - "expression": { - "id": 32990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32988, - "name": "rootHistoryExpiry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32772, - "src": "15098:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "31", - "id": 32989, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 34243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15473:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 34242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15465:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15465:7:43", + "typeDescriptions": {} + } + }, + "id": 34244, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "15118:7:42", - "subdenomination": "hours", - "typeDescriptions": { - "typeIdentifier": "t_rational_3600_by_1", - "typeString": "int_const 3600" - }, - "value": "1" - }, - "src": "15098:27:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 32991, - "nodeType": "ExpressionStatement", - "src": "15098:27:42" - }, - { - "expression": { - "id": 32994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 32992, - "name": "_latestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "15135:11:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 32993, - "name": "initialRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32950, - "src": "15149:11:42", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15465:10:43", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "15135:25:42", + "src": "15431:44:43", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 32995, - "nodeType": "ExpressionStatement", - "src": "15135:25:42" + "id": 34250, + "nodeType": "IfStatement", + "src": "15427:102:43", + "trueBody": { + "id": 34249, + "nodeType": "Block", + "src": "15477:52:43", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34246, + "name": "InvalidVerifierLUT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34149, + "src": "15498:18:43", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 34247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15498:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34248, + "nodeType": "RevertStatement", + "src": "15491:27:43" + } + ] + } }, { - "expression": { - "id": 32998, + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 34259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 32996, - "name": "batchInsertionVerifiers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32790, - "src": "15170:23:42", + "leftExpression": { + "arguments": [ + { + "id": 34253, + "name": "_semaphoreVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34217, + "src": "15551:18:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeString": "contract ISemaphoreVerifier" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeString": "contract ISemaphoreVerifier" + } + ], + "id": 34252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15543:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34251, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15543:7:43", + "typeDescriptions": {} + } + }, + "id": 34254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15543:27:43", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 32997, - "name": "_batchInsertionVerifiers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32953, - "src": "15196:24:42", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 34257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 34256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15574:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34255, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15574:7:43", + "typeDescriptions": {} + } + }, + "id": 34258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15574:10:43", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "15170:50:42", + "src": "15543:41:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 32999, + "id": 34264, + "nodeType": "IfStatement", + "src": "15539:96:43", + "trueBody": { + "id": 34263, + "nodeType": "Block", + "src": "15586:49:43", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34260, + "name": "InvalidVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34146, + "src": "15607:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 34261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15607:17:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34262, + "nodeType": "RevertStatement", + "src": "15600:24:43" + } + ] + } + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34265, + "name": "__delegateInit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34327, + "src": "15719:14:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 34266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15719:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34267, "nodeType": "ExpressionStatement", - "src": "15170:50:42" + "src": "15719:16:43" + }, + { + "condition": { + "id": 34272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15750:49:43", + "subExpression": { + "arguments": [ + { + "id": 34270, + "name": "_treeDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34206, + "src": "15788:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "id": 34268, + "name": "SemaphoreTreeDepthValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48479, + "src": "15751:27:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SemaphoreTreeDepthValidator_$48479_$", + "typeString": "type(library SemaphoreTreeDepthValidator)" + } + }, + "id": 34269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15779:8:43", + "memberName": "validate", + "nodeType": "MemberAccess", + "referencedDeclaration": 48478, + "src": "15751:36:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", + "typeString": "function (uint8) pure returns (bool)" + } + }, + "id": 34271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15751:48:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34278, + "nodeType": "IfStatement", + "src": "15746:119:43", + "trueBody": { + "id": 34277, + "nodeType": "Block", + "src": "15801:64:43", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 34274, + "name": "_treeDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34206, + "src": "15843:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 34273, + "name": "UnsupportedTreeDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34140, + "src": "15822:20:43", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$returns$__$", + "typeString": "function (uint8) pure" + } + }, + "id": 34275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15822:32:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34276, + "nodeType": "RevertStatement", + "src": "15815:39:43" + } + ] + } }, { "expression": { - "id": 33002, + "id": 34281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 33000, - "name": "identityUpdateVerifiers", + "id": 34279, + "name": "treeDepth", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32794, - "src": "15230:23:42", + "referencedDeclaration": 34061, + "src": "15932:9:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 33001, - "name": "_batchUpdateVerifiers", + "id": 34280, + "name": "_treeDepth", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32956, - "src": "15256:21:42", + "referencedDeclaration": 34206, + "src": "15944:10:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "src": "15230:47:42", + "src": "15932:22:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "id": 33003, + "id": 34282, "nodeType": "ExpressionStatement", - "src": "15230:47:42" + "src": "15932:22:43" }, { "expression": { - "id": 33006, + "id": 34285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 33004, - "name": "semaphoreVerifier", + "id": 34283, + "name": "rootHistoryExpiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32798, - "src": "15287:17:42", + "referencedDeclaration": 34032, + "src": "15964:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", - "typeString": "contract ISemaphoreVerifier" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 33005, - "name": "_semaphoreVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32959, - "src": "15307:18:42", + "hexValue": "31", + "id": 34284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15984:7:43", + "subdenomination": "hours", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", - "typeString": "contract ISemaphoreVerifier" - } + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "1" }, - "src": "15287:38:42", + "src": "15964:27:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", - "typeString": "contract ISemaphoreVerifier" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 33007, + "id": 34286, "nodeType": "ExpressionStatement", - "src": "15287:38:42" + "src": "15964:27:43" }, { "expression": { - "id": 33010, + "id": 34289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 33008, - "name": "_stateBridge", + "id": 34287, + "name": "_latestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32802, - "src": "15335:12:42", + "referencedDeclaration": 34024, + "src": "16001:11:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 33009, - "name": "__stateBridge", + "id": 34288, + "name": "initialRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32964, - "src": "15350:13:42", + "referencedDeclaration": 34208, + "src": "16015:11:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "15335:28:42", + "src": "16001:25:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 33011, + "id": 34290, "nodeType": "ExpressionStatement", - "src": "15335:28:42" + "src": "16001:25:43" }, { "expression": { - "id": 33014, + "id": 34293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 33012, - "name": "_isStateBridgeEnabled", + "id": 34291, + "name": "batchInsertionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32805, - "src": "15373:21:42", + "referencedDeclaration": 34043, + "src": "16036:23:43", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 33013, - "name": "_enableStateBridge", + "id": 34292, + "name": "_batchInsertionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32961, - "src": "15397:18:42", + "referencedDeclaration": 34211, + "src": "16062:24:43", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" } }, - "src": "15373:42:42", + "src": "16036:50:43", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" } }, - "id": 33015, + "id": 34294, "nodeType": "ExpressionStatement", - "src": "15373:42:42" + "src": "16036:50:43" }, { "expression": { - "id": 33019, + "id": 34297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 33016, - "name": "_identityOperator", + "id": 34295, + "name": "identityUpdateVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32761, - "src": "15425:17:42", + "referencedDeclaration": 34047, + "src": "16096:23:43", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33017, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29166, - "src": "15445:5:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 33018, - "isConstant": false, + "id": 34296, + "name": "_batchUpdateVerifiers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34214, + "src": "16122:21:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" + } + }, + "src": "16096:47:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" + } + }, + "id": 34298, + "nodeType": "ExpressionStatement", + "src": "16096:47:43" + }, + { + "expression": { + "id": 34301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 34299, + "name": "semaphoreVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34051, + "src": "16153:17:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeString": "contract ISemaphoreVerifier" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 34300, + "name": "_semaphoreVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34217, + "src": "16173:18:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeString": "contract ISemaphoreVerifier" + } + }, + "src": "16153:38:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeString": "contract ISemaphoreVerifier" + } + }, + "id": 34302, + "nodeType": "ExpressionStatement", + "src": "16153:38:43" + }, + { + "expression": { + "id": 34306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 34303, + "name": "_identityOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34021, + "src": "16201:17:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34304, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29166, + "src": "16221:5:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 34305, + "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", @@ -5520,40 +5415,40 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15445:7:42", + "src": "16221:7:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "15425:27:42", + "src": "16201:27:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 33020, + "id": 34307, "nodeType": "ExpressionStatement", - "src": "15425:27:42" + "src": "16201:27:43" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 33021, + "id": 34308, "name": "__setInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 49379, - "src": "15512:16:42", + "referencedDeclaration": 48432, + "src": "16288:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 33022, + "id": 34309, "isConstant": false, "isLValue": false, "isPure": false, @@ -5562,67 +5457,43 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15512:18:42", + "src": "16288:18:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 33023, + "id": 34310, "nodeType": "ExpressionStatement", - "src": "15512:18:42" + "src": "16288:18:43" }, { "eventCall": { "arguments": [ { - "id": 33025, + "id": 34312, "name": "_treeDepth", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32948, - "src": "15597:10:42", + "referencedDeclaration": 34206, + "src": "16360:10:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { - "id": 33026, + "id": 34313, "name": "initialRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32950, - "src": "15609:11:42", + "referencedDeclaration": 34208, + "src": "16372:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - { - "id": 33027, - "name": "_enableStateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32961, - "src": "15622:18:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 33028, - "name": "__stateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32964, - "src": "15642:13:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } } ], "expression": { @@ -5634,28 +5505,20 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" } ], - "id": 33024, + "id": 34311, "name": "WorldIDIdentityManagerImplInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32937, - "src": "15546:37:42", + "referencedDeclaration": 34195, + "src": "16322:37:43", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint256_$_t_bool_$_t_contract$_IBridge_$34981_$returns$__$", - "typeString": "function (uint8,uint256,bool,contract IBridge)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256)" } }, - "id": 33029, + "id": 34314, "isConstant": false, "isLValue": false, "isPure": false, @@ -5664,26 +5527,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15546:119:42", + "src": "16322:62:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 33030, + "id": 34315, "nodeType": "EmitStatement", - "src": "15541:124:42" + "src": "16317:67:43" } ] }, "documentation": { - "id": 32946, + "id": 34204, "nodeType": "StructuredDocumentation", - "src": "12963:1479:42", - "text": "@notice Initializes the contract.\n @dev Must be called exactly once.\n @dev This is marked `reinitializer()` to allow for updated initialisation steps when working\n with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed)\n initialisations allowed, so decide carefully when to use them. Many cases can safely be\n replaced by use of setters.\n @dev This function is explicitly not virtual as it does not make sense to override even when\n upgrading. Create a separate initializer function instead.\n @param _treeDepth The depth of the MerkeTree\n @param initialRoot The initial value for the `latestRoot` in the contract. When deploying\n this should be set to the root of the empty tree.\n @param _batchInsertionVerifiers The verifier lookup table for batch insertions.\n @param _batchUpdateVerifiers The verifier lookup table for batch updates.\n @param _semaphoreVerifier The verifier to use for semaphore protocol proofs.\n @param _enableStateBridge Whether or not the state bridge should be enabled when\n initialising the identity manager.\n @param __stateBridge The initial state bridge contract to use.\n @custom:reverts string If called more than once at the same initialisation number.\n @custom:reverts UnsupportedTreeDepth If passed tree depth is not among defined values." + "src": "13771:1269:43", + "text": "@notice Initializes the contract.\n @dev Must be called exactly once.\n @dev This is marked `reinitializer()` to allow for updated initialisation steps when working\n with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed)\n initialisations allowed, so decide carefully when to use them. Many cases can safely be\n replaced by use of setters.\n @dev This function is explicitly not virtual as it does not make sense to override even when\n upgrading. Create a separate initializer function instead.\n @param _treeDepth The depth of the MerkeTree\n @param initialRoot The initial value for the `latestRoot` in the contract. When deploying\n this should be set to the root of the empty tree.\n @param _batchInsertionVerifiers The verifier lookup table for batch insertions.\n @param _batchUpdateVerifiers The verifier lookup table for batch updates.\n @param _semaphoreVerifier The verifier to use for semaphore protocol proofs.\n @custom:reverts string If called more than once at the same initialisation number.\n @custom:reverts UnsupportedTreeDepth If passed tree depth is not among defined values." }, - "functionSelector": "f2ebe631", + "functionSelector": "38c87065", "implemented": true, "kind": "function", "modifiers": [ @@ -5691,14 +5554,14 @@ "arguments": [ { "hexValue": "31", - "id": 32967, + "id": 34220, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14765:1:42", + "src": "15299:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -5706,37 +5569,37 @@ "value": "1" } ], - "id": 32968, + "id": 34221, "kind": "modifierInvocation", "modifierName": { - "id": 32966, + "id": 34219, "name": "reinitializer", "nameLocations": [ - "14751:13:42" + "15285:13:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29736, - "src": "14751:13:42" + "src": "15285:13:43" }, "nodeType": "ModifierInvocation", - "src": "14751:16:42" + "src": "15285:16:43" } ], "name": "initialize", - "nameLocation": "14456:10:42", + "nameLocation": "15054:10:43", "parameters": { - "id": 32965, + "id": 34218, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32948, + "id": 34206, "mutability": "mutable", "name": "_treeDepth", - "nameLocation": "14482:10:42", + "nameLocation": "15080:10:43", "nodeType": "VariableDeclaration", - "scope": 33032, - "src": "14476:16:42", + "scope": 34317, + "src": "15074:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5744,10 +5607,10 @@ "typeString": "uint8" }, "typeName": { - "id": 32947, + "id": 34205, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "14476:5:42", + "src": "15074:5:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5757,13 +5620,13 @@ }, { "constant": false, - "id": 32950, + "id": 34208, "mutability": "mutable", "name": "initialRoot", - "nameLocation": "14510:11:42", + "nameLocation": "15108:11:43", "nodeType": "VariableDeclaration", - "scope": 33032, - "src": "14502:19:42", + "scope": 34317, + "src": "15100:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5771,10 +5634,10 @@ "typeString": "uint256" }, "typeName": { - "id": 32949, + "id": 34207, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14502:7:42", + "src": "15100:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5784,36 +5647,36 @@ }, { "constant": false, - "id": 32953, + "id": 34211, "mutability": "mutable", "name": "_batchInsertionVerifiers", - "nameLocation": "14551:24:42", + "nameLocation": "15149:24:43", "nodeType": "VariableDeclaration", - "scope": 33032, - "src": "14531:44:42", + "scope": 34317, + "src": "15129:44:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 32952, + "id": 34210, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32951, + "id": 34209, "name": "VerifierLookupTable", "nameLocations": [ - "14531:19:42" + "15129:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34956, - "src": "14531:19:42" + "referencedDeclaration": 35388, + "src": "15129:19:43" }, - "referencedDeclaration": 34956, - "src": "14531:19:42", + "referencedDeclaration": 35388, + "src": "15129:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, @@ -5821,36 +5684,36 @@ }, { "constant": false, - "id": 32956, + "id": 34214, "mutability": "mutable", "name": "_batchUpdateVerifiers", - "nameLocation": "14605:21:42", + "nameLocation": "15203:21:43", "nodeType": "VariableDeclaration", - "scope": 33032, - "src": "14585:41:42", + "scope": 34317, + "src": "15183:41:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 32955, + "id": 34213, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32954, + "id": 34212, "name": "VerifierLookupTable", "nameLocations": [ - "14585:19:42" + "15183:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34956, - "src": "14585:19:42" + "referencedDeclaration": 35388, + "src": "15183:19:43" }, - "referencedDeclaration": 34956, - "src": "14585:19:42", + "referencedDeclaration": 35388, + "src": "15183:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, @@ -5858,128 +5721,64 @@ }, { "constant": false, - "id": 32959, + "id": 34217, "mutability": "mutable", "name": "_semaphoreVerifier", - "nameLocation": "14655:18:42", + "nameLocation": "15253:18:43", "nodeType": "VariableDeclaration", - "scope": 33032, - "src": "14636:37:42", + "scope": 34317, + "src": "15234:37:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" }, "typeName": { - "id": 32958, + "id": 34216, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 32957, + "id": 34215, "name": "ISemaphoreVerifier", "nameLocations": [ - "14636:18:42" + "15234:18:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 32716, - "src": "14636:18:42" + "referencedDeclaration": 35429, + "src": "15234:18:43" }, - "referencedDeclaration": 32716, - "src": "14636:18:42", + "referencedDeclaration": 35429, + "src": "15234:18:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } }, "visibility": "internal" - }, - { - "constant": false, - "id": 32961, - "mutability": "mutable", - "name": "_enableStateBridge", - "nameLocation": "14688:18:42", - "nodeType": "VariableDeclaration", - "scope": 33032, - "src": "14683:23:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 32960, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14683:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32964, - "mutability": "mutable", - "name": "__stateBridge", - "nameLocation": "14724:13:42", - "nodeType": "VariableDeclaration", - "scope": 33032, - "src": "14716:21:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - }, - "typeName": { - "id": 32963, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32962, - "name": "IBridge", - "nameLocations": [ - "14716:7:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34981, - "src": "14716:7:42" - }, - "referencedDeclaration": 34981, - "src": "14716:7:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "visibility": "internal" } ], - "src": "14466:277:42" + "src": "15064:213:43" }, "returnParameters": { - "id": 32969, + "id": 34222, "nodeType": "ParameterList", "parameters": [], - "src": "14768:0:42" + "src": "15302:0:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 33042, + "id": 34327, "nodeType": "FunctionDefinition", - "src": "16006:97:42", + "src": "16725:97:43", "nodes": [], "body": { - "id": 33041, + "id": 34326, "nodeType": "Block", - "src": "16066:37:42", + "src": "16785:37:43", "nodes": [], "statements": [ { @@ -5987,18 +5786,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 33038, + "id": 34323, "name": "__WorldIDImpl_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34694, - "src": "16076:18:42", + "referencedDeclaration": 35126, + "src": "16795:18:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 33039, + "id": 34324, "isConstant": false, "isLValue": false, "isPure": false, @@ -6007,73 +5806,73 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16076:20:42", + "src": "16795:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 33040, + "id": 34325, "nodeType": "ExpressionStatement", - "src": "16076:20:42" + "src": "16795:20:43" } ] }, "documentation": { - "id": 33033, + "id": 34318, "nodeType": "StructuredDocumentation", - "src": "15678:323:42", + "src": "16397:323:43", "text": "@notice Responsible for initialising all of the supertypes of this contract.\n @dev Must be called exactly once.\n @dev When adding new superclasses, ensure that any initialization that they need to perform\n is accounted for here.\n @custom:reverts string If called more than once." }, "implemented": true, "kind": "function", "modifiers": [ { - "id": 33036, + "id": 34321, "kind": "modifierInvocation", "modifierName": { - "id": 33035, + "id": 34320, "name": "onlyInitializing", "nameLocations": [ - "16049:16:42" + "16768:16:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29746, - "src": "16049:16:42" + "src": "16768:16:43" }, "nodeType": "ModifierInvocation", - "src": "16049:16:42" + "src": "16768:16:43" } ], "name": "__delegateInit", - "nameLocation": "16015:14:42", + "nameLocation": "16734:14:43", "parameters": { - "id": 33034, + "id": 34319, "nodeType": "ParameterList", "parameters": [], - "src": "16029:2:42" + "src": "16748:2:43" }, "returnParameters": { - "id": 33037, + "id": 34322, "nodeType": "ParameterList", "parameters": [], - "src": "16066:0:42" + "src": "16785:0:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { - "id": 33214, + "id": 34432, "nodeType": "FunctionDefinition", - "src": "18712:3449:42", + "src": "19019:2122:43", "nodes": [], "body": { - "id": 33213, + "id": 34431, "nodeType": "Block", - "src": "18978:3183:42", + "src": "19285:1856:43", "nodes": [], "statements": [ { @@ -6082,158 +5881,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 33067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33065, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33049, - "src": "19059:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 33066, - "name": "SNARK_SCALAR_FIELD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32783, - "src": "19070:18:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19059:29:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33075, - "nodeType": "IfStatement", - "src": "19055:122:42", - "trueBody": { - "id": 33074, - "nodeType": "Block", - "src": "19090:87:42", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 33069, - "name": "UnreducedElementType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32819, - "src": "19128:20:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_UnreducedElementType_$32819_$", - "typeString": "type(enum WorldIDIdentityManagerImplV1.UnreducedElementType)" - } - }, - "id": 33070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "19149:7:42", - "memberName": "PreRoot", - "nodeType": "MemberAccess", - "referencedDeclaration": 32816, - "src": "19128:28:42", - "typeDescriptions": { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - } - }, - { - "id": 33071, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33049, - "src": "19158:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33068, - "name": "UnreducedElement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32849, - "src": "19111:16:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_enum$_UnreducedElementType_$32819_$_t_uint256_$returns$__$", - "typeString": "function (enum WorldIDIdentityManagerImplV1.UnreducedElementType,uint256) pure" - } - }, - "id": 33072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19111:55:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33073, - "nodeType": "RevertStatement", - "src": "19104:62:42" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33078, + "id": 34352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 33076, + "id": 34350, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33049, - "src": "19190:7:42", + "referencedDeclaration": 34334, + "src": "19299:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6242,53 +5901,53 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 33077, + "id": 34351, "name": "_latestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "19201:11:42", + "referencedDeclaration": 34024, + "src": "19310:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "19190:22:42", + "src": "19299:22:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 33085, + "id": 34359, "nodeType": "IfStatement", - "src": "19186:95:42", + "src": "19295:95:43", "trueBody": { - "id": 33084, + "id": 34358, "nodeType": "Block", - "src": "19214:67:42", + "src": "19323:67:43", "statements": [ { "errorCall": { "arguments": [ { - "id": 33080, + "id": 34354, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33049, - "src": "19249:7:42", + "referencedDeclaration": 34334, + "src": "19358:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 33081, + "id": 34355, "name": "_latestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "19258:11:42", + "referencedDeclaration": 34024, + "src": "19367:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6306,18 +5965,18 @@ "typeString": "uint256" } ], - "id": 33079, + "id": 34353, "name": "NotLatestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32869, - "src": "19235:13:42", + "referencedDeclaration": 34126, + "src": "19344:13:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256) pure" } }, - "id": 33082, + "id": 34356, "isConstant": false, "isLValue": false, "isPure": false, @@ -6326,239 +5985,45 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19235:35:42", + "src": "19344:35:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 33083, + "id": 34357, "nodeType": "RevertStatement", - "src": "19228:42:42" + "src": "19337:42:43" } ] } }, { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33086, - "name": "postRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33056, - "src": "19669:8:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 33087, - "name": "SNARK_SCALAR_FIELD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32783, - "src": "19681:18:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19669:30:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33096, - "nodeType": "IfStatement", - "src": "19665:125:42", - "trueBody": { - "id": 33095, - "nodeType": "Block", - "src": "19701:89:42", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 33090, - "name": "UnreducedElementType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32819, - "src": "19739:20:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_UnreducedElementType_$32819_$", - "typeString": "type(enum WorldIDIdentityManagerImplV1.UnreducedElementType)" - } - }, - "id": 33091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "19760:8:42", - "memberName": "PostRoot", - "nodeType": "MemberAccess", - "referencedDeclaration": 32818, - "src": "19739:29:42", - "typeDescriptions": { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - } - }, - { - "id": 33092, - "name": "postRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33056, - "src": "19770:8:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33089, - "name": "UnreducedElement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32849, - "src": "19722:16:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_enum$_UnreducedElementType_$32819_$_t_uint256_$returns$__$", - "typeString": "function (enum WorldIDIdentityManagerImplV1.UnreducedElementType,uint256) pure" - } - }, - "id": 33093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19722:57:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33094, - "nodeType": "RevertStatement", - "src": "19715:64:42" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 33098, - "name": "identityCommitments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33054, - "src": "19924:19:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "id": 33097, - "name": "validateIdentityCommitmentsForRegistration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33851, - "src": "19881:42:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (uint256[] calldata) view" - } - }, - "id": 33099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19881:63:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33100, - "nodeType": "ExpressionStatement", - "src": "19881:63:42" - }, - { - "assignments": [ - 33102 - ], - "declarations": [ - { - "constant": false, - "id": 33102, - "mutability": "mutable", - "name": "inputHash", - "nameLocation": "20044:9:42", - "nodeType": "VariableDeclaration", - "scope": 33213, - "src": "20036:17:42", - "stateVariable": false, - "storageLocation": "default", + "assignments": [ + 34361 + ], + "declarations": [ + { + "constant": false, + "id": 34361, + "mutability": "mutable", + "name": "inputHash", + "nameLocation": "19488:9:43", + "nodeType": "VariableDeclaration", + "scope": 34431, + "src": "19480:17:43", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { - "id": 33101, + "id": 34360, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20036:7:42", + "src": "19480:7:43", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6567,52 +6032,52 @@ "visibility": "internal" } ], - "id": 33109, + "id": 34368, "initialValue": { "arguments": [ { - "id": 33104, + "id": 34363, "name": "startIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33051, - "src": "20108:10:42", + "referencedDeclaration": 34336, + "src": "19552:10:43", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 33105, + "id": 34364, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33049, - "src": "20120:7:42", + "referencedDeclaration": 34334, + "src": "19564:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 33106, + "id": 34365, "name": "postRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33056, - "src": "20129:8:42", + "referencedDeclaration": 34341, + "src": "19573:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 33107, + "id": 34366, "name": "identityCommitments", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33054, - "src": "20139:19:42", + "referencedDeclaration": 34339, + "src": "19583:19:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -6638,18 +6103,18 @@ "typeString": "uint256[] calldata" } ], - "id": 33103, + "id": 34362, "name": "calculateIdentityRegistrationInputHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33510, - "src": "20056:38:42", + "referencedDeclaration": 34468, + "src": "19500:38:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$_t_bytes32_$", "typeString": "function (uint32,uint256,uint256,uint256[] calldata) view returns (bytes32)" } }, - "id": 33108, + "id": 34367, "isConstant": false, "isLValue": false, "isPure": false, @@ -6658,7 +6123,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20056:112:42", + "src": "19500:112:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6666,22 +6131,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "20036:132:42" + "src": "19480:132:43" }, { "assignments": [ - 33111 + 34370 ], "declarations": [ { "constant": false, - "id": 33111, + "id": 34370, "mutability": "mutable", "name": "reducedElement", - "nameLocation": "20400:14:42", + "nameLocation": "19919:14:43", "nodeType": "VariableDeclaration", - "scope": 33213, - "src": "20392:22:42", + "scope": 34431, + "src": "19911:22:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6689,10 +6154,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33110, + "id": 34369, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "20392:7:42", + "src": "19911:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6701,13 +6166,13 @@ "visibility": "internal" } ], - "id": 33118, + "id": 34377, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 33117, + "id": 34376, "isConstant": false, "isLValue": false, "isPure": false, @@ -6715,12 +6180,12 @@ "leftExpression": { "arguments": [ { - "id": 33114, + "id": 34373, "name": "inputHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33102, - "src": "20425:9:42", + "referencedDeclaration": 34361, + "src": "19944:9:43", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6734,26 +6199,26 @@ "typeString": "bytes32" } ], - "id": 33113, + "id": 34372, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20417:7:42", + "src": "19936:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 33112, + "id": 34371, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "20417:7:42", + "src": "19936:7:43", "typeDescriptions": {} } }, - "id": 33115, + "id": 34374, "isConstant": false, "isLValue": false, "isPure": false, @@ -6762,7 +6227,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20417:18:42", + "src": "19936:18:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6772,94 +6237,94 @@ "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { - "id": 33116, + "id": 34375, "name": "SNARK_SCALAR_FIELD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32783, - "src": "20438:18:42", + "referencedDeclaration": 34036, + "src": "19957:18:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "20417:39:42", + "src": "19936:39:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "20392:64:42" + "src": "19911:64:43" }, { "assignments": [ - 33121 + 34380 ], "declarations": [ { "constant": false, - "id": 33121, + "id": 34380, "mutability": "mutable", "name": "insertionVerifier", - "nameLocation": "20554:17:42", + "nameLocation": "20073:17:43", "nodeType": "VariableDeclaration", - "scope": 33213, - "src": "20540:31:42", + "scope": 34431, + "src": "20059:31:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", + "typeIdentifier": "t_contract$_ITreeVerifier_$35445", "typeString": "contract ITreeVerifier" }, "typeName": { - "id": 33120, + "id": 34379, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33119, + "id": 34378, "name": "ITreeVerifier", "nameLocations": [ - "20540:13:42" + "20059:13:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35009, - "src": "20540:13:42" + "referencedDeclaration": 35445, + "src": "20059:13:43" }, - "referencedDeclaration": 35009, - "src": "20540:13:42", + "referencedDeclaration": 35445, + "src": "20059:13:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", + "typeIdentifier": "t_contract$_ITreeVerifier_$35445", "typeString": "contract ITreeVerifier" } }, "visibility": "internal" } ], - "id": 33127, + "id": 34386, "initialValue": { "arguments": [ { "expression": { - "id": 33124, + "id": 34383, "name": "identityCommitments", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33054, - "src": "20625:19:42", + "referencedDeclaration": 34339, + "src": "20144:19:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 33125, + "id": 34384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20645:6:42", + "memberLocation": "20164:6:43", "memberName": "length", "nodeType": "MemberAccess", - "src": "20625:26:42", + "src": "20144:26:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6874,33 +6339,33 @@ } ], "expression": { - "id": 33122, + "id": 34381, "name": "batchInsertionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32790, - "src": "20586:23:42", + "referencedDeclaration": 34043, + "src": "20105:23:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, - "id": 33123, + "id": 34382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20610:14:42", + "memberLocation": "20129:14:43", "memberName": "getVerifierFor", "nodeType": "MemberAccess", - "referencedDeclaration": 34828, - "src": "20586:38:42", + "referencedDeclaration": 35260, + "src": "20105:38:43", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_ITreeVerifier_$35009_$", + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_ITreeVerifier_$35445_$", "typeString": "function (uint256) view external returns (contract ITreeVerifier)" } }, - "id": 33126, + "id": 34385, "isConstant": false, "isLValue": false, "isPure": false, @@ -6909,113 +6374,38 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20586:66:42", + "src": "20105:66:43", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", + "typeIdentifier": "t_contract$_ITreeVerifier_$35445", "typeString": "contract ITreeVerifier" } }, "nodeType": "VariableDeclarationStatement", - "src": "20540:112:42" + "src": "20059:112:43" }, { "clauses": [ { "block": { - "id": 33196, + "id": 34414, "nodeType": "Block", - "src": "21019:771:42", + "src": "20304:466:43", "statements": [ - { - "condition": { - "id": 33166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "21107:15:42", - "subExpression": { - "id": 33165, - "name": "verifierResult", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33163, - "src": "21108:14:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33171, - "nodeType": "IfStatement", - "src": "21103:85:42", - "trueBody": { - "id": 33170, - "nodeType": "Block", - "src": "21124:64:42", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33167, - "name": "ProofValidationFailure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32862, - "src": "21149:22:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21149:24:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33169, - "nodeType": "RevertStatement", - "src": "21142:31:42" - } - ] - } - }, { "expression": { - "id": 33174, + "id": 34395, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 33172, + "id": 34393, "name": "_latestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "21356:11:42", + "referencedDeclaration": 34024, + "src": "20472:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7024,55 +6414,55 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 33173, + "id": 34394, "name": "postRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33056, - "src": "21370:8:42", + "referencedDeclaration": 34341, + "src": "20486:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "21356:22:42", + "src": "20472:22:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 33175, + "id": 34396, "nodeType": "ExpressionStatement", - "src": "21356:22:42" + "src": "20472:22:43" }, { "expression": { - "id": 33184, + "id": 34405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 33176, + "id": 34397, "name": "rootHistory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32769, - "src": "21524:11:42", + "referencedDeclaration": 34029, + "src": "20640:11:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", "typeString": "mapping(uint256 => uint128)" } }, - "id": 33178, + "id": 34399, "indexExpression": { - "id": 33177, + "id": 34398, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33049, - "src": "21536:7:42", + "referencedDeclaration": 34334, + "src": "20652:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7083,7 +6473,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "21524:20:42", + "src": "20640:20:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -7095,26 +6485,26 @@ "arguments": [ { "expression": { - "id": 33181, + "id": 34402, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "21555:5:42", + "src": "20671:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 33182, + "id": 34403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "21561:9:42", + "memberLocation": "20677:9:43", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "21555:15:42", + "src": "20671:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7128,26 +6518,26 @@ "typeString": "uint256" } ], - "id": 33180, + "id": 34401, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "21547:7:42", + "src": "20663:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }, "typeName": { - "id": 33179, + "id": 34400, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "21547:7:42", + "src": "20663:7:43", "typeDescriptions": {} } }, - "id": 33183, + "id": 34404, "isConstant": false, "isLValue": false, "isPure": false, @@ -7156,69 +6546,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21547:24:42", + "src": "20663:24:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "21524:47:42", + "src": "20640:47:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 33185, - "nodeType": "ExpressionStatement", - "src": "21524:47:42" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33186, - "name": "sendRootToStateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33592, - "src": "21684:21:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 33187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21684:23:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33188, + "id": 34406, "nodeType": "ExpressionStatement", - "src": "21684:23:42" + "src": "20640:47:43" }, { "eventCall": { "arguments": [ { - "id": 33190, + "id": 34408, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33049, - "src": "21739:7:42", + "referencedDeclaration": 34334, + "src": "20719:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7226,39 +6580,39 @@ }, { "expression": { - "id": 33191, + "id": 34409, "name": "TreeChange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32822, - "src": "21748:10:42", + "referencedDeclaration": 34078, + "src": "20728:10:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TreeChange_$32822_$", + "typeIdentifier": "t_type$_t_enum$_TreeChange_$34078_$", "typeString": "type(enum WorldIDIdentityManagerImplV1.TreeChange)" } }, - "id": 33192, + "id": 34410, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "21759:9:42", + "memberLocation": "20739:9:43", "memberName": "Insertion", "nodeType": "MemberAccess", - "referencedDeclaration": 32820, - "src": "21748:20:42", + "referencedDeclaration": 34076, + "src": "20728:20:43", "typeDescriptions": { - "typeIdentifier": "t_enum$_TreeChange_$32822", + "typeIdentifier": "t_enum$_TreeChange_$34078", "typeString": "enum WorldIDIdentityManagerImplV1.TreeChange" } }, { - "id": 33193, + "id": 34411, "name": "postRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33056, - "src": "21770:8:42", + "referencedDeclaration": 34341, + "src": "20750:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7272,7 +6626,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_TreeChange_$32822", + "typeIdentifier": "t_enum$_TreeChange_$34078", "typeString": "enum WorldIDIdentityManagerImplV1.TreeChange" }, { @@ -7280,18 +6634,18 @@ "typeString": "uint256" } ], - "id": 33189, + "id": 34407, "name": "TreeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32896, - "src": "21727:11:42", + "referencedDeclaration": 34159, + "src": "20707:11:43", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TreeChange_$32822_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TreeChange_$34078_$_t_uint256_$returns$__$", "typeString": "function (uint256,enum WorldIDIdentityManagerImplV1.TreeChange,uint256)" } }, - "id": 33194, + "id": 34412, "isConstant": false, "isLValue": false, "isPure": false, @@ -7300,75 +6654,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21727:52:42", + "src": "20707:52:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 33195, + "id": 34413, "nodeType": "EmitStatement", - "src": "21722:57:42" + "src": "20702:57:43" } ] }, "errorName": "", - "id": 33197, + "id": 34415, "nodeType": "TryCatchClause", - "parameters": { - "id": 33164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33163, - "mutability": "mutable", - "name": "verifierResult", - "nameLocation": "21003:14:42", - "nodeType": "VariableDeclaration", - "scope": 33197, - "src": "20998:19:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33162, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20998:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "20997:21:42" - }, - "src": "20989:801:42" + "src": "20304:466:43" }, { "block": { - "id": 33205, + "id": 34423, "nodeType": "Block", - "src": "21828:100:42", + "src": "20808:100:43", "statements": [ { "documentation": "This is not the revert we're looking for.", "expression": { "arguments": [ { - "id": 33202, + "id": 34420, "name": "errString", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33199, - "src": "21907:9:42", + "referencedDeclaration": 34417, + "src": "20887:9:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -7382,7 +6702,7 @@ "typeString": "string memory" } ], - "id": 33201, + "id": 34419, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7390,13 +6710,13 @@ -19 ], "referencedDeclaration": -19, - "src": "21900:6:42", + "src": "20880:6:43", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 33203, + "id": 34421, "isConstant": false, "isLValue": false, "isPure": false, @@ -7405,35 +6725,35 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21900:17:42", + "src": "20880:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 33204, + "id": 34422, "nodeType": "ExpressionStatement", - "src": "21900:17:42" + "src": "20880:17:43" } ] }, "errorName": "Error", - "id": 33206, + "id": 34424, "nodeType": "TryCatchClause", "parameters": { - "id": 33200, + "id": 34418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33199, + "id": 34417, "mutability": "mutable", "name": "errString", - "nameLocation": "21817:9:42", + "nameLocation": "20797:9:43", "nodeType": "VariableDeclaration", - "scope": 33206, - "src": "21803:23:42", + "scope": 34424, + "src": "20783:23:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7441,10 +6761,10 @@ "typeString": "string" }, "typeName": { - "id": 33198, + "id": 34416, "name": "string", "nodeType": "ElementaryTypeName", - "src": "21803:6:42", + "src": "20783:6:43", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -7453,33 +6773,33 @@ "visibility": "internal" } ], - "src": "21802:25:42" + "src": "20782:25:43" }, - "src": "21791:137:42" + "src": "20771:137:43" }, { "block": { - "id": 33210, + "id": 34428, "nodeType": "Block", - "src": "21935:220:42", + "src": "20915:220:43", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 33207, + "id": 34425, "name": "ProofValidationFailure", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32862, - "src": "22120:22:42", + "referencedDeclaration": 34119, + "src": "21100:22:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 33208, + "id": 34426, "isConstant": false, "isLValue": false, "isPure": false, @@ -7488,458 +6808,62 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "22120:24:42", + "src": "21100:24:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 33209, + "id": 34427, "nodeType": "RevertStatement", - "src": "22113:31:42" + "src": "21093:31:43" } ] }, "errorName": "", - "id": 33211, + "id": 34429, "nodeType": "TryCatchClause", - "src": "21929:226:42" + "src": "20909:226:43" } ], "externalCall": { "arguments": [ + { + "id": 34389, + "name": "insertionProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34332, + "src": "20270:14:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, { "components": [ { - "baseExpression": { - "id": 33130, - "name": "insertionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33047, - "src": "20765:14:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33132, - "indexExpression": { - "hexValue": "30", - "id": 33131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20780:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20765:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33133, - "name": "insertionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33047, - "src": "20784:14:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33135, - "indexExpression": { - "hexValue": "31", - "id": 33134, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20799:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20784:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33136, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20764:38:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "components": [ - { - "baseExpression": { - "id": 33137, - "name": "insertionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33047, - "src": "20818:14:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33139, - "indexExpression": { - "hexValue": "32", - "id": 33138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20833:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20818:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33140, - "name": "insertionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33047, - "src": "20837:14:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33142, - "indexExpression": { - "hexValue": "33", - "id": 33141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20852:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20837:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33143, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20817:38:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "baseExpression": { - "id": 33144, - "name": "insertionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33047, - "src": "20858:14:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33146, - "indexExpression": { - "hexValue": "34", - "id": 33145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20873:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20858:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33147, - "name": "insertionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33047, - "src": "20877:14:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33149, - "indexExpression": { - "hexValue": "35", - "id": 33148, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20892:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20877:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33150, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20857:38:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 33151, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20816:80:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", - "typeString": "uint256[2] memory[2] memory" - } - }, - { - "components": [ - { - "baseExpression": { - "id": 33152, - "name": "insertionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33047, - "src": "20911:14:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33154, - "indexExpression": { - "hexValue": "36", - "id": 33153, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20926:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20911:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33155, - "name": "insertionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33047, - "src": "20930:14:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33157, - "indexExpression": { - "hexValue": "37", - "id": 33156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20945:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_7_by_1", - "typeString": "int_const 7" - }, - "value": "7" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20930:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33158, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20910:38:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "id": 33159, - "name": "reducedElement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33111, - "src": "20963:14:42", + "id": 34390, + "name": "reducedElement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34370, + "src": "20287:14:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 33160, + "id": 34391, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "20962:16:42", + "src": "20286:16:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", "typeString": "uint256[1] memory" @@ -7949,16 +6873,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", - "typeString": "uint256[2] memory[2] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" }, { "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", @@ -7966,33 +6882,33 @@ } ], "expression": { - "id": 33128, + "id": 34387, "name": "insertionVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33121, - "src": "20721:17:42", + "referencedDeclaration": 34380, + "src": "20240:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", + "typeIdentifier": "t_contract$_ITreeVerifier_$35445", "typeString": "contract ITreeVerifier" } }, - "id": 33129, + "id": 34388, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20739:11:42", + "memberLocation": "20258:11:43", "memberName": "verifyProof", "nodeType": "MemberAccess", - "referencedDeclaration": 35008, - "src": "20721:29:42", + "referencedDeclaration": 35444, + "src": "20240:29:43", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_uint256_$1_memory_ptr_$returns$_t_bool_$", - "typeString": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[1] memory) external returns (bool)" + "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_uint256_$1_memory_ptr_$returns$__$", + "typeString": "function (uint256[8] memory,uint256[1] memory) external" } }, - "id": 33161, + "id": 34392, "isConstant": false, "isLValue": false, "isPure": false, @@ -8001,93 +6917,93 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20721:267:42", + "src": "20240:63:43", "tryCall": true, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 33212, + "id": 34430, "nodeType": "TryStatement", - "src": "20717:1438:42" + "src": "20236:899:43" } ] }, "documentation": { - "id": 33043, + "id": 34328, "nodeType": "StructuredDocumentation", - "src": "17279:1428:42", - "text": "@param startIndex The position in the tree at which the insertions were made.\n @param identityCommitments The identities that were inserted into the tree starting at\n `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be\n elements of the field `Kr`.\n @param postRoot The root obtained after inserting all of `identityCommitments` into the tree\n described by `preRoot`. Must be an element of the field `Kr`.\n @custom:reverts Unauthorized If the message sender is not authorised to add identities.\n @custom:reverts InvalidCommitment If one or more of the provided commitments is invalid.\n @custom:reverts NotLatestRoot If the provided `preRoot` is not the latest root.\n @custom:reverts ProofValidationFailure If `insertionProof` cannot be verified using the\n provided inputs.\n @custom:reverts UnreducedElement If any of the `preRoot`, `postRoot` and\n `identityCommitments` is not an element of the field `Kr`. It describes the\n type and value of the unreduced element.\n @custom:reverts VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known\n verifier.\n @custom:reverts VerifierLookupTable.BatchTooLarge If the batch size exceeds the maximum\n batch size." + "src": "18036:978:43", + "text": "@param startIndex The position in the tree at which the insertions were made.\n @param identityCommitments The identities that were inserted into the tree starting at\n `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be\n elements of the field `Kr`.\n @param postRoot The root obtained after inserting all of `identityCommitments` into the tree\n described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\n @custom:reverts Unauthorized If the message sender is not authorised to add identities.\n @custom:reverts NotLatestRoot If the provided `preRoot` is not the latest root.\n @custom:reverts ProofValidationFailure If `insertionProof` cannot be verified using the\n provided inputs.\n @custom:reverts VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known\n verifier." }, "functionSelector": "2217b211", "implemented": true, "kind": "function", "modifiers": [ { - "id": 33059, + "id": 34344, "kind": "modifierInvocation", "modifierName": { - "id": 33058, + "id": 34343, "name": "onlyProxy", "nameLocations": [ - "18931:9:42" + "19238:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "18931:9:42" + "src": "19238:9:43" }, "nodeType": "ModifierInvocation", - "src": "18931:9:42" + "src": "19238:9:43" }, { - "id": 33061, + "id": 34346, "kind": "modifierInvocation", "modifierName": { - "id": 33060, + "id": 34345, "name": "onlyInitialized", "nameLocations": [ - "18941:15:42" + "19248:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "18941:15:42" + "referencedDeclaration": 48444, + "src": "19248:15:43" }, "nodeType": "ModifierInvocation", - "src": "18941:15:42" + "src": "19248:15:43" }, { - "id": 33063, + "id": 34348, "kind": "modifierInvocation", "modifierName": { - "id": 33062, + "id": 34347, "name": "onlyIdentityOperator", "nameLocations": [ - "18957:20:42" + "19264:20:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34274, - "src": "18957:20:42" + "referencedDeclaration": 34868, + "src": "19264:20:43" }, "nodeType": "ModifierInvocation", - "src": "18957:20:42" + "src": "19264:20:43" } ], "name": "registerIdentities", - "nameLocation": "18721:18:42", + "nameLocation": "19028:18:43", "parameters": { - "id": 33057, + "id": 34342, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33047, + "id": 34332, "mutability": "mutable", "name": "insertionProof", - "nameLocation": "18769:14:42", + "nameLocation": "19076:14:43", "nodeType": "VariableDeclaration", - "scope": 33214, - "src": "18749:34:42", + "scope": 34432, + "src": "19056:34:43", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -8096,26 +7012,26 @@ }, "typeName": { "baseType": { - "id": 33044, + "id": 34329, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "18749:7:42", + "src": "19056:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 33046, + "id": 34331, "length": { "hexValue": "38", - "id": 33045, + "id": 34330, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18757:1:42", + "src": "19064:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" @@ -8123,7 +7039,7 @@ "value": "8" }, "nodeType": "ArrayTypeName", - "src": "18749:10:42", + "src": "19056:10:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", "typeString": "uint256[8]" @@ -8133,13 +7049,13 @@ }, { "constant": false, - "id": 33049, + "id": 34334, "mutability": "mutable", "name": "preRoot", - "nameLocation": "18801:7:42", + "nameLocation": "19108:7:43", "nodeType": "VariableDeclaration", - "scope": 33214, - "src": "18793:15:42", + "scope": 34432, + "src": "19100:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8147,10 +7063,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33048, + "id": 34333, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "18793:7:42", + "src": "19100:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8160,13 +7076,13 @@ }, { "constant": false, - "id": 33051, + "id": 34336, "mutability": "mutable", "name": "startIndex", - "nameLocation": "18825:10:42", + "nameLocation": "19132:10:43", "nodeType": "VariableDeclaration", - "scope": 33214, - "src": "18818:17:42", + "scope": 34432, + "src": "19125:17:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8174,10 +7090,10 @@ "typeString": "uint32" }, "typeName": { - "id": 33050, + "id": 34335, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18818:6:42", + "src": "19125:6:43", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -8187,13 +7103,13 @@ }, { "constant": false, - "id": 33054, + "id": 34339, "mutability": "mutable", "name": "identityCommitments", - "nameLocation": "18864:19:42", + "nameLocation": "19171:19:43", "nodeType": "VariableDeclaration", - "scope": 33214, - "src": "18845:38:42", + "scope": 34432, + "src": "19152:38:43", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -8202,18 +7118,18 @@ }, "typeName": { "baseType": { - "id": 33052, + "id": 34337, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "18845:7:42", + "src": "19152:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 33053, + "id": 34338, "nodeType": "ArrayTypeName", - "src": "18845:9:42", + "src": "19152:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -8223,13 +7139,13 @@ }, { "constant": false, - "id": 33056, + "id": 34341, "mutability": "mutable", "name": "postRoot", - "nameLocation": "18901:8:42", + "nameLocation": "19208:8:43", "nodeType": "VariableDeclaration", - "scope": 33214, - "src": "18893:16:42", + "scope": 34432, + "src": "19200:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8237,10 +7153,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33055, + "id": 34340, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "18893:7:42", + "src": "19200:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8249,9115 +7165,400 @@ "visibility": "internal" } ], - "src": "18739:176:42" + "src": "19046:176:43" }, "returnParameters": { - "id": 33064, + "id": 34349, "nodeType": "ParameterList", "parameters": [], - "src": "18978:0:42" + "src": "19285:0:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 33331, + "id": 34468, "nodeType": "FunctionDefinition", - "src": "24891:2047:42", + "src": "22271:413:43", "nodes": [], "body": { - "id": 33330, + "id": 34467, "nodeType": "Block", - "src": "25200:1738:42", + "src": "22520:164:43", "nodes": [], "statements": [ { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33241, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33221, - "src": "25281:7:42", + "assignments": [ + 34452 + ], + "declarations": [ + { + "constant": false, + "id": 34452, + "mutability": "mutable", + "name": "bytesToHash", + "nameLocation": "22543:11:43", + "nodeType": "VariableDeclaration", + "scope": 34467, + "src": "22530:24:43", + "stateVariable": false, + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 34451, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22530:5:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 34460, + "initialValue": { + "arguments": [ + { + "id": 34455, + "name": "startIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34435, + "src": "22586:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "id": 34456, + "name": "preRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34437, + "src": "22598:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 34457, + "name": "postRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34439, + "src": "22607:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 34458, + "name": "identityCommitments", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34442, + "src": "22617:19:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 33242, - "name": "SNARK_SCALAR_FIELD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32783, - "src": "25292:18:42", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + ], + "expression": { + "id": 34453, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "22569:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 34454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "22573:12:43", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "22569:16:43", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" } }, - "src": "25281:29:42", + "id": 34459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22569:68:43", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } }, - "id": 33251, - "nodeType": "IfStatement", - "src": "25277:122:42", - "trueBody": { - "id": 33250, - "nodeType": "Block", - "src": "25312:87:42", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 33245, - "name": "UnreducedElementType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32819, - "src": "25350:20:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_UnreducedElementType_$32819_$", - "typeString": "type(enum WorldIDIdentityManagerImplV1.UnreducedElementType)" - } - }, - "id": 33246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "25371:7:42", - "memberName": "PreRoot", - "nodeType": "MemberAccess", - "referencedDeclaration": 32816, - "src": "25350:28:42", - "typeDescriptions": { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - } - }, - { - "id": 33247, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33221, - "src": "25380:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33244, - "name": "UnreducedElement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32849, - "src": "25333:16:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_enum$_UnreducedElementType_$32819_$_t_uint256_$returns$__$", - "typeString": "function (enum WorldIDIdentityManagerImplV1.UnreducedElementType,uint256) pure" - } - }, - "id": 33248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25333:55:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33249, - "nodeType": "RevertStatement", - "src": "25326:62:42" - } - ] - } + "nodeType": "VariableDeclarationStatement", + "src": "22530:107:43" }, { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33254, + "expression": { + "id": 34465, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 33252, - "name": "preRoot", + "leftHandSide": { + "id": 34461, + "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33221, - "src": "25412:7:42", + "referencedDeclaration": 34449, + "src": "22648:4:43", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 33253, - "name": "_latestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "25423:11:42", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 34463, + "name": "bytesToHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34452, + "src": "22665:11:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 34462, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "22655:9:43", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 34464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22655:22:43", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "src": "25412:22:42", + "src": "22648:29:43", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33261, - "nodeType": "IfStatement", - "src": "25408:95:42", - "trueBody": { - "id": 33260, - "nodeType": "Block", - "src": "25436:67:42", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 33256, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33221, - "src": "25471:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33257, - "name": "_latestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "25480:11:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33255, - "name": "NotLatestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32869, - "src": "25457:13:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" - } - }, - "id": 33258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25457:35:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33259, - "nodeType": "RevertStatement", - "src": "25450:42:42" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33262, - "name": "postRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33232, - "src": "25578:8:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 33263, - "name": "SNARK_SCALAR_FIELD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32783, - "src": "25590:18:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25578:30:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33272, - "nodeType": "IfStatement", - "src": "25574:125:42", - "trueBody": { - "id": 33271, - "nodeType": "Block", - "src": "25610:89:42", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 33266, - "name": "UnreducedElementType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32819, - "src": "25648:20:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_UnreducedElementType_$32819_$", - "typeString": "type(enum WorldIDIdentityManagerImplV1.UnreducedElementType)" - } - }, - "id": 33267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "25669:8:42", - "memberName": "PostRoot", - "nodeType": "MemberAccess", - "referencedDeclaration": 32818, - "src": "25648:29:42", - "typeDescriptions": { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - } - }, - { - "id": 33268, - "name": "postRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33232, - "src": "25679:8:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33265, - "name": "UnreducedElement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32849, - "src": "25631:16:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_enum$_UnreducedElementType_$32819_$_t_uint256_$returns$__$", - "typeString": "function (enum WorldIDIdentityManagerImplV1.UnreducedElementType,uint256) pure" - } - }, - "id": 33269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25631:57:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33270, - "nodeType": "RevertStatement", - "src": "25624:64:42" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 33283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33273, - "name": "leafIndices", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33224, - "src": "25787:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - } - }, - "id": 33274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25799:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "25787:18:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 33275, - "name": "oldIdentities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33227, - "src": "25809:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 33276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25823:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "25809:20:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25787:42:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33278, - "name": "leafIndices", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33224, - "src": "25833:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - } - }, - "id": 33279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25845:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "25833:18:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 33280, - "name": "newIdentities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33230, - "src": "25855:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 33281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25869:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "25855:20:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25833:42:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25787:88:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33288, - "nodeType": "IfStatement", - "src": "25770:172:42", - "trueBody": { - "id": 33287, - "nodeType": "Block", - "src": "25886:56:42", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33284, - "name": "MismatchedInputLengths", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32886, - "src": "25907:22:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25907:24:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33286, - "nodeType": "RevertStatement", - "src": "25900:31:42" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 33290, - "name": "oldIdentities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33227, - "src": "26047:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - { - "id": 33291, - "name": "newIdentities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33230, - "src": "26062:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "id": 33289, - "name": "validateIdentitiesForUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33914, - "src": "26019:27:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (uint256[] calldata,uint256[] calldata) view" - } - }, - "id": 33292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26019:57:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33293, - "nodeType": "ExpressionStatement", - "src": "26019:57:42" - }, - { - "assignments": [ - 33295 - ], - "declarations": [ - { - "constant": false, - "id": 33295, - "mutability": "mutable", - "name": "inputHash", - "nameLocation": "26172:9:42", - "nodeType": "VariableDeclaration", - "scope": 33330, - "src": "26164:17:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 33294, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "26164:7:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 33303, - "initialValue": { - "arguments": [ - { - "id": 33297, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33221, - "src": "26230:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33298, - "name": "postRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33232, - "src": "26239:8:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33299, - "name": "leafIndices", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33224, - "src": "26249:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - } - }, - { - "id": 33300, - "name": "oldIdentities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33227, - "src": "26262:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - { - "id": 33301, - "name": "newIdentities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33230, - "src": "26277:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "id": 33296, - "name": "calculateIdentityUpdateInputHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33551, - "src": "26184:32:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_array$_t_uint32_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$_t_bytes32_$", - "typeString": "function (uint256,uint256,uint32[] calldata,uint256[] calldata,uint256[] calldata) view returns (bytes32)" - } - }, - "id": 33302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26184:116:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26164:136:42" - }, - { - "assignments": [ - 33305 - ], - "declarations": [ - { - "constant": false, - "id": 33305, - "mutability": "mutable", - "name": "reducedInputHash", - "nameLocation": "26507:16:42", - "nodeType": "VariableDeclaration", - "scope": 33330, - "src": "26499:24:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26499:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33312, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 33308, - "name": "inputHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33295, - "src": "26534:9:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 33307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "26526:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 33306, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26526:7:42", - "typeDescriptions": {} - } - }, - "id": 33309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26526:18:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "id": 33310, - "name": "SNARK_SCALAR_FIELD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32783, - "src": "26547:18:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26526:39:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26499:66:42" - }, - { - "assignments": [ - 33315 - ], - "declarations": [ - { - "constant": false, - "id": 33315, - "mutability": "mutable", - "name": "updateVerifier", - "nameLocation": "26663:14:42", - "nodeType": "VariableDeclaration", - "scope": 33330, - "src": "26649:28:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", - "typeString": "contract ITreeVerifier" - }, - "typeName": { - "id": 33314, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33313, - "name": "ITreeVerifier", - "nameLocations": [ - "26649:13:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35009, - "src": "26649:13:42" - }, - "referencedDeclaration": 35009, - "src": "26649:13:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", - "typeString": "contract ITreeVerifier" - } - }, - "visibility": "internal" - } - ], - "id": 33321, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 33318, - "name": "leafIndices", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33224, - "src": "26719:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - } - }, - "id": 33319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "26731:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "26719:18:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 33316, - "name": "identityUpdateVerifiers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32794, - "src": "26680:23:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" - } - }, - "id": 33317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "26704:14:42", - "memberName": "getVerifierFor", - "nodeType": "MemberAccess", - "referencedDeclaration": 34828, - "src": "26680:38:42", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_ITreeVerifier_$35009_$", - "typeString": "function (uint256) view external returns (contract ITreeVerifier)" - } - }, - "id": 33320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26680:58:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", - "typeString": "contract ITreeVerifier" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26649:89:42" - }, - { - "expression": { - "arguments": [ - { - "id": 33323, - "name": "updateVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33315, - "src": "26866:14:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", - "typeString": "contract ITreeVerifier" - } - }, - { - "id": 33324, - "name": "updateProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33219, - "src": "26882:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - { - "id": 33325, - "name": "reducedInputHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33305, - "src": "26895:16:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33326, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33221, - "src": "26913:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33327, - "name": "postRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33232, - "src": "26922:8:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", - "typeString": "contract ITreeVerifier" - }, - { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33322, - "name": "performIdentityUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33474, - "src": "26844:21:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ITreeVerifier_$35009_$_t_array$_t_uint256_$8_calldata_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (contract ITreeVerifier,uint256[8] calldata,uint256,uint256,uint256)" - } - }, - "id": 33328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26844:87:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33329, - "nodeType": "ExpressionStatement", - "src": "26844:87:42" - } - ] - }, - "documentation": { - "id": 33215, - "nodeType": "StructuredDocumentation", - "src": "23251:1635:42", - "text": "@param leafIndices The array of leaf indices at which the update operations take place in\n the tree. Elements in this array are extended to 256 bits when encoding.\n @param oldIdentities The array of old values for the identities. Length must match that of\n `leafIndices`.\n @param newIdentities The array of new values for the identities. Length must match that of\n `leafIndices`.\n @param postRoot The root obtained after removing all of `removedIdentities` from the tree\n described by `preRoot`. Must be an element of the field `Kr`.\n The arrays `leafIndices`, `oldIdentities` and `newIdentities` are arranged such that the\n triple at an element `i` in those arrays corresponds to one update operation.\n @custom:reverts Unauthorized If the message sender is not authorised to update identities.\n @custom:reverts NotLatestRoot If the provided `preRoot` is not the latest root.\n @custom:reverts MismatchedInputLengths If the provided arrays for `leafIndices`,\n `oldIdentities` and `newIdentities` do not match in length.\n @custom:reverts ProofValidationFailure If `removalProof` cannot be verified using the\n provided inputs.\n @custom:reverts UnreducedElement If any of the `preRoot`, `postRoot` and `identities` is not\n an element of the field `Kr`. It describes the type and value of the\n unreduced element.\n @custom:reverts NoSuchVerifier If the batch sizes doesn't match a known verifier." - }, - "functionSelector": "b843b4e5", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33235, - "kind": "modifierInvocation", - "modifierName": { - "id": 33234, - "name": "onlyProxy", - "nameLocations": [ - "25153:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "25153:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "25153:9:42" - }, - { - "id": 33237, - "kind": "modifierInvocation", - "modifierName": { - "id": 33236, - "name": "onlyInitialized", - "nameLocations": [ - "25163:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "25163:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "25163:15:42" - }, - { - "id": 33239, - "kind": "modifierInvocation", - "modifierName": { - "id": 33238, - "name": "onlyIdentityOperator", - "nameLocations": [ - "25179:20:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34274, - "src": "25179:20:42" - }, - "nodeType": "ModifierInvocation", - "src": "25179:20:42" - } - ], - "name": "updateIdentities", - "nameLocation": "24900:16:42", - "parameters": { - "id": 33233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33219, - "mutability": "mutable", - "name": "updateProof", - "nameLocation": "24946:11:42", - "nodeType": "VariableDeclaration", - "scope": 33331, - "src": "24926:31:42", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8]" - }, - "typeName": { - "baseType": { - "id": 33216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24926:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33218, - "length": { - "hexValue": "38", - "id": 33217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24934:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "nodeType": "ArrayTypeName", - "src": "24926:10:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", - "typeString": "uint256[8]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33221, - "mutability": "mutable", - "name": "preRoot", - "nameLocation": "24975:7:42", - "nodeType": "VariableDeclaration", - "scope": 33331, - "src": "24967:15:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33220, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24967:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33224, - "mutability": "mutable", - "name": "leafIndices", - "nameLocation": "25010:11:42", - "nodeType": "VariableDeclaration", - "scope": 33331, - "src": "24992:29:42", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 33222, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "24992:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 33223, - "nodeType": "ArrayTypeName", - "src": "24992:8:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33227, - "mutability": "mutable", - "name": "oldIdentities", - "nameLocation": "25050:13:42", - "nodeType": "VariableDeclaration", - "scope": 33331, - "src": "25031:32:42", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 33225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25031:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33226, - "nodeType": "ArrayTypeName", - "src": "25031:9:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33230, - "mutability": "mutable", - "name": "newIdentities", - "nameLocation": "25092:13:42", - "nodeType": "VariableDeclaration", - "scope": 33331, - "src": "25073:32:42", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 33228, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25073:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33229, - "nodeType": "ArrayTypeName", - "src": "25073:9:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33232, - "mutability": "mutable", - "name": "postRoot", - "nameLocation": "25123:8:42", - "nodeType": "VariableDeclaration", - "scope": 33331, - "src": "25115:16:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25115:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "24916:221:42" - }, - "returnParameters": { - "id": 33240, - "nodeType": "ParameterList", - "parameters": [], - "src": "25200:0:42" - }, - "scope": 34275, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 33474, - "nodeType": "FunctionDefinition", - "src": "28770:1899:42", - "nodes": [], - "body": { - "id": 33473, - "nodeType": "Block", - "src": "29028:1641:42", - "nodes": [], - "statements": [ - { - "assignments": [ - 33359 - ], - "declarations": [ - { - "constant": false, - "id": 33359, - "mutability": "mutable", - "name": "ar", - "nameLocation": "29112:2:42", - "nodeType": "VariableDeclaration", - "scope": 33473, - "src": "29094:20:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 33357, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29094:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33358, - "length": { - "hexValue": "32", - "id": 33356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29102:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "29094:10:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "visibility": "internal" - } - ], - "id": 33367, - "initialValue": { - "components": [ - { - "baseExpression": { - "id": 33360, - "name": "updateProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33339, - "src": "29118:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33362, - "indexExpression": { - "hexValue": "30", - "id": 33361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29130:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29118:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33363, - "name": "updateProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33339, - "src": "29134:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33365, - "indexExpression": { - "hexValue": "31", - "id": 33364, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29146:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29134:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33366, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "29117:32:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29094:55:42" - }, - { - "assignments": [ - 33375 - ], - "declarations": [ - { - "constant": false, - "id": 33375, - "mutability": "mutable", - "name": "bs", - "nameLocation": "29180:2:42", - "nodeType": "VariableDeclaration", - "scope": 33473, - "src": "29159:23:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", - "typeString": "uint256[2][2]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 33372, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29159:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33373, - "length": { - "hexValue": "32", - "id": 33370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29167:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "29159:10:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "id": 33374, - "length": { - "hexValue": "32", - "id": 33371, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29170:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "29159:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", - "typeString": "uint256[2][2]" - } - }, - "visibility": "internal" - } - ], - "id": 33391, - "initialValue": { - "components": [ - { - "components": [ - { - "baseExpression": { - "id": 33376, - "name": "updateProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33339, - "src": "29199:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33378, - "indexExpression": { - "hexValue": "32", - "id": 33377, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29211:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29199:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33379, - "name": "updateProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33339, - "src": "29215:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33381, - "indexExpression": { - "hexValue": "33", - "id": 33380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29227:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29215:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33382, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "29198:32:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "baseExpression": { - "id": 33383, - "name": "updateProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33339, - "src": "29233:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33385, - "indexExpression": { - "hexValue": "34", - "id": 33384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29245:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29233:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33386, - "name": "updateProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33339, - "src": "29249:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33388, - "indexExpression": { - "hexValue": "35", - "id": 33387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29261:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29249:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33389, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "29232:32:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 33390, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "29197:68:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", - "typeString": "uint256[2] memory[2] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29159:106:42" - }, - { - "assignments": [ - 33397 - ], - "declarations": [ - { - "constant": false, - "id": 33397, - "mutability": "mutable", - "name": "krs", - "nameLocation": "29293:3:42", - "nodeType": "VariableDeclaration", - "scope": 33473, - "src": "29275:21:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 33395, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29275:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33396, - "length": { - "hexValue": "32", - "id": 33394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29283:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "29275:10:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "visibility": "internal" - } - ], - "id": 33405, - "initialValue": { - "components": [ - { - "baseExpression": { - "id": 33398, - "name": "updateProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33339, - "src": "29300:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33400, - "indexExpression": { - "hexValue": "36", - "id": 33399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29312:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29300:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33401, - "name": "updateProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33339, - "src": "29316:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33403, - "indexExpression": { - "hexValue": "37", - "id": 33402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29328:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_7_by_1", - "typeString": "int_const 7" - }, - "value": "7" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29316:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33404, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "29299:32:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29275:56:42" - }, - { - "assignments": [ - 33411 - ], - "declarations": [ - { - "constant": false, - "id": 33411, - "mutability": "mutable", - "name": "proofInput", - "nameLocation": "29359:10:42", - "nodeType": "VariableDeclaration", - "scope": 33473, - "src": "29341:28:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1]" - }, - "typeName": { - "baseType": { - "id": 33409, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29341:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33410, - "length": { - "hexValue": "31", - "id": 33408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29349:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "29341:10:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", - "typeString": "uint256[1]" - } - }, - "visibility": "internal" - } - ], - "id": 33414, - "initialValue": { - "components": [ - { - "id": 33412, - "name": "inputHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33341, - "src": "29373:9:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33413, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "29372:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29341:42:42" - }, - { - "clauses": [ - { - "block": { - "id": 33456, - "nodeType": "Block", - "src": "29530:768:42", - "statements": [ - { - "condition": { - "id": 33426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "29618:15:42", - "subExpression": { - "id": 33425, - "name": "verifierResult", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33423, - "src": "29619:14:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33431, - "nodeType": "IfStatement", - "src": "29614:85:42", - "trueBody": { - "id": 33430, - "nodeType": "Block", - "src": "29635:64:42", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33427, - "name": "ProofValidationFailure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32862, - "src": "29660:22:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29660:24:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33429, - "nodeType": "RevertStatement", - "src": "29653:31:42" - } - ] - } - }, - { - "expression": { - "id": 33434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33432, - "name": "_latestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "29867:11:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 33433, - "name": "postRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33345, - "src": "29881:8:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29867:22:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33435, - "nodeType": "ExpressionStatement", - "src": "29867:22:42" - }, - { - "expression": { - "id": 33444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 33436, - "name": "rootHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32769, - "src": "30035:11:42", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", - "typeString": "mapping(uint256 => uint128)" - } - }, - "id": 33438, - "indexExpression": { - "id": 33437, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33343, - "src": "30047:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30035:20:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 33441, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "30066:5:42", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 33442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30072:9:42", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "30066:15:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "30058:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint128_$", - "typeString": "type(uint128)" - }, - "typeName": { - "id": 33439, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "30058:7:42", - "typeDescriptions": {} - } - }, - "id": 33443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30058:24:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "src": "30035:47:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "id": 33445, - "nodeType": "ExpressionStatement", - "src": "30035:47:42" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33446, - "name": "sendRootToStateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33592, - "src": "30195:21:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 33447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30195:23:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33448, - "nodeType": "ExpressionStatement", - "src": "30195:23:42" - }, - { - "eventCall": { - "arguments": [ - { - "id": 33450, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33343, - "src": "30250:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 33451, - "name": "TreeChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32822, - "src": "30259:10:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TreeChange_$32822_$", - "typeString": "type(enum WorldIDIdentityManagerImplV1.TreeChange)" - } - }, - "id": 33452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "30270:6:42", - "memberName": "Update", - "nodeType": "MemberAccess", - "referencedDeclaration": 32821, - "src": "30259:17:42", - "typeDescriptions": { - "typeIdentifier": "t_enum$_TreeChange_$32822", - "typeString": "enum WorldIDIdentityManagerImplV1.TreeChange" - } - }, - { - "id": 33453, - "name": "postRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33345, - "src": "30278:8:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_TreeChange_$32822", - "typeString": "enum WorldIDIdentityManagerImplV1.TreeChange" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33449, - "name": "TreeChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32896, - "src": "30238:11:42", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TreeChange_$32822_$_t_uint256_$returns$__$", - "typeString": "function (uint256,enum WorldIDIdentityManagerImplV1.TreeChange,uint256)" - } - }, - "id": 33454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30238:49:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33455, - "nodeType": "EmitStatement", - "src": "30233:54:42" - } - ] - }, - "errorName": "", - "id": 33457, - "nodeType": "TryCatchClause", - "parameters": { - "id": 33424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33423, - "mutability": "mutable", - "name": "verifierResult", - "nameLocation": "29514:14:42", - "nodeType": "VariableDeclaration", - "scope": 33457, - "src": "29509:19:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33422, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "29509:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "29508:21:42" - }, - "src": "29500:798:42" - }, - { - "block": { - "id": 33465, - "nodeType": "Block", - "src": "30336:100:42", - "statements": [ - { - "documentation": "This is not the revert we're looking for.", - "expression": { - "arguments": [ - { - "id": 33462, - "name": "errString", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33459, - "src": "30415:9:42", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 33461, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -19, - -19 - ], - "referencedDeclaration": -19, - "src": "30408:6:42", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 33463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30408:17:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33464, - "nodeType": "ExpressionStatement", - "src": "30408:17:42" - } - ] - }, - "errorName": "Error", - "id": 33466, - "nodeType": "TryCatchClause", - "parameters": { - "id": 33460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33459, - "mutability": "mutable", - "name": "errString", - "nameLocation": "30325:9:42", - "nodeType": "VariableDeclaration", - "scope": 33466, - "src": "30311:23:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 33458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "30311:6:42", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "30310:25:42" - }, - "src": "30299:137:42" - }, - { - "block": { - "id": 33470, - "nodeType": "Block", - "src": "30443:220:42", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33467, - "name": "ProofValidationFailure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32862, - "src": "30628:22:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30628:24:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33469, - "nodeType": "RevertStatement", - "src": "30621:31:42" - } - ] - }, - "errorName": "", - "id": 33471, - "nodeType": "TryCatchClause", - "src": "30437:226:42" - } - ], - "externalCall": { - "arguments": [ - { - "id": 33417, - "name": "ar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33359, - "src": "29475:2:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "id": 33418, - "name": "bs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33375, - "src": "29479:2:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", - "typeString": "uint256[2] memory[2] memory" - } - }, - { - "id": 33419, - "name": "krs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33397, - "src": "29483:3:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "id": 33420, - "name": "proofInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33411, - "src": "29488:10:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", - "typeString": "uint256[2] memory[2] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1] memory" - } - ], - "expression": { - "id": 33415, - "name": "updateVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33335, - "src": "29448:14:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", - "typeString": "contract ITreeVerifier" - } - }, - "id": 33416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29463:11:42", - "memberName": "verifyProof", - "nodeType": "MemberAccess", - "referencedDeclaration": 35008, - "src": "29448:26:42", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_uint256_$1_memory_ptr_$returns$_t_bool_$", - "typeString": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[1] memory) external returns (bool)" - } - }, - "id": 33421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29448:51:42", - "tryCall": true, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33472, - "nodeType": "TryStatement", - "src": "29444:1219:42" - } - ] - }, - "documentation": { - "id": 33332, - "nodeType": "StructuredDocumentation", - "src": "28452:313:42", - "text": "@param postRoot The root obtained after removing all of `removedIdentities` from the tree\n described by `preRoot`. Must be an element of the field `Kr`.\n @custom:reverts ProofValidationFailure If `removalProof` cannot be verified using the\n provided inputs." - }, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33348, - "kind": "modifierInvocation", - "modifierName": { - "id": 33347, - "name": "onlyProxy", - "nameLocations": [ - "28981:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "28981:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "28981:9:42" - }, - { - "id": 33350, - "kind": "modifierInvocation", - "modifierName": { - "id": 33349, - "name": "onlyInitialized", - "nameLocations": [ - "28991:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "28991:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "28991:15:42" - }, - { - "id": 33352, - "kind": "modifierInvocation", - "modifierName": { - "id": 33351, - "name": "onlyIdentityOperator", - "nameLocations": [ - "29007:20:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34274, - "src": "29007:20:42" - }, - "nodeType": "ModifierInvocation", - "src": "29007:20:42" - } - ], - "name": "performIdentityUpdate", - "nameLocation": "28779:21:42", - "parameters": { - "id": 33346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33335, - "mutability": "mutable", - "name": "updateVerifier", - "nameLocation": "28824:14:42", - "nodeType": "VariableDeclaration", - "scope": 33474, - "src": "28810:28:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", - "typeString": "contract ITreeVerifier" - }, - "typeName": { - "id": 33334, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33333, - "name": "ITreeVerifier", - "nameLocations": [ - "28810:13:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35009, - "src": "28810:13:42" - }, - "referencedDeclaration": 35009, - "src": "28810:13:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35009", - "typeString": "contract ITreeVerifier" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33339, - "mutability": "mutable", - "name": "updateProof", - "nameLocation": "28868:11:42", - "nodeType": "VariableDeclaration", - "scope": 33474, - "src": "28848:31:42", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8]" - }, - "typeName": { - "baseType": { - "id": 33336, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28848:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33338, - "length": { - "hexValue": "38", - "id": 33337, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28856:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "nodeType": "ArrayTypeName", - "src": "28848:10:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", - "typeString": "uint256[8]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33341, - "mutability": "mutable", - "name": "inputHash", - "nameLocation": "28897:9:42", - "nodeType": "VariableDeclaration", - "scope": 33474, - "src": "28889:17:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33340, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28889:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33343, - "mutability": "mutable", - "name": "preRoot", - "nameLocation": "28924:7:42", - "nodeType": "VariableDeclaration", - "scope": 33474, - "src": "28916:15:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33342, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28916:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33345, - "mutability": "mutable", - "name": "postRoot", - "nameLocation": "28949:8:42", - "nodeType": "VariableDeclaration", - "scope": 33474, - "src": "28941:16:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33344, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28941:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "28800:163:42" - }, - "returnParameters": { - "id": 33353, - "nodeType": "ParameterList", - "parameters": [], - "src": "29028:0:42" - }, - "scope": 34275, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "id": 33510, - "nodeType": "FunctionDefinition", - "src": "31799:413:42", - "nodes": [], - "body": { - "id": 33509, - "nodeType": "Block", - "src": "32048:164:42", - "nodes": [], - "statements": [ - { - "assignments": [ - 33494 - ], - "declarations": [ - { - "constant": false, - "id": 33494, - "mutability": "mutable", - "name": "bytesToHash", - "nameLocation": "32071:11:42", - "nodeType": "VariableDeclaration", - "scope": 33509, - "src": "32058:24:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 33493, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "32058:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 33502, - "initialValue": { - "arguments": [ - { - "id": 33497, - "name": "startIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33477, - "src": "32114:10:42", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 33498, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33479, - "src": "32126:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33499, - "name": "postRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33481, - "src": "32135:8:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33500, - "name": "identityCommitments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33484, - "src": "32145:19:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "expression": { - "id": 33495, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "32097:3:42", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 33496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "32101:12:42", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "32097:16:42", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 33501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32097:68:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32058:107:42" - }, - { - "expression": { - "id": 33507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33503, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33491, - "src": "32176:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 33505, - "name": "bytesToHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33494, - "src": "32193:11:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 33504, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "32183:9:42", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 33506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32183:22:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "32176:29:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 33508, - "nodeType": "ExpressionStatement", - "src": "32176:29:42" - } - ] - }, - "documentation": { - "id": 33475, - "nodeType": "StructuredDocumentation", - "src": "30928:866:42", - "text": "@notice Calculates the input hash for the identity registration verifier.\n @dev Implements the computation described below.\n @param startIndex The index in the tree from which inserting started.\n @param preRoot The root value of the tree before these insertions were made.\n @param postRoot The root value of the tree after these insertions were made.\n @param identityCommitments The identities that were added to the tree to produce `postRoot`.\n @return hash The input hash calculated as described below.\n We keccak hash all input to save verification gas. Inputs are arranged as follows:\n StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1]\n 32\t || 256 || 256 || 256 || 256 || ... || 256 bits" - }, - "functionSelector": "8c76a909", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33487, - "kind": "modifierInvocation", - "modifierName": { - "id": 33486, - "name": "onlyProxy", - "nameLocations": [ - "31999:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "31999:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "31999:9:42" - }, - { - "id": 33489, - "kind": "modifierInvocation", - "modifierName": { - "id": 33488, - "name": "onlyInitialized", - "nameLocations": [ - "32009:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "32009:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "32009:15:42" - } - ], - "name": "calculateIdentityRegistrationInputHash", - "nameLocation": "31808:38:42", - "parameters": { - "id": 33485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33477, - "mutability": "mutable", - "name": "startIndex", - "nameLocation": "31863:10:42", - "nodeType": "VariableDeclaration", - "scope": 33510, - "src": "31856:17:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 33476, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "31856:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33479, - "mutability": "mutable", - "name": "preRoot", - "nameLocation": "31891:7:42", - "nodeType": "VariableDeclaration", - "scope": 33510, - "src": "31883:15:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33478, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31883:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33481, - "mutability": "mutable", - "name": "postRoot", - "nameLocation": "31916:8:42", - "nodeType": "VariableDeclaration", - "scope": 33510, - "src": "31908:16:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31908:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33484, - "mutability": "mutable", - "name": "identityCommitments", - "nameLocation": "31953:19:42", - "nodeType": "VariableDeclaration", - "scope": 33510, - "src": "31934:38:42", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 33482, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31934:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33483, - "nodeType": "ArrayTypeName", - "src": "31934:9:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "31846:132:42" - }, - "returnParameters": { - "id": 33492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33491, - "mutability": "mutable", - "name": "hash", - "nameLocation": "32042:4:42", - "nodeType": "VariableDeclaration", - "scope": 33510, - "src": "32034:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 33490, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "32034:7:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "32033:14:42" - }, - "scope": 34275, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 33551, - "nodeType": "FunctionDefinition", - "src": "33753:465:42", - "nodes": [], - "body": { - "id": 33550, - "nodeType": "Block", - "src": "34044:174:42", - "nodes": [], - "statements": [ - { - "assignments": [ - 33534 - ], - "declarations": [ - { - "constant": false, - "id": 33534, - "mutability": "mutable", - "name": "bytesToHash", - "nameLocation": "34067:11:42", - "nodeType": "VariableDeclaration", - "scope": 33550, - "src": "34054:24:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 33533, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "34054:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 33543, - "initialValue": { - "arguments": [ - { - "id": 33537, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33513, - "src": "34110:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33538, - "name": "postRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33515, - "src": "34119:8:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33539, - "name": "leafIndices", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33518, - "src": "34129:11:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - } - }, - { - "id": 33540, - "name": "oldIdentities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33521, - "src": "34142:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - { - "id": 33541, - "name": "newIdentities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33524, - "src": "34157:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[] calldata" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "expression": { - "id": 33535, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "34093:3:42", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 33536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "34097:12:42", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "34093:16:42", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 33542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34093:78:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34054:117:42" - }, - { - "expression": { - "id": 33548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33544, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33531, - "src": "34182:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 33546, - "name": "bytesToHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33534, - "src": "34199:11:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 33545, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "34189:9:42", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 33547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34189:22:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "34182:29:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 33549, - "nodeType": "ExpressionStatement", - "src": "34182:29:42" - } - ] - }, - "documentation": { - "id": 33511, - "nodeType": "StructuredDocumentation", - "src": "32218:1530:42", - "text": "@notice Calculates the input hash for the identity update verifier.\n @dev Implements the computation described below.\n @param preRoot The root value of the tree before the updates were made.\n @param postRoot The root value of the tree after the updates were made.\n @param leafIndices The array of leaf indices at which the update operations take place in\n the tree. Elements in this array are extended to 256 bits when encoding.\n @param oldIdentities The array of old values for the identities. Length must match that of\n `leafIndices`.\n @param newIdentities The array of new values for the identities. Length must match that of\n `leafIndices`.\n @return hash The input hash calculated as described below.\n The arrays `leafIndices`, `oldIdentities` and `newIdentities` are arranged such that the\n triple at an element `i` in those arrays corresponds to one update operation.\n We keccak hash all input to save verification gas. The inputs are arranged as follows:\n preRoot || postRoot || ix[0] || ... || ix[n] || oi[0] || ... || oi[n] || ni[0] || ... || ni[n] ||\n 256 || 256 || 256 || ... || 256 || 256 || ... || 256 || 256 || ... || 256 ||\n where:\n - `ix[i] == leafIndices[i]`\n - `oi[i] == oldIdentities[i]`\n - `ni[i] == newIdentities[i]`\n - `id[i] == identities[i]`\n - `n == batchSize - 1`" - }, - "functionSelector": "86ec599a", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33527, - "kind": "modifierInvocation", - "modifierName": { - "id": 33526, - "name": "onlyProxy", - "nameLocations": [ - "33995:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "33995:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "33995:9:42" - }, - { - "id": 33529, - "kind": "modifierInvocation", - "modifierName": { - "id": 33528, - "name": "onlyInitialized", - "nameLocations": [ - "34005:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "34005:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "34005:15:42" - } - ], - "name": "calculateIdentityUpdateInputHash", - "nameLocation": "33762:32:42", - "parameters": { - "id": 33525, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33513, - "mutability": "mutable", - "name": "preRoot", - "nameLocation": "33812:7:42", - "nodeType": "VariableDeclaration", - "scope": 33551, - "src": "33804:15:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33512, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33804:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33515, - "mutability": "mutable", - "name": "postRoot", - "nameLocation": "33837:8:42", - "nodeType": "VariableDeclaration", - "scope": 33551, - "src": "33829:16:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33514, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33829:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33518, - "mutability": "mutable", - "name": "leafIndices", - "nameLocation": "33873:11:42", - "nodeType": "VariableDeclaration", - "scope": 33551, - "src": "33855:29:42", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", - "typeString": "uint32[]" - }, - "typeName": { - "baseType": { - "id": 33516, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "33855:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 33517, - "nodeType": "ArrayTypeName", - "src": "33855:8:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33521, - "mutability": "mutable", - "name": "oldIdentities", - "nameLocation": "33913:13:42", - "nodeType": "VariableDeclaration", - "scope": 33551, - "src": "33894:32:42", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 33519, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33894:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33520, - "nodeType": "ArrayTypeName", - "src": "33894:9:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33524, - "mutability": "mutable", - "name": "newIdentities", - "nameLocation": "33955:13:42", - "nodeType": "VariableDeclaration", - "scope": 33551, - "src": "33936:32:42", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 33522, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33936:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33523, - "nodeType": "ArrayTypeName", - "src": "33936:9:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "33794:180:42" - }, - "returnParameters": { - "id": 33532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33531, - "mutability": "mutable", - "name": "hash", - "nameLocation": "34038:4:42", - "nodeType": "VariableDeclaration", - "scope": 33551, - "src": "34030:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 33530, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "34030:7:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "34029:14:42" - }, - "scope": 34275, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 33564, - "nodeType": "FunctionDefinition", - "src": "34346:121:42", - "nodes": [], - "body": { - "id": 33563, - "nodeType": "Block", - "src": "34432:35:42", - "nodes": [], - "statements": [ - { - "expression": { - "id": 33561, - "name": "_latestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "34449:11:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 33560, - "id": 33562, - "nodeType": "Return", - "src": "34442:18:42" - } - ] - }, - "documentation": { - "id": 33552, - "nodeType": "StructuredDocumentation", - "src": "34224:117:42", - "text": "@notice Allows a caller to query the latest root.\n @return root The value of the latest tree root." - }, - "functionSelector": "d7b0fef1", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33555, - "kind": "modifierInvocation", - "modifierName": { - "id": 33554, - "name": "onlyProxy", - "nameLocations": [ - "34388:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "34388:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "34388:9:42" - }, - { - "id": 33557, - "kind": "modifierInvocation", - "modifierName": { - "id": 33556, - "name": "onlyInitialized", - "nameLocations": [ - "34398:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "34398:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "34398:15:42" - } - ], - "name": "latestRoot", - "nameLocation": "34355:10:42", - "parameters": { - "id": 33553, - "nodeType": "ParameterList", - "parameters": [], - "src": "34365:2:42" - }, - "returnParameters": { - "id": 33560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33559, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33564, - "src": "34423:7:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33558, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34423:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "34422:9:42" - }, - "scope": 34275, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 33592, - "nodeType": "FunctionDefinition", - "src": "34617:227:42", - "nodes": [], - "body": { - "id": 33591, - "nodeType": "Block", - "src": "34693:151:42", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 33582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33572, - "name": "_isStateBridgeEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32805, - "src": "34707:21:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 33581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 33575, - "name": "_stateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32802, - "src": "34740:12:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - ], - "id": 33574, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34732:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 33573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34732:7:42", - "typeDescriptions": {} - } - }, - "id": 33576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34732:21:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 33579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34765:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 33578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34757:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 33577, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34757:7:42", - "typeDescriptions": {} - } - }, - "id": 33580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34757:10:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "34732:35:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "34707:60:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33590, - "nodeType": "IfStatement", - "src": "34703:135:42", - "trueBody": { - "id": 33589, - "nodeType": "Block", - "src": "34769:69:42", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 33586, - "name": "_latestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "34815:11:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 33583, - "name": "_stateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32802, - "src": "34783:12:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "id": 33585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34796:18:42", - "memberName": "sendRootMultichain", - "nodeType": "MemberAccess", - "referencedDeclaration": 34974, - "src": "34783:31:42", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 33587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34783:44:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33588, - "nodeType": "ExpressionStatement", - "src": "34783:44:42" - } - ] - } - } - ] - }, - "documentation": { - "id": 33565, - "nodeType": "StructuredDocumentation", - "src": "34473:139:42", - "text": "@notice Sends the latest root to the state bridge.\n @dev Only sends if the state bridge address is not the zero address." - }, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33568, - "kind": "modifierInvocation", - "modifierName": { - "id": 33567, - "name": "onlyProxy", - "nameLocations": [ - "34667:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "34667:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "34667:9:42" - }, - { - "id": 33570, - "kind": "modifierInvocation", - "modifierName": { - "id": 33569, - "name": "onlyInitialized", - "nameLocations": [ - "34677:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "34677:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "34677:15:42" - } - ], - "name": "sendRootToStateBridge", - "nameLocation": "34626:21:42", - "parameters": { - "id": 33566, - "nodeType": "ParameterList", - "parameters": [], - "src": "34647:2:42" - }, - "returnParameters": { - "id": 33571, - "nodeType": "ParameterList", - "parameters": [], - "src": "34693:0:42" - }, - "scope": 34275, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "id": 33606, - "nodeType": "FunctionDefinition", - "src": "35021:195:42", - "nodes": [], - "body": { - "id": 33605, - "nodeType": "Block", - "src": "35180:36:42", - "nodes": [], - "statements": [ - { - "expression": { - "id": 33603, - "name": "_stateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32802, - "src": "35197:12:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "functionReturnParameters": 33602, - "id": 33604, - "nodeType": "Return", - "src": "35190:19:42" - } - ] - }, - "documentation": { - "id": 33593, - "nodeType": "StructuredDocumentation", - "src": "34850:166:42", - "text": "@notice Allows a caller to query the address of the current stateBridge.\n @return stateBridgeContract The address of the currently used stateBridge" - }, - "functionSelector": "91f262d3", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33596, - "kind": "modifierInvocation", - "modifierName": { - "id": 33595, - "name": "onlyProxy", - "nameLocations": [ - "35096:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "35096:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "35096:9:42" - }, - { - "id": 33598, - "kind": "modifierInvocation", - "modifierName": { - "id": 33597, - "name": "onlyInitialized", - "nameLocations": [ - "35114:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "35114:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "35114:15:42" - } - ], - "name": "stateBridge", - "nameLocation": "35030:11:42", - "parameters": { - "id": 33594, - "nodeType": "ParameterList", - "parameters": [], - "src": "35041:2:42" - }, - "returnParameters": { - "id": 33602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33601, - "mutability": "mutable", - "name": "stateBridgeContract", - "nameLocation": "35155:19:42", - "nodeType": "VariableDeclaration", - "scope": 33606, - "src": "35147:27:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - }, - "typeName": { - "id": 33600, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33599, - "name": "IBridge", - "nameLocations": [ - "35147:7:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34981, - "src": "35147:7:42" - }, - "referencedDeclaration": 34981, - "src": "35147:7:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "visibility": "internal" - } - ], - "src": "35146:29:42" - }, - "scope": 34275, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 33663, - "nodeType": "FunctionDefinition", - "src": "35417:559:42", - "nodes": [], - "body": { - "id": 33662, - "nodeType": "Block", - "src": "35560:416:42", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 33627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 33621, - "name": "newStateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33610, - "src": "35582:14:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - ], - "id": 33620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "35574:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 33619, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35574:7:42", - "typeDescriptions": {} - } - }, - "id": 33622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35574:23:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 33625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35609:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 33624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "35601:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 33623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35601:7:42", - "typeDescriptions": {} - } - }, - "id": 33626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35601:10:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "35574:37:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33632, - "nodeType": "IfStatement", - "src": "35570:102:42", - "trueBody": { - "id": 33631, - "nodeType": "Block", - "src": "35613:59:42", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33628, - "name": "InvalidStateBridgeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32878, - "src": "35634:25:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35634:27:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33630, - "nodeType": "RevertStatement", - "src": "35627:34:42" - } - ] - } - }, - { - "condition": { - "id": 33634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "35686:22:42", - "subExpression": { - "id": 33633, - "name": "_isStateBridgeEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32805, - "src": "35687:21:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33639, - "nodeType": "IfStatement", - "src": "35682:72:42", - "trueBody": { - "id": 33638, - "nodeType": "Block", - "src": "35710:44:42", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33635, - "name": "enableStateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33690, - "src": "35724:17:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 33636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35724:19:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33637, - "nodeType": "ExpressionStatement", - "src": "35724:19:42" - } - ] - } - }, - { - "assignments": [ - 33642 - ], - "declarations": [ - { - "constant": false, - "id": 33642, - "mutability": "mutable", - "name": "oldStateBridge", - "nameLocation": "35772:14:42", - "nodeType": "VariableDeclaration", - "scope": 33662, - "src": "35764:22:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - }, - "typeName": { - "id": 33641, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33640, - "name": "IBridge", - "nameLocations": [ - "35764:7:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34981, - "src": "35764:7:42" - }, - "referencedDeclaration": 34981, - "src": "35764:7:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "visibility": "internal" - } - ], - "id": 33644, - "initialValue": { - "id": 33643, - "name": "_stateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32802, - "src": "35789:12:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "35764:37:42" - }, - { - "expression": { - "id": 33647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33645, - "name": "_stateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32802, - "src": "35811:12:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 33646, - "name": "newStateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33610, - "src": "35826:14:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "src": "35811:29:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "id": 33648, - "nodeType": "ExpressionStatement", - "src": "35811:29:42" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 33650, - "name": "Dependency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32827, - "src": "35887:10:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Dependency_$32827_$", - "typeString": "type(enum WorldIDIdentityManagerImplV1.Dependency)" - } - }, - "id": 33651, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "35898:11:42", - "memberName": "StateBridge", - "nodeType": "MemberAccess", - "referencedDeclaration": 32823, - "src": "35887:22:42", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Dependency_$32827", - "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" - } - }, - { - "arguments": [ - { - "id": 33654, - "name": "oldStateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33642, - "src": "35919:14:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - ], - "id": 33653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "35911:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 33652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35911:7:42", - "typeDescriptions": {} - } - }, - "id": 33655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35911:23:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 33658, - "name": "newStateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33610, - "src": "35944:14:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - ], - "id": 33657, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "35936:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 33656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35936:7:42", - "typeDescriptions": {} - } - }, - "id": 33659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35936:23:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Dependency_$32827", - "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33649, - "name": "DependencyUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32906, - "src": "35856:17:42", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$32827_$_t_address_$_t_address_$returns$__$", - "typeString": "function (enum WorldIDIdentityManagerImplV1.Dependency,address,address)" - } - }, - "id": 33660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35856:113:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33661, - "nodeType": "EmitStatement", - "src": "35851:118:42" - } - ] - }, - "documentation": { - "id": 33607, - "nodeType": "StructuredDocumentation", - "src": "35222:190:42", - "text": "@notice Allows a caller to upgrade the stateBridge.\n @dev Only the owner of the contract can call this function.\n @param newStateBridge The new stateBridge contract" - }, - "functionSelector": "fa8ca810", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33613, - "kind": "modifierInvocation", - "modifierName": { - "id": 33612, - "name": "onlyProxy", - "nameLocations": [ - "35504:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "35504:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "35504:9:42" - }, - { - "id": 33615, - "kind": "modifierInvocation", - "modifierName": { - "id": 33614, - "name": "onlyInitialized", - "nameLocations": [ - "35522:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "35522:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "35522:15:42" - }, - { - "id": 33617, - "kind": "modifierInvocation", - "modifierName": { - "id": 33616, - "name": "onlyOwner", - "nameLocations": [ - "35546:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29157, - "src": "35546:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "35546:9:42" - } - ], - "name": "setStateBridge", - "nameLocation": "35426:14:42", - "parameters": { - "id": 33611, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33610, - "mutability": "mutable", - "name": "newStateBridge", - "nameLocation": "35449:14:42", - "nodeType": "VariableDeclaration", - "scope": 33663, - "src": "35441:22:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - }, - "typeName": { - "id": 33609, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33608, - "name": "IBridge", - "nameLocations": [ - "35441:7:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34981, - "src": "35441:7:42" - }, - "referencedDeclaration": 34981, - "src": "35441:7:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "visibility": "internal" - } - ], - "src": "35440:24:42" - }, - "returnParameters": { - "id": 33618, - "nodeType": "ParameterList", - "parameters": [], - "src": "35560:0:42" - }, - "scope": 34275, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 33690, - "nodeType": "FunctionDefinition", - "src": "36092:289:42", - "nodes": [], - "body": { - "id": 33689, - "nodeType": "Block", - "src": "36172:209:42", - "nodes": [], - "statements": [ - { - "condition": { - "id": 33674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "36186:22:42", - "subExpression": { - "id": 33673, - "name": "_isStateBridgeEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32805, - "src": "36187:21:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 33687, - "nodeType": "Block", - "src": "36316:59:42", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33684, - "name": "StateBridgeAlreadyEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32872, - "src": "36337:25:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36337:27:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33686, - "nodeType": "RevertStatement", - "src": "36330:34:42" - } - ] - }, - "id": 33688, - "nodeType": "IfStatement", - "src": "36182:193:42", - "trueBody": { - "id": 33683, - "nodeType": "Block", - "src": "36210:100:42", - "statements": [ - { - "expression": { - "id": 33677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33675, - "name": "_isStateBridgeEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32805, - "src": "36224:21:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 33676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36248:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "36224:28:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33678, - "nodeType": "ExpressionStatement", - "src": "36224:28:42" - }, - { - "eventCall": { - "arguments": [ - { - "hexValue": "74727565", - "id": 33680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36294:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 33679, - "name": "StateBridgeStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32911, - "src": "36271:22:42", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", - "typeString": "function (bool)" - } - }, - "id": 33681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36271:28:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33682, - "nodeType": "EmitStatement", - "src": "36266:33:42" - } - ] - } - } - ] - }, - "documentation": { - "id": 33664, - "nodeType": "StructuredDocumentation", - "src": "35982:105:42", - "text": "@notice Enables the state bridge.\n @dev Only the owner of the contract can call this function." - }, - "functionSelector": "61ea6a8d", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33667, - "kind": "modifierInvocation", - "modifierName": { - "id": 33666, - "name": "onlyProxy", - "nameLocations": [ - "36136:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "36136:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "36136:9:42" - }, - { - "id": 33669, - "kind": "modifierInvocation", - "modifierName": { - "id": 33668, - "name": "onlyInitialized", - "nameLocations": [ - "36146:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "36146:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "36146:15:42" - }, - { - "id": 33671, - "kind": "modifierInvocation", - "modifierName": { - "id": 33670, - "name": "onlyOwner", - "nameLocations": [ - "36162:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29157, - "src": "36162:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "36162:9:42" - } - ], - "name": "enableStateBridge", - "nameLocation": "36101:17:42", - "parameters": { - "id": 33665, - "nodeType": "ParameterList", - "parameters": [], - "src": "36118:2:42" - }, - "returnParameters": { - "id": 33672, - "nodeType": "ParameterList", - "parameters": [], - "src": "36172:0:42" - }, - "scope": 34275, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 33716, - "nodeType": "FunctionDefinition", - "src": "36498:292:42", - "nodes": [], - "body": { - "id": 33715, - "nodeType": "Block", - "src": "36579:211:42", - "nodes": [], - "statements": [ - { - "condition": { - "id": 33700, - "name": "_isStateBridgeEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32805, - "src": "36593:21:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 33713, - "nodeType": "Block", - "src": "36724:60:42", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33710, - "name": "StateBridgeAlreadyDisabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32875, - "src": "36745:26:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36745:28:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33712, - "nodeType": "RevertStatement", - "src": "36738:35:42" - } - ] - }, - "id": 33714, - "nodeType": "IfStatement", - "src": "36589:195:42", - "trueBody": { - "id": 33709, - "nodeType": "Block", - "src": "36616:102:42", - "statements": [ - { - "expression": { - "id": 33703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33701, - "name": "_isStateBridgeEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32805, - "src": "36630:21:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 33702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36654:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "36630:29:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33704, - "nodeType": "ExpressionStatement", - "src": "36630:29:42" - }, - { - "eventCall": { - "arguments": [ - { - "hexValue": "66616c7365", - "id": 33706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36701:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 33705, - "name": "StateBridgeStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32911, - "src": "36678:22:42", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", - "typeString": "function (bool)" - } - }, - "id": 33707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36678:29:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33708, - "nodeType": "EmitStatement", - "src": "36673:34:42" - } - ] - } - } - ] - }, - "documentation": { - "id": 33691, - "nodeType": "StructuredDocumentation", - "src": "36387:106:42", - "text": "@notice Disables the state bridge.\n @dev Only the owner of the contract can call this function." - }, - "functionSelector": "a26b810e", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33694, - "kind": "modifierInvocation", - "modifierName": { - "id": 33693, - "name": "onlyProxy", - "nameLocations": [ - "36543:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "36543:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "36543:9:42" - }, - { - "id": 33696, - "kind": "modifierInvocation", - "modifierName": { - "id": 33695, - "name": "onlyInitialized", - "nameLocations": [ - "36553:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "36553:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "36553:15:42" - }, - { - "id": 33698, - "kind": "modifierInvocation", - "modifierName": { - "id": 33697, - "name": "onlyOwner", - "nameLocations": [ - "36569:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29157, - "src": "36569:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "36569:9:42" - } - ], - "name": "disableStateBridge", - "nameLocation": "36507:18:42", - "parameters": { - "id": 33692, - "nodeType": "ParameterList", - "parameters": [], - "src": "36525:2:42" - }, - "returnParameters": { - "id": 33699, - "nodeType": "ParameterList", - "parameters": [], - "src": "36579:0:42" - }, - "scope": 34275, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 33773, - "nodeType": "FunctionDefinition", - "src": "37286:567:42", - "nodes": [], - "body": { - "id": 33772, - "nodeType": "Block", - "src": "37443:410:42", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33729, - "name": "root", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33719, - "src": "37457:4:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 33730, - "name": "_latestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "37465:11:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37457:19:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 33770, - "nodeType": "Block", - "src": "37546:301:42", - "statements": [ - { - "assignments": [ - 33740 - ], - "declarations": [ - { - "constant": false, - "id": 33740, - "mutability": "mutable", - "name": "rootTimestamp", - "nameLocation": "37568:13:42", - "nodeType": "VariableDeclaration", - "scope": 33770, - "src": "37560:21:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 33739, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "37560:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - } - ], - "id": 33744, - "initialValue": { - "baseExpression": { - "id": 33741, - "name": "rootHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32769, - "src": "37584:11:42", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", - "typeString": "mapping(uint256 => uint128)" - } - }, - "id": 33743, - "indexExpression": { - "id": 33742, - "name": "root", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33719, - "src": "37596:4:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "37584:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "37560:41:42" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "id": 33747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33745, - "name": "rootTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33740, - "src": "37620:13:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 33746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37637:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "37620:18:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33752, - "nodeType": "IfStatement", - "src": "37616:78:42", - "trueBody": { - "id": 33751, - "nodeType": "Block", - "src": "37640:54:42", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33748, - "name": "NO_SUCH_ROOT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32841, - "src": "37665:12:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_RootInfo_$32815_memory_ptr_$", - "typeString": "function () pure returns (struct WorldIDIdentityManagerImplV1.RootInfo memory)" - } - }, - "id": 33749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "37665:14:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_RootInfo_$32815_memory_ptr", - "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo memory" - } - }, - "functionReturnParameters": 33728, - "id": 33750, - "nodeType": "Return", - "src": "37658:21:42" - } - ] - } - }, - { - "assignments": [ - 33754 - ], - "declarations": [ - { - "constant": false, - "id": 33754, - "mutability": "mutable", - "name": "isValid", - "nameLocation": "37713:7:42", - "nodeType": "VariableDeclaration", - "scope": 33770, - "src": "37708:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33753, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "37708:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 33763, - "initialValue": { - "id": 33762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "37723:54:42", - "subExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33755, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "37725:5:42", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 33756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37731:9:42", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "37725:15:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 33757, - "name": "rootTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33740, - "src": "37743:13:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "src": "37725:31:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 33759, - "name": "rootHistoryExpiry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32772, - "src": "37759:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "37725:51:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 33761, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "37724:53:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "37708:69:42" - }, - { - "expression": { - "arguments": [ - { - "id": 33765, - "name": "root", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33719, - "src": "37807:4:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33766, - "name": "rootTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33740, - "src": "37813:13:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - { - "id": 33767, - "name": "isValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33754, - "src": "37828:7:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 33764, - "name": "RootInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32815, - "src": "37798:8:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_RootInfo_$32815_storage_ptr_$", - "typeString": "type(struct WorldIDIdentityManagerImplV1.RootInfo storage pointer)" - } - }, - "id": 33768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "37798:38:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_RootInfo_$32815_memory_ptr", - "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo memory" - } - }, - "functionReturnParameters": 33728, - "id": 33769, - "nodeType": "Return", - "src": "37791:45:42" - } - ] - }, - "id": 33771, - "nodeType": "IfStatement", - "src": "37453:394:42", - "trueBody": { - "id": 33738, - "nodeType": "Block", - "src": "37478:62:42", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 33733, - "name": "_latestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "37508:11:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "30", - "id": 33734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37521:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "hexValue": "74727565", - "id": 33735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "37524:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 33732, - "name": "RootInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32815, - "src": "37499:8:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_RootInfo_$32815_storage_ptr_$", - "typeString": "type(struct WorldIDIdentityManagerImplV1.RootInfo storage pointer)" - } - }, - "id": 33736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "37499:30:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_RootInfo_$32815_memory_ptr", - "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo memory" - } - }, - "functionReturnParameters": 33728, - "id": 33737, - "nodeType": "Return", - "src": "37492:37:42" - } - ] - } - } - ] - }, - "documentation": { - "id": 33717, - "nodeType": "StructuredDocumentation", - "src": "36796:485:42", - "text": "@notice Allows a caller to query the root history for information about a given root.\n @dev Should be used sparingly as the query can be quite expensive.\n @param root The root for which you are querying information.\n @return rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist.\n Note that if the queried root is the current, the timestamp will be invalid as the\n root has not been superseded." - }, - "functionSelector": "3f7c178d", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33722, - "kind": "modifierInvocation", - "modifierName": { - "id": 33721, - "name": "onlyProxy", - "nameLocations": [ - "37371:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "37371:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "37371:9:42" - }, - { - "id": 33724, - "kind": "modifierInvocation", - "modifierName": { - "id": 33723, - "name": "onlyInitialized", - "nameLocations": [ - "37389:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "37389:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "37389:15:42" - } - ], - "name": "queryRoot", - "nameLocation": "37295:9:42", - "parameters": { - "id": 33720, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33719, - "mutability": "mutable", - "name": "root", - "nameLocation": "37313:4:42", - "nodeType": "VariableDeclaration", - "scope": 33773, - "src": "37305:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33718, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37305:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "37304:14:42" - }, - "returnParameters": { - "id": 33728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33727, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33773, - "src": "37422:15:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RootInfo_$32815_memory_ptr", - "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo" - }, - "typeName": { - "id": 33726, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33725, - "name": "RootInfo", - "nameLocations": [ - "37422:8:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 32815, - "src": "37422:8:42" - }, - "referencedDeclaration": 32815, - "src": "37422:8:42", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RootInfo_$32815_storage_ptr", - "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo" - } - }, - "visibility": "internal" - } - ], - "src": "37421:17:42" - }, - "scope": 34275, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 33851, - "nodeType": "FunctionDefinition", - "src": "38522:3055:42", - "nodes": [], - "body": { - "id": 33850, - "nodeType": "Block", - "src": "38664:2913:42", - "nodes": [], - "statements": [ - { - "assignments": [ - 33781 - ], - "declarations": [ - { - "constant": false, - "id": 33781, - "mutability": "mutable", - "name": "offset", - "nameLocation": "38682:6:42", - "nodeType": "VariableDeclaration", - "scope": 33850, - "src": "38674:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33780, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38674:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33782, - "nodeType": "VariableDeclarationStatement", - "src": "38674:14:42" - }, - { - "assignments": [ - 33784 - ], - "declarations": [ - { - "constant": false, - "id": 33784, - "mutability": "mutable", - "name": "max", - "nameLocation": "38706:3:42", - "nodeType": "VariableDeclaration", - "scope": 33850, - "src": "38698:11:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33783, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38698:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33785, - "nodeType": "VariableDeclarationStatement", - "src": "38698:11:42" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "38744:1168:42", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "38814:36:42", - "value": { - "name": "identityCommitments.offset", - "nodeType": "YulIdentifier", - "src": "38824:26:42" - }, - "variableNames": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "38814:6:42" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "38928:54:42", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "38939:6:42" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "38951:1:42", - "type": "", - "value": "5" - }, - { - "name": "identityCommitments.length", - "nodeType": "YulIdentifier", - "src": "38954:26:42" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "38947:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "38947:34:42" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "38935:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "38935:47:42" - }, - "variableNames": [ - { - "name": "max", - "nodeType": "YulIdentifier", - "src": "38928:3:42" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "39899:3:42", - "statements": [] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "39761:6:42" - }, - { - "name": "max", - "nodeType": "YulIdentifier", - "src": "39769:3:42" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "39758:2:42" - }, - "nodeType": "YulFunctionCall", - "src": "39758:15:42" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "39795:6:42" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "39782:12:42" - }, - "nodeType": "YulFunctionCall", - "src": "39782:20:42" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "39804:1:42", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "39778:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "39778:28:42" - }, - { - "name": "SNARK_SCALAR_FIELD_MIN_ONE", - "nodeType": "YulIdentifier", - "src": "39808:26:42" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "39775:2:42" - }, - "nodeType": "YulFunctionCall", - "src": "39775:60:42" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "39754:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "39754:82:42" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "39853:29:42", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "39855:25:42", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "39869:6:42" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "39877:2:42", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "39865:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "39865:15:42" - }, - "variableNames": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "39855:6:42" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "39734:3:42", - "statements": [] - }, - "src": "39714:188:42" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 32786, - "isOffset": false, - "isSlot": false, - "src": "39808:26:42", - "valueSize": 1 - }, - { - "declaration": 33777, - "isOffset": false, - "isSlot": false, - "src": "38954:26:42", - "suffix": "length", - "valueSize": 1 - }, - { - "declaration": 33777, - "isOffset": true, - "isSlot": false, - "src": "38824:26:42", - "suffix": "offset", - "valueSize": 1 - }, - { - "declaration": 33784, - "isOffset": false, - "isSlot": false, - "src": "38928:3:42", - "valueSize": 1 - }, - { - "declaration": 33784, - "isOffset": false, - "isSlot": false, - "src": "39769:3:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "38814:6:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "38939:6:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "39761:6:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "39795:6:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "39855:6:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "39869:6:42", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 33786, - "nodeType": "InlineAssembly", - "src": "38719:1193:42" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33787, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33781, - "src": "40020:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33788, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33784, - "src": "40029:3:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40020:12:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33849, - "nodeType": "IfStatement", - "src": "40016:1555:42", - "trueBody": { - "id": 33848, - "nodeType": "Block", - "src": "40034:1537:42", - "statements": [ - { - "assignments": [ - 33791 - ], - "declarations": [ - { - "constant": false, - "id": 33791, - "mutability": "mutable", - "name": "index", - "nameLocation": "40056:5:42", - "nodeType": "VariableDeclaration", - "scope": 33848, - "src": "40048:13:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33790, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "40048:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33802, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33792, - "name": "identityCommitments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33777, - "src": "40064:19:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 33793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40084:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "40064:26:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33794, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33784, - "src": "40095:3:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 33795, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33781, - "src": "40101:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40095:12:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33797, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40094:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "35", - "id": 33798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40112:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "src": "40094:19:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33800, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "40093:21:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40064:50:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "40048:66:42" - }, - { - "assignments": [ - 33804 - ], - "declarations": [ - { - "constant": false, - "id": 33804, - "mutability": "mutable", - "name": "element", - "nameLocation": "40136:7:42", - "nodeType": "VariableDeclaration", - "scope": 33848, - "src": "40128:15:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33803, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "40128:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33808, - "initialValue": { - "baseExpression": { - "id": 33805, - "name": "identityCommitments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33777, - "src": "40146:19:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 33807, - "indexExpression": { - "id": 33806, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33791, - "src": "40166:5:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40146:26:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "40128:44:42" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33809, - "name": "element", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33804, - "src": "40358:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 33810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40369:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "40358:12:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33836, - "name": "element", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33804, - "src": "41426:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 33837, - "name": "SNARK_SCALAR_FIELD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32783, - "src": "41437:18:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41426:29:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33846, - "nodeType": "IfStatement", - "src": "41422:139:42", - "trueBody": { - "id": 33845, - "nodeType": "Block", - "src": "41457:104:42", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 33840, - "name": "UnreducedElementType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32819, - "src": "41497:20:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_UnreducedElementType_$32819_$", - "typeString": "type(enum WorldIDIdentityManagerImplV1.UnreducedElementType)" - } - }, - "id": 33841, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "41518:18:42", - "memberName": "IdentityCommitment", - "nodeType": "MemberAccess", - "referencedDeclaration": 32817, - "src": "41497:39:42", - "typeDescriptions": { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - } - }, - { - "id": 33842, - "name": "element", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33804, - "src": "41538:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33839, - "name": "UnreducedElement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32849, - "src": "41480:16:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_enum$_UnreducedElementType_$32819_$_t_uint256_$returns$__$", - "typeString": "function (enum WorldIDIdentityManagerImplV1.UnreducedElementType,uint256) pure" - } - }, - "id": 33843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "41480:66:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33844, - "nodeType": "RevertStatement", - "src": "41473:73:42" - } - ] - } - }, - "id": 33847, - "nodeType": "IfStatement", - "src": "40354:1207:42", - "trueBody": { - "id": 33835, - "nodeType": "Block", - "src": "40372:911:42", - "statements": [ - { - "AST": { - "nodeType": "YulBlock", - "src": "40415:547:42", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "40495:25:42", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "40509:6:42" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "40517:2:42", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "40505:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "40505:15:42" - }, - "variableNames": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "40495:6:42" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "40941:3:42", - "statements": [] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "40823:6:42" - }, - { - "name": "max", - "nodeType": "YulIdentifier", - "src": "40831:3:42" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "40820:2:42" - }, - "nodeType": "YulFunctionCall", - "src": "40820:15:42" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "40857:6:42" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "40844:12:42" - }, - "nodeType": "YulFunctionCall", - "src": "40844:20:42" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "40837:6:42" - }, - "nodeType": "YulFunctionCall", - "src": "40837:28:42" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "40816:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "40816:50:42" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "40889:29:42", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "40891:25:42", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "40905:6:42" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "40913:2:42", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "40901:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "40901:15:42" - }, - "variableNames": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "40891:6:42" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "40790:3:42", - "statements": [] - }, - "src": "40764:180:42" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 33784, - "isOffset": false, - "isSlot": false, - "src": "40831:3:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "40495:6:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "40509:6:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "40823:6:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "40857:6:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "40891:6:42", - "valueSize": 1 - }, - { - "declaration": 33781, - "isOffset": false, - "isSlot": false, - "src": "40905:6:42", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 33812, - "nodeType": "InlineAssembly", - "src": "40390:572:42" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33813, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33781, - "src": "41103:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33814, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33784, - "src": "41112:3:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41103:12:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33834, - "nodeType": "IfStatement", - "src": "41099:170:42", - "trueBody": { - "id": 33833, - "nodeType": "Block", - "src": "41117:152:42", - "statements": [ - { - "expression": { - "id": 33827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33816, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33791, - "src": "41139:5:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33817, - "name": "identityCommitments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33777, - "src": "41147:19:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 33818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41167:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "41147:26:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33819, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33784, - "src": "41178:3:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 33820, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33781, - "src": "41184:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41178:12:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33822, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "41177:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "35", - "id": 33823, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41195:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "src": "41177:19:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33825, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "41176:21:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41147:50:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "41139:58:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33828, - "nodeType": "ExpressionStatement", - "src": "41139:58:42" - }, - { - "errorCall": { - "arguments": [ - { - "id": 33830, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33791, - "src": "41244:5:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33829, - "name": "InvalidCommitment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32859, - "src": "41226:17:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 33831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "41226:24:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33832, - "nodeType": "RevertStatement", - "src": "41219:31:42" - } - ] - } - } - ] - } - } - ] - } - } - ] - }, - "documentation": { - "id": 33774, - "nodeType": "StructuredDocumentation", - "src": "37859:658:42", - "text": "@notice Validates an array of identity commitments, reverting if it finds one that is\n invalid or has not been reduced.\n @dev Identities are not valid if an identity is a non-zero element that occurs after a zero\n element in the array.\n @param identityCommitments The array of identity commitments to be validated.\n @custom:reverts Reverts with `InvalidCommitment` if one or more of the provided commitments\n is invalid.\n @custom:reverts Reverts with `UnreducedElement` if one or more of the provided commitments\n is not in reduced form." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "validateIdentityCommitmentsForRegistration", - "nameLocation": "38531:42:42", - "parameters": { - "id": 33778, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33777, - "mutability": "mutable", - "name": "identityCommitments", - "nameLocation": "38593:19:42", - "nodeType": "VariableDeclaration", - "scope": 33851, - "src": "38574:38:42", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 33775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38574:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33776, - "nodeType": "ArrayTypeName", - "src": "38574:9:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "38573:40:42" - }, - "returnParameters": { - "id": 33779, - "nodeType": "ParameterList", - "parameters": [], - "src": "38664:0:42" - }, - "scope": 34275, - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "id": 33895, - "nodeType": "FunctionDefinition", - "src": "41583:1231:42", - "nodes": [], - "body": { - "id": 33894, - "nodeType": "Block", - "src": "41711:1103:42", - "nodes": [], - "statements": [ - { - "assignments": [ - 33858 - ], - "declarations": [ - { - "constant": false, - "id": 33858, - "mutability": "mutable", - "name": "offset", - "nameLocation": "41729:6:42", - "nodeType": "VariableDeclaration", - "scope": 33894, - "src": "41721:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33857, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "41721:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33859, - "nodeType": "VariableDeclarationStatement", - "src": "41721:14:42" - }, - { - "assignments": [ - 33861 - ], - "declarations": [ - { - "constant": false, - "id": 33861, - "mutability": "mutable", - "name": "max", - "nameLocation": "41753:3:42", - "nodeType": "VariableDeclaration", - "scope": 33894, - "src": "41745:11:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33860, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "41745:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33862, - "nodeType": "VariableDeclarationStatement", - "src": "41745:11:42" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "41791:675:42", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "41861:36:42", - "value": { - "name": "identityCommitments.offset", - "nodeType": "YulIdentifier", - "src": "41871:26:42" - }, - "variableNames": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "41861:6:42" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "41975:54:42", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "41986:6:42" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "41998:1:42", - "type": "", - "value": "5" - }, - { - "name": "identityCommitments.length", - "nodeType": "YulIdentifier", - "src": "42001:26:42" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "41994:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "41994:34:42" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "41982:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "41982:47:42" - }, - "variableNames": [ - { - "name": "max", - "nodeType": "YulIdentifier", - "src": "41975:3:42" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "42453:3:42", - "statements": [] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "42331:6:42" - }, - { - "name": "max", - "nodeType": "YulIdentifier", - "src": "42339:3:42" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "42328:2:42" - }, - "nodeType": "YulFunctionCall", - "src": "42328:15:42" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "42361:6:42" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "42348:12:42" - }, - "nodeType": "YulFunctionCall", - "src": "42348:20:42" - }, - { - "name": "SNARK_SCALAR_FIELD", - "nodeType": "YulIdentifier", - "src": "42370:18:42" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "42345:2:42" - }, - "nodeType": "YulFunctionCall", - "src": "42345:44:42" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "42324:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "42324:66:42" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "42407:29:42", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "42409:25:42", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "42423:6:42" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "42431:2:42", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "42419:3:42" - }, - "nodeType": "YulFunctionCall", - "src": "42419:15:42" - }, - "variableNames": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "42409:6:42" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "42304:3:42", - "statements": [] - }, - "src": "42284:172:42" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 32783, - "isOffset": false, - "isSlot": false, - "src": "42370:18:42", - "valueSize": 1 - }, - { - "declaration": 33854, - "isOffset": false, - "isSlot": false, - "src": "42001:26:42", - "suffix": "length", - "valueSize": 1 - }, - { - "declaration": 33854, - "isOffset": true, - "isSlot": false, - "src": "41871:26:42", - "suffix": "offset", - "valueSize": 1 - }, - { - "declaration": 33861, - "isOffset": false, - "isSlot": false, - "src": "41975:3:42", - "valueSize": 1 - }, - { - "declaration": 33861, - "isOffset": false, - "isSlot": false, - "src": "42339:3:42", - "valueSize": 1 - }, - { - "declaration": 33858, - "isOffset": false, - "isSlot": false, - "src": "41861:6:42", - "valueSize": 1 - }, - { - "declaration": 33858, - "isOffset": false, - "isSlot": false, - "src": "41986:6:42", - "valueSize": 1 - }, - { - "declaration": 33858, - "isOffset": false, - "isSlot": false, - "src": "42331:6:42", - "valueSize": 1 - }, - { - "declaration": 33858, - "isOffset": false, - "isSlot": false, - "src": "42361:6:42", - "valueSize": 1 - }, - { - "declaration": 33858, - "isOffset": false, - "isSlot": false, - "src": "42409:6:42", - "valueSize": 1 - }, - { - "declaration": 33858, - "isOffset": false, - "isSlot": false, - "src": "42423:6:42", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 33863, - "nodeType": "InlineAssembly", - "src": "41766:700:42" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33864, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33858, - "src": "42558:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33865, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33861, - "src": "42567:3:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42558:12:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33893, - "nodeType": "IfStatement", - "src": "42554:254:42", - "trueBody": { - "id": 33892, - "nodeType": "Block", - "src": "42572:236:42", - "statements": [ - { - "assignments": [ - 33868 - ], - "declarations": [ - { - "constant": false, - "id": 33868, - "mutability": "mutable", - "name": "index", - "nameLocation": "42594:5:42", - "nodeType": "VariableDeclaration", - "scope": 33892, - "src": "42586:13:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33867, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42586:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33879, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33869, - "name": "identityCommitments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33854, - "src": "42602:19:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 33870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42622:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "42602:26:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33871, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33861, - "src": "42633:3:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 33872, - "name": "offset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33858, - "src": "42639:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42633:12:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33874, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42632:14:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "35", - "id": 33875, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42650:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "src": "42632:19:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33877, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42631:21:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "42602:50:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "42586:66:42" - }, - { - "assignments": [ - 33881 - ], - "declarations": [ - { - "constant": false, - "id": 33881, - "mutability": "mutable", - "name": "element", - "nameLocation": "42674:7:42", - "nodeType": "VariableDeclaration", - "scope": 33892, - "src": "42666:15:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33880, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42666:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33885, - "initialValue": { - "baseExpression": { - "id": 33882, - "name": "identityCommitments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33854, - "src": "42684:19:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 33884, - "indexExpression": { - "id": 33883, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33868, - "src": "42704:5:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "42684:26:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "42666:44:42" - }, - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 33887, - "name": "UnreducedElementType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32819, - "src": "42748:20:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_UnreducedElementType_$32819_$", - "typeString": "type(enum WorldIDIdentityManagerImplV1.UnreducedElementType)" - } - }, - "id": 33888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "42769:18:42", - "memberName": "IdentityCommitment", - "nodeType": "MemberAccess", - "referencedDeclaration": 32817, - "src": "42748:39:42", - "typeDescriptions": { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - } - }, - { - "id": 33889, - "name": "element", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33881, - "src": "42789:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_UnreducedElementType_$32819", - "typeString": "enum WorldIDIdentityManagerImplV1.UnreducedElementType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33886, - "name": "UnreducedElement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32849, - "src": "42731:16:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_enum$_UnreducedElementType_$32819_$_t_uint256_$returns$__$", - "typeString": "function (enum WorldIDIdentityManagerImplV1.UnreducedElementType,uint256) pure" - } - }, - "id": 33890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42731:66:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33891, - "nodeType": "RevertStatement", - "src": "42724:73:42" - } - ] - } + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 34466, + "nodeType": "ExpressionStatement", + "src": "22648:29:43" } ] }, + "documentation": { + "id": 34433, + "nodeType": "StructuredDocumentation", + "src": "21400:866:43", + "text": "@notice Calculates the input hash for the identity registration verifier.\n @dev Implements the computation described below.\n @param startIndex The index in the tree from which inserting started.\n @param preRoot The root value of the tree before these insertions were made.\n @param postRoot The root value of the tree after these insertions were made.\n @param identityCommitments The identities that were added to the tree to produce `postRoot`.\n @return hash The input hash calculated as described below.\n We keccak hash all input to save verification gas. Inputs are arranged as follows:\n StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1]\n 32\t || 256 || 256 || 256 || 256 || ... || 256 bits" + }, + "functionSelector": "8c76a909", "implemented": true, "kind": "function", - "modifiers": [], - "name": "validateArrayIsInReducedForm", - "nameLocation": "41592:28:42", + "modifiers": [ + { + "id": 34445, + "kind": "modifierInvocation", + "modifierName": { + "id": 34444, + "name": "onlyProxy", + "nameLocations": [ + "22471:9:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29855, + "src": "22471:9:43" + }, + "nodeType": "ModifierInvocation", + "src": "22471:9:43" + }, + { + "id": 34447, + "kind": "modifierInvocation", + "modifierName": { + "id": 34446, + "name": "onlyInitialized", + "nameLocations": [ + "22481:15:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 48444, + "src": "22481:15:43" + }, + "nodeType": "ModifierInvocation", + "src": "22481:15:43" + } + ], + "name": "calculateIdentityRegistrationInputHash", + "nameLocation": "22280:38:43", "parameters": { - "id": 33855, + "id": 34443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33854, + "id": 34435, "mutability": "mutable", - "name": "identityCommitments", - "nameLocation": "41640:19:42", + "name": "startIndex", + "nameLocation": "22335:10:43", "nodeType": "VariableDeclaration", - "scope": 33895, - "src": "41621:38:42", + "scope": 34468, + "src": "22328:17:43", "stateVariable": false, - "storageLocation": "calldata", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "baseType": { - "id": 33852, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "41621:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33853, - "nodeType": "ArrayTypeName", - "src": "41621:9:42", + "id": 34434, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "22328:6:43", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "visibility": "internal" - } - ], - "src": "41620:40:42" - }, - "returnParameters": { - "id": 33856, - "nodeType": "ParameterList", - "parameters": [], - "src": "41711:0:42" - }, - "scope": 34275, - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "id": 33914, - "nodeType": "FunctionDefinition", - "src": "43303:262:42", - "nodes": [], - "body": { - "id": 33913, - "nodeType": "Block", - "src": "43452:113:42", - "nodes": [], - "statements": [ + }, { - "expression": { - "arguments": [ - { - "id": 33906, - "name": "oldIdentities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33899, - "src": "43491:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "id": 33905, - "name": "validateArrayIsInReducedForm", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33895, - "src": "43462:28:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (uint256[] calldata) view" - } - }, - "id": 33907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "43462:43:42", - "tryCall": false, + "constant": false, + "id": 34437, + "mutability": "mutable", + "name": "preRoot", + "nameLocation": "22363:7:43", + "nodeType": "VariableDeclaration", + "scope": 34468, + "src": "22355:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34436, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22355:7:43", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 33908, - "nodeType": "ExpressionStatement", - "src": "43462:43:42" + "visibility": "internal" }, { - "expression": { - "arguments": [ - { - "id": 33910, - "name": "newIdentities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33902, - "src": "43544:13:42", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "id": 33909, - "name": "validateArrayIsInReducedForm", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33895, - "src": "43515:28:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (uint256[] calldata) view" - } - }, - "id": 33911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "43515:43:42", - "tryCall": false, + "constant": false, + "id": 34439, + "mutability": "mutable", + "name": "postRoot", + "nameLocation": "22388:8:43", + "nodeType": "VariableDeclaration", + "scope": 34468, + "src": "22380:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22380:7:43", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 33912, - "nodeType": "ExpressionStatement", - "src": "43515:43:42" - } - ] - }, - "documentation": { - "id": 33896, - "nodeType": "StructuredDocumentation", - "src": "42820:440:42", - "text": "@notice Validates the array of identities for each of the old and new commitments being in\n reduced form.\n @dev Must be called with arrays of the same length.\n @param oldIdentities The array of old values for the identities.\n @param newIdentities The array of new values for the identities.\n @custom:reverts UnreducedElement If one or more of the provided commitments is not in" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "validateIdentitiesForUpdate", - "nameLocation": "43312:27:42", - "parameters": { - "id": 33903, - "nodeType": "ParameterList", - "parameters": [ + "visibility": "internal" + }, { "constant": false, - "id": 33899, + "id": 34442, "mutability": "mutable", - "name": "oldIdentities", - "nameLocation": "43368:13:42", + "name": "identityCommitments", + "nameLocation": "22425:19:43", "nodeType": "VariableDeclaration", - "scope": 33914, - "src": "43349:32:42", + "scope": 34468, + "src": "22406:38:43", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -17366,84 +7567,197 @@ }, "typeName": { "baseType": { - "id": 33897, + "id": 34440, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "43349:7:42", + "src": "22406:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 33898, + "id": 34441, "nodeType": "ArrayTypeName", - "src": "43349:9:42", + "src": "22406:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" - }, + } + ], + "src": "22318:132:43" + }, + "returnParameters": { + "id": 34450, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 33902, + "id": 34449, "mutability": "mutable", - "name": "newIdentities", - "nameLocation": "43410:13:42", + "name": "hash", + "nameLocation": "22514:4:43", "nodeType": "VariableDeclaration", - "scope": 33914, - "src": "43391:32:42", + "scope": 34468, + "src": "22506:12:43", "stateVariable": false, - "storageLocation": "calldata", + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "baseType": { - "id": 33900, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "43391:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33901, - "nodeType": "ArrayTypeName", - "src": "43391:9:42", + "id": 34448, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "22506:7:43", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "visibility": "internal" } ], - "src": "43339:90:42" + "src": "22505:14:43" }, - "returnParameters": { - "id": 33904, + "scope": 34869, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 34481, + "nodeType": "FunctionDefinition", + "src": "22812:121:43", + "nodes": [], + "body": { + "id": 34480, + "nodeType": "Block", + "src": "22898:35:43", + "nodes": [], + "statements": [ + { + "expression": { + "id": 34478, + "name": "_latestRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34024, + "src": "22915:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 34477, + "id": 34479, + "nodeType": "Return", + "src": "22908:18:43" + } + ] + }, + "documentation": { + "id": 34469, + "nodeType": "StructuredDocumentation", + "src": "22690:117:43", + "text": "@notice Allows a caller to query the latest root.\n @return root The value of the latest tree root." + }, + "functionSelector": "d7b0fef1", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 34472, + "kind": "modifierInvocation", + "modifierName": { + "id": 34471, + "name": "onlyProxy", + "nameLocations": [ + "22854:9:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29855, + "src": "22854:9:43" + }, + "nodeType": "ModifierInvocation", + "src": "22854:9:43" + }, + { + "id": 34474, + "kind": "modifierInvocation", + "modifierName": { + "id": 34473, + "name": "onlyInitialized", + "nameLocations": [ + "22864:15:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 48444, + "src": "22864:15:43" + }, + "nodeType": "ModifierInvocation", + "src": "22864:15:43" + } + ], + "name": "latestRoot", + "nameLocation": "22821:10:43", + "parameters": { + "id": 34470, "nodeType": "ParameterList", "parameters": [], - "src": "43452:0:42" + "src": "22831:2:43" + }, + "returnParameters": { + "id": 34477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34476, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 34481, + "src": "22889:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22889:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22888:9:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "view", "virtual": true, - "visibility": "internal" + "visibility": "public" }, { - "id": 33956, + "id": 34538, "nodeType": "FunctionDefinition", - "src": "44008:638:42", + "src": "23429:567:43", "nodes": [], "body": { - "id": 33955, + "id": 34537, "nodeType": "Block", - "src": "44094:552:42", + "src": "23586:410:43", "nodes": [], "statements": [ { @@ -17452,18 +7766,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 33926, + "id": 34496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 33924, + "id": 34494, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33917, - "src": "44152:4:42", + "referencedDeclaration": 34484, + "src": "23600:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17472,1048 +7786,1166 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 33925, + "id": 34495, "name": "_latestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "44160:11:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "44152:19:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33929, - "nodeType": "IfStatement", - "src": "44148:56:42", - "trueBody": { - "id": 33928, - "nodeType": "Block", - "src": "44173:31:42", - "statements": [ - { - "functionReturnParameters": 33923, - "id": 33927, - "nodeType": "Return", - "src": "44187:7:42" - } - ] - } - }, - { - "assignments": [ - 33931 - ], - "declarations": [ - { - "constant": false, - "id": 33931, - "mutability": "mutable", - "name": "rootTimestamp", - "nameLocation": "44287:13:42", - "nodeType": "VariableDeclaration", - "scope": 33955, - "src": "44279:21:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 33930, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "44279:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - } - ], - "id": 33935, - "initialValue": { - "baseExpression": { - "id": 33932, - "name": "rootHistory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32769, - "src": "44303:11:42", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", - "typeString": "mapping(uint256 => uint128)" - } - }, - "id": 33934, - "indexExpression": { - "id": 33933, - "name": "root", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33917, - "src": "44315:4:42", + "referencedDeclaration": 34024, + "src": "23608:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "44303:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "44279:41:42" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "id": 33938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33936, - "name": "rootTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33931, - "src": "44403:13:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 33937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "44420:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "44403:18:42", + "src": "23600:19:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 33943, - "nodeType": "IfStatement", - "src": "44399:73:42", - "trueBody": { - "id": 33942, + "falseBody": { + "id": 34535, "nodeType": "Block", - "src": "44423:49:42", + "src": "23689:301:43", "statements": [ { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33939, - "name": "NonExistentRoot", + "assignments": [ + 34505 + ], + "declarations": [ + { + "constant": false, + "id": 34505, + "mutability": "mutable", + "name": "rootTimestamp", + "nameLocation": "23711:13:43", + "nodeType": "VariableDeclaration", + "scope": 34535, + "src": "23703:21:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 34504, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "23703:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "id": 34509, + "initialValue": { + "baseExpression": { + "id": 34506, + "name": "rootHistory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34965, - "src": "44444:15:42", + "referencedDeclaration": 34029, + "src": "23727:11:43", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", + "typeString": "mapping(uint256 => uint128)" + } + }, + "id": 34508, + "indexExpression": { + "id": 34507, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34484, + "src": "23739:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 33940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23727:17:43", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23703:41:43" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "id": 34512, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "44444:17:42", - "tryCall": false, + "leftExpression": { + "id": 34510, + "name": "rootTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34505, + "src": "23763:13:43", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 34511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23780:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "23763:18:43", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 33941, - "nodeType": "RevertStatement", - "src": "44437:24:42" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 34517, + "nodeType": "IfStatement", + "src": "23759:78:43", + "trueBody": { + "id": 34516, + "nodeType": "Block", + "src": "23783:54:43", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34513, + "name": "NO_SUCH_ROOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34098, + "src": "23808:12:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_RootInfo_$34069_memory_ptr_$", + "typeString": "function () pure returns (struct WorldIDIdentityManagerImplV1.RootInfo memory)" + } + }, + "id": 34514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23808:14:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootInfo_$34069_memory_ptr", + "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo memory" + } + }, + "functionReturnParameters": 34493, + "id": 34515, + "nodeType": "Return", + "src": "23801:21:43" + } + ] + } }, - "id": 33947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33944, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "44542:5:42", + { + "assignments": [ + 34519 + ], + "declarations": [ + { + "constant": false, + "id": 34519, + "mutability": "mutable", + "name": "isValid", + "nameLocation": "23856:7:43", + "nodeType": "VariableDeclaration", + "scope": 34535, + "src": "23851:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 34518, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23851:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 34528, + "initialValue": { + "id": 34527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "23866:54:43", + "subExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 34520, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "23868:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 34521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23874:9:43", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "23868:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 34522, + "name": "rootTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34505, + "src": "23886:13:43", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "23868:31:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 34524, + "name": "rootHistoryExpiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34032, + "src": "23902:17:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23868:51:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 34526, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "23867:53:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 33945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "44548:9:42", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "44542:15:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 33946, - "name": "rootTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33931, - "src": "44560:13:42", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } + "nodeType": "VariableDeclarationStatement", + "src": "23851:69:43" }, - "src": "44542:31:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 33948, - "name": "rootHistoryExpiry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32772, - "src": "44576:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "44542:51:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33954, - "nodeType": "IfStatement", - "src": "44538:102:42", - "trueBody": { - "id": 33953, - "nodeType": "Block", - "src": "44595:45:42", - "statements": [ { - "errorCall": { - "arguments": [], + "expression": { + "arguments": [ + { + "id": 34530, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34484, + "src": "23950:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 34531, + "name": "rootTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34505, + "src": "23956:13:43", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "id": 34532, + "name": "isValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34519, + "src": "23971:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], "expression": { - "argumentTypes": [], - "id": 33950, - "name": "ExpiredRoot", + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 34529, + "name": "RootInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34962, - "src": "44616:11:42", + "referencedDeclaration": 34069, + "src": "23941:8:43", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" + "typeIdentifier": "t_type$_t_struct$_RootInfo_$34069_storage_ptr_$", + "typeString": "type(struct WorldIDIdentityManagerImplV1.RootInfo storage pointer)" } }, - "id": 33951, + "id": 34533, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "44616:13:42", + "src": "23941:38:43", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_RootInfo_$34069_memory_ptr", + "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo memory" } }, - "id": 33952, - "nodeType": "RevertStatement", - "src": "44609:20:42" + "functionReturnParameters": 34493, + "id": 34534, + "nodeType": "Return", + "src": "23934:45:43" } ] - } - } - ] - }, - "documentation": { - "id": 33915, - "nodeType": "StructuredDocumentation", - "src": "43571:432:42", - "text": "@notice Reverts if the provided root value is not valid.\n @dev A root is valid if it is either the latest root, or not the latest root but has not\n expired.\n @param root The root of the merkle tree to check for validity.\n @custom:reverts ExpiredRoot If the provided `root` has expired.\n @custom:reverts NonExistentRoot If the provided `root` does not exist in the history." - }, - "functionSelector": "f2358e1d", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33920, - "kind": "modifierInvocation", - "modifierName": { - "id": 33919, - "name": "onlyProxy", - "nameLocations": [ - "44068:9:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29855, - "src": "44068:9:42" - }, - "nodeType": "ModifierInvocation", - "src": "44068:9:42" - }, - { - "id": 33922, - "kind": "modifierInvocation", - "modifierName": { - "id": 33921, - "name": "onlyInitialized", - "nameLocations": [ - "44078:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "44078:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "44078:15:42" - } - ], - "name": "requireValidRoot", - "nameLocation": "44017:16:42", - "parameters": { - "id": 33918, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33917, - "mutability": "mutable", - "name": "root", - "nameLocation": "44042:4:42", - "nodeType": "VariableDeclaration", - "scope": 33956, - "src": "44034:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33916, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "44034:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } }, - "visibility": "internal" - } - ], - "src": "44033:14:42" - }, - "returnParameters": { - "id": 33923, - "nodeType": "ParameterList", - "parameters": [], - "src": "44094:0:42" - }, - "scope": 34275, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 33972, - "nodeType": "FunctionDefinition", - "src": "44878:231:42", - "nodes": [], - "body": { - "id": 33971, - "nodeType": "Block", - "src": "45053:56:42", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ + "id": 34536, + "nodeType": "IfStatement", + "src": "23596:394:43", + "trueBody": { + "id": 34503, + "nodeType": "Block", + "src": "23621:62:43", + "statements": [ { - "id": 33968, - "name": "batchInsertionVerifiers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32790, - "src": "45078:23:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" - } - ], - "id": 33967, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "45070:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 33966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "45070:7:42", - "typeDescriptions": {} + "expression": { + "arguments": [ + { + "id": 34498, + "name": "_latestRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34024, + "src": "23651:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 34499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23664:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "74727565", + "id": 34500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23667:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 34497, + "name": "RootInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34069, + "src": "23642:8:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_RootInfo_$34069_storage_ptr_$", + "typeString": "type(struct WorldIDIdentityManagerImplV1.RootInfo storage pointer)" + } + }, + "id": 34501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23642:30:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootInfo_$34069_memory_ptr", + "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo memory" + } + }, + "functionReturnParameters": 34493, + "id": 34502, + "nodeType": "Return", + "src": "23635:37:43" } - }, - "id": 33969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45070:32:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 33965, - "id": 33970, - "nodeType": "Return", - "src": "45063:39:42" + ] + } } ] }, "documentation": { - "id": 33957, + "id": 34482, "nodeType": "StructuredDocumentation", - "src": "44652:221:42", - "text": "@notice Gets the address for the lookup table of merkle tree verifiers used for identity\n registrations.\n @return addr The address of the contract being used as the verifier lookup table." + "src": "22939:485:43", + "text": "@notice Allows a caller to query the root history for information about a given root.\n @dev Should be used sparingly as the query can be quite expensive.\n @param root The root for which you are querying information.\n @return rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist.\n Note that if the queried root is the current, the timestamp will be invalid as the\n root has not been superseded." }, - "functionSelector": "8fc22e9f", + "functionSelector": "3f7c178d", "implemented": true, "kind": "function", "modifiers": [ { - "id": 33960, + "id": 34487, "kind": "modifierInvocation", "modifierName": { - "id": 33959, + "id": 34486, "name": "onlyProxy", "nameLocations": [ - "44989:9:42" + "23514:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "44989:9:42" + "src": "23514:9:43" }, "nodeType": "ModifierInvocation", - "src": "44989:9:42" + "src": "23514:9:43" }, { - "id": 33962, + "id": 34489, "kind": "modifierInvocation", "modifierName": { - "id": 33961, + "id": 34488, "name": "onlyInitialized", "nameLocations": [ - "45007:15:42" + "23532:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "45007:15:42" + "referencedDeclaration": 48444, + "src": "23532:15:43" }, "nodeType": "ModifierInvocation", - "src": "45007:15:42" + "src": "23532:15:43" } ], - "name": "getRegisterIdentitiesVerifierLookupTableAddress", - "nameLocation": "44887:47:42", + "name": "queryRoot", + "nameLocation": "23438:9:43", "parameters": { - "id": 33958, + "id": 34485, "nodeType": "ParameterList", - "parameters": [], - "src": "44934:2:42" + "parameters": [ + { + "constant": false, + "id": 34484, + "mutability": "mutable", + "name": "root", + "nameLocation": "23456:4:43", + "nodeType": "VariableDeclaration", + "scope": 34538, + "src": "23448:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 34483, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23448:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "23447:14:43" }, "returnParameters": { - "id": 33965, + "id": 34493, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33964, + "id": 34492, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33972, - "src": "45040:7:42", + "scope": 34538, + "src": "23565:15:43", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_RootInfo_$34069_memory_ptr", + "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo" }, "typeName": { - "id": 33963, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "45040:7:42", - "stateMutability": "nonpayable", + "id": 34491, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 34490, + "name": "RootInfo", + "nameLocations": [ + "23565:8:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34069, + "src": "23565:8:43" + }, + "referencedDeclaration": 34069, + "src": "23565:8:43", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_RootInfo_$34069_storage_ptr", + "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo" } }, "visibility": "internal" } ], - "src": "45039:9:42" + "src": "23564:17:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "view", "virtual": true, "visibility": "public" }, { - "id": 34008, + "id": 34580, "nodeType": "FunctionDefinition", - "src": "45437:423:42", + "src": "24439:638:43", "nodes": [], "body": { - "id": 34007, + "id": 34579, "nodeType": "Block", - "src": "45612:248:42", + "src": "24525:552:43", "nodes": [], "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 34548, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34541, + "src": "24583:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 34549, + "name": "_latestRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34024, + "src": "24591:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24583:19:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34553, + "nodeType": "IfStatement", + "src": "24579:56:43", + "trueBody": { + "id": 34552, + "nodeType": "Block", + "src": "24604:31:43", + "statements": [ + { + "functionReturnParameters": 34547, + "id": 34551, + "nodeType": "Return", + "src": "24618:7:43" + } + ] + } + }, { "assignments": [ - 33987 + 34555 ], "declarations": [ { "constant": false, - "id": 33987, + "id": 34555, "mutability": "mutable", - "name": "oldTable", - "nameLocation": "45642:8:42", + "name": "rootTimestamp", + "nameLocation": "24718:13:43", "nodeType": "VariableDeclaration", - "scope": 34007, - "src": "45622:28:42", + "scope": 34579, + "src": "24710:21:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_uint128", + "typeString": "uint128" }, "typeName": { - "id": 33986, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33985, - "name": "VerifierLookupTable", - "nameLocations": [ - "45622:19:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34956, - "src": "45622:19:42" - }, - "referencedDeclaration": 34956, - "src": "45622:19:42", + "id": 34554, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "24710:7:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_uint128", + "typeString": "uint128" } }, "visibility": "internal" } ], - "id": 33989, + "id": 34559, "initialValue": { - "id": 33988, - "name": "batchInsertionVerifiers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32790, - "src": "45653:23:42", + "baseExpression": { + "id": 34556, + "name": "rootHistory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34029, + "src": "24734:11:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", + "typeString": "mapping(uint256 => uint128)" + } + }, + "id": 34558, + "indexExpression": { + "id": 34557, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34541, + "src": "24746:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24734:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_uint128", + "typeString": "uint128" } }, "nodeType": "VariableDeclarationStatement", - "src": "45622:54:42" + "src": "24710:41:43" }, { - "expression": { - "id": 33992, + "condition": { + "commonType": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "id": 34562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 33990, - "name": "batchInsertionVerifiers", + "leftExpression": { + "id": 34560, + "name": "rootTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32790, - "src": "45686:23:42", + "referencedDeclaration": 34555, + "src": "24834:13:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_uint128", + "typeString": "uint128" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 33991, - "name": "newTable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33976, - "src": "45712:8:42", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 34561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24851:1:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" - } - }, - "src": "45686:34:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" - } - }, - "id": 33993, - "nodeType": "ExpressionStatement", - "src": "45686:34:42" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 33995, - "name": "Dependency", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32827, - "src": "45766:10:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Dependency_$32827_$", - "typeString": "type(enum WorldIDIdentityManagerImplV1.Dependency)" - } - }, - "id": 33996, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "45777:28:42", - "memberName": "InsertionVerifierLookupTable", - "nodeType": "MemberAccess", - "referencedDeclaration": 32824, - "src": "45766:39:42", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Dependency_$32827", - "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, + "value": "0" + }, + "src": "24834:18:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34567, + "nodeType": "IfStatement", + "src": "24830:73:43", + "trueBody": { + "id": 34566, + "nodeType": "Block", + "src": "24854:49:43", + "statements": [ { - "arguments": [ - { - "id": 33999, - "name": "oldTable", + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34563, + "name": "NonExistentRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33987, - "src": "45815:8:42", + "referencedDeclaration": 35397, + "src": "24875:15:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" } - ], - "id": 33998, + }, + "id": 34564, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "45807:7:42", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24875:17:43", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 33997, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "45807:7:42", - "typeDescriptions": {} + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 34000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45807:17:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 34565, + "nodeType": "RevertStatement", + "src": "24868:24:43" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - { - "arguments": [ - { - "id": 34003, - "name": "newTable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33976, - "src": "45834:8:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" - } - } - ], + "id": 34571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" - } - ], - "id": 34002, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "45826:7:42", + "id": 34568, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "24973:5:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 34001, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "45826:7:42", - "typeDescriptions": {} + "typeIdentifier": "t_magic_block", + "typeString": "block" } }, - "id": 34004, + "id": 34569, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45826:17:42", - "tryCall": false, + "memberLocation": "24979:9:43", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "24973:15:43", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Dependency_$32827", - "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 34570, + "name": "rootTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34555, + "src": "24991:13:43", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" } - ], - "id": 33994, - "name": "DependencyUpdated", + }, + "src": "24973:31:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 34572, + "name": "rootHistoryExpiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32906, - "src": "45735:17:42", + "referencedDeclaration": 34032, + "src": "25007:17:43", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$32827_$_t_address_$_t_address_$returns$__$", - "typeString": "function (enum WorldIDIdentityManagerImplV1.Dependency,address,address)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 34005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45735:118:42", - "tryCall": false, + "src": "24973:51:43", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 34006, - "nodeType": "EmitStatement", - "src": "45730:123:42" + "id": 34578, + "nodeType": "IfStatement", + "src": "24969:102:43", + "trueBody": { + "id": 34577, + "nodeType": "Block", + "src": "25026:45:43", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34574, + "name": "ExpiredRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35394, + "src": "25047:11:43", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 34575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25047:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34576, + "nodeType": "RevertStatement", + "src": "25040:20:43" + } + ] + } } ] }, "documentation": { - "id": 33973, + "id": 34539, "nodeType": "StructuredDocumentation", - "src": "45115:317:42", - "text": "@notice Sets the address for the lookup table of merkle tree verifiers used for identity\n registrations.\n @dev Only the owner of the contract can call this function.\n @param newTable The new verifier lookup table to be used for verifying identity\n registrations." + "src": "24002:432:43", + "text": "@notice Reverts if the provided root value is not valid.\n @dev A root is valid if it is either the latest root, or not the latest root but has not\n expired.\n @param root The root of the merkle tree to check for validity.\n @custom:reverts ExpiredRoot If the provided `root` has expired.\n @custom:reverts NonExistentRoot If the provided `root` does not exist in the history." }, - "functionSelector": "2f059fca", + "functionSelector": "f2358e1d", "implemented": true, "kind": "function", "modifiers": [ { - "id": 33979, + "id": 34544, "kind": "modifierInvocation", "modifierName": { - "id": 33978, + "id": 34543, "name": "onlyProxy", "nameLocations": [ - "45556:9:42" + "24499:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "45556:9:42" + "src": "24499:9:43" }, "nodeType": "ModifierInvocation", - "src": "45556:9:42" + "src": "24499:9:43" }, { - "id": 33981, + "id": 34546, "kind": "modifierInvocation", "modifierName": { - "id": 33980, + "id": 34545, "name": "onlyInitialized", "nameLocations": [ - "45574:15:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "45574:15:42" - }, - "nodeType": "ModifierInvocation", - "src": "45574:15:42" - }, - { - "id": 33983, - "kind": "modifierInvocation", - "modifierName": { - "id": 33982, - "name": "onlyOwner", - "nameLocations": [ - "45598:9:42" + "24509:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 29157, - "src": "45598:9:42" + "referencedDeclaration": 48444, + "src": "24509:15:43" }, "nodeType": "ModifierInvocation", - "src": "45598:9:42" + "src": "24509:15:43" } ], - "name": "setRegisterIdentitiesVerifierLookupTable", - "nameLocation": "45446:40:42", + "name": "requireValidRoot", + "nameLocation": "24448:16:43", "parameters": { - "id": 33977, + "id": 34542, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33976, + "id": 34541, "mutability": "mutable", - "name": "newTable", - "nameLocation": "45507:8:42", + "name": "root", + "nameLocation": "24473:4:43", "nodeType": "VariableDeclaration", - "scope": 34008, - "src": "45487:28:42", + "scope": 34580, + "src": "24465:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 33975, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33974, - "name": "VerifierLookupTable", - "nameLocations": [ - "45487:19:42" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34956, - "src": "45487:19:42" - }, - "referencedDeclaration": 34956, - "src": "45487:19:42", + "id": 34540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24465:7:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", - "typeString": "contract VerifierLookupTable" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "internal" } ], - "src": "45486:30:42" + "src": "24464:14:43" }, "returnParameters": { - "id": 33984, + "id": 34547, "nodeType": "ParameterList", "parameters": [], - "src": "45612:0:42" + "src": "24525:0:43" }, - "scope": 34275, - "stateMutability": "nonpayable", + "scope": 34869, + "stateMutability": "view", "virtual": true, "visibility": "public" }, { - "id": 34024, + "id": 34596, "nodeType": "FunctionDefinition", - "src": "46153:227:42", + "src": "25309:231:43", "nodes": [], "body": { - "id": 34023, + "id": 34595, "nodeType": "Block", - "src": "46324:56:42", + "src": "25484:56:43", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 34020, - "name": "identityUpdateVerifiers", + "id": 34592, + "name": "batchInsertionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32794, - "src": "46349:23:42", + "referencedDeclaration": 34043, + "src": "25509:23:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } } @@ -18521,30 +8953,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } ], - "id": 34019, + "id": 34591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "46341:7:42", + "src": "25501:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34018, + "id": 34590, "name": "address", "nodeType": "ElementaryTypeName", - "src": "46341:7:42", + "src": "25501:7:43", "typeDescriptions": {} } }, - "id": 34021, + "id": 34593, "isConstant": false, "isLValue": false, "isPure": false, @@ -18553,84 +8985,84 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "46341:32:42", + "src": "25501:32:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 34017, - "id": 34022, + "functionReturnParameters": 34589, + "id": 34594, "nodeType": "Return", - "src": "46334:39:42" + "src": "25494:39:43" } ] }, "documentation": { - "id": 34009, + "id": 34581, "nodeType": "StructuredDocumentation", - "src": "45866:282:42", - "text": "@notice Gets the address for the lookup table of merkle tree verifiers used for identity\n updates.\n @dev The update verifier is also used for member removals.\n @return addr The address of the contract being used as the verifier lookup table." + "src": "25083:221:43", + "text": "@notice Gets the address for the lookup table of merkle tree verifiers used for identity\n registrations.\n @return addr The address of the contract being used as the verifier lookup table." }, - "functionSelector": "4ffbdde5", + "functionSelector": "8fc22e9f", "implemented": true, "kind": "function", "modifiers": [ { - "id": 34012, + "id": 34584, "kind": "modifierInvocation", "modifierName": { - "id": 34011, + "id": 34583, "name": "onlyProxy", "nameLocations": [ - "46260:9:42" + "25420:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "46260:9:42" + "src": "25420:9:43" }, "nodeType": "ModifierInvocation", - "src": "46260:9:42" + "src": "25420:9:43" }, { - "id": 34014, + "id": 34586, "kind": "modifierInvocation", "modifierName": { - "id": 34013, + "id": 34585, "name": "onlyInitialized", "nameLocations": [ - "46278:15:42" + "25438:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "46278:15:42" + "referencedDeclaration": 48444, + "src": "25438:15:43" }, "nodeType": "ModifierInvocation", - "src": "46278:15:42" + "src": "25438:15:43" } ], - "name": "getIdentityUpdateVerifierLookupTableAddress", - "nameLocation": "46162:43:42", + "name": "getRegisterIdentitiesVerifierLookupTableAddress", + "nameLocation": "25318:47:43", "parameters": { - "id": 34010, + "id": 34582, "nodeType": "ParameterList", "parameters": [], - "src": "46205:2:42" + "src": "25365:2:43" }, "returnParameters": { - "id": 34017, + "id": 34589, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34016, + "id": 34588, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 34024, - "src": "46311:7:42", + "scope": 34596, + "src": "25471:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18638,10 +9070,10 @@ "typeString": "address" }, "typeName": { - "id": 34015, + "id": 34587, "name": "address", "nodeType": "ElementaryTypeName", - "src": "46311:7:42", + "src": "25471:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18651,168 +9083,352 @@ "visibility": "internal" } ], - "src": "46310:9:42" + "src": "25470:9:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "view", "virtual": true, "visibility": "public" }, { - "id": 34060, + "id": 34646, "nodeType": "FunctionDefinition", - "src": "46770:416:42", + "src": "25868:522:43", "nodes": [], "body": { - "id": 34059, + "id": 34645, "nodeType": "Block", - "src": "46941:245:42", + "src": "26043:347:43", "nodes": [], "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 34617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 34611, + "name": "newTable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34600, + "src": "26065:8:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeString": "contract VerifierLookupTable" + } + ], + "id": 34610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "26057:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34609, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "26057:7:43", + "typeDescriptions": {} + } + }, + "id": 34612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26057:17:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 34615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26086:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 34614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "26078:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "26078:7:43", + "typeDescriptions": {} + } + }, + "id": 34616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26078:10:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "26057:31:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34622, + "nodeType": "IfStatement", + "src": "26053:89:43", + "trueBody": { + "id": 34621, + "nodeType": "Block", + "src": "26090:52:43", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34618, + "name": "InvalidVerifierLUT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34149, + "src": "26111:18:43", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 34619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26111:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34620, + "nodeType": "RevertStatement", + "src": "26104:27:43" + } + ] + } + }, { "assignments": [ - 34039 + 34625 ], "declarations": [ { "constant": false, - "id": 34039, + "id": 34625, "mutability": "mutable", "name": "oldTable", - "nameLocation": "46971:8:42", + "nameLocation": "26172:8:43", "nodeType": "VariableDeclaration", - "scope": 34059, - "src": "46951:28:42", + "scope": 34645, + "src": "26152:28:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 34038, + "id": 34624, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 34037, + "id": 34623, "name": "VerifierLookupTable", "nameLocations": [ - "46951:19:42" + "26152:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34956, - "src": "46951:19:42" + "referencedDeclaration": 35388, + "src": "26152:19:43" }, - "referencedDeclaration": 34956, - "src": "46951:19:42", + "referencedDeclaration": 35388, + "src": "26152:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" } ], - "id": 34041, + "id": 34627, "initialValue": { - "id": 34040, - "name": "identityUpdateVerifiers", + "id": 34626, + "name": "batchInsertionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32794, - "src": "46982:23:42", + "referencedDeclaration": 34043, + "src": "26183:23:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, "nodeType": "VariableDeclarationStatement", - "src": "46951:54:42" + "src": "26152:54:43" }, { "expression": { - "id": 34044, + "id": 34630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 34042, - "name": "identityUpdateVerifiers", + "id": 34628, + "name": "batchInsertionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32794, - "src": "47015:23:42", + "referencedDeclaration": 34043, + "src": "26216:23:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 34043, + "id": 34629, "name": "newTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34028, - "src": "47041:8:42", + "referencedDeclaration": 34600, + "src": "26242:8:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, - "src": "47015:34:42", + "src": "26216:34:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, - "id": 34045, + "id": 34631, "nodeType": "ExpressionStatement", - "src": "47015:34:42" + "src": "26216:34:43" }, { "eventCall": { "arguments": [ { "expression": { - "id": 34047, + "id": 34633, "name": "Dependency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32827, - "src": "47095:10:42", + "referencedDeclaration": 34084, + "src": "26296:10:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Dependency_$32827_$", + "typeIdentifier": "t_type$_t_enum$_Dependency_$34084_$", "typeString": "type(enum WorldIDIdentityManagerImplV1.Dependency)" } }, - "id": 34048, + "id": 34634, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "47106:25:42", - "memberName": "UpdateVerifierLookupTable", + "memberLocation": "26307:28:43", + "memberName": "InsertionVerifierLookupTable", "nodeType": "MemberAccess", - "referencedDeclaration": 32825, - "src": "47095:36:42", + "referencedDeclaration": 34081, + "src": "26296:39:43", "typeDescriptions": { - "typeIdentifier": "t_enum$_Dependency_$32827", + "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" } }, { "arguments": [ { - "id": 34051, + "id": 34637, "name": "oldTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34039, - "src": "47141:8:42", + "referencedDeclaration": 34625, + "src": "26345:8:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } } @@ -18820,30 +9436,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } ], - "id": 34050, + "id": 34636, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "47133:7:42", + "src": "26337:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34049, + "id": 34635, "name": "address", "nodeType": "ElementaryTypeName", - "src": "47133:7:42", + "src": "26337:7:43", "typeDescriptions": {} } }, - "id": 34052, + "id": 34638, "isConstant": false, "isLValue": false, "isPure": false, @@ -18852,7 +9468,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "47133:17:42", + "src": "26337:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18862,14 +9478,14 @@ { "arguments": [ { - "id": 34055, + "id": 34641, "name": "newTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34028, - "src": "47160:8:42", + "referencedDeclaration": 34600, + "src": "26364:8:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } } @@ -18877,30 +9493,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } ], - "id": 34054, + "id": 34640, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "47152:7:42", + "src": "26356:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34053, + "id": 34639, "name": "address", "nodeType": "ElementaryTypeName", - "src": "47152:7:42", + "src": "26356:7:43", "typeDescriptions": {} } }, - "id": 34056, + "id": 34642, "isConstant": false, "isLValue": false, "isPure": false, @@ -18909,7 +9525,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "47152:17:42", + "src": "26356:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18920,7 +9536,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Dependency_$32827", + "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" }, { @@ -18932,18 +9548,18 @@ "typeString": "address" } ], - "id": 34046, + "id": 34632, "name": "DependencyUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32906, - "src": "47064:17:42", + "referencedDeclaration": 34169, + "src": "26265:17:43", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$32827_$_t_address_$_t_address_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$34084_$_t_address_$_t_address_$returns$__$", "typeString": "function (enum WorldIDIdentityManagerImplV1.Dependency,address,address)" } }, - "id": 34057, + "id": 34643, "isConstant": false, "isLValue": false, "isPure": false, @@ -18952,158 +9568,158 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "47064:115:42", + "src": "26265:118:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34058, + "id": 34644, "nodeType": "EmitStatement", - "src": "47059:120:42" + "src": "26260:123:43" } ] }, "documentation": { - "id": 34025, + "id": 34597, "nodeType": "StructuredDocumentation", - "src": "46386:379:42", - "text": "@notice Sets the address for the lookup table of merkle tree verifiers to be used for\n verification of identity updates.\n @dev Only the owner of the contract can call this function.\n @dev The update verifier is also used for member removals.\n @param newTable The new lookup table instance to be used for verifying identity updates." + "src": "25546:317:43", + "text": "@notice Sets the address for the lookup table of merkle tree verifiers used for identity\n registrations.\n @dev Only the owner of the contract can call this function.\n @param newTable The new verifier lookup table to be used for verifying identity\n registrations." }, - "functionSelector": "6b056600", + "functionSelector": "2f059fca", "implemented": true, "kind": "function", "modifiers": [ { - "id": 34031, + "id": 34603, "kind": "modifierInvocation", "modifierName": { - "id": 34030, + "id": 34602, "name": "onlyProxy", "nameLocations": [ - "46885:9:42" + "25987:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "46885:9:42" + "src": "25987:9:43" }, "nodeType": "ModifierInvocation", - "src": "46885:9:42" + "src": "25987:9:43" }, { - "id": 34033, + "id": 34605, "kind": "modifierInvocation", "modifierName": { - "id": 34032, + "id": 34604, "name": "onlyInitialized", "nameLocations": [ - "46903:15:42" + "26005:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "46903:15:42" + "referencedDeclaration": 48444, + "src": "26005:15:43" }, "nodeType": "ModifierInvocation", - "src": "46903:15:42" + "src": "26005:15:43" }, { - "id": 34035, + "id": 34607, "kind": "modifierInvocation", "modifierName": { - "id": 34034, + "id": 34606, "name": "onlyOwner", "nameLocations": [ - "46927:9:42" + "26029:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29157, - "src": "46927:9:42" + "src": "26029:9:43" }, "nodeType": "ModifierInvocation", - "src": "46927:9:42" + "src": "26029:9:43" } ], - "name": "setIdentityUpdateVerifierLookupTable", - "nameLocation": "46779:36:42", + "name": "setRegisterIdentitiesVerifierLookupTable", + "nameLocation": "25877:40:43", "parameters": { - "id": 34029, + "id": 34601, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34028, + "id": 34600, "mutability": "mutable", "name": "newTable", - "nameLocation": "46836:8:42", + "nameLocation": "25938:8:43", "nodeType": "VariableDeclaration", - "scope": 34060, - "src": "46816:28:42", + "scope": 34646, + "src": "25918:28:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 34027, + "id": 34599, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 34026, + "id": 34598, "name": "VerifierLookupTable", "nameLocations": [ - "46816:19:42" + "25918:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34956, - "src": "46816:19:42" + "referencedDeclaration": 35388, + "src": "25918:19:43" }, - "referencedDeclaration": 34956, - "src": "46816:19:42", + "referencedDeclaration": 35388, + "src": "25918:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34956", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" } ], - "src": "46815:30:42" + "src": "25917:30:43" }, "returnParameters": { - "id": 34036, + "id": 34608, "nodeType": "ParameterList", "parameters": [], - "src": "46941:0:42" + "src": "26043:0:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 34076, + "id": 34662, "nodeType": "FunctionDefinition", - "src": "47369:205:42", + "src": "26573:205:43", "nodes": [], "body": { - "id": 34075, + "id": 34661, "nodeType": "Block", - "src": "47524:50:42", + "src": "26728:50:43", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 34072, + "id": 34658, "name": "semaphoreVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32798, - "src": "47549:17:42", + "referencedDeclaration": 34051, + "src": "26753:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } } @@ -19111,30 +9727,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } ], - "id": 34071, + "id": 34657, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "47541:7:42", + "src": "26745:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34070, + "id": 34656, "name": "address", "nodeType": "ElementaryTypeName", - "src": "47541:7:42", + "src": "26745:7:43", "typeDescriptions": {} } }, - "id": 34073, + "id": 34659, "isConstant": false, "isLValue": false, "isPure": false, @@ -19143,24 +9759,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "47541:26:42", + "src": "26745:26:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 34069, - "id": 34074, + "functionReturnParameters": 34655, + "id": 34660, "nodeType": "Return", - "src": "47534:33:42" + "src": "26738:33:43" } ] }, "documentation": { - "id": 34061, + "id": 34647, "nodeType": "StructuredDocumentation", - "src": "47192:172:42", + "src": "26396:172:43", "text": "@notice Gets the address of the verifier used for verification of semaphore proofs.\n @return addr The address of the contract being used as the verifier." }, "functionSelector": "f2038f95", @@ -19168,59 +9784,59 @@ "kind": "function", "modifiers": [ { - "id": 34064, + "id": 34650, "kind": "modifierInvocation", "modifierName": { - "id": 34063, + "id": 34649, "name": "onlyProxy", "nameLocations": [ - "47460:9:42" + "26664:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "47460:9:42" + "src": "26664:9:43" }, "nodeType": "ModifierInvocation", - "src": "47460:9:42" + "src": "26664:9:43" }, { - "id": 34066, + "id": 34652, "kind": "modifierInvocation", "modifierName": { - "id": 34065, + "id": 34651, "name": "onlyInitialized", "nameLocations": [ - "47478:15:42" + "26682:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "47478:15:42" + "referencedDeclaration": 48444, + "src": "26682:15:43" }, "nodeType": "ModifierInvocation", - "src": "47478:15:42" + "src": "26682:15:43" } ], "name": "getSemaphoreVerifierAddress", - "nameLocation": "47378:27:42", + "nameLocation": "26582:27:43", "parameters": { - "id": 34062, + "id": 34648, "nodeType": "ParameterList", "parameters": [], - "src": "47405:2:42" + "src": "26609:2:43" }, "returnParameters": { - "id": 34069, + "id": 34655, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34068, + "id": 34654, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 34076, - "src": "47511:7:42", + "scope": 34662, + "src": "26715:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19228,181 +9844,365 @@ "typeString": "address" }, "typeName": { - "id": 34067, + "id": 34653, "name": "address", "nodeType": "ElementaryTypeName", - "src": "47511:7:42", + "src": "26715:7:43", "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "26714:9:43" + }, + "scope": 34869, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 34712, + "nodeType": "FunctionDefinition", + "src": "27081:492:43", + "nodes": [], + "body": { + "id": 34711, + "nodeType": "Block", + "src": "27238:335:43", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 34683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 34677, + "name": "newVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34666, + "src": "27260:11:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeString": "contract ISemaphoreVerifier" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeString": "contract ISemaphoreVerifier" + } + ], + "id": 34676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27252:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27252:7:43", + "typeDescriptions": {} + } + }, + "id": 34678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27252:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 34681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27284:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 34680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27276:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34679, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27276:7:43", + "typeDescriptions": {} + } + }, + "id": 34682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27276:10:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "27252:34:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "visibility": "internal" - } - ], - "src": "47510:9:42" - }, - "scope": 34275, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 34112, - "nodeType": "FunctionDefinition", - "src": "47877:393:42", - "nodes": [], - "body": { - "id": 34111, - "nodeType": "Block", - "src": "48034:236:42", - "nodes": [], - "statements": [ + "id": 34688, + "nodeType": "IfStatement", + "src": "27248:89:43", + "trueBody": { + "id": 34687, + "nodeType": "Block", + "src": "27288:49:43", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34684, + "name": "InvalidVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34146, + "src": "27309:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 34685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27309:17:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34686, + "nodeType": "RevertStatement", + "src": "27302:24:43" + } + ] + } + }, { "assignments": [ - 34091 + 34691 ], "declarations": [ { "constant": false, - "id": 34091, + "id": 34691, "mutability": "mutable", "name": "oldVerifier", - "nameLocation": "48063:11:42", + "nameLocation": "27366:11:43", "nodeType": "VariableDeclaration", - "scope": 34111, - "src": "48044:30:42", + "scope": 34711, + "src": "27347:30:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" }, "typeName": { - "id": 34090, + "id": 34690, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 34089, + "id": 34689, "name": "ISemaphoreVerifier", "nameLocations": [ - "48044:18:42" + "27347:18:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 32716, - "src": "48044:18:42" + "referencedDeclaration": 35429, + "src": "27347:18:43" }, - "referencedDeclaration": 32716, - "src": "48044:18:42", + "referencedDeclaration": 35429, + "src": "27347:18:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } }, "visibility": "internal" } ], - "id": 34093, + "id": 34693, "initialValue": { - "id": 34092, + "id": 34692, "name": "semaphoreVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32798, - "src": "48077:17:42", + "referencedDeclaration": 34051, + "src": "27380:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } }, "nodeType": "VariableDeclarationStatement", - "src": "48044:50:42" + "src": "27347:50:43" }, { "expression": { - "id": 34096, + "id": 34696, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 34094, + "id": 34694, "name": "semaphoreVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32798, - "src": "48104:17:42", + "referencedDeclaration": 34051, + "src": "27407:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 34095, + "id": 34695, "name": "newVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34080, - "src": "48124:11:42", + "referencedDeclaration": 34666, + "src": "27427:11:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } }, - "src": "48104:31:42", + "src": "27407:31:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } }, - "id": 34097, + "id": 34697, "nodeType": "ExpressionStatement", - "src": "48104:31:42" + "src": "27407:31:43" }, { "eventCall": { "arguments": [ { "expression": { - "id": 34099, + "id": 34699, "name": "Dependency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32827, - "src": "48181:10:42", + "referencedDeclaration": 34084, + "src": "27484:10:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Dependency_$32827_$", + "typeIdentifier": "t_type$_t_enum$_Dependency_$34084_$", "typeString": "type(enum WorldIDIdentityManagerImplV1.Dependency)" } }, - "id": 34100, + "id": 34700, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "48192:17:42", + "memberLocation": "27495:17:43", "memberName": "SemaphoreVerifier", "nodeType": "MemberAccess", - "referencedDeclaration": 32826, - "src": "48181:28:42", + "referencedDeclaration": 34083, + "src": "27484:28:43", "typeDescriptions": { - "typeIdentifier": "t_enum$_Dependency_$32827", + "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" } }, { "arguments": [ { - "id": 34103, + "id": 34703, "name": "oldVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34091, - "src": "48219:11:42", + "referencedDeclaration": 34691, + "src": "27522:11:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } } @@ -19410,30 +10210,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } ], - "id": 34102, + "id": 34702, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "48211:7:42", + "src": "27514:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34101, + "id": 34701, "name": "address", "nodeType": "ElementaryTypeName", - "src": "48211:7:42", + "src": "27514:7:43", "typeDescriptions": {} } }, - "id": 34104, + "id": 34704, "isConstant": false, "isLValue": false, "isPure": false, @@ -19442,7 +10242,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "48211:20:42", + "src": "27514:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19452,14 +10252,14 @@ { "arguments": [ { - "id": 34107, + "id": 34707, "name": "newVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34080, - "src": "48241:11:42", + "referencedDeclaration": 34666, + "src": "27544:11:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } } @@ -19467,30 +10267,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } ], - "id": 34106, + "id": 34706, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "48233:7:42", + "src": "27536:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34105, + "id": 34705, "name": "address", "nodeType": "ElementaryTypeName", - "src": "48233:7:42", + "src": "27536:7:43", "typeDescriptions": {} } }, - "id": 34108, + "id": 34708, "isConstant": false, "isLValue": false, "isPure": false, @@ -19499,7 +10299,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "48233:20:42", + "src": "27536:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19510,7 +10310,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Dependency_$32827", + "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" }, { @@ -19522,18 +10322,18 @@ "typeString": "address" } ], - "id": 34098, + "id": 34698, "name": "DependencyUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32906, - "src": "48150:17:42", + "referencedDeclaration": 34169, + "src": "27453:17:43", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$32827_$_t_address_$_t_address_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$34084_$_t_address_$_t_address_$returns$__$", "typeString": "function (enum WorldIDIdentityManagerImplV1.Dependency,address,address)" } }, - "id": 34109, + "id": 34709, "isConstant": false, "isLValue": false, "isPure": false, @@ -19542,23 +10342,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "48150:113:42", + "src": "27453:113:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34110, + "id": 34710, "nodeType": "EmitStatement", - "src": "48145:118:42" + "src": "27448:118:43" } ] }, "documentation": { - "id": 34077, + "id": 34663, "nodeType": "StructuredDocumentation", - "src": "47580:292:42", + "src": "26784:292:43", "text": "@notice Sets the address for the semaphore verifier to be used for verification of\n semaphore proofs.\n @dev Only the owner of the contract can call this function.\n @param newVerifier The new verifier instance to be used for verifying semaphore proofs." }, "functionSelector": "0e3a12f3", @@ -19566,146 +10366,146 @@ "kind": "function", "modifiers": [ { - "id": 34083, + "id": 34669, "kind": "modifierInvocation", "modifierName": { - "id": 34082, + "id": 34668, "name": "onlyProxy", "nameLocations": [ - "47978:9:42" + "27182:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "47978:9:42" + "src": "27182:9:43" }, "nodeType": "ModifierInvocation", - "src": "47978:9:42" + "src": "27182:9:43" }, { - "id": 34085, + "id": 34671, "kind": "modifierInvocation", "modifierName": { - "id": 34084, + "id": 34670, "name": "onlyInitialized", "nameLocations": [ - "47996:15:42" + "27200:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "47996:15:42" + "referencedDeclaration": 48444, + "src": "27200:15:43" }, "nodeType": "ModifierInvocation", - "src": "47996:15:42" + "src": "27200:15:43" }, { - "id": 34087, + "id": 34673, "kind": "modifierInvocation", "modifierName": { - "id": 34086, + "id": 34672, "name": "onlyOwner", "nameLocations": [ - "48020:9:42" + "27224:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29157, - "src": "48020:9:42" + "src": "27224:9:43" }, "nodeType": "ModifierInvocation", - "src": "48020:9:42" + "src": "27224:9:43" } ], "name": "setSemaphoreVerifier", - "nameLocation": "47886:20:42", + "nameLocation": "27090:20:43", "parameters": { - "id": 34081, + "id": 34667, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34080, + "id": 34666, "mutability": "mutable", "name": "newVerifier", - "nameLocation": "47926:11:42", + "nameLocation": "27130:11:43", "nodeType": "VariableDeclaration", - "scope": 34112, - "src": "47907:30:42", + "scope": 34712, + "src": "27111:30:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" }, "typeName": { - "id": 34079, + "id": 34665, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 34078, + "id": 34664, "name": "ISemaphoreVerifier", "nameLocations": [ - "47907:18:42" + "27111:18:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 32716, - "src": "47907:18:42" + "referencedDeclaration": 35429, + "src": "27111:18:43" }, - "referencedDeclaration": 32716, - "src": "47907:18:42", + "referencedDeclaration": 35429, + "src": "27111:18:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } }, "visibility": "internal" } ], - "src": "47906:32:42" + "src": "27110:32:43" }, "returnParameters": { - "id": 34088, + "id": 34674, "nodeType": "ParameterList", "parameters": [], - "src": "48034:0:42" + "src": "27238:0:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 34125, + "id": 34725, "nodeType": "FunctionDefinition", - "src": "48446:189:42", + "src": "27749:189:43", "nodes": [], "body": { - "id": 34124, + "id": 34724, "nodeType": "Block", - "src": "48594:41:42", + "src": "27897:41:43", "nodes": [], "statements": [ { "expression": { - "id": 34122, + "id": 34722, "name": "rootHistoryExpiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32772, - "src": "48611:17:42", + "referencedDeclaration": 34032, + "src": "27914:17:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 34121, - "id": 34123, + "functionReturnParameters": 34721, + "id": 34723, "nodeType": "Return", - "src": "48604:24:42" + "src": "27907:24:43" } ] }, "documentation": { - "id": 34113, + "id": 34713, "nodeType": "StructuredDocumentation", - "src": "48276:165:42", + "src": "27579:165:43", "text": "@notice Gets the current amount of time used to expire roots in the history.\n @return expiryTime The amount of time it takes for a root to expire." }, "functionSelector": "43f974cb", @@ -19713,59 +10513,59 @@ "kind": "function", "modifiers": [ { - "id": 34116, + "id": 34716, "kind": "modifierInvocation", "modifierName": { - "id": 34115, + "id": 34715, "name": "onlyProxy", "nameLocations": [ - "48530:9:42" + "27833:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "48530:9:42" + "src": "27833:9:43" }, "nodeType": "ModifierInvocation", - "src": "48530:9:42" + "src": "27833:9:43" }, { - "id": 34118, + "id": 34718, "kind": "modifierInvocation", "modifierName": { - "id": 34117, + "id": 34717, "name": "onlyInitialized", "nameLocations": [ - "48548:15:42" + "27851:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "48548:15:42" + "referencedDeclaration": 48444, + "src": "27851:15:43" }, "nodeType": "ModifierInvocation", - "src": "48548:15:42" + "src": "27851:15:43" } ], "name": "getRootHistoryExpiry", - "nameLocation": "48455:20:42", + "nameLocation": "27758:20:43", "parameters": { - "id": 34114, + "id": 34714, "nodeType": "ParameterList", "parameters": [], - "src": "48475:2:42" + "src": "27778:2:43" }, "returnParameters": { - "id": 34121, + "id": 34721, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34120, + "id": 34720, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 34125, - "src": "48581:7:42", + "scope": 34725, + "src": "27884:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19773,10 +10573,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34119, + "id": 34719, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "48581:7:42", + "src": "27884:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19785,22 +10585,22 @@ "visibility": "internal" } ], - "src": "48580:9:42" + "src": "27883:9:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "view", "virtual": true, "visibility": "public" }, { - "id": 34166, + "id": 34760, "nodeType": "FunctionDefinition", - "src": "48867:461:42", + "src": "28170:402:43", "nodes": [], "body": { - "id": 34165, + "id": 34759, "nodeType": "Block", - "src": "49015:313:42", + "src": "28318:254:43", "nodes": [], "statements": [ { @@ -19809,18 +10609,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 34139, + "id": 34739, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 34137, + "id": 34737, "name": "newExpiryTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34128, - "src": "49029:13:42", + "referencedDeclaration": 34728, + "src": "28332:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19830,47 +10630,47 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 34138, + "id": 34738, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "49046:1:42", + "src": "28349:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "49029:18:42", + "src": "28332:18:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 34145, + "id": 34745, "nodeType": "IfStatement", - "src": "49025:86:42", + "src": "28328:86:43", "trueBody": { - "id": 34144, + "id": 34744, "nodeType": "Block", - "src": "49049:62:42", + "src": "28352:62:43", "statements": [ { "expression": { "arguments": [ { "hexValue": "4578706972792074696d652063616e6e6f74206265207a65726f2e", - "id": 34141, + "id": 34741, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "49070:29:42", + "src": "28373:29:43", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42d9ce1b1906fc6a6660b96b1a1887b9fefffe587f75da117e471256324ca69d", "typeString": "literal_string \"Expiry time cannot be zero.\"" @@ -19885,7 +10685,7 @@ "typeString": "literal_string \"Expiry time cannot be zero.\"" } ], - "id": 34140, + "id": 34740, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -19893,13 +10693,13 @@ -19 ], "referencedDeclaration": -19, - "src": "49063:6:42", + "src": "28366:6:43", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 34142, + "id": 34742, "isConstant": false, "isLValue": false, "isPure": false, @@ -19908,34 +10708,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "49063:37:42", + "src": "28366:37:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34143, + "id": 34743, "nodeType": "ExpressionStatement", - "src": "49063:37:42" + "src": "28366:37:43" } ] } }, { "assignments": [ - 34147 + 34747 ], "declarations": [ { "constant": false, - "id": 34147, + "id": 34747, "mutability": "mutable", "name": "oldExpiry", - "nameLocation": "49128:9:42", + "nameLocation": "28431:9:43", "nodeType": "VariableDeclaration", - "scope": 34165, - "src": "49120:17:42", + "scope": 34759, + "src": "28423:17:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19943,10 +10743,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34146, + "id": 34746, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "49120:7:42", + "src": "28423:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19955,36 +10755,36 @@ "visibility": "internal" } ], - "id": 34149, + "id": 34749, "initialValue": { - "id": 34148, + "id": 34748, "name": "rootHistoryExpiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32772, - "src": "49140:17:42", + "referencedDeclaration": 34032, + "src": "28443:17:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "49120:37:42" + "src": "28423:37:43" }, { "expression": { - "id": 34152, + "id": 34752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 34150, + "id": 34750, "name": "rootHistoryExpiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32772, - "src": "49167:17:42", + "referencedDeclaration": 34032, + "src": "28470:17:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19993,119 +10793,49 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 34151, + "id": 34751, "name": "newExpiryTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34128, - "src": "49187:13:42", + "referencedDeclaration": 34728, + "src": "28490:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "49167:33:42", + "src": "28470:33:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 34153, - "nodeType": "ExpressionStatement", - "src": "49167:33:42" - }, - { - "expression": { - "arguments": [ - { - "id": 34157, - "name": "newExpiryTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34128, - "src": "49245:13:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 34154, - "name": "_stateBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32802, - "src": "49211:12:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$34981", - "typeString": "contract IBridge" - } - }, - "id": 34156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "49224:20:42", - "memberName": "setRootHistoryExpiry", - "nodeType": "MemberAccess", - "referencedDeclaration": 34980, - "src": "49211:33:42", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 34158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "49211:48:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34159, + "id": 34753, "nodeType": "ExpressionStatement", - "src": "49211:48:42" + "src": "28470:33:43" }, { "eventCall": { "arguments": [ { - "id": 34161, + "id": 34755, "name": "oldExpiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34147, - "src": "49296:9:42", + "referencedDeclaration": 34747, + "src": "28540:9:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 34162, + "id": 34756, "name": "newExpiryTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34128, - "src": "49307:13:42", + "referencedDeclaration": 34728, + "src": "28551:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20123,18 +10853,18 @@ "typeString": "uint256" } ], - "id": 34160, + "id": 34754, "name": "RootHistoryExpirySet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32918, - "src": "49275:20:42", + "referencedDeclaration": 34181, + "src": "28519:20:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" } }, - "id": 34163, + "id": 34757, "isConstant": false, "isLValue": false, "isPure": false, @@ -20143,23 +10873,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "49275:46:42", + "src": "28519:46:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34164, + "id": 34758, "nodeType": "EmitStatement", - "src": "49270:51:42" + "src": "28514:51:43" } ] }, "documentation": { - "id": 34126, + "id": 34726, "nodeType": "StructuredDocumentation", - "src": "48641:221:42", + "src": "27944:221:43", "text": "@notice Sets the time to wait before expiring a root from the root history.\n @dev Only the owner of the contract can call this function.\n @param newExpiryTime The new time to use to expire roots." }, "functionSelector": "c70aa727", @@ -20167,69 +10897,69 @@ "kind": "function", "modifiers": [ { - "id": 34131, + "id": 34731, "kind": "modifierInvocation", "modifierName": { - "id": 34130, + "id": 34730, "name": "onlyProxy", "nameLocations": [ - "48959:9:42" + "28262:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "48959:9:42" + "src": "28262:9:43" }, "nodeType": "ModifierInvocation", - "src": "48959:9:42" + "src": "28262:9:43" }, { - "id": 34133, + "id": 34733, "kind": "modifierInvocation", "modifierName": { - "id": 34132, + "id": 34732, "name": "onlyInitialized", "nameLocations": [ - "48977:15:42" + "28280:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "48977:15:42" + "referencedDeclaration": 48444, + "src": "28280:15:43" }, "nodeType": "ModifierInvocation", - "src": "48977:15:42" + "src": "28280:15:43" }, { - "id": 34135, + "id": 34735, "kind": "modifierInvocation", "modifierName": { - "id": 34134, + "id": 34734, "name": "onlyOwner", "nameLocations": [ - "49001:9:42" + "28304:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29157, - "src": "49001:9:42" + "src": "28304:9:43" }, "nodeType": "ModifierInvocation", - "src": "49001:9:42" + "src": "28304:9:43" } ], "name": "setRootHistoryExpiry", - "nameLocation": "48876:20:42", + "nameLocation": "28179:20:43", "parameters": { - "id": 34129, + "id": 34729, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34128, + "id": 34728, "mutability": "mutable", "name": "newExpiryTime", - "nameLocation": "48905:13:42", + "nameLocation": "28208:13:43", "nodeType": "VariableDeclaration", - "scope": 34166, - "src": "48897:21:42", + "scope": 34760, + "src": "28200:21:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20237,10 +10967,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34127, + "id": 34727, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "48897:7:42", + "src": "28200:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20249,54 +10979,54 @@ "visibility": "internal" } ], - "src": "48896:23:42" + "src": "28199:23:43" }, "returnParameters": { - "id": 34136, + "id": 34736, "nodeType": "ParameterList", "parameters": [], - "src": "49015:0:42" + "src": "28318:0:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 34179, + "id": 34773, "nodeType": "FunctionDefinition", - "src": "49472:119:42", + "src": "28716:119:43", "nodes": [], "body": { - "id": 34178, + "id": 34772, "nodeType": "Block", - "src": "49558:33:42", + "src": "28802:33:43", "nodes": [], "statements": [ { "expression": { - "id": 34176, + "id": 34770, "name": "treeDepth", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32808, - "src": "49575:9:42", + "referencedDeclaration": 34061, + "src": "28819:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 34175, - "id": 34177, + "functionReturnParameters": 34769, + "id": 34771, "nodeType": "Return", - "src": "49568:16:42" + "src": "28812:16:43" } ] }, "documentation": { - "id": 34167, + "id": 34761, "nodeType": "StructuredDocumentation", - "src": "49334:133:42", + "src": "28578:133:43", "text": "@notice Gets the Semaphore tree depth the contract was initialized with.\n @return initializedTreeDepth Tree depth." }, "functionSelector": "8e5cdd50", @@ -20304,59 +11034,59 @@ "kind": "function", "modifiers": [ { - "id": 34170, + "id": 34764, "kind": "modifierInvocation", "modifierName": { - "id": 34169, + "id": 34763, "name": "onlyProxy", "nameLocations": [ - "49516:9:42" + "28760:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "49516:9:42" + "src": "28760:9:43" }, "nodeType": "ModifierInvocation", - "src": "49516:9:42" + "src": "28760:9:43" }, { - "id": 34172, + "id": 34766, "kind": "modifierInvocation", "modifierName": { - "id": 34171, + "id": 34765, "name": "onlyInitialized", "nameLocations": [ - "49526:15:42" + "28770:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "49526:15:42" + "referencedDeclaration": 48444, + "src": "28770:15:43" }, "nodeType": "ModifierInvocation", - "src": "49526:15:42" + "src": "28770:15:43" } ], "name": "getTreeDepth", - "nameLocation": "49481:12:42", + "nameLocation": "28725:12:43", "parameters": { - "id": 34168, + "id": 34762, "nodeType": "ParameterList", "parameters": [], - "src": "49493:2:42" + "src": "28737:2:43" }, "returnParameters": { - "id": 34175, + "id": 34769, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34174, + "id": 34768, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 34179, - "src": "49551:5:42", + "scope": 34773, + "src": "28795:5:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20364,10 +11094,10 @@ "typeString": "uint8" }, "typeName": { - "id": 34173, + "id": 34767, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "49551:5:42", + "src": "28795:5:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20376,48 +11106,48 @@ "visibility": "internal" } ], - "src": "49550:7:42" + "src": "28794:7:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "view", "virtual": true, "visibility": "public" }, { - "id": 34192, + "id": 34786, "nodeType": "FunctionDefinition", - "src": "49812:133:42", + "src": "29056:133:43", "nodes": [], "body": { - "id": 34191, + "id": 34785, "nodeType": "Block", - "src": "49904:41:42", + "src": "29148:41:43", "nodes": [], "statements": [ { "expression": { - "id": 34189, + "id": 34783, "name": "_identityOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32761, - "src": "49921:17:42", + "referencedDeclaration": 34021, + "src": "29165:17:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 34188, - "id": 34190, + "functionReturnParameters": 34782, + "id": 34784, "nodeType": "Return", - "src": "49914:24:42" + "src": "29158:24:43" } ] }, "documentation": { - "id": 34180, + "id": 34774, "nodeType": "StructuredDocumentation", - "src": "49597:210:42", + "src": "28841:210:43", "text": "@notice Gets the address that is authorised to perform identity operations on this identity\n manager instance.\n @return _ The address authorized to perform identity operations." }, "functionSelector": "f134b6ca", @@ -20425,59 +11155,59 @@ "kind": "function", "modifiers": [ { - "id": 34183, + "id": 34777, "kind": "modifierInvocation", "modifierName": { - "id": 34182, + "id": 34776, "name": "onlyProxy", "nameLocations": [ - "49860:9:42" + "29104:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "49860:9:42" + "src": "29104:9:43" }, "nodeType": "ModifierInvocation", - "src": "49860:9:42" + "src": "29104:9:43" }, { - "id": 34185, + "id": 34779, "kind": "modifierInvocation", "modifierName": { - "id": 34184, + "id": 34778, "name": "onlyInitialized", "nameLocations": [ - "49870:15:42" + "29114:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "49870:15:42" + "referencedDeclaration": 48444, + "src": "29114:15:43" }, "nodeType": "ModifierInvocation", - "src": "49870:15:42" + "src": "29114:15:43" } ], "name": "identityOperator", - "nameLocation": "49821:16:42", + "nameLocation": "29065:16:43", "parameters": { - "id": 34181, + "id": 34775, "nodeType": "ParameterList", "parameters": [], - "src": "49837:2:42" + "src": "29081:2:43" }, "returnParameters": { - "id": 34188, + "id": 34782, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34187, + "id": 34781, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 34192, - "src": "49895:7:42", + "scope": 34786, + "src": "29139:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20485,10 +11215,10 @@ "typeString": "address" }, "typeName": { - "id": 34186, + "id": 34780, "name": "address", "nodeType": "ElementaryTypeName", - "src": "49895:7:42", + "src": "29139:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20498,38 +11228,38 @@ "visibility": "internal" } ], - "src": "49894:9:42" + "src": "29138:9:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "view", "virtual": true, "visibility": "public" }, { - "id": 34222, + "id": 34816, "nodeType": "FunctionDefinition", - "src": "50238:384:42", + "src": "29482:384:43", "nodes": [], "body": { - "id": 34221, + "id": 34815, "nodeType": "Block", - "src": "50417:205:42", + "src": "29661:205:43", "nodes": [], "statements": [ { "assignments": [ - 34207 + 34801 ], "declarations": [ { "constant": false, - "id": 34207, + "id": 34801, "mutability": "mutable", "name": "oldOperator", - "nameLocation": "50435:11:42", + "nameLocation": "29679:11:43", "nodeType": "VariableDeclaration", - "scope": 34221, - "src": "50427:19:42", + "scope": 34815, + "src": "29671:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20537,10 +11267,10 @@ "typeString": "address" }, "typeName": { - "id": 34206, + "id": 34800, "name": "address", "nodeType": "ElementaryTypeName", - "src": "50427:7:42", + "src": "29671:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20550,36 +11280,36 @@ "visibility": "internal" } ], - "id": 34209, + "id": 34803, "initialValue": { - "id": 34208, + "id": 34802, "name": "_identityOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32761, - "src": "50449:17:42", + "referencedDeclaration": 34021, + "src": "29693:17:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "50427:39:42" + "src": "29671:39:43" }, { "expression": { - "id": 34212, + "id": 34806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 34210, + "id": 34804, "name": "_identityOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32761, - "src": "50476:17:42", + "referencedDeclaration": 34021, + "src": "29720:17:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20588,49 +11318,49 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 34211, + "id": 34805, "name": "newIdentityOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34195, - "src": "50496:19:42", + "referencedDeclaration": 34789, + "src": "29740:19:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "50476:39:42", + "src": "29720:39:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 34213, + "id": 34807, "nodeType": "ExpressionStatement", - "src": "50476:39:42" + "src": "29720:39:43" }, { "eventCall": { "arguments": [ { - "id": 34215, + "id": 34809, "name": "oldOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34207, - "src": "50554:11:42", + "referencedDeclaration": 34801, + "src": "29798:11:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 34216, + "id": 34810, "name": "newIdentityOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34195, - "src": "50567:19:42", + "referencedDeclaration": 34789, + "src": "29811:19:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20648,18 +11378,18 @@ "typeString": "address" } ], - "id": 34214, + "id": 34808, "name": "IdentityOperatorChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32925, - "src": "50530:23:42", + "referencedDeclaration": 34188, + "src": "29774:23:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 34217, + "id": 34811, "isConstant": false, "isLValue": false, "isPure": false, @@ -20668,41 +11398,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "50530:57:42", + "src": "29774:57:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34218, + "id": 34812, "nodeType": "EmitStatement", - "src": "50525:62:42" + "src": "29769:62:43" }, { "expression": { - "id": 34219, + "id": 34813, "name": "oldOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34207, - "src": "50604:11:42", + "referencedDeclaration": 34801, + "src": "29848:11:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 34205, - "id": 34220, + "functionReturnParameters": 34799, + "id": 34814, "nodeType": "Return", - "src": "50597:18:42" + "src": "29841:18:43" } ] }, "documentation": { - "id": 34193, + "id": 34787, "nodeType": "StructuredDocumentation", - "src": "49951:282:42", + "src": "29195:282:43", "text": "@notice Sets the address that is authorised to perform identity operations on this identity\n manager instance.\n @param newIdentityOperator The address of the new identity operator.\n @return _ The address of the old identity operator." }, "functionSelector": "a7bba582", @@ -20710,69 +11440,69 @@ "kind": "function", "modifiers": [ { - "id": 34198, + "id": 34792, "kind": "modifierInvocation", "modifierName": { - "id": 34197, + "id": 34791, "name": "onlyProxy", "nameLocations": [ - "50335:9:42" + "29579:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "50335:9:42" + "src": "29579:9:43" }, "nodeType": "ModifierInvocation", - "src": "50335:9:42" + "src": "29579:9:43" }, { - "id": 34200, + "id": 34794, "kind": "modifierInvocation", "modifierName": { - "id": 34199, + "id": 34793, "name": "onlyInitialized", "nameLocations": [ - "50353:15:42" + "29597:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "50353:15:42" + "referencedDeclaration": 48444, + "src": "29597:15:43" }, "nodeType": "ModifierInvocation", - "src": "50353:15:42" + "src": "29597:15:43" }, { - "id": 34202, + "id": 34796, "kind": "modifierInvocation", "modifierName": { - "id": 34201, + "id": 34795, "name": "onlyOwner", "nameLocations": [ - "50377:9:42" + "29621:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29157, - "src": "50377:9:42" + "src": "29621:9:43" }, "nodeType": "ModifierInvocation", - "src": "50377:9:42" + "src": "29621:9:43" } ], "name": "setIdentityOperator", - "nameLocation": "50247:19:42", + "nameLocation": "29491:19:43", "parameters": { - "id": 34196, + "id": 34790, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34195, + "id": 34789, "mutability": "mutable", "name": "newIdentityOperator", - "nameLocation": "50275:19:42", + "nameLocation": "29519:19:43", "nodeType": "VariableDeclaration", - "scope": 34222, - "src": "50267:27:42", + "scope": 34816, + "src": "29511:27:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20780,10 +11510,10 @@ "typeString": "address" }, "typeName": { - "id": 34194, + "id": 34788, "name": "address", "nodeType": "ElementaryTypeName", - "src": "50267:7:42", + "src": "29511:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20793,21 +11523,21 @@ "visibility": "internal" } ], - "src": "50266:29:42" + "src": "29510:29:43" }, "returnParameters": { - "id": 34205, + "id": 34799, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34204, + "id": 34798, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 34222, - "src": "50404:7:42", + "scope": 34816, + "src": "29648:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20815,10 +11545,10 @@ "typeString": "address" }, "typeName": { - "id": 34203, + "id": 34797, "name": "address", "nodeType": "ElementaryTypeName", - "src": "50404:7:42", + "src": "29648:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20828,34 +11558,34 @@ "visibility": "internal" } ], - "src": "50403:9:42" + "src": "29647:9:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 34258, + "id": 34852, "nodeType": "FunctionDefinition", - "src": "51457:508:42", + "src": "30701:499:43", "nodes": [], "body": { - "id": 34257, + "id": 34851, "nodeType": "Block", - "src": "51685:280:42", + "src": "30929:271:43", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 34243, + "id": 34837, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34225, - "src": "51762:4:42", + "referencedDeclaration": 34819, + "src": "31006:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20869,18 +11599,18 @@ "typeString": "uint256" } ], - "id": 34242, + "id": 34836, "name": "requireValidRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33956, - "src": "51745:16:42", + "referencedDeclaration": 34580, + "src": "30989:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, - "id": 34244, + "id": 34838, "isConstant": false, "isLValue": false, "isPure": false, @@ -20889,148 +11619,136 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "51745:22:42", + "src": "30989:22:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34245, + "id": 34839, "nodeType": "ExpressionStatement", - "src": "51745:22:42" + "src": "30989:22:43" }, { "expression": { "arguments": [ { - "id": 34249, - "name": "root", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34225, - "src": "51876:4:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 34250, - "name": "nullifierHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34229, - "src": "51882:13:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 34251, - "name": "signalHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34227, - "src": "51897:10:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 34252, - "name": "externalNullifierHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34231, - "src": "51909:21:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 34253, + "id": 34843, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34235, - "src": "51932:5:42", + "referencedDeclaration": 34829, + "src": "31120:5:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", "typeString": "uint256[8] calldata" } }, { - "id": 34254, - "name": "treeDepth", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32808, - "src": "51939:9:42", + "components": [ + { + "id": 34844, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34819, + "src": "31128:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 34845, + "name": "nullifierHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34823, + "src": "31134:13:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 34846, + "name": "signalHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34821, + "src": "31149:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 34847, + "name": "externalNullifierHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34825, + "src": "31161:21:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 34848, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31127:56:43", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, { "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", "typeString": "uint256[8] calldata" }, { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" } ], "expression": { - "id": 34246, + "id": 34840, "name": "semaphoreVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32798, - "src": "51833:17:42", + "referencedDeclaration": 34051, + "src": "31077:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$32716", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", "typeString": "contract ISemaphoreVerifier" } }, - "id": 34248, + "id": 34842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "51851:11:42", + "memberLocation": "31095:11:43", "memberName": "verifyProof", "nodeType": "MemberAccess", - "referencedDeclaration": 32715, - "src": "51833:29:42", + "referencedDeclaration": 35428, + "src": "31077:29:43", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$8_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,uint256,uint256,uint256[8] memory,uint256) view external" + "typeIdentifier": "t_function_external_view$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_uint256_$4_memory_ptr_$returns$__$", + "typeString": "function (uint256[8] memory,uint256[4] memory) view external" } }, - "id": 34255, + "id": 34849, "isConstant": false, "isLValue": false, "isPure": false, @@ -21039,80 +11757,80 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "51833:125:42", + "src": "31077:116:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34256, + "id": 34850, "nodeType": "ExpressionStatement", - "src": "51833:125:42" + "src": "31077:116:43" } ] }, "baseFunctions": [ - 35032 + 35468 ], "documentation": { - "id": 34223, + "id": 34817, "nodeType": "StructuredDocumentation", - "src": "50881:571:42", - "text": "@notice A verifier for the semaphore protocol.\n @dev Note that a double-signaling check is not included here, and should be carried by the\n caller.\n @param root The of the Merkle tree\n @param signalHash A keccak256 hash of the Semaphore signal\n @param nullifierHash The nullifier hash\n @param externalNullifierHash A keccak256 hash of the external nullifier\n @param proof The zero-knowledge proof\n @custom:reverts string If the zero-knowledge proof cannot be verified for the public inputs." + "src": "30125:571:43", + "text": "@notice A verifier for the semaphore protocol.\n @dev Note that a double-signaling check is not included here, and should be carried by the\n caller.\n @param proof The zero-knowledge proof\n @param root The of the Merkle tree\n @param signalHash A keccak256 hash of the Semaphore signal\n @param nullifierHash The nullifier hash\n @param externalNullifierHash A keccak256 hash of the external nullifier\n @custom:reverts string If the zero-knowledge proof cannot be verified for the public inputs." }, "functionSelector": "354ca120", "implemented": true, "kind": "function", "modifiers": [ { - "id": 34238, + "id": 34832, "kind": "modifierInvocation", "modifierName": { - "id": 34237, + "id": 34831, "name": "onlyProxy", "nameLocations": [ - "51659:9:42" + "30903:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "51659:9:42" + "src": "30903:9:43" }, "nodeType": "ModifierInvocation", - "src": "51659:9:42" + "src": "30903:9:43" }, { - "id": 34240, + "id": 34834, "kind": "modifierInvocation", "modifierName": { - "id": 34239, + "id": 34833, "name": "onlyInitialized", "nameLocations": [ - "51669:15:42" + "30913:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 49391, - "src": "51669:15:42" + "referencedDeclaration": 48444, + "src": "30913:15:43" }, "nodeType": "ModifierInvocation", - "src": "51669:15:42" + "src": "30913:15:43" } ], "name": "verifyProof", - "nameLocation": "51466:11:42", + "nameLocation": "30710:11:43", "parameters": { - "id": 34236, + "id": 34830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34225, + "id": 34819, "mutability": "mutable", "name": "root", - "nameLocation": "51495:4:42", + "nameLocation": "30739:4:43", "nodeType": "VariableDeclaration", - "scope": 34258, - "src": "51487:12:42", + "scope": 34852, + "src": "30731:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21120,10 +11838,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34224, + "id": 34818, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "51487:7:42", + "src": "30731:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21133,13 +11851,13 @@ }, { "constant": false, - "id": 34227, + "id": 34821, "mutability": "mutable", "name": "signalHash", - "nameLocation": "51517:10:42", + "nameLocation": "30761:10:43", "nodeType": "VariableDeclaration", - "scope": 34258, - "src": "51509:18:42", + "scope": 34852, + "src": "30753:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21147,10 +11865,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34226, + "id": 34820, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "51509:7:42", + "src": "30753:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21160,13 +11878,13 @@ }, { "constant": false, - "id": 34229, + "id": 34823, "mutability": "mutable", "name": "nullifierHash", - "nameLocation": "51545:13:42", + "nameLocation": "30789:13:43", "nodeType": "VariableDeclaration", - "scope": 34258, - "src": "51537:21:42", + "scope": 34852, + "src": "30781:21:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21174,10 +11892,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34228, + "id": 34822, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "51537:7:42", + "src": "30781:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21187,13 +11905,13 @@ }, { "constant": false, - "id": 34231, + "id": 34825, "mutability": "mutable", "name": "externalNullifierHash", - "nameLocation": "51576:21:42", + "nameLocation": "30820:21:43", "nodeType": "VariableDeclaration", - "scope": 34258, - "src": "51568:29:42", + "scope": 34852, + "src": "30812:29:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21201,10 +11919,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34230, + "id": 34824, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "51568:7:42", + "src": "30812:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21214,13 +11932,13 @@ }, { "constant": false, - "id": 34235, + "id": 34829, "mutability": "mutable", "name": "proof", - "nameLocation": "51627:5:42", + "nameLocation": "30871:5:43", "nodeType": "VariableDeclaration", - "scope": 34258, - "src": "51607:25:42", + "scope": 34852, + "src": "30851:25:43", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -21229,26 +11947,26 @@ }, "typeName": { "baseType": { - "id": 34232, + "id": 34826, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "51607:7:42", + "src": "30851:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 34234, + "id": 34828, "length": { "hexValue": "38", - "id": 34233, + "id": 34827, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "51615:1:42", + "src": "30859:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" @@ -21256,7 +11974,7 @@ "value": "8" }, "nodeType": "ArrayTypeName", - "src": "51607:10:42", + "src": "30851:10:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", "typeString": "uint256[8]" @@ -21265,28 +11983,28 @@ "visibility": "internal" } ], - "src": "51477:161:42" + "src": "30721:161:43" }, "returnParameters": { - "id": 34241, + "id": 34835, "nodeType": "ParameterList", "parameters": [], - "src": "51685:0:42" + "src": "30929:0:43" }, - "scope": 34275, + "scope": 34869, "stateMutability": "view", "virtual": true, "visibility": "public" }, { - "id": 34274, + "id": 34868, "nodeType": "ModifierDefinition", - "src": "52448:153:42", + "src": "31683:153:43", "nodes": [], "body": { - "id": 34273, + "id": 34867, "nodeType": "Block", - "src": "52480:121:42", + "src": "31715:121:43", "nodes": [], "statements": [ { @@ -21295,33 +12013,33 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 34264, + "id": 34858, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 34261, + "id": 34855, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "52494:3:42", + "src": "31729:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 34262, + "id": 34856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "52498:6:42", + "memberLocation": "31733:6:43", "memberName": "sender", "nodeType": "MemberAccess", - "src": "52494:10:42", + "src": "31729:10:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21330,56 +12048,56 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 34263, + "id": 34857, "name": "_identityOperator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32761, - "src": "52508:17:42", + "referencedDeclaration": 34021, + "src": "31743:17:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "52494:31:42", + "src": "31729:31:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 34271, + "id": 34865, "nodeType": "IfStatement", - "src": "52490:93:42", + "src": "31725:93:43", "trueBody": { - "id": 34270, + "id": 34864, "nodeType": "Block", - "src": "52527:56:42", + "src": "31762:56:43", "statements": [ { "errorCall": { "arguments": [ { "expression": { - "id": 34266, + "id": 34860, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "52561:3:42", + "src": "31796:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 34267, + "id": 34861, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "52565:6:42", + "memberLocation": "31800:6:43", "memberName": "sender", "nodeType": "MemberAccess", - "src": "52561:10:42", + "src": "31796:10:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21393,18 +12111,18 @@ "typeString": "address" } ], - "id": 34265, + "id": 34859, "name": "Unauthorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32854, - "src": "52548:12:42", + "referencedDeclaration": 34111, + "src": "31783:12:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", "typeString": "function (address) pure" } }, - "id": 34268, + "id": 34862, "isConstant": false, "isLValue": false, "isPure": false, @@ -21413,40 +12131,40 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "52548:24:42", + "src": "31783:24:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34269, + "id": 34863, "nodeType": "RevertStatement", - "src": "52541:31:42" + "src": "31776:31:43" } ] } }, { - "id": 34272, + "id": 34866, "nodeType": "PlaceholderStatement", - "src": "52593:1:42" + "src": "31828:1:43" } ] }, "documentation": { - "id": 34259, + "id": 34853, "nodeType": "StructuredDocumentation", - "src": "52224:219:42", + "src": "31459:219:43", "text": "@notice Ensures that the guarded operation can only be performed by the authorized identity\n operator contract.\n @custom:reverts Unauthorized If the caller is not the identity operator." }, "name": "onlyIdentityOperator", - "nameLocation": "52457:20:42", + "nameLocation": "31692:20:43", "parameters": { - "id": 34260, + "id": 34854, "nodeType": "ParameterList", "parameters": [], - "src": "52477:2:42" + "src": "31712:2:43" }, "virtual": false, "visibility": "internal" @@ -21456,51 +12174,51 @@ "baseContracts": [ { "baseName": { - "id": 32755, + "id": 34015, "name": "WorldIDImpl", "nameLocations": [ - "926:11:42" + "920:11:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34721, - "src": "926:11:42" + "referencedDeclaration": 35153, + "src": "920:11:43" }, - "id": 32756, + "id": 34016, "nodeType": "InheritanceSpecifier", - "src": "926:11:42" + "src": "920:11:43" }, { "baseName": { - "id": 32757, + "id": 34017, "name": "IWorldID", "nameLocations": [ - "939:8:42" + "933:8:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35033, - "src": "939:8:42" + "referencedDeclaration": 35469, + "src": "933:8:43" }, - "id": 32758, + "id": 34018, "nodeType": "InheritanceSpecifier", - "src": "939:8:42" + "src": "933:8:43" } ], "canonicalName": "WorldIDIdentityManagerImplV1", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 32754, + "id": 34014, "nodeType": "StructuredDocumentation", - "src": "514:371:42", + "src": "508:371:43", "text": "@title WorldID Identity Manager Implementation Version 1\n @author Worldcoin\n @notice An implementation of a batch-based identity manager for the WorldID protocol.\n @dev The manager is based on the principle of verifying externally-created Zero Knowledge Proofs\n to perform the insertions.\n @dev This is the implementation delegated to by a proxy." }, "fullyImplemented": true, "linearizedBaseContracts": [ - 34275, - 35033, - 34966, - 34721, - 49397, + 34869, + 35469, + 35398, + 35153, + 48450, 29937, 29622, 29253, @@ -21510,27 +12228,43 @@ 29801 ], "name": "WorldIDIdentityManagerImplV1", - "nameLocation": "894:28:42", - "scope": 34276, + "nameLocation": "888:28:43", + "scope": 34870, "usedErrors": [ - 32849, - 32854, - 32859, - 32862, - 32869, - 32872, - 32875, - 32878, - 32883, - 32886, - 34697, - 34962, - 34965, - 49368 + 34106, + 34111, + 34116, + 34119, + 34126, + 34129, + 34132, + 34135, + 34140, + 34143, + 34146, + 34149, + 35129, + 35394, + 35397, + 48421 + ], + "usedEvents": [ + 29037, + 29128, + 29287, + 29431, + 29496, + 29647, + 34159, + 34169, + 34174, + 34181, + 34188, + 34195 ] } ], "license": "MIT" }, - "id": 42 -} + "id": 43 +} \ No newline at end of file diff --git a/sol/WorldIDIdentityManagerImplV2.json b/sol/WorldIDIdentityManagerImplV2.json index e8eaf181..cb2ce1a8 100644 --- a/sol/WorldIDIdentityManagerImplV2.json +++ b/sol/WorldIDIdentityManagerImplV2.json @@ -31,6 +31,16 @@ "name": "InvalidStateBridgeAddress", "type": "error" }, + { + "inputs": [], + "name": "InvalidVerifier", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidVerifierLUT", + "type": "error" + }, { "inputs": [], "name": "MismatchedInputLengths", @@ -326,6 +336,12 @@ "name": "WorldIDIdentityManagerImplInitialized", "type": "event" }, + { + "anonymous": false, + "inputs": [], + "name": "WorldIDIdentityManagerImplV2Initialized", + "type": "event" + }, { "inputs": [], "name": "NO_SUCH_ROOT", @@ -431,45 +447,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "preRoot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "postRoot", - "type": "uint256" - }, - { - "internalType": "uint32[]", - "name": "leafIndices", - "type": "uint32[]" - }, - { - "internalType": "uint256[]", - "name": "oldIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "newIdentities", - "type": "uint256[]" - } - ], - "name": "calculateIdentityUpdateInputHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "hash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -477,11 +454,6 @@ "name": "deletionProof", "type": "uint256[8]" }, - { - "internalType": "uint32", - "name": "batchSize", - "type": "uint32" - }, { "internalType": "bytes", "name": "packedDeletionIndices", @@ -516,19 +488,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "getIdentityUpdateVerifierLookupTableAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "getRegisterIdentitiesVerifierLookupTableAddress", @@ -631,7 +590,7 @@ "inputs": [ { "internalType": "contract VerifierLookupTable", - "name": "_batchUpdateVerifiers", + "name": "_batchDeletionVerifiers", "type": "address" } ], @@ -813,19 +772,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "contract VerifierLookupTable", - "name": "newTable", - "type": "address" - } - ], - "name": "setIdentityUpdateVerifierLookupTable", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -878,44 +824,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256[8]", - "name": "updateProof", - "type": "uint256[8]" - }, - { - "internalType": "uint256", - "name": "preRoot", - "type": "uint256" - }, - { - "internalType": "uint32[]", - "name": "leafIndices", - "type": "uint32[]" - }, - { - "internalType": "uint256[]", - "name": "oldIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "newIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256", - "name": "postRoot", - "type": "uint256" - } - ], - "name": "updateIdentities", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -982,234 +890,194 @@ } ], "bytecode": { - "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051613e706200027e6000396000818161064e0152818161069701528181610775015281816107b501528181610b8d01528181610bcd0152818161100401528181611044015281816110fb0152818161113b015281816111e701528181611227015281816113270152818161136701528181611577015281816115b701528181611669015281816116a9015281816117ff0152818161183f015281816118ca0152818161190a01528181611985015281816119c501528181611a5c01528181611b0c01528181611b4c01528181611c9b01528181611cdb01528181611da701528181611de701528181611eaa01528181611eea01528181611f8101528181611fc1015281816120570152818161209701528181612177015281816121b70152818161226c015281816122ac0152818161248d015281816124cd015281816125e401528181612624015281816126b1015281816126f101528181612787015281816127c70152818161285b0152818161289b01528181612a8101528181612ac101528181612d3e0152612d7e0152613e706000f3fe6080604052600436106101f95760003560e01c8063715018a61161010d578063aa4a729e116100a0578063e30c39781161006f578063e30c3978146105bc578063f134b6ca146105da578063f2038f95146105ef578063f2358e1d14610604578063f2fde38b1461062457600080fd5b8063aa4a729e14610547578063b843b4e514610567578063c70aa72714610587578063d7b0fef1146105a757600080fd5b80638da5cb5b116100dc5780638da5cb5b146104cd5780638e5cdd50146104eb5780638fc22e9f14610512578063a7bba5821461052757600080fd5b8063715018a61461046357806379ba50971461047857806386ec599a1461048d5780638c76a909146104ad57600080fd5b806338c87065116101905780634f1ef2861161015f5780634f1ef286146103c25780634ffbdde5146103d557806352d1902d146103ea578063561f204b146103ff5780636b0566001461044357600080fd5b806338c87065146103135780633e8919b6146103335780633f7c178d1461036057806343f974cb146103ad57600080fd5b80632f059fca116101cc5780632f059fca1461028057806331e4e992146102a0578063354ca120146102d35780633659cfe6146102f357600080fd5b80630e3a12f3146101fe5780632217b2111461022057806323cfdba51461024057806329b6eca914610260575b600080fd5b34801561020a57600080fd5b5061021e610219366004613375565b610644565b005b34801561022c57600080fd5b5061021e61023b366004613404565b61076b565b34801561024c57600080fd5b5061021e61025b3660046134c3565b610b83565b34801561026c57600080fd5b5061021e61027b366004613375565b610f4c565b34801561028c57600080fd5b5061021e61029b366004613375565b610ffa565b3480156102ac57600080fd5b506102c06102bb36600461353c565b6110ef565b6040519081526020015b60405180910390f35b3480156102df57600080fd5b5061021e6102ee3660046135a3565b6111dd565b3480156102ff57600080fd5b5061021e61030e366004613375565b61131d565b34801561031f57600080fd5b5061021e61032e3660046135e2565b6113e5565b34801561033f57600080fd5b5061034861156b565b6040516001600160a01b0390911681526020016102ca565b34801561036c57600080fd5b5061038061037b366004613650565b611642565b60408051825181526020808401516001600160801b031690820152918101511515908201526060016102ca565b3480156103b957600080fd5b506102c06117f3565b61021e6103d03660046136ac565b6118c0565b3480156103e157600080fd5b50610348611979565b3480156103f657600080fd5b506102c0611a4f565b34801561040b57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610380565b34801561044f57600080fd5b5061021e61045e366004613375565b611b02565b34801561046f57600080fd5b5061021e611bf7565b34801561048457600080fd5b5061021e611c18565b34801561049957600080fd5b506102c06104a8366004613758565b611c8f565b3480156104b957600080fd5b506102c06104c8366004613805565b611d9b565b3480156104d957600080fd5b506033546001600160a01b0316610348565b3480156104f757600080fd5b50610500611e9e565b60405160ff90911681526020016102ca565b34801561051e57600080fd5b50610348611f75565b34801561053357600080fd5b50610348610542366004613375565b61204b565b34801561055357600080fd5b5061021e610562366004613375565b61216d565b34801561057357600080fd5b5061021e61058236600461386d565b612262565b34801561059357600080fd5b5061021e6105a2366004613650565b612483565b3480156105b357600080fd5b506102c06125d8565b3480156105c857600080fd5b506065546001600160a01b0316610348565b3480156105e657600080fd5b506103486126a5565b3480156105fb57600080fd5b5061034861277b565b34801561061057600080fd5b5061021e61061f366004613650565b612851565b34801561063057600080fd5b5061021e61063f366004613375565b61298e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106955760405162461bcd60e51b815260040161068c90613930565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106c76129ff565b6001600160a01b0316146106ed5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661071057604051630103019560e11b815260040160405180910390fd5b610718612a1b565b61013380546001600160a01b038381166001600160a01b03198316811790935516908160045b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107b35760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107e56129ff565b6001600160a01b03161461080b5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661082e57604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b0316331461085c5760405163472511eb60e11b815233600482015260240161068c565b61012e54851461088e5761012e5460405163542fced960e11b815261068c918791600401918252602082015260400190565b600061089d8587848787611d9b565b905060006108cb7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836139c8565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa15801561091b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093f91906139ea565b9050806001600160a01b03166343753b4d60405180604001604052808c60006008811061096e5761096e613a07565b602002013581526020018c60016008811061098b5761098b613a07565b60200201359052604080516080810182528d820135918101918252908190606082018f60036020020135815250815260200160405180604001604052808f6004600881106109db576109db613a07565b602002013581526020018f6005600881106109f8576109f8613a07565b60200201359052905260408051808201909152808e6006602002013581526020018e600760088110610a2c57610a2c613a07565b60200201358152506040518060200160405280888152506040518563ffffffff1660e01b8152600401610a629493929190613a40565b6020604051808303816000875af1925050508015610a9d575060408051601f3d908101601f19168201909252610a9a91810190613ae7565b60015b610afd57610aa9613b09565b806308c379a003610ae25750610abd613b24565b80610ac85750610ae4565b8060405162461bcd60e51b815260040161068c9190613bd2565b505b604051631e716a8b60e01b815260040160405180910390fd5b80610b1b57604051631e716a8b60e01b815260040160405180910390fd5b61012e859055600089815261012f6020526040812080546001600160801b031916426001600160801b031617905585906040518b907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505b505050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610bcb5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bfd6129ff565b6001600160a01b031614610c235760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16610c4657604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314610c745760405163472511eb60e11b815233600482015260240161068c565b61012e548214610ca65761012e5460405163542fced960e11b815261068c918491600401918252602082015260400190565b6000610cb5858585858a6110ef565b90506000610ce37f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836139c8565b61013554604051638a283fc360e01b815263ffffffff8a1660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c91906139ea565b9050806001600160a01b03166343753b4d60405180604001604052808c600060088110610d8b57610d8b613a07565b602002013581526020018c600160088110610da857610da8613a07565b60200201359052604080516080810182528d820135918101918252908190606082018f60036020020135815250815260200160405180604001604052808f600460088110610df857610df8613a07565b602002013581526020018f600560088110610e1557610e15613a07565b60200201359052905260408051808201909152808e6006602002013581526020018e600760088110610e4957610e49613a07565b60200201358152506040518060200160405280888152506040518563ffffffff1660e01b8152600401610e7f9493929190613a40565b6020604051808303816000875af1925050508015610eba575060408051601f3d908101601f19168201909252610eb791810190613ae7565b60015b610ec657610aa9613b09565b80610ee457604051631e716a8b60e01b815260040160405180910390fd5b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a450505050505050505050565b600054600290610100900460ff16158015610f6e575060005460ff8083169116105b610f8a5760405162461bcd60e51b815260040161068c90613c05565b6000805461013580546001600160a01b0319166001600160a01b03861617905561ff001961010060ff851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110425760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110746129ff565b6001600160a01b03161461109a5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff166110bd57604051630103019560e11b815260040160405180910390fd5b6110c5612a1b565b61013180546001600160a01b038381166001600160a01b031983168117909355169081600161073e565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111395760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661116b6129ff565b6001600160a01b0316146111915760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff166111b457604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112255760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112576129ff565b6001600160a01b03161461127d5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff166112a057604051630103019560e11b815260040160405180910390fd5b6112a985612851565b6101335461013454604051634d65479560e11b81526001600160a01b0390921691639aca8f2a916112f191899188918a9189918991600160a81b900460ff1690600401613c53565b60006040518083038186803b15801561130957600080fd5b505afa158015610b78573d6000803e3d6000fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113655760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113976129ff565b6001600160a01b0316146113bd5760405162461bcd60e51b815260040161068c9061397c565b6113c681612a77565b604080516000808252602082019092526113e291839190612b1f565b50565b600054600190610100900460ff16158015611407575060005460ff8083169116105b6114235760405162461bcd60e51b815260040161068c90613c05565b6000805461ffff191660ff83161761010017905561143f612c8f565b61144886612cbe565b61146a57604051630220cee360e61b815260ff8716600482015260240161068c565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d80549190931691161790556114e6612ce5565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115b55760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166115e76129ff565b6001600160a01b03161461160d5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661163057604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116a75760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116d96129ff565b6001600160a01b0316146116ff5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661172257604051630103019560e11b815260040160405180910390fd5b61012e5482036117515750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b0316908190036117ac5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906117c66001600160801b03841642613c8f565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361183d5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661186f6129ff565b6001600160a01b0316146118955760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff166118b857604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119085760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661193a6129ff565b6001600160a01b0316146119605760405162461bcd60e51b815260040161068c9061397c565b61196982612a77565b61197582826001612b1f565b5050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119c35760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119f56129ff565b6001600160a01b031614611a1b5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16611a3e57604051630103019560e11b815260040160405180910390fd5b50610132546001600160a01b031690565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611aef5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161068c565b50600080516020613df483398151915290565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b4a5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b7c6129ff565b6001600160a01b031614611ba25760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16611bc557604051630103019560e11b815260040160405180910390fd5b611bcd612a1b565b61013280546001600160a01b038381166001600160a01b031983168117909355169081600361073e565b611bff612a1b565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b03168114611c865760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161068c565b6113e281612d1b565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cd95760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d0b6129ff565b6001600160a01b031614611d315760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16611d5457604051630103019560e11b815260040160405180910390fd5b60008989898989898989604051602001611d75989796959493929190613cd9565b60408051601f1981840301815291905280516020909101209a9950505050505050505050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611de55760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611e176129ff565b6001600160a01b031614611e3d5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16611e6057604051630103019560e11b815260040160405180910390fd5b60008686868686604051602001611e7b959493929190613d3d565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ee85760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611f1a6129ff565b6001600160a01b031614611f405760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16611f6357604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611fbf5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ff16129ff565b6001600160a01b0316146120175760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661203a57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120955760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120c76129ff565b6001600160a01b0316146120ed5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661211057604051630103019560e11b815260040160405180910390fd5b612118612a1b565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121b55760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121e76129ff565b6001600160a01b03161461220d5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661223057604051630103019560e11b815260040160405180910390fd5b612238612a1b565b61013580546001600160a01b038381166001600160a01b031983168117909355169081600261073e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122aa5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122dc6129ff565b6001600160a01b0316146123025760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661232557604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146123535760405163472511eb60e11b815233600482015260240161068c565b61012e5488146123855761012e5460405163542fced960e11b815261068c918a91600401918252602082015260400190565b85841415806123945750858214155b156123b25760405163a0b1d72d60e01b815260040160405180910390fd5b60006123c489838a8a8a8a8a8a611c8f565b905060006123f27f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836139c8565b61013254604051638a283fc360e01b8152600481018b90529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015612442573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246691906139ea565b9050612475818d848e88612d34565b505050505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036124cb5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124fd6129ff565b6001600160a01b0316146125235760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661254657604051630103019560e11b815260040160405180910390fd5b61254e612a1b565b8060000361259e5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e0000000000604482015260640161068c565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036126225760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166126546129ff565b6001600160a01b03161461267a5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661269d57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036126ef5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166127216129ff565b6001600160a01b0316146127475760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661276a57604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036127c55760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166127f76129ff565b6001600160a01b03161461281d5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661284057604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036128995760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166128cb6129ff565b6001600160a01b0316146128f15760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661291457604051630103019560e11b815260040160405180910390fd5b61012e5481146113e257600081815261012f60205260408120546001600160801b0316908190036129585760405163ddae3b7160e01b815260040160405180910390fd5b6101305461296f6001600160801b03831642613c8f565b111561197557604051631d739acf60e11b815260040160405180910390fd5b612996612a1b565b606580546001600160a01b0383166001600160a01b031990911681179091556129c76033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020613df4833981519152546001600160a01b031690565b6033546001600160a01b03163314612a755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161068c565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612abf5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612af16129ff565b6001600160a01b031614612b175760405162461bcd60e51b815260040161068c9061397c565b6113e2612a1b565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612b5757612b528361302b565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612bb1575060408051601f3d908101601f19168201909252612bae91810190613d73565b60015b612c145760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161068c565b600080516020613df48339815191528114612c835760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161068c565b50612b528383836130c7565b600054610100900460ff16612cb65760405162461bcd60e51b815260040161068c90613d8c565b612a756130f2565b60006010602060ff84168211801590612cdd57508060ff168460ff1611155b949350505050565b600054610100900460ff16612d0c5760405162461bcd60e51b815260040161068c90613d8c565b60fb805460ff19166001179055565b606580546001600160a01b03191690556113e281613129565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612d7c5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612dae6129ff565b6001600160a01b031614612dd45760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16612df757604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314612e255760405163472511eb60e11b815233600482015260240161068c565b6000604051806040016040528086600060088110612e4557612e45613a07565b6020020135815260200186600160088110612e6257612e62613a07565b6020020135905260408051608081018252878201359181019182529192506000919081906060820189600360200201358152508152602001604051806040016040528089600460088110612eb857612eb8613a07565b6020020135815260200189600560088110612ed557612ed5613a07565b60200201359052905260408051808201909152909150600090808860066020020135815260200188600760088110612f0f57612f0f613a07565b6020020135815250905060006040518060200160405280888152509050886001600160a01b03166343753b4d858585856040518563ffffffff1660e01b8152600401612f5e9493929190613a40565b6020604051808303816000875af1925050508015612f99575060408051601f3d908101601f19168201909252612f9691810190613ae7565b60015b612fa557610aa9613b09565b80612fc357604051631e716a8b60e01b815260040160405180910390fd5b61012e869055600087815261012f6020526040902080546001600160801b031916426001600160801b031617905585600260405189907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a450505050505050505050565b6001600160a01b0381163b6130985760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161068c565b600080516020613df483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6130d08361317b565b6000825111806130dd5750805b15612b52576130ec83836131bb565b50505050565b600054610100900460ff166131195760405162461bcd60e51b815260040161068c90613d8c565b6131216132b1565b612a756132e0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6131848161302b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6132235760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161068c565b600080846001600160a01b03168460405161323e9190613dd7565b600060405180830381855af49150503d8060008114613279576040519150601f19603f3d011682016040523d82523d6000602084013e61327e565b606091505b50915091506132a68282604051806060016040528060278152602001613e1460279139613307565b925050505b92915050565b600054610100900460ff166132d85760405162461bcd60e51b815260040161068c90613d8c565b612a75613320565b600054610100900460ff16612a755760405162461bcd60e51b815260040161068c90613d8c565b606083156133165750816117a5565b6117a58383613350565b600054610100900460ff166133475760405162461bcd60e51b815260040161068c90613d8c565b612a7533612d1b565b815115610ac85781518083602001fd5b6001600160a01b03811681146113e257600080fd5b60006020828403121561338757600080fd5b81356117a581613360565b8061010081018310156132ab57600080fd5b803563ffffffff811681146117ee57600080fd5b60008083601f8401126133ca57600080fd5b50813567ffffffffffffffff8111156133e257600080fd5b6020830191508360208260051b85010111156133fd57600080fd5b9250929050565b600080600080600080610180878903121561341e57600080fd5b6134288888613392565b9550610100870135945061343f61012088016133a4565b935061014087013567ffffffffffffffff81111561345c57600080fd5b61346889828a016133b8565b979a969950949794969561016090950135949350505050565b60008083601f84011261349357600080fd5b50813567ffffffffffffffff8111156134ab57600080fd5b6020830191508360208285010111156133fd57600080fd5b60008060008060008061018087890312156134dd57600080fd5b6134e78888613392565b95506134f661010088016133a4565b945061012087013567ffffffffffffffff81111561351357600080fd5b61351f89828a01613481565b979a96995097610140810135966101609091013595509350505050565b60008060008060006080868803121561355457600080fd5b853567ffffffffffffffff81111561356b57600080fd5b61357788828901613481565b9096509450506020860135925060408601359150613597606087016133a4565b90509295509295909350565b600080600080600061018086880312156135bc57600080fd5b853594506020860135935060408601359250606086013591506135978760808801613392565b600080600080600060a086880312156135fa57600080fd5b853560ff8116811461360b57600080fd5b945060208601359350604086013561362281613360565b9250606086013561363281613360565b9150608086013561364281613360565b809150509295509295909350565b60006020828403121561366257600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156136a5576136a5613669565b6040525050565b600080604083850312156136bf57600080fd5b82356136ca81613360565b915060208381013567ffffffffffffffff808211156136e857600080fd5b818601915086601f8301126136fc57600080fd5b81358181111561370e5761370e613669565b6040519150613726601f8201601f191685018361367f565b808252878482850101111561373a57600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060008060008060a0898b03121561377457600080fd5b8835975060208901359650604089013567ffffffffffffffff8082111561379a57600080fd5b6137a68c838d016133b8565b909850965060608b01359150808211156137bf57600080fd5b6137cb8c838d016133b8565b909650945060808b01359150808211156137e457600080fd5b506137f18b828c016133b8565b999c989b5096995094979396929594505050565b60008060008060006080868803121561381d57600080fd5b613826866133a4565b94506020860135935060408601359250606086013567ffffffffffffffff81111561385057600080fd5b61385c888289016133b8565b969995985093965092949392505050565b60008060008060008060008060006101a08a8c03121561388c57600080fd5b6138968b8b613392565b98506101008a013597506101208a013567ffffffffffffffff808211156138bc57600080fd5b6138c88d838e016133b8565b90995097506101408c01359150808211156138e257600080fd5b6138ee8d838e016133b8565b90975095506101608c013591508082111561390857600080fd5b506139158c828d016133b8565b9a9d999c50979a969995989497966101800135949350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826139e557634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156139fc57600080fd5b81516117a581613360565b634e487b7160e01b600052603260045260246000fd5b8060005b60028110156130ec578151845260209384019390910190600101613a21565b6101208101613a4f8287613a1d565b60408083018660005b6002808210613a675750613aa2565b82518460005b83811015613a8b578251825260209283019290910190600101613a6d565b505050928401925060209190910190600101613a58565b50505050613ab360c0830185613a1d565b61010082018360005b6001811015613adb578151835260209283019290910190600101613abc565b50505095945050505050565b600060208284031215613af957600080fd5b815180151581146117a557600080fd5b600060033d111561163f5760046000803e5060005160e01c90565b600060443d1015613b325790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715613b6257505050505090565b8285019150815181811115613b7a5750505050505090565b843d8701016020828501011115613b945750505050505090565b613ba36020828601018761367f565b509095945050505050565b60005b83811015613bc9578181015183820152602001613bb1565b50506000910152565b6020815260008251806020840152613bf1816040850160208701613bae565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006101a08201905087825286602083015285604083015284606083015261010084608084013760ff8316610180830152979650505050505050565b818103818111156132ab57634e487b7160e01b600052601160045260246000fd5b60006001600160fb1b03831115613cc657600080fd5b8260051b80838637939093019392505050565b888152600060208981840152604083018960005b8a811015613d165763ffffffff613d03836133a4565b1683529183019190830190600101613ced565b5050613d2d613d2682898b613cb0565b8688613cb0565b9c9b505050505050505050505050565b63ffffffff60e01b8660e01b1681528460048201528360248201526000613d68604483018486613cb0565b979650505050505050565b600060208284031215613d8557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613de9818460208701613bae565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202258b63db6550ae18ade93a6816c682fce5f6960e9619c49b1085dddff743c4364736f6c63430008150033", - "sourceMap": "443:11607:43:-:0;;;1332:4:23;1289:48;;443:11607:43;;;;;;;;;-1:-1:-1;12497:22:42;:20;:22::i;:::-;443:11607:43;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:80;5987:66:22;;;198:21:80;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:80;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:80;;;6162:28:22;;552:2:80;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:80:-;443:11607:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161326562000238600039600081816105ad015281816105f6015281816106fb0152818161073b01528181610b0001528181610b4001528181610c1e01528181610c5e01528181610d0a01528181610d4a01528181610e5401528181610e9401528181611119015281816111590152818161120b0152818161124b015281816113a1015281816113e10152818161146c015281816114ac0152818161152801528181611672015281816116b201528181611775015281816117b50152818161184c0152818161188c015281816119220152818161196201528181611a4201528181611a8201528181611b5e01528181611b9e01528181611cb501528181611cf501528181611d8001528181611dc001528181612044015281816120840152818161211a0152818161215a015281816121ee0152818161222e01528181612414015261245401526132656000f3fe6080604052600436106101cd5760003560e01c806379ba5097116100f7578063c70aa72711610095578063f134b6ca11610064578063f134b6ca14610539578063f2038f951461054e578063f2358e1d14610563578063f2fde38b1461058357600080fd5b8063c70aa727146104c6578063d7b0fef1146104e6578063e30c3978146104fb578063ea10fbbe1461051957600080fd5b80638e5cdd50116100d15780638e5cdd501461044a5780638fc22e9f14610471578063a7bba58214610486578063aa4a729e146104a657600080fd5b806379ba5097146103f75780638c76a9091461040c5780638da5cb5b1461042c57600080fd5b806338c870651161016f5780634f1ef2861161013e5780634f1ef2861461037657806352d1902d14610389578063561f204b1461039e578063715018a6146103e257600080fd5b806338c87065146102c75780633e8919b6146102e75780633f7c178d1461031457806343f974cb1461036157600080fd5b80632f059fca116101ab5780632f059fca1461023457806331e4e99214610254578063354ca120146102875780633659cfe6146102a757600080fd5b80630e3a12f3146101d25780632217b211146101f457806329b6eca914610214575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612a11565b6105a3565b005b34801561020057600080fd5b506101f261020f366004612aa0565b6106f1565b34801561022057600080fd5b506101f261022f366004612a11565b6109f3565b34801561024057600080fd5b506101f261024f366004612a11565b610af6565b34801561026057600080fd5b5061027461026f366004612b5f565b610c12565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506101f26102a2366004612bc6565b610d00565b3480156102b357600080fd5b506101f26102c2366004612a11565b610e4a565b3480156102d357600080fd5b506101f26102e2366004612c05565b610f12565b3480156102f357600080fd5b506102fc61110d565b6040516001600160a01b03909116815260200161027e565b34801561032057600080fd5b5061033461032f366004612c73565b6111e4565b60408051825181526020808401516001600160801b0316908201529181015115159082015260600161027e565b34801561036d57600080fd5b50610274611395565b6101f2610384366004612ccf565b611462565b34801561039557600080fd5b5061027461151b565b3480156103aa57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610334565b3480156103ee57600080fd5b506101f26115ce565b34801561040357600080fd5b506101f26115ef565b34801561041857600080fd5b50610274610427366004612d7b565b611666565b34801561043857600080fd5b506033546001600160a01b03166102fc565b34801561045657600080fd5b5061045f611769565b60405160ff909116815260200161027e565b34801561047d57600080fd5b506102fc611840565b34801561049257600080fd5b506102fc6104a1366004612a11565b611916565b3480156104b257600080fd5b506101f26104c1366004612a11565b611a38565b3480156104d257600080fd5b506101f26104e1366004612c73565b611b54565b3480156104f257600080fd5b50610274611ca9565b34801561050757600080fd5b506065546001600160a01b03166102fc565b34801561052557600080fd5b506101f2610534366004612de3565b611d76565b34801561054557600080fd5b506102fc612038565b34801561055a57600080fd5b506102fc61210e565b34801561056f57600080fd5b506101f261057e366004612c73565b6121e4565b34801561058f57600080fd5b506101f261059e366004612a11565b612321565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f45760405162461bcd60e51b81526004016105eb90612e4d565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610626612392565b6001600160a01b03161461064c5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661066f57604051630103019560e11b815260040160405180910390fd5b6106776123ae565b6001600160a01b03811661069e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107395760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661076b612392565b6001600160a01b0316146107915760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166107b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146107e25760405163472511eb60e11b81523360048201526024016105eb565b61012e5485146108145761012e5460405163542fced960e11b81526105eb918791600401918252602082015260400190565b60006108238587848787611666565b905060006108517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612efb565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190612f0f565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610901918d9190600401612f2c565b600060405180830381600087803b15801561091b57600080fd5b505af192505050801561092c575060015b61098c57610938612f67565b806308c379a003610971575061094c612f82565b806109575750610973565b8060405162461bcd60e51b81526004016105eb9190613030565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546001600160801b031916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b600054600290610100900460ff16158015610a15575060005460ff8083169116105b610a315760405162461bcd60e51b81526004016105eb90613063565b6000805461ffff191660ff8316176101001790556001600160a01b038216610a6c57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b0384161790556040517fe416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a90600090a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b70612392565b6001600160a01b031614610b965760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610bb957604051630103019560e11b815260040160405180910390fd5b610bc16123ae565b6001600160a01b038116610be857604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106c4565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c5c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c8e612392565b6001600160a01b031614610cb45760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610cd757604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d485760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7a612392565b6001600160a01b031614610da05760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610dc357604051630103019560e11b815260040160405180910390fd5b610dcc856121e4565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610e1e918591906004016130b1565b60006040518083038186803b158015610e3657600080fd5b505afa1580156109e8573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e925760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ec4612392565b6001600160a01b031614610eea5760405162461bcd60e51b81526004016105eb90612e99565b610ef38161240a565b60408051600080825260208201909252610f0f918391906124b2565b50565b600054600190610100900460ff16158015610f34575060005460ff8083169116105b610f505760405162461bcd60e51b81526004016105eb90613063565b6000805461ffff191660ff8316176101001790556001600160a01b038416610f8b57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610fb257604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610fd95760405163baa3de5f60e01b815260040160405180910390fd5b610fe1612622565b610fea86612651565b61100c57604051630220cee360e61b815260ff871660048201526024016105eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055611088612678565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111575760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611189612392565b6001600160a01b0316146111af5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166111d257604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112495760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127b612392565b6001600160a01b0316146112a15760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166112c457604051630103019560e11b815260040160405180910390fd5b61012e5482036112f35750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b03169081900361134e5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906113686001600160801b038416426130e2565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113df5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611411612392565b6001600160a01b0316146114375760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661145a57604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114aa5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114dc612392565b6001600160a01b0316146115025760405162461bcd60e51b81526004016105eb90612e99565b61150b8261240a565b611517828260016124b2565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115bb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105eb565b506000805160206131e983398151915290565b6115d66123ae565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b0316811461165d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105eb565b610f0f816126ae565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116b05760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e2612392565b6001600160a01b0316146117085760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661172b57604051630103019560e11b815260040160405180910390fd5b60008686868686604051602001611746959493929190613103565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117b35760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117e5612392565b6001600160a01b03161461180b5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661182e57604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361188a5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118bc612392565b6001600160a01b0316146118e25760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661190557604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119605760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611992612392565b6001600160a01b0316146119b85760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166119db57604051630103019560e11b815260040160405180910390fd5b6119e36123ae565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a805760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab2612392565b6001600160a01b031614611ad85760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611afb57604051630103019560e11b815260040160405180910390fd5b611b036123ae565b6001600160a01b038116611b2a57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b038381166001600160a01b03198316811790935516908160026106c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b9c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bce612392565b6001600160a01b031614611bf45760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611c1757604051630103019560e11b815260040160405180910390fd5b611c1f6123ae565b80600003611c6f5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016105eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cf35760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d25612392565b6001600160a01b031614611d4b5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611d6e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dbe5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611df0612392565b6001600160a01b031614611e165760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611e3957604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e675760405163472511eb60e11b81523360048201526024016105eb565b6000611e74600485613154565b905061012e548314611ea85761012e5460405163542fced960e11b81526105eb918591600401918252602082015260400190565b6000611eb78686868686610c12565b90506000611ee57f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612efb565b61013554604051638a283fc360e01b815263ffffffff861660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5e9190612f0f565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991611f9a918d9190600401612f2c565b600060405180830381600087803b158015611fb457600080fd5b505af1925050508015611fc5575060015b611fd157610938612f67565b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120825760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120b4612392565b6001600160a01b0316146120da5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166120fd57604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121585760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661218a612392565b6001600160a01b0316146121b05760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166121d357604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361222c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661225e612392565b6001600160a01b0316146122845760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166122a757604051630103019560e11b815260040160405180910390fd5b61012e548114610f0f57600081815261012f60205260408120546001600160801b0316908190036122eb5760405163ddae3b7160e01b815260040160405180910390fd5b610130546123026001600160801b038316426130e2565b111561151757604051631d739acf60e11b815260040160405180910390fd5b6123296123ae565b606580546001600160a01b0383166001600160a01b0319909116811790915561235a6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000805160206131e9833981519152546001600160a01b031690565b6033546001600160a01b031633146124085760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105eb565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036124525760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612484612392565b6001600160a01b0316146124aa5760405162461bcd60e51b81526004016105eb90612e99565b610f0f6123ae565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156124ea576124e5836126c7565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612544575060408051601f3d908101601f1916820190925261254191810190613168565b60015b6125a75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105eb565b6000805160206131e983398151915281146126165760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105eb565b506124e5838383612763565b600054610100900460ff166126495760405162461bcd60e51b81526004016105eb90613181565b61240861278e565b60006010602060ff8416821180159061267057508060ff168460ff1611155b949350505050565b600054610100900460ff1661269f5760405162461bcd60e51b81526004016105eb90613181565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610f0f816127c5565b6001600160a01b0381163b6127345760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105eb565b6000805160206131e983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61276c83612817565b6000825111806127795750805b156124e5576127888383612857565b50505050565b600054610100900460ff166127b55760405162461bcd60e51b81526004016105eb90613181565b6127bd61294d565b61240861297c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612820816126c7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6128bf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105eb565b600080846001600160a01b0316846040516128da91906131cc565b600060405180830381855af49150503d8060008114612915576040519150601f19603f3d011682016040523d82523d6000602084013e61291a565b606091505b50915091506129428282604051806060016040528060278152602001613209602791396129a3565b925050505b92915050565b600054610100900460ff166129745760405162461bcd60e51b81526004016105eb90613181565b6124086129bc565b600054610100900460ff166124085760405162461bcd60e51b81526004016105eb90613181565b606083156129b2575081611347565b61134783836129ec565b600054610100900460ff166129e35760405162461bcd60e51b81526004016105eb90613181565b612408336126ae565b8151156109575781518083602001fd5b6001600160a01b0381168114610f0f57600080fd5b600060208284031215612a2357600080fd5b8135611347816129fc565b80610100810183101561294757600080fd5b803563ffffffff8116811461139057600080fd5b60008083601f840112612a6657600080fd5b50813567ffffffffffffffff811115612a7e57600080fd5b6020830191508360208260051b8501011115612a9957600080fd5b9250929050565b6000806000806000806101808789031215612aba57600080fd5b612ac48888612a2e565b95506101008701359450612adb6101208801612a40565b935061014087013567ffffffffffffffff811115612af857600080fd5b612b0489828a01612a54565b979a969950949794969561016090950135949350505050565b60008083601f840112612b2f57600080fd5b50813567ffffffffffffffff811115612b4757600080fd5b602083019150836020828501011115612a9957600080fd5b600080600080600060808688031215612b7757600080fd5b853567ffffffffffffffff811115612b8e57600080fd5b612b9a88828901612b1d565b9096509450506020860135925060408601359150612bba60608701612a40565b90509295509295909350565b60008060008060006101808688031215612bdf57600080fd5b85359450602086013593506040860135925060608601359150612bba8760808801612a2e565b600080600080600060a08688031215612c1d57600080fd5b853560ff81168114612c2e57600080fd5b9450602086013593506040860135612c45816129fc565b92506060860135612c55816129fc565b91506080860135612c65816129fc565b809150509295509295909350565b600060208284031215612c8557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612cc857612cc8612c8c565b6040525050565b60008060408385031215612ce257600080fd5b8235612ced816129fc565b915060208381013567ffffffffffffffff80821115612d0b57600080fd5b818601915086601f830112612d1f57600080fd5b813581811115612d3157612d31612c8c565b6040519150612d49601f8201601f1916850183612ca2565b8082528784828501011115612d5d57600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600080600060808688031215612d9357600080fd5b612d9c86612a40565b94506020860135935060408601359250606086013567ffffffffffffffff811115612dc657600080fd5b612dd288828901612a54565b969995985093965092949392505050565b60008060008060006101608688031215612dfc57600080fd5b612e068787612a2e565b945061010086013567ffffffffffffffff811115612e2357600080fd5b612e2f88828901612b1d565b96999098509596610120810135966101409091013595509350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082612f0a57612f0a612ee5565b500690565b600060208284031215612f2157600080fd5b8151611347816129fc565b61012081016101008085843782018360005b6001811015612f5d578151835260209283019290910190600101612f3e565b5050509392505050565b600060033d11156111e15760046000803e5060005160e01c90565b600060443d1015612f905790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612fc057505050505090565b8285019150815181811115612fd85750505050505090565b843d8701016020828501011115612ff25750505050505090565b61300160208286010187612ca2565b509095945050505050565b60005b8381101561302757818101518382015260200161300f565b50506000910152565b602081526000825180602084015261304f81604085016020870161300c565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b61018081016101008085843782018360005b6004811015612f5d5781518352602092830192909101906001016130c3565b8181038181111561294757634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561313857600080fd5b8260051b80856044850137919091016044019695505050505050565b60008261316357613163612ee5565b500490565b60006020828403121561317a57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516131de81846020870161300c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220988abd93bd0eacc32fed88af248acf0831a9aa2879d35aff2e53ffa3126eef5164736f6c63430008150033", + "sourceMap": "442:11347:44:-:0;;;1332:4:23;1289:48;;442:11347:44;;;;;;;;;-1:-1:-1;13736:22:43;:20;:22::i;:::-;442:11347:44;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:77;5987:66:22;;;198:21:77;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:77;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:77;;;6162:28:22;;552:2:77;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:77:-;442:11347:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6080604052600436106101f95760003560e01c8063715018a61161010d578063aa4a729e116100a0578063e30c39781161006f578063e30c3978146105bc578063f134b6ca146105da578063f2038f95146105ef578063f2358e1d14610604578063f2fde38b1461062457600080fd5b8063aa4a729e14610547578063b843b4e514610567578063c70aa72714610587578063d7b0fef1146105a757600080fd5b80638da5cb5b116100dc5780638da5cb5b146104cd5780638e5cdd50146104eb5780638fc22e9f14610512578063a7bba5821461052757600080fd5b8063715018a61461046357806379ba50971461047857806386ec599a1461048d5780638c76a909146104ad57600080fd5b806338c87065116101905780634f1ef2861161015f5780634f1ef286146103c25780634ffbdde5146103d557806352d1902d146103ea578063561f204b146103ff5780636b0566001461044357600080fd5b806338c87065146103135780633e8919b6146103335780633f7c178d1461036057806343f974cb146103ad57600080fd5b80632f059fca116101cc5780632f059fca1461028057806331e4e992146102a0578063354ca120146102d35780633659cfe6146102f357600080fd5b80630e3a12f3146101fe5780632217b2111461022057806323cfdba51461024057806329b6eca914610260575b600080fd5b34801561020a57600080fd5b5061021e610219366004613375565b610644565b005b34801561022c57600080fd5b5061021e61023b366004613404565b61076b565b34801561024c57600080fd5b5061021e61025b3660046134c3565b610b83565b34801561026c57600080fd5b5061021e61027b366004613375565b610f4c565b34801561028c57600080fd5b5061021e61029b366004613375565b610ffa565b3480156102ac57600080fd5b506102c06102bb36600461353c565b6110ef565b6040519081526020015b60405180910390f35b3480156102df57600080fd5b5061021e6102ee3660046135a3565b6111dd565b3480156102ff57600080fd5b5061021e61030e366004613375565b61131d565b34801561031f57600080fd5b5061021e61032e3660046135e2565b6113e5565b34801561033f57600080fd5b5061034861156b565b6040516001600160a01b0390911681526020016102ca565b34801561036c57600080fd5b5061038061037b366004613650565b611642565b60408051825181526020808401516001600160801b031690820152918101511515908201526060016102ca565b3480156103b957600080fd5b506102c06117f3565b61021e6103d03660046136ac565b6118c0565b3480156103e157600080fd5b50610348611979565b3480156103f657600080fd5b506102c0611a4f565b34801561040b57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610380565b34801561044f57600080fd5b5061021e61045e366004613375565b611b02565b34801561046f57600080fd5b5061021e611bf7565b34801561048457600080fd5b5061021e611c18565b34801561049957600080fd5b506102c06104a8366004613758565b611c8f565b3480156104b957600080fd5b506102c06104c8366004613805565b611d9b565b3480156104d957600080fd5b506033546001600160a01b0316610348565b3480156104f757600080fd5b50610500611e9e565b60405160ff90911681526020016102ca565b34801561051e57600080fd5b50610348611f75565b34801561053357600080fd5b50610348610542366004613375565b61204b565b34801561055357600080fd5b5061021e610562366004613375565b61216d565b34801561057357600080fd5b5061021e61058236600461386d565b612262565b34801561059357600080fd5b5061021e6105a2366004613650565b612483565b3480156105b357600080fd5b506102c06125d8565b3480156105c857600080fd5b506065546001600160a01b0316610348565b3480156105e657600080fd5b506103486126a5565b3480156105fb57600080fd5b5061034861277b565b34801561061057600080fd5b5061021e61061f366004613650565b612851565b34801561063057600080fd5b5061021e61063f366004613375565b61298e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106955760405162461bcd60e51b815260040161068c90613930565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106c76129ff565b6001600160a01b0316146106ed5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661071057604051630103019560e11b815260040160405180910390fd5b610718612a1b565b61013380546001600160a01b038381166001600160a01b03198316811790935516908160045b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107b35760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107e56129ff565b6001600160a01b03161461080b5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661082e57604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b0316331461085c5760405163472511eb60e11b815233600482015260240161068c565b61012e54851461088e5761012e5460405163542fced960e11b815261068c918791600401918252602082015260400190565b600061089d8587848787611d9b565b905060006108cb7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836139c8565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa15801561091b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093f91906139ea565b9050806001600160a01b03166343753b4d60405180604001604052808c60006008811061096e5761096e613a07565b602002013581526020018c60016008811061098b5761098b613a07565b60200201359052604080516080810182528d820135918101918252908190606082018f60036020020135815250815260200160405180604001604052808f6004600881106109db576109db613a07565b602002013581526020018f6005600881106109f8576109f8613a07565b60200201359052905260408051808201909152808e6006602002013581526020018e600760088110610a2c57610a2c613a07565b60200201358152506040518060200160405280888152506040518563ffffffff1660e01b8152600401610a629493929190613a40565b6020604051808303816000875af1925050508015610a9d575060408051601f3d908101601f19168201909252610a9a91810190613ae7565b60015b610afd57610aa9613b09565b806308c379a003610ae25750610abd613b24565b80610ac85750610ae4565b8060405162461bcd60e51b815260040161068c9190613bd2565b505b604051631e716a8b60e01b815260040160405180910390fd5b80610b1b57604051631e716a8b60e01b815260040160405180910390fd5b61012e859055600089815261012f6020526040812080546001600160801b031916426001600160801b031617905585906040518b907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505b505050505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610bcb5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bfd6129ff565b6001600160a01b031614610c235760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16610c4657604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314610c745760405163472511eb60e11b815233600482015260240161068c565b61012e548214610ca65761012e5460405163542fced960e11b815261068c918491600401918252602082015260400190565b6000610cb5858585858a6110ef565b90506000610ce37f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836139c8565b61013554604051638a283fc360e01b815263ffffffff8a1660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c91906139ea565b9050806001600160a01b03166343753b4d60405180604001604052808c600060088110610d8b57610d8b613a07565b602002013581526020018c600160088110610da857610da8613a07565b60200201359052604080516080810182528d820135918101918252908190606082018f60036020020135815250815260200160405180604001604052808f600460088110610df857610df8613a07565b602002013581526020018f600560088110610e1557610e15613a07565b60200201359052905260408051808201909152808e6006602002013581526020018e600760088110610e4957610e49613a07565b60200201358152506040518060200160405280888152506040518563ffffffff1660e01b8152600401610e7f9493929190613a40565b6020604051808303816000875af1925050508015610eba575060408051601f3d908101601f19168201909252610eb791810190613ae7565b60015b610ec657610aa9613b09565b80610ee457604051631e716a8b60e01b815260040160405180910390fd5b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a450505050505050505050565b600054600290610100900460ff16158015610f6e575060005460ff8083169116105b610f8a5760405162461bcd60e51b815260040161068c90613c05565b6000805461013580546001600160a01b0319166001600160a01b03861617905561ff001961010060ff851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110425760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110746129ff565b6001600160a01b03161461109a5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff166110bd57604051630103019560e11b815260040160405180910390fd5b6110c5612a1b565b61013180546001600160a01b038381166001600160a01b031983168117909355169081600161073e565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111395760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661116b6129ff565b6001600160a01b0316146111915760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff166111b457604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112255760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112576129ff565b6001600160a01b03161461127d5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff166112a057604051630103019560e11b815260040160405180910390fd5b6112a985612851565b6101335461013454604051634d65479560e11b81526001600160a01b0390921691639aca8f2a916112f191899188918a9189918991600160a81b900460ff1690600401613c53565b60006040518083038186803b15801561130957600080fd5b505afa158015610b78573d6000803e3d6000fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113655760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113976129ff565b6001600160a01b0316146113bd5760405162461bcd60e51b815260040161068c9061397c565b6113c681612a77565b604080516000808252602082019092526113e291839190612b1f565b50565b600054600190610100900460ff16158015611407575060005460ff8083169116105b6114235760405162461bcd60e51b815260040161068c90613c05565b6000805461ffff191660ff83161761010017905561143f612c8f565b61144886612cbe565b61146a57604051630220cee360e61b815260ff8716600482015260240161068c565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d80549190931691161790556114e6612ce5565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115b55760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166115e76129ff565b6001600160a01b03161461160d5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661163057604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116a75760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116d96129ff565b6001600160a01b0316146116ff5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661172257604051630103019560e11b815260040160405180910390fd5b61012e5482036117515750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b0316908190036117ac5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906117c66001600160801b03841642613c8f565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361183d5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661186f6129ff565b6001600160a01b0316146118955760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff166118b857604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119085760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661193a6129ff565b6001600160a01b0316146119605760405162461bcd60e51b815260040161068c9061397c565b61196982612a77565b61197582826001612b1f565b5050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119c35760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119f56129ff565b6001600160a01b031614611a1b5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16611a3e57604051630103019560e11b815260040160405180910390fd5b50610132546001600160a01b031690565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611aef5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161068c565b50600080516020613df483398151915290565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b4a5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b7c6129ff565b6001600160a01b031614611ba25760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16611bc557604051630103019560e11b815260040160405180910390fd5b611bcd612a1b565b61013280546001600160a01b038381166001600160a01b031983168117909355169081600361073e565b611bff612a1b565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b03168114611c865760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161068c565b6113e281612d1b565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cd95760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d0b6129ff565b6001600160a01b031614611d315760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16611d5457604051630103019560e11b815260040160405180910390fd5b60008989898989898989604051602001611d75989796959493929190613cd9565b60408051601f1981840301815291905280516020909101209a9950505050505050505050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611de55760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611e176129ff565b6001600160a01b031614611e3d5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16611e6057604051630103019560e11b815260040160405180910390fd5b60008686868686604051602001611e7b959493929190613d3d565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ee85760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611f1a6129ff565b6001600160a01b031614611f405760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16611f6357604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611fbf5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ff16129ff565b6001600160a01b0316146120175760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661203a57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120955760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120c76129ff565b6001600160a01b0316146120ed5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661211057604051630103019560e11b815260040160405180910390fd5b612118612a1b565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121b55760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121e76129ff565b6001600160a01b03161461220d5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661223057604051630103019560e11b815260040160405180910390fd5b612238612a1b565b61013580546001600160a01b038381166001600160a01b031983168117909355169081600261073e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122aa5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122dc6129ff565b6001600160a01b0316146123025760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661232557604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146123535760405163472511eb60e11b815233600482015260240161068c565b61012e5488146123855761012e5460405163542fced960e11b815261068c918a91600401918252602082015260400190565b85841415806123945750858214155b156123b25760405163a0b1d72d60e01b815260040160405180910390fd5b60006123c489838a8a8a8a8a8a611c8f565b905060006123f27f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001836139c8565b61013254604051638a283fc360e01b8152600481018b90529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015612442573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246691906139ea565b9050612475818d848e88612d34565b505050505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036124cb5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124fd6129ff565b6001600160a01b0316146125235760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661254657604051630103019560e11b815260040160405180910390fd5b61254e612a1b565b8060000361259e5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e0000000000604482015260640161068c565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036126225760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166126546129ff565b6001600160a01b03161461267a5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661269d57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036126ef5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166127216129ff565b6001600160a01b0316146127475760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661276a57604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036127c55760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166127f76129ff565b6001600160a01b03161461281d5760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661284057604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036128995760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166128cb6129ff565b6001600160a01b0316146128f15760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff1661291457604051630103019560e11b815260040160405180910390fd5b61012e5481146113e257600081815261012f60205260408120546001600160801b0316908190036129585760405163ddae3b7160e01b815260040160405180910390fd5b6101305461296f6001600160801b03831642613c8f565b111561197557604051631d739acf60e11b815260040160405180910390fd5b612996612a1b565b606580546001600160a01b0383166001600160a01b031990911681179091556129c76033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020613df4833981519152546001600160a01b031690565b6033546001600160a01b03163314612a755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161068c565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612abf5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612af16129ff565b6001600160a01b031614612b175760405162461bcd60e51b815260040161068c9061397c565b6113e2612a1b565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612b5757612b528361302b565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612bb1575060408051601f3d908101601f19168201909252612bae91810190613d73565b60015b612c145760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161068c565b600080516020613df48339815191528114612c835760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161068c565b50612b528383836130c7565b600054610100900460ff16612cb65760405162461bcd60e51b815260040161068c90613d8c565b612a756130f2565b60006010602060ff84168211801590612cdd57508060ff168460ff1611155b949350505050565b600054610100900460ff16612d0c5760405162461bcd60e51b815260040161068c90613d8c565b60fb805460ff19166001179055565b606580546001600160a01b03191690556113e281613129565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612d7c5760405162461bcd60e51b815260040161068c90613930565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612dae6129ff565b6001600160a01b031614612dd45760405162461bcd60e51b815260040161068c9061397c565b60fb5460ff16612df757604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314612e255760405163472511eb60e11b815233600482015260240161068c565b6000604051806040016040528086600060088110612e4557612e45613a07565b6020020135815260200186600160088110612e6257612e62613a07565b6020020135905260408051608081018252878201359181019182529192506000919081906060820189600360200201358152508152602001604051806040016040528089600460088110612eb857612eb8613a07565b6020020135815260200189600560088110612ed557612ed5613a07565b60200201359052905260408051808201909152909150600090808860066020020135815260200188600760088110612f0f57612f0f613a07565b6020020135815250905060006040518060200160405280888152509050886001600160a01b03166343753b4d858585856040518563ffffffff1660e01b8152600401612f5e9493929190613a40565b6020604051808303816000875af1925050508015612f99575060408051601f3d908101601f19168201909252612f9691810190613ae7565b60015b612fa557610aa9613b09565b80612fc357604051631e716a8b60e01b815260040160405180910390fd5b61012e869055600087815261012f6020526040902080546001600160801b031916426001600160801b031617905585600260405189907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a450505050505050505050565b6001600160a01b0381163b6130985760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161068c565b600080516020613df483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6130d08361317b565b6000825111806130dd5750805b15612b52576130ec83836131bb565b50505050565b600054610100900460ff166131195760405162461bcd60e51b815260040161068c90613d8c565b6131216132b1565b612a756132e0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6131848161302b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6132235760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161068c565b600080846001600160a01b03168460405161323e9190613dd7565b600060405180830381855af49150503d8060008114613279576040519150601f19603f3d011682016040523d82523d6000602084013e61327e565b606091505b50915091506132a68282604051806060016040528060278152602001613e1460279139613307565b925050505b92915050565b600054610100900460ff166132d85760405162461bcd60e51b815260040161068c90613d8c565b612a75613320565b600054610100900460ff16612a755760405162461bcd60e51b815260040161068c90613d8c565b606083156133165750816117a5565b6117a58383613350565b600054610100900460ff166133475760405162461bcd60e51b815260040161068c90613d8c565b612a7533612d1b565b815115610ac85781518083602001fd5b6001600160a01b03811681146113e257600080fd5b60006020828403121561338757600080fd5b81356117a581613360565b8061010081018310156132ab57600080fd5b803563ffffffff811681146117ee57600080fd5b60008083601f8401126133ca57600080fd5b50813567ffffffffffffffff8111156133e257600080fd5b6020830191508360208260051b85010111156133fd57600080fd5b9250929050565b600080600080600080610180878903121561341e57600080fd5b6134288888613392565b9550610100870135945061343f61012088016133a4565b935061014087013567ffffffffffffffff81111561345c57600080fd5b61346889828a016133b8565b979a969950949794969561016090950135949350505050565b60008083601f84011261349357600080fd5b50813567ffffffffffffffff8111156134ab57600080fd5b6020830191508360208285010111156133fd57600080fd5b60008060008060008061018087890312156134dd57600080fd5b6134e78888613392565b95506134f661010088016133a4565b945061012087013567ffffffffffffffff81111561351357600080fd5b61351f89828a01613481565b979a96995097610140810135966101609091013595509350505050565b60008060008060006080868803121561355457600080fd5b853567ffffffffffffffff81111561356b57600080fd5b61357788828901613481565b9096509450506020860135925060408601359150613597606087016133a4565b90509295509295909350565b600080600080600061018086880312156135bc57600080fd5b853594506020860135935060408601359250606086013591506135978760808801613392565b600080600080600060a086880312156135fa57600080fd5b853560ff8116811461360b57600080fd5b945060208601359350604086013561362281613360565b9250606086013561363281613360565b9150608086013561364281613360565b809150509295509295909350565b60006020828403121561366257600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156136a5576136a5613669565b6040525050565b600080604083850312156136bf57600080fd5b82356136ca81613360565b915060208381013567ffffffffffffffff808211156136e857600080fd5b818601915086601f8301126136fc57600080fd5b81358181111561370e5761370e613669565b6040519150613726601f8201601f191685018361367f565b808252878482850101111561373a57600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060008060008060a0898b03121561377457600080fd5b8835975060208901359650604089013567ffffffffffffffff8082111561379a57600080fd5b6137a68c838d016133b8565b909850965060608b01359150808211156137bf57600080fd5b6137cb8c838d016133b8565b909650945060808b01359150808211156137e457600080fd5b506137f18b828c016133b8565b999c989b5096995094979396929594505050565b60008060008060006080868803121561381d57600080fd5b613826866133a4565b94506020860135935060408601359250606086013567ffffffffffffffff81111561385057600080fd5b61385c888289016133b8565b969995985093965092949392505050565b60008060008060008060008060006101a08a8c03121561388c57600080fd5b6138968b8b613392565b98506101008a013597506101208a013567ffffffffffffffff808211156138bc57600080fd5b6138c88d838e016133b8565b90995097506101408c01359150808211156138e257600080fd5b6138ee8d838e016133b8565b90975095506101608c013591508082111561390857600080fd5b506139158c828d016133b8565b9a9d999c50979a969995989497966101800135949350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826139e557634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156139fc57600080fd5b81516117a581613360565b634e487b7160e01b600052603260045260246000fd5b8060005b60028110156130ec578151845260209384019390910190600101613a21565b6101208101613a4f8287613a1d565b60408083018660005b6002808210613a675750613aa2565b82518460005b83811015613a8b578251825260209283019290910190600101613a6d565b505050928401925060209190910190600101613a58565b50505050613ab360c0830185613a1d565b61010082018360005b6001811015613adb578151835260209283019290910190600101613abc565b50505095945050505050565b600060208284031215613af957600080fd5b815180151581146117a557600080fd5b600060033d111561163f5760046000803e5060005160e01c90565b600060443d1015613b325790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715613b6257505050505090565b8285019150815181811115613b7a5750505050505090565b843d8701016020828501011115613b945750505050505090565b613ba36020828601018761367f565b509095945050505050565b60005b83811015613bc9578181015183820152602001613bb1565b50506000910152565b6020815260008251806020840152613bf1816040850160208701613bae565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006101a08201905087825286602083015285604083015284606083015261010084608084013760ff8316610180830152979650505050505050565b818103818111156132ab57634e487b7160e01b600052601160045260246000fd5b60006001600160fb1b03831115613cc657600080fd5b8260051b80838637939093019392505050565b888152600060208981840152604083018960005b8a811015613d165763ffffffff613d03836133a4565b1683529183019190830190600101613ced565b5050613d2d613d2682898b613cb0565b8688613cb0565b9c9b505050505050505050505050565b63ffffffff60e01b8660e01b1681528460048201528360248201526000613d68604483018486613cb0565b979650505050505050565b600060208284031215613d8557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613de9818460208701613bae565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202258b63db6550ae18ade93a6816c682fce5f6960e9619c49b1085dddff743c4364736f6c63430008150033", - "sourceMap": "443:11607:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37178:393:42;;;;;;;;;;-1:-1:-1;37178:393:42;;;;;:::i;:::-;;:::i;:::-;;17580:2498;;;;;;;;;;-1:-1:-1;17580:2498:42;;;;;:::i;:::-;;:::i;6380:2438:43:-;;;;;;;;;;-1:-1:-1;6380:2438:43;;;;;:::i;:::-;;:::i;3800:152::-;;;;;;;;;;-1:-1:-1;3800:152:43;;;;;:::i;:::-;;:::i;34738:423:42:-;;;;;;;;;;-1:-1:-1;34738:423:42;;;;;:::i;:::-;;:::i;11363:685:43:-;;;;;;;;;;-1:-1:-1;11363:685:43;;;;;:::i;:::-;;:::i;:::-;;;4125:25:80;;;4113:2;4098:18;11363:685:43;;;;;;;;40699:508:42;;;;;;;;;;-1:-1:-1;40699:508:42;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;13806:1014:42:-;;;;;;;;;;-1:-1:-1;13806:1014:42;;;;;:::i;:::-;;:::i;9156:228:43:-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6024:32:80;;;6006:51;;5994:2;5979:18;9156:228:43;5860:203:80;32299:567:42;;;;;;;;;;-1:-1:-1;32299:567:42;;;;;:::i;:::-;;:::i;:::-;;;;6471:13:80;;6453:32;;6545:4;6533:17;;;6527:24;-1:-1:-1;;;;;6523:65:80;6501:20;;;6494:95;6647:17;;;6641:24;6634:32;6627:40;6605:20;;;6598:70;6441:2;6426:18;32299:567:42;6253:421:80;37747:189:42;;;;;;;;;;;;;:::i;3763:222:23:-;;;;;;:::i;:::-;;:::i;35454:227:42:-;;;;;;;;;;;;;:::i;3006:131:23:-;;;;;;;;;;;;;:::i;7130:120:42:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7218:25:42;;;;;;;;;;;;;;;;;;;;7130:120;;36071:416;;;;;;;;;;-1:-1:-1;36071:416:42;;;;;:::i;:::-;;:::i;4649:109:44:-;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;31089:465:42:-;;;;;;;;;;-1:-1:-1;31089:465:42;;;;;:::i;:::-;;:::i;29135:413::-;;;;;;;;;;-1:-1:-1;29135:413:42;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;38714:119:42;;;;;;;;;;;;;:::i;:::-;;;10258:4:80;10246:17;;;10228:36;;10216:2;10201:18;38714:119:42;10086:184:80;34179:231:42;;;;;;;;;;;;;:::i;39480:384::-;;;;;;;;;;-1:-1:-1;39480:384:42;;;;;:::i;:::-;;:::i;9704:418:43:-;;;;;;;;;;-1:-1:-1;9704:418:43;;;;;:::i;:::-;;:::i;22820:1590:42:-;;;;;;;;;;-1:-1:-1;22820:1590:42;;;;;:::i;:::-;;:::i;38168:402::-;;;;;;;;;;-1:-1:-1;38168:402:42;;;;;:::i;:::-;;:::i;31682:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;39054:133:42;;;;;;;;;;;;;:::i;36670:205::-;;;;;;;;;;;;;:::i;33309:638::-;;;;;;;;;;-1:-1:-1;33309:638:42;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;37178:393:42:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;37378:17:42::3;::::0;;-1:-1:-1;;;;;37405:31:42;;::::3;-1:-1:-1::0;;;;;;37405:31:42;::::3;::::0;::::3;::::0;;;37378:17:::3;::::0;;37482:28:::3;37451:113;;::::0;::::3;::::0;;;::::3;37335:236;37178:393:::0;:::o;17580:2498::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;41750:17:42::2;::::0;-1:-1:-1;;;;;41750:17:42::2;41736:10;:31;41732:93;;41790:24;::::0;-1:-1:-1;;;41790:24:42;;41803:10:::2;41790:24;::::0;::::2;6006:51:80::0;5979:18;;41790:24:42::2;5860:203:80::0;41732:93:42::2;17871:11:::3;;17860:7;:22;17856:95;;17928:11;::::0;17905:35:::3;::::0;-1:-1:-1;;;17905:35:42;;::::3;::::0;17919:7;;17905:35:::3;;12764:25:80::0;;;12820:2;12805:18;;12798:34;12752:2;12737:18;;12590:248;17856:95:42::3;18042:17;18062:112;18114:10;18126:7;18135:8;18145:19;;18062:38;:112::i;:::-;18042:132:::0;-1:-1:-1;18445:22:42::3;18470:39;4368:77;18042:132:::0;18470:39:::3;:::i;:::-;18639:23;::::0;:66:::3;::::0;-1:-1:-1;;;18639:66:42;;::::3;::::0;::::3;4125:25:80::0;;;18445:64:42;;-1:-1:-1;18593:31:42::3;::::0;-1:-1:-1;;;;;18639:23:42;;::::3;::::0;:38:::3;::::0;4098:18:80;;18639:66:42::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18593:112;;18774:17;-1:-1:-1::0;;;;;18774:29:42::3;;:267;;;;;;;;18818:14;18833:1;18818:17;;;;;;;:::i;:::-;;;;;18774:267;;;;18837:14;18852:1;18837:17;;;;;;;:::i;:::-;;;;;18774:267:::0;;::::3;::::0;;;;;;;18871:17;;::::3;;18774:267:::0;;::::3;::::0;;;;;;;;;18871:14;18905:1:::3;18890:17;;;;18774:267;;::::0;::::3;;;;;;;;;;;;18911:14;18926:1;18911:17;;;;;;;:::i;:::-;;;;;18774:267;;;;18930:14;18945:1;18930:17;;;;;;;:::i;:::-;;;;;18774:267:::0;;;;::::3;::::0;;;;::::3;::::0;;;;18964:14;18979:1:::3;18964:17;;;;18774:267;;;;18983:14;18998:1;18983:17;;;;;;;:::i;:::-;;;;;18774:267;;::::0;::::3;;;;;;;;19016:14;18774:267;;::::0;::::3;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;18774:267:42::3;::::0;;::::3;;::::0;;::::3;-1:-1:-1::0;;18774:267:42::3;::::0;::::3;::::0;;;::::3;::::0;;::::3;::::0;::::3;:::i;:::-;;;18770:1302;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;19824:9;19817:17;;-1:-1:-1::0;;;19817:17:42::3;;;;;;;;:::i;18770:1302::-;;;20037:24;;-1:-1:-1::0;;;20037:24:42::3;;;;;;;;;;;18770:1302;19161:14;19156:85;;19202:24;;-1:-1:-1::0;;;19202:24:42::3;;;;;;;;;;;19156:85;19409:11;:22:::0;;;19577:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;19577:47:42::3;19608:15;-1:-1:-1::0;;;;;19577:47:42::3;;::::0;;19409:22;;19644:52:::3;::::0;19656:7;;19644:52:::3;::::0;;;::::3;19042:665;18770:1302;17846:2232;;;17580:2498:::0;;;;;;:::o;6380:2438:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;41750:17:42::2;::::0;-1:-1:-1;;;;;41750:17:42::2;41736:10;:31;41732:93;;41790:24;::::0;-1:-1:-1;;;41790:24:42;;41803:10:::2;41790:24;::::0;::::2;6006:51:80::0;5979:18;;41790:24:42::2;5860:203:80::0;41732:93:42::2;6665:11:43::3;;6654:7;:22;6650:95;;6722:11;::::0;6699:35:::3;::::0;-1:-1:-1;;;6699:35:43;;::::3;::::0;6713:7;;6699:35:::3;;12764:25:80::0;;;12820:2;12805:18;;12798:34;12752:2;12737:18;;12590:248;6650:95:43::3;6836:17;6868:87;6903:21;;6926:7;6935:8;6945:9;6868:34;:87::i;:::-;6836:119:::0;-1:-1:-1;7226:22:43::3;7251:39;4368:77:42;6836:119:43::0;7251:39:::3;:::i;:::-;7407:22;::::0;:48:::3;::::0;-1:-1:-1;;;7407:48:43;;17424:10:80;17412:23;;7407:48:43::3;::::0;::::3;17394:42:80::0;7226:64:43;;-1:-1:-1;7374:30:43::3;::::0;-1:-1:-1;;;;;7407:22:43;;::::3;::::0;:37:::3;::::0;17367:18:80;;7407:48:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7374:81;;7524:16;-1:-1:-1::0;;;;;7524:28:43::3;;:258;;;;;;;;7567:13;7581:1;7567:16;;;;;;;:::i;:::-;;;;;7524:258;;;;7585:13;7599:1;7585:16;;;;;;;:::i;:::-;;;;;7524:258:::0;;::::3;::::0;;;;;;;7618:16;;::::3;;7524:258:::0;;::::3;::::0;;;;;;;;;7618:13;7650:1:::3;7636:16;;;;7524:258;;::::0;::::3;;;;;;;;;;;;7656:13;7670:1;7656:16;;;;;;;:::i;:::-;;;;;7524:258;;;;7674:13;7688:1;7674:16;;;;;;;:::i;:::-;;;;;7524:258:::0;;;;::::3;::::0;;;;::::3;::::0;;;;7707:13;7721:1:::3;7707:16;;;;7524:258;;;;7725:13;7739:1;7725:16;;;;;;;:::i;:::-;;;;;7524:258;;::::0;::::3;;;;;;;;7757:14;7524:258;;::::0;::::3;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;7524:258:43::3;::::0;;::::3;;::::0;;::::3;-1:-1:-1::0;;7524:258:43::3;::::0;::::3;::::0;;;::::3;::::0;;::::3;::::0;::::3;:::i;:::-;;;7520:1292;;;;:::i;:::-;7902:14;7897:85;;7943:24;;-1:-1:-1::0;;;7943:24:43::3;;;;;;;;;;;7897:85;8150:11;:22:::0;;;8318:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;8318:47:43::3;8349:15;-1:-1:-1::0;;;;;8318:47:43::3;;::::0;;8150:22;-1:-1:-1;8385:51:43::3;::::0;8397:7;;8385:51:::3;::::0;;;::::3;7783:664;6640:2178;;;6380:2438:::0;;;;;;:::o;3800:152::-;4871:13:22;;3886:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;3899::43::1;:46:::0;;-1:-1:-1;;;;;;3899:46:43::1;-1:-1:-1::0;;;;;3899:46:43;::::1;;::::0;;-1:-1:-1;;4971:22:22;;;;-1:-1:-1;;5003:20:22;;;;;;5044:21;;;;5080:20;;10228:36:80;;;5080:20:22;;10216:2:80;10201:18;5080:20:22;;;;;;;3800:152:43;;:::o;34738:423:42:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;34954:23:42::3;::::0;;-1:-1:-1;;;;;34987:34:42;;::::3;-1:-1:-1::0;;;;;;34987:34:42;::::3;::::0;::::3;::::0;;;34954:23:::3;::::0;;;35036:118:::3;::::0;11363:685:43;11591:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;11663:4:43::2;11657:11;11719:1;11708:9;11704:17;11790:15;11760:28;11747:11;11734:72;11838:33:::0;;::::2;11884:28:::0;;;11949:2:::2;11932:20:::0;;::::2;11925:38:::0;;;;-1:-1:-1;;12011:2:43::2;12007:24:::0;;::::2;11984:48:::0;;;11363:685;-1:-1:-1;;11363:685:43:o;40699:508:42:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;40987:22:42::2;41004:4;40987:16;:22::i;:::-;41075:17;::::0;41181:9:::2;::::0;41075:125:::2;::::0;-1:-1:-1;;;41075:125:42;;-1:-1:-1;;;;;41075:17:42;;::::2;::::0;:29:::2;::::0;:125:::2;::::0;41118:4;;41124:13;;41139:10;;41151:21;;41174:5;;-1:-1:-1;;;41181:9:42;::::2;;;::::0;41075:125:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;13806:1014:42:-;4871:13:22;;14060:1:42;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;14148:16:42::1;:14;:16::i;:::-;14180:48;14217:10;14180:36;:48::i;:::-;14175:119;;14251:32;::::0;-1:-1:-1;;;14251:32:42;;10258:4:80;10246:17;;14251:32:42::1;::::0;::::1;10228:36:80::0;10201:18;;14251:32:42::1;10086:184:80::0;14175:119:42::1;14361:9;:22:::0;;-1:-1:-1;;;;14361:22:42::1;-1:-1:-1::0;;;14361:22:42::1;::::0;::::1;;;::::0;;14413:7:::1;14393:17;:27:::0;14430:11:::1;:25:::0;;;14465:23:::1;:50:::0;;-1:-1:-1;;;;;;14465:50:42;;::::1;-1:-1:-1::0;;;;;14465:50:42;;::::1;::::0;;;::::1;::::0;;;14525:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;14582:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;14630:17:42::1;:27:::0;;1513:6:18;;;;14630:27:42;::::1;;::::0;;14717:18:::1;:16;:18::i;:::-;14751:62;::::0;;18673:4:80;18661:17;;18643:36;;18710:2;18695:18;;18688:34;;;14751:62:42::1;::::0;18616:18:80;14751:62:42::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;10258:4:80;10246:17;;10228:36;;5080:20:22;;10216:2:80;10201:18;5080:20:22;;;;;;;13806:1014:42;;;;;;:::o;9156:228:43:-;9316:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;-1:-1:-1::0;9354:22:43::2;::::0;-1:-1:-1;;;;;9354:22:43::2;1144:1:77;9156:228:43::0;:::o;32299:567:42:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;32478:11:42::2;;32470:4;:19:::0;32466:394:::2;;-1:-1:-1::0;;32512:30:42::2;::::0;;::::2;::::0;::::2;::::0;;32521:11:::2;::::0;32512:30;;-1:-1:-1;32512:30:42::2;::::0;::::2;::::0;32537:4:::2;32512:30:::0;;;;;;;;32299:567::o;32466:394::-:2;32573:21;32597:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;32597:17:42::2;::::0;32633:18;;;32629:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7218:25:42;;;;;;;;;;;;;;;;;;;;32678:14:::2;32671:21:::0;32299:567;-1:-1:-1;;;32299:567:42:o;32629:78::-:2;32772:17;::::0;32721:12:::2;::::0;32738:31:::2;-1:-1:-1::0;;;;;32738:31:42;::::2;:15;:31;:::i;:::-;32811:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;32811:38:42;;::::2;;::::0;::::2;::::0;32738:51;-1:-1:-1;32736:54:42::2;32811:38:::0;;;;-1:-1:-1;32811:38:42;-1:-1:-1;32466:394:42::2;32299:567:::0;;;:::o;37747:189::-;37882:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;-1:-1:-1::0;37912:17:42::2;::::0;37747:189;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;35454:227:42:-;35612:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;-1:-1:-1::0;35650:23:42::2;::::0;-1:-1:-1;;;;;35650:23:42::2;35454:227:::0;:::o;3006:131:23:-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;19165:2:80;2308:92:23;;;19147:21:80;19204:2;19184:18;;;19177:30;19243:34;19223:18;;;19216:62;19314:26;19294:18;;;19287:54;19358:19;;2308:92:23;18963:420:80;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;36071:416:42:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;36283:23:42::3;::::0;;-1:-1:-1;;;;;36316:34:42;;::::3;-1:-1:-1::0;;;;;;36316:34:42;::::3;::::0;::::3;::::0;;;36283:23:::3;::::0;;36396:36:::3;36365:115;::::0;4649:109:44;1334:13:18;:11;:13::i;:::-;4726:25:44::1;;-1:-1:-1::0;;;4726:25:44::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;19590:2:80;2095:78:17;;;19572:21:80;19629:2;19609:18;;;19602:30;19668:34;19648:18;;;19641:62;-1:-1:-1;;;19719:18:80;;;19712:39;19768:19;;2095:78:17;19388:405:80;2095:78:17;2183:26;2202:6;2183:18;:26::i;31089:465:42:-;31366:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;31390:24:42::2;31446:7;31455:8;31465:11;;31478:13;;31493;;31429:78;;;;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;31429:78:42;;::::2;::::0;;;;;;31525:22;;31429:78:::2;31525:22:::0;;::::2;::::0;;31089:465;-1:-1:-1;;;;;;;;;;31089:465:42:o;29135:413::-;29370:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;29394:24:42::2;29450:10;29462:7;29471:8;29481:19;;29433:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;29433:68:42;;::::2;::::0;;;;;;29519:22;;29433:68:::2;29519:22:::0;;::::2;::::0;;29135:413;-1:-1:-1;;;;;;;29135:413:42:o;38714:119::-;38793:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;-1:-1:-1::0;38817:9:42::2;::::0;-1:-1:-1;;;38817:9:42;::::2;;;::::0;38714:119::o;34179:231::-;34341:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;-1:-1:-1::0;34379:23:42::2;::::0;-1:-1:-1;;;;;34379:23:42::2;34179:231:::0;:::o;39480:384::-;39646:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;39691:17:42::3;::::0;;-1:-1:-1;;;;;39718:39:42;;::::3;-1:-1:-1::0;;;;;;39718:39:42;::::3;::::0;::::3;::::0;;;39772:57:::3;::::0;39691:17;::::3;::::0;39718:39;39691:17;;39772:57:::3;::::0;39669:19:::3;::::0;39772:57:::3;39846:11:::0;39480:384;-1:-1:-1;;39480:384:42:o;9704:418:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;9918:22:43::3;::::0;;-1:-1:-1;;;;;9950:33:43;;::::3;-1:-1:-1::0;;;;;;9950:33:43;::::3;::::0;::::3;::::0;;;9918:22:::3;::::0;;10029:38:::3;9998:117;::::0;22820:1590:42;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;41750:17:42::2;::::0;-1:-1:-1;;;;;41750:17:42::2;41736:10;:31;41732:93;;41790:24;::::0;-1:-1:-1;;;41790:24:42;;41803:10:::2;41790:24;::::0;::::2;6006:51:80::0;5979:18;;41790:24:42::2;5860:203:80::0;41732:93:42::2;23154:11:::3;;23143:7;:22;23139:95;;23211:11;::::0;23188:35:::3;::::0;-1:-1:-1;;;23188:35:42;;::::3;::::0;23202:7;;23188:35:::3;;12764:25:80::0;;;12820:2;12805:18;;12798:34;12752:2;12737:18;;12590:248;23139:95:42::3;23322:42:::0;;::::3;;::::0;:88:::3;;-1:-1:-1::0;23368:42:42;;::::3;;23322:88;23305:172;;;23442:24;;-1:-1:-1::0;;;23442:24:42::3;;;;;;;;;;;23305:172;23564:17;23584:116;23630:7;23639:8;23649:11;;23662:13;;23677;;23584:32;:116::i;:::-;23564:136:::0;-1:-1:-1;23971:24:42::3;23998:39;4368:77;23564:136:::0;23998:39:::3;:::i;:::-;24152:23;::::0;:58:::3;::::0;-1:-1:-1;;;24152:58:42;;::::3;::::0;::::3;4125:25:80::0;;;23971:66:42;;-1:-1:-1;24121:28:42::3;::::0;-1:-1:-1;;;;;24152:23:42;;::::3;::::0;:38:::3;::::0;4098:18:80;;24152:58:42::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24121:89;;24316:87;24338:14;24354:11;24367:16;24385:7;24394:8;24316:21;:87::i;:::-;23129:1281;;;22820:1590:::0;;;;;;;;;:::o;38168:402::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;38330::42::3;38347:1;38330:18:::0;38326:86:::3;;38364:37;::::0;-1:-1:-1;;;38364:37:42;;21716:2:80;38364:37:42::3;::::0;::::3;21698:21:80::0;21755:2;21735:18;;;21728:30;21794:29;21774:18;;;21767:57;21841:18;;38364:37:42::3;21514:351:80::0;38326:86:42::3;38441:17;::::0;;38468:33;;;;38517:46:::3;::::0;38488:13;;38441:17;;38517:46:::3;::::0;38421:17:::3;::::0;38517:46:::3;38316:254;38168:402:::0;:::o;31682:121::-;31759:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;-1:-1:-1::0;31785:11:42::2;::::0;31682:121;:::o;39054:133::-;39137:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;-1:-1:-1::0;39163:17:42::2;::::0;-1:-1:-1;;;;;39163:17:42::2;39054:133:::0;:::o;36670:205::-;36812:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;-1:-1:-1::0;36850:17:42::2;::::0;-1:-1:-1;;;;;36850:17:42::2;36670:205:::0;:::o;33309:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;33461:11:42::2;::::0;33449:56;;33488:7:::2;33449:56;33580:21;33604:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;33604:17:42::2;::::0;33704:18;;;33700:73:::2;;33745:17;;-1:-1:-1::0;;;33745:17:42::2;;;;;;;;;;;33700:73;33877:17;::::0;33843:31:::2;-1:-1:-1::0;;;;;33843:31:42;::::2;:15;:31;:::i;:::-;:51;33839:102;;;33917:13;;-1:-1:-1::0;;;33917:13:42::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;22072:2:80;1654:68:18;;;22054:21:80;;;22091:18;;;22084:30;22150:34;22130:18;;;22123:62;22202:18;;1654:68:18;21870:356:80;1654:68:18;1599:130::o;4067:204:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;22622:2:80;3758:56:20;;;22604:21:80;22661:2;22641:18;;;22634:30;22700:34;22680:18;;;22673:62;-1:-1:-1;;;22751:18:80;;;22744:44;22805:19;;3758:56:20;22420:410:80;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;23037:2:80;3636:82:20;;;23019:21:80;23076:2;23056:18;;;23049:30;23115:34;23095:18;;;23088:62;-1:-1:-1;;;23166:18:80;;;23159:39;23215:19;;3636:82:20;22835:405:80;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;15154:97:42:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;15224:20:42::1;:18;:20::i;434:207:78:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:78;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:78:o;794:90:77:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:77::1;:19:::0;;-1:-1:-1;;858:19:77::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;26242:1763:42:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:77::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:77::1;;;;;;;;;;;1054:81;41750:17:42::2;::::0;-1:-1:-1;;;;;41750:17:42::2;41736:10;:31;41732:93;;41790:24;::::0;-1:-1:-1;;;41790:24:42;;41803:10:::2;41790:24;::::0;::::2;6006:51:80::0;5979:18;;41790:24:42::2;5860:203:80::0;41732:93:42::2;26566:20:::3;:55;;;;;;;;26590:11;26602:1;26590:14;;;;;;;:::i;:::-;;;;;26566:55;;;;26606:11;26618:1;26606:14;;;;;;;:::i;:::-;;;;;26566:55:::0;;26631:106:::3;::::0;;;;;;;26671:14;;::::3;;26631:106:::0;;::::3;::::0;;;26566:55;;-1:-1:-1;;;26631:106:42;;;;;;26671:11;26699:1:::3;26687:14;;;;26631:106;;::::0;::::3;;;;;;;;;;;;26705:11;26717:1;26705:14;;;;;;;:::i;:::-;;;;;26631:106;;;;26721:11;26733:1;26721:14;;;;;;;:::i;:::-;;;;;26631:106:::0;;;;26747:56:::3;::::0;;;;::::3;::::0;;;26631:106;;-1:-1:-1;26747:21:42::3;::::0;:56;26772:11;26784:1:::3;26772:14;;;;26747:56;;;;26788:11;26800:1;26788:14;;;;;;;:::i;:::-;;;;;26747:56;;::::0;::::3;;26813:28;:42;;;;;;;;26845:9;26813:42;;::::0;::::3;;26920:14;-1:-1:-1::0;;;;;26920:26:42::3;;26947:2;26951;26955:3;26960:10;26920:51;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;26920:51:42::3;::::0;;::::3;;::::0;;::::3;-1:-1:-1::0;;26920:51:42::3;::::0;::::3;::::0;;;::::3;::::0;;::::3;::::0;::::3;:::i;:::-;;;26916:1083;;;;:::i;:::-;27091:14;27086:85;;27132:24;;-1:-1:-1::0;;;27132:24:42::3;;;;;;;;;;;27086:85;27339:11;:22:::0;;;27507:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;27507:47:42::3;27538:15;-1:-1:-1::0;;;;;27507:47:42::3;;::::0;;27339:22;27595:17:::3;27574:49;::::0;27586:7;;27574:49:::3;::::0;;;::::3;26972:662;26500:1505;;;;26242:1763:::0;;;;;:::o;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;23859:2:80;1878:106:20;;;23841:21:80;23898:2;23878:18;;;23871:30;23937:34;23917:18;;;23910:62;-1:-1:-1;;;23988:18:80;;;23981:43;24041:19;;1878:106:20;23657:409:80;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:44:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:44::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;24273:2:80;7195:88:20;;;24255:21:80;24312:2;24292:18;;;24285:30;24351:34;24331:18;;;24324:62;-1:-1:-1;;;24402:18:80;;;24395:36;24448:19;;7195:88:20;24071:402:80;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:80;-1:-1:-1;;;;;109:31:80;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:80;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:80;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:80;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:80:o;1953:347::-;2004:8;2014:6;2068:3;2061:4;2053:6;2049:17;2045:27;2035:55;;2086:1;2083;2076:12;2035:55;-1:-1:-1;2109:20:80;;2152:18;2141:30;;2138:50;;;2184:1;2181;2174:12;2138:50;2221:4;2213:6;2209:17;2197:29;;2273:3;2266:4;2257:6;2249;2245:19;2241:30;2238:39;2235:59;;;2290:1;2287;2280:12;2305:745;2435:6;2443;2451;2459;2467;2475;2528:3;2516:9;2507:7;2503:23;2499:33;2496:53;;;2545:1;2542;2535:12;2496:53;2568;2613:7;2602:9;2568:53;:::i;:::-;2558:63;;2640:38;2673:3;2662:9;2658:19;2640:38;:::i;:::-;2630:48;;2729:3;2718:9;2714:19;2701:33;2757:18;2749:6;2746:30;2743:50;;;2789:1;2786;2779:12;2743:50;2828:58;2878:7;2869:6;2858:9;2854:22;2828:58;:::i;:::-;2305:745;;;;-1:-1:-1;2905:8:80;2987:3;2972:19;;2959:33;;3039:3;3024:19;;;3011:33;;-1:-1:-1;2305:745:80;-1:-1:-1;;;;2305:745:80:o;3356:618::-;3452:6;3460;3468;3476;3484;3537:3;3525:9;3516:7;3512:23;3508:33;3505:53;;;3554:1;3551;3544:12;3505:53;3594:9;3581:23;3627:18;3619:6;3616:30;3613:50;;;3659:1;3656;3649:12;3613:50;3698:58;3748:7;3739:6;3728:9;3724:22;3698:58;:::i;:::-;3775:8;;-1:-1:-1;3672:84:80;-1:-1:-1;;3857:2:80;3842:18;;3829:32;;-1:-1:-1;3908:2:80;3893:18;;3880:32;;-1:-1:-1;3931:37:80;3964:2;3949:18;;3931:37;:::i;:::-;3921:47;;3356:618;;;;;;;;:::o;4161:509::-;4281:6;4289;4297;4305;4313;4366:3;4354:9;4345:7;4341:23;4337:33;4334:53;;;4383:1;4380;4373:12;4334:53;4419:9;4406:23;4396:33;;4476:2;4465:9;4461:18;4448:32;4438:42;;4527:2;4516:9;4512:18;4499:32;4489:42;;4578:2;4567:9;4563:18;4550:32;4540:42;;4601:63;4656:7;4650:3;4639:9;4635:19;4601:63;:::i;4947:908::-;5126:6;5134;5142;5150;5158;5211:3;5199:9;5190:7;5186:23;5182:33;5179:53;;;5228:1;5225;5218:12;5179:53;5267:9;5254:23;5317:4;5310:5;5306:16;5299:5;5296:27;5286:55;;5337:1;5334;5327:12;5286:55;5360:5;-1:-1:-1;5412:2:80;5397:18;;5384:32;;-1:-1:-1;5468:2:80;5453:18;;5440:32;5481:53;5440:32;5481:53;:::i;:::-;5553:7;-1:-1:-1;5612:2:80;5597:18;;5584:32;5625:53;5584:32;5625:53;:::i;:::-;5697:7;-1:-1:-1;5756:3:80;5741:19;;5728:33;5770:53;5728:33;5770:53;:::i;:::-;5842:7;5832:17;;;4947:908;;;;;;;;:::o;6068:180::-;6127:6;6180:2;6168:9;6159:7;6155:23;6151:32;6148:52;;;6196:1;6193;6186:12;6148:52;-1:-1:-1;6219:23:80;;6068:180;-1:-1:-1;6068:180:80:o;6861:127::-;6922:10;6917:3;6913:20;6910:1;6903:31;6953:4;6950:1;6943:15;6977:4;6974:1;6967:15;6993:249;7103:2;7084:13;;-1:-1:-1;;7080:27:80;7068:40;;7138:18;7123:34;;7159:22;;;7120:62;7117:88;;;7185:18;;:::i;:::-;7221:2;7214:22;-1:-1:-1;;6993:249:80:o;7247:953::-;7324:6;7332;7385:2;7373:9;7364:7;7360:23;7356:32;7353:52;;;7401:1;7398;7391:12;7353:52;7440:9;7427:23;7459:51;7504:5;7459:51;:::i;:::-;7529:5;-1:-1:-1;7553:2:80;7591:18;;;7578:32;7629:18;7659:14;;;7656:34;;;7686:1;7683;7676:12;7656:34;7724:6;7713:9;7709:22;7699:32;;7769:7;7762:4;7758:2;7754:13;7750:27;7740:55;;7791:1;7788;7781:12;7740:55;7827:2;7814:16;7849:2;7845;7842:10;7839:36;;;7855:18;;:::i;:::-;7904:2;7898:9;;-1:-1:-1;7916:65:80;7971:2;7952:13;;-1:-1:-1;;7948:27:80;7944:36;;7898:9;7916:65;:::i;:::-;8005:2;7997:6;7990:18;8045:7;8040:2;8035;8031;8027:11;8023:20;8020:33;8017:53;;;8066:1;8063;8056:12;8017:53;8122:2;8117;8113;8109:11;8104:2;8096:6;8092:15;8079:46;8167:1;8162:2;8157;8149:6;8145:15;8141:24;8134:35;;8188:6;8178:16;;;;;7247:953;;;;;:::o;8205:1225::-;8380:6;8388;8396;8404;8412;8420;8428;8436;8489:3;8477:9;8468:7;8464:23;8460:33;8457:53;;;8506:1;8503;8496:12;8457:53;8542:9;8529:23;8519:33;;8599:2;8588:9;8584:18;8571:32;8561:42;;8654:2;8643:9;8639:18;8626:32;8677:18;8718:2;8710:6;8707:14;8704:34;;;8734:1;8731;8724:12;8704:34;8773:70;8835:7;8826:6;8815:9;8811:22;8773:70;:::i;:::-;8862:8;;-1:-1:-1;8747:96:80;-1:-1:-1;8950:2:80;8935:18;;8922:32;;-1:-1:-1;8966:16:80;;;8963:36;;;8995:1;8992;8985:12;8963:36;9034:72;9098:7;9087:8;9076:9;9072:24;9034:72;:::i;:::-;9125:8;;-1:-1:-1;9008:98:80;-1:-1:-1;9213:3:80;9198:19;;9185:33;;-1:-1:-1;9230:16:80;;;9227:36;;;9259:1;9256;9249:12;9227:36;;9298:72;9362:7;9351:8;9340:9;9336:24;9298:72;:::i;:::-;8205:1225;;;;-1:-1:-1;8205:1225:80;;-1:-1:-1;8205:1225:80;;;;;;9389:8;-1:-1:-1;;;8205:1225:80:o;9435:646::-;9547:6;9555;9563;9571;9579;9632:3;9620:9;9611:7;9607:23;9603:33;9600:53;;;9649:1;9646;9639:12;9600:53;9672:28;9690:9;9672:28;:::i;:::-;9662:38;;9747:2;9736:9;9732:18;9719:32;9709:42;;9798:2;9787:9;9783:18;9770:32;9760:42;;9853:2;9842:9;9838:18;9825:32;9880:18;9872:6;9869:30;9866:50;;;9912:1;9909;9902:12;9866:50;9951:70;10013:7;10004:6;9993:9;9989:22;9951:70;:::i;:::-;9435:646;;;;-1:-1:-1;9435:646:80;;-1:-1:-1;10040:8:80;;9925:96;9435:646;-1:-1:-1;;;9435:646:80:o;10275:1352::-;10484:6;10492;10500;10508;10516;10524;10532;10540;10548;10601:3;10589:9;10580:7;10576:23;10572:33;10569:53;;;10618:1;10615;10608:12;10569:53;10641;10686:7;10675:9;10641:53;:::i;:::-;10631:63;;10741:3;10730:9;10726:19;10713:33;10703:43;;10797:3;10786:9;10782:19;10769:33;10821:18;10862:2;10854:6;10851:14;10848:34;;;10878:1;10875;10868:12;10848:34;10917:70;10979:7;10970:6;10959:9;10955:22;10917:70;:::i;:::-;11006:8;;-1:-1:-1;10891:96:80;-1:-1:-1;11094:3:80;11079:19;;11066:33;;-1:-1:-1;11111:16:80;;;11108:36;;;11140:1;11137;11130:12;11108:36;11179:72;11243:7;11232:8;11221:9;11217:24;11179:72;:::i;:::-;11270:8;;-1:-1:-1;11153:98:80;-1:-1:-1;11358:3:80;11343:19;;11330:33;;-1:-1:-1;11375:16:80;;;11372:36;;;11404:1;11401;11394:12;11372:36;;11443:72;11507:7;11496:8;11485:9;11481:24;11443:72;:::i;:::-;10275:1352;;;;-1:-1:-1;10275:1352:80;;;;;;;;11534:8;11616:3;11601:19;11588:33;;10275:1352;-1:-1:-1;;;;10275:1352:80:o;11632:408::-;11834:2;11816:21;;;11873:2;11853:18;;;11846:30;11912:34;11907:2;11892:18;;11885:62;-1:-1:-1;;;11978:2:80;11963:18;;11956:42;12030:3;12015:19;;11632:408::o;12045:::-;12247:2;12229:21;;;12286:2;12266:18;;;12259:30;12325:34;12320:2;12305:18;;12298:62;-1:-1:-1;;;12391:2:80;12376:18;;12369:42;12443:3;12428:19;;12045:408::o;12843:209::-;12875:1;12901;12891:132;;12945:10;12940:3;12936:20;12933:1;12926:31;12980:4;12977:1;12970:15;13008:4;13005:1;12998:15;12891:132;-1:-1:-1;13037:9:80;;12843:209::o;13057:294::-;13150:6;13203:2;13191:9;13182:7;13178:23;13174:32;13171:52;;;13219:1;13216;13209:12;13171:52;13251:9;13245:16;13270:51;13315:5;13270:51;:::i;13356:127::-;13417:10;13412:3;13408:20;13405:1;13398:31;13448:4;13445:1;13438:15;13472:4;13469:1;13462:15;13488:326;13581:5;13604:1;13614:194;13628:4;13625:1;13622:11;13614:194;;;13687:13;;13675:26;;13724:4;13748:12;;;;13783:15;;;;13648:1;13641:9;13614:194;;13819:1627;14267:3;14252:19;;14280:43;14256:9;14305:6;14280:43;:::i;:::-;14342:2;14379;14368:9;14364:18;14424:6;14448:1;14458:586;14522:4;14555:2;14552:1;14549:9;14539:30;;14562:5;;;14539:30;14592:13;;14631:3;14714:1;14728:234;14744:2;14739:3;14736:11;14728:234;;;14815:15;;14801:30;;14858:4;14931:17;;;;14888:14;;;;14766:1;14757:11;14728:234;;;-1:-1:-1;;;14982:12:80;;;;-1:-1:-1;15029:4:80;15017:17;;;;;14485:1;14478:9;14458:586;;;14462:3;;;;15053:53;15101:3;15090:9;15086:19;15078:6;15053:53;:::i;:::-;15143:3;15132:9;15128:19;15195:6;15221:1;15231:209;15247:1;15242:3;15239:10;15231:209;;;15309:15;;15295:30;;15348:4;15374:14;;;;15413:17;;;;15268:1;15259:11;15231:209;;;15235:3;;;13819:1627;;;;;;;:::o;15451:277::-;15518:6;15571:2;15559:9;15550:7;15546:23;15542:32;15539:52;;;15587:1;15584;15577:12;15539:52;15619:9;15613:16;15672:5;15665:13;15658:21;15651:5;15648:32;15638:60;;15694:1;15691;15684:12;15733:179;15768:3;15810:1;15792:16;15789:23;15786:120;;;15856:1;15853;15850;15835:23;-1:-1:-1;15893:1:80;15887:8;15882:3;15878:18;15733:179;:::o;15917:671::-;15956:3;15998:4;15980:16;15977:26;15974:39;;;15917:671;:::o;15974:39::-;16040:2;16034:9;-1:-1:-1;;16105:16:80;16101:25;;16098:1;16034:9;16077:50;16156:4;16150:11;16180:16;16215:18;16286:2;16279:4;16271:6;16267:17;16264:25;16259:2;16251:6;16248:14;16245:45;16242:58;;;16293:5;;;;;15917:671;:::o;16242:58::-;16330:6;16324:4;16320:17;16309:28;;16366:3;16360:10;16393:2;16385:6;16382:14;16379:27;;;16399:5;;;;;;15917:671;:::o;16379:27::-;16483:2;16464:16;16458:4;16454:27;16450:36;16443:4;16434:6;16429:3;16425:16;16421:27;16418:69;16415:82;;;16490:5;;;;;;15917:671;:::o;16415:82::-;16506:57;16557:4;16548:6;16540;16536:19;16532:30;16526:4;16506:57;:::i;:::-;-1:-1:-1;16579:3:80;;15917:671;-1:-1:-1;;;;;15917:671:80:o;16593:250::-;16678:1;16688:113;16702:6;16699:1;16696:13;16688:113;;;16778:11;;;16772:18;16759:11;;;16752:39;16724:2;16717:10;16688:113;;;-1:-1:-1;;16835:1:80;16817:16;;16810:27;16593:250::o;16848:396::-;16997:2;16986:9;16979:21;16960:4;17029:6;17023:13;17072:6;17067:2;17056:9;17052:18;17045:34;17088:79;17160:6;17155:2;17144:9;17140:18;17135:2;17127:6;17123:15;17088:79;:::i;:::-;17228:2;17207:15;-1:-1:-1;;17203:29:80;17188:45;;;;17235:2;17184:54;;16848:396;-1:-1:-1;;16848:396:80:o;17447:410::-;17649:2;17631:21;;;17688:2;17668:18;;;17661:30;17727:34;17722:2;17707:18;;17700:62;-1:-1:-1;;;17793:2:80;17778:18;;17771:44;17847:3;17832:19;;17447:410::o;17862:606::-;18140:4;18182:3;18171:9;18167:19;18159:27;;18213:6;18202:9;18195:25;18256:6;18251:2;18240:9;18236:18;18229:34;18299:6;18294:2;18283:9;18279:18;18272:34;18342:6;18337:2;18326:9;18322:18;18315:34;18400:6;18392;18386:3;18375:9;18371:19;18358:49;18456:4;18448:6;18444:17;18438:3;18427:9;18423:19;18416:46;17862:606;;;;;;;;;:::o;18733:225::-;18800:9;;;18821:11;;;18818:134;;;18874:10;18869:3;18865:20;18862:1;18855:31;18909:4;18906:1;18899:15;18937:4;18934:1;18927:15;19798:261;19868:3;-1:-1:-1;;;;;19889:31:80;;19886:51;;;19933:1;19930;19923:12;19886:51;19969:6;19966:1;19962:14;20010:8;20003:5;19998:3;19985:34;20035:18;;;;;19798:261;-1:-1:-1;;;19798:261:80:o;20064:951::-;20495:6;20490:3;20483:19;20465:3;20521:2;20553:6;20548:2;20543:3;20539:12;20532:28;20591:2;20586:3;20582:12;20640:6;20664:1;20674:204;20688:6;20685:1;20682:13;20674:204;;;20782:10;20755:25;20773:6;20755:25;:::i;:::-;20751:42;20737:57;;20816:14;;;;20853:15;;;;20710:1;20703:9;20674:204;;;20678:3;;20894:115;20948:60;21002:5;20994:6;20986;20948:60;:::i;:::-;20940:6;20932;20894:115;:::i;:::-;20887:122;20064:951;-1:-1:-1;;;;;;;;;;;;20064:951:80:o;21020:489::-;21334:10;21329:3;21325:20;21316:6;21311:3;21307:16;21303:43;21298:3;21291:56;21376:6;21372:1;21367:3;21363:11;21356:27;21413:6;21408:2;21403:3;21399:12;21392:28;21273:3;21436:67;21499:2;21494:3;21490:12;21482:6;21474;21436:67;:::i;:::-;21429:74;21020:489;-1:-1:-1;;;;;;;21020:489:80:o;22231:184::-;22301:6;22354:2;22342:9;22333:7;22329:23;22325:32;22322:52;;;22370:1;22367;22360:12;22322:52;-1:-1:-1;22393:16:80;;22231:184;-1:-1:-1;22231:184:80:o;23245:407::-;23447:2;23429:21;;;23486:2;23466:18;;;23459:30;23525:34;23520:2;23505:18;;23498:62;-1:-1:-1;;;23591:2:80;23576:18;;23569:41;23642:3;23627:19;;23245:407::o;24478:287::-;24607:3;24645:6;24639:13;24661:66;24720:6;24715:3;24708:4;24700:6;24696:17;24661:66;:::i;:::-;24743:16;;;;;24478:287;-1:-1:-1;;24478:287:80:o", + "object": "0x6080604052600436106101cd5760003560e01c806379ba5097116100f7578063c70aa72711610095578063f134b6ca11610064578063f134b6ca14610539578063f2038f951461054e578063f2358e1d14610563578063f2fde38b1461058357600080fd5b8063c70aa727146104c6578063d7b0fef1146104e6578063e30c3978146104fb578063ea10fbbe1461051957600080fd5b80638e5cdd50116100d15780638e5cdd501461044a5780638fc22e9f14610471578063a7bba58214610486578063aa4a729e146104a657600080fd5b806379ba5097146103f75780638c76a9091461040c5780638da5cb5b1461042c57600080fd5b806338c870651161016f5780634f1ef2861161013e5780634f1ef2861461037657806352d1902d14610389578063561f204b1461039e578063715018a6146103e257600080fd5b806338c87065146102c75780633e8919b6146102e75780633f7c178d1461031457806343f974cb1461036157600080fd5b80632f059fca116101ab5780632f059fca1461023457806331e4e99214610254578063354ca120146102875780633659cfe6146102a757600080fd5b80630e3a12f3146101d25780632217b211146101f457806329b6eca914610214575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612a11565b6105a3565b005b34801561020057600080fd5b506101f261020f366004612aa0565b6106f1565b34801561022057600080fd5b506101f261022f366004612a11565b6109f3565b34801561024057600080fd5b506101f261024f366004612a11565b610af6565b34801561026057600080fd5b5061027461026f366004612b5f565b610c12565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506101f26102a2366004612bc6565b610d00565b3480156102b357600080fd5b506101f26102c2366004612a11565b610e4a565b3480156102d357600080fd5b506101f26102e2366004612c05565b610f12565b3480156102f357600080fd5b506102fc61110d565b6040516001600160a01b03909116815260200161027e565b34801561032057600080fd5b5061033461032f366004612c73565b6111e4565b60408051825181526020808401516001600160801b0316908201529181015115159082015260600161027e565b34801561036d57600080fd5b50610274611395565b6101f2610384366004612ccf565b611462565b34801561039557600080fd5b5061027461151b565b3480156103aa57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610334565b3480156103ee57600080fd5b506101f26115ce565b34801561040357600080fd5b506101f26115ef565b34801561041857600080fd5b50610274610427366004612d7b565b611666565b34801561043857600080fd5b506033546001600160a01b03166102fc565b34801561045657600080fd5b5061045f611769565b60405160ff909116815260200161027e565b34801561047d57600080fd5b506102fc611840565b34801561049257600080fd5b506102fc6104a1366004612a11565b611916565b3480156104b257600080fd5b506101f26104c1366004612a11565b611a38565b3480156104d257600080fd5b506101f26104e1366004612c73565b611b54565b3480156104f257600080fd5b50610274611ca9565b34801561050757600080fd5b506065546001600160a01b03166102fc565b34801561052557600080fd5b506101f2610534366004612de3565b611d76565b34801561054557600080fd5b506102fc612038565b34801561055a57600080fd5b506102fc61210e565b34801561056f57600080fd5b506101f261057e366004612c73565b6121e4565b34801561058f57600080fd5b506101f261059e366004612a11565b612321565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f45760405162461bcd60e51b81526004016105eb90612e4d565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610626612392565b6001600160a01b03161461064c5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661066f57604051630103019560e11b815260040160405180910390fd5b6106776123ae565b6001600160a01b03811661069e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107395760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661076b612392565b6001600160a01b0316146107915760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166107b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146107e25760405163472511eb60e11b81523360048201526024016105eb565b61012e5485146108145761012e5460405163542fced960e11b81526105eb918791600401918252602082015260400190565b60006108238587848787611666565b905060006108517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612efb565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190612f0f565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610901918d9190600401612f2c565b600060405180830381600087803b15801561091b57600080fd5b505af192505050801561092c575060015b61098c57610938612f67565b806308c379a003610971575061094c612f82565b806109575750610973565b8060405162461bcd60e51b81526004016105eb9190613030565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546001600160801b031916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b600054600290610100900460ff16158015610a15575060005460ff8083169116105b610a315760405162461bcd60e51b81526004016105eb90613063565b6000805461ffff191660ff8316176101001790556001600160a01b038216610a6c57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b0384161790556040517fe416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a90600090a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b70612392565b6001600160a01b031614610b965760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610bb957604051630103019560e11b815260040160405180910390fd5b610bc16123ae565b6001600160a01b038116610be857604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106c4565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c5c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c8e612392565b6001600160a01b031614610cb45760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610cd757604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d485760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7a612392565b6001600160a01b031614610da05760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610dc357604051630103019560e11b815260040160405180910390fd5b610dcc856121e4565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610e1e918591906004016130b1565b60006040518083038186803b158015610e3657600080fd5b505afa1580156109e8573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e925760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ec4612392565b6001600160a01b031614610eea5760405162461bcd60e51b81526004016105eb90612e99565b610ef38161240a565b60408051600080825260208201909252610f0f918391906124b2565b50565b600054600190610100900460ff16158015610f34575060005460ff8083169116105b610f505760405162461bcd60e51b81526004016105eb90613063565b6000805461ffff191660ff8316176101001790556001600160a01b038416610f8b57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610fb257604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610fd95760405163baa3de5f60e01b815260040160405180910390fd5b610fe1612622565b610fea86612651565b61100c57604051630220cee360e61b815260ff871660048201526024016105eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055611088612678565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111575760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611189612392565b6001600160a01b0316146111af5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166111d257604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112495760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127b612392565b6001600160a01b0316146112a15760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166112c457604051630103019560e11b815260040160405180910390fd5b61012e5482036112f35750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b03169081900361134e5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906113686001600160801b038416426130e2565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113df5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611411612392565b6001600160a01b0316146114375760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661145a57604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114aa5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114dc612392565b6001600160a01b0316146115025760405162461bcd60e51b81526004016105eb90612e99565b61150b8261240a565b611517828260016124b2565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115bb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105eb565b506000805160206131e983398151915290565b6115d66123ae565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b0316811461165d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105eb565b610f0f816126ae565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116b05760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e2612392565b6001600160a01b0316146117085760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661172b57604051630103019560e11b815260040160405180910390fd5b60008686868686604051602001611746959493929190613103565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117b35760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117e5612392565b6001600160a01b03161461180b5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661182e57604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361188a5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118bc612392565b6001600160a01b0316146118e25760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661190557604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119605760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611992612392565b6001600160a01b0316146119b85760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166119db57604051630103019560e11b815260040160405180910390fd5b6119e36123ae565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a805760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab2612392565b6001600160a01b031614611ad85760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611afb57604051630103019560e11b815260040160405180910390fd5b611b036123ae565b6001600160a01b038116611b2a57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b038381166001600160a01b03198316811790935516908160026106c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b9c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bce612392565b6001600160a01b031614611bf45760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611c1757604051630103019560e11b815260040160405180910390fd5b611c1f6123ae565b80600003611c6f5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016105eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cf35760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d25612392565b6001600160a01b031614611d4b5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611d6e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dbe5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611df0612392565b6001600160a01b031614611e165760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611e3957604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e675760405163472511eb60e11b81523360048201526024016105eb565b6000611e74600485613154565b905061012e548314611ea85761012e5460405163542fced960e11b81526105eb918591600401918252602082015260400190565b6000611eb78686868686610c12565b90506000611ee57f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612efb565b61013554604051638a283fc360e01b815263ffffffff861660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5e9190612f0f565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991611f9a918d9190600401612f2c565b600060405180830381600087803b158015611fb457600080fd5b505af1925050508015611fc5575060015b611fd157610938612f67565b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120825760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120b4612392565b6001600160a01b0316146120da5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166120fd57604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121585760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661218a612392565b6001600160a01b0316146121b05760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166121d357604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361222c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661225e612392565b6001600160a01b0316146122845760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166122a757604051630103019560e11b815260040160405180910390fd5b61012e548114610f0f57600081815261012f60205260408120546001600160801b0316908190036122eb5760405163ddae3b7160e01b815260040160405180910390fd5b610130546123026001600160801b038316426130e2565b111561151757604051631d739acf60e11b815260040160405180910390fd5b6123296123ae565b606580546001600160a01b0383166001600160a01b0319909116811790915561235a6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000805160206131e9833981519152546001600160a01b031690565b6033546001600160a01b031633146124085760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105eb565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036124525760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612484612392565b6001600160a01b0316146124aa5760405162461bcd60e51b81526004016105eb90612e99565b610f0f6123ae565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156124ea576124e5836126c7565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612544575060408051601f3d908101601f1916820190925261254191810190613168565b60015b6125a75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105eb565b6000805160206131e983398151915281146126165760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105eb565b506124e5838383612763565b600054610100900460ff166126495760405162461bcd60e51b81526004016105eb90613181565b61240861278e565b60006010602060ff8416821180159061267057508060ff168460ff1611155b949350505050565b600054610100900460ff1661269f5760405162461bcd60e51b81526004016105eb90613181565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610f0f816127c5565b6001600160a01b0381163b6127345760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105eb565b6000805160206131e983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61276c83612817565b6000825111806127795750805b156124e5576127888383612857565b50505050565b600054610100900460ff166127b55760405162461bcd60e51b81526004016105eb90613181565b6127bd61294d565b61240861297c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612820816126c7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6128bf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105eb565b600080846001600160a01b0316846040516128da91906131cc565b600060405180830381855af49150503d8060008114612915576040519150601f19603f3d011682016040523d82523d6000602084013e61291a565b606091505b50915091506129428282604051806060016040528060278152602001613209602791396129a3565b925050505b92915050565b600054610100900460ff166129745760405162461bcd60e51b81526004016105eb90613181565b6124086129bc565b600054610100900460ff166124085760405162461bcd60e51b81526004016105eb90613181565b606083156129b2575081611347565b61134783836129ec565b600054610100900460ff166129e35760405162461bcd60e51b81526004016105eb90613181565b612408336126ae565b8151156109575781518083602001fd5b6001600160a01b0381168114610f0f57600080fd5b600060208284031215612a2357600080fd5b8135611347816129fc565b80610100810183101561294757600080fd5b803563ffffffff8116811461139057600080fd5b60008083601f840112612a6657600080fd5b50813567ffffffffffffffff811115612a7e57600080fd5b6020830191508360208260051b8501011115612a9957600080fd5b9250929050565b6000806000806000806101808789031215612aba57600080fd5b612ac48888612a2e565b95506101008701359450612adb6101208801612a40565b935061014087013567ffffffffffffffff811115612af857600080fd5b612b0489828a01612a54565b979a969950949794969561016090950135949350505050565b60008083601f840112612b2f57600080fd5b50813567ffffffffffffffff811115612b4757600080fd5b602083019150836020828501011115612a9957600080fd5b600080600080600060808688031215612b7757600080fd5b853567ffffffffffffffff811115612b8e57600080fd5b612b9a88828901612b1d565b9096509450506020860135925060408601359150612bba60608701612a40565b90509295509295909350565b60008060008060006101808688031215612bdf57600080fd5b85359450602086013593506040860135925060608601359150612bba8760808801612a2e565b600080600080600060a08688031215612c1d57600080fd5b853560ff81168114612c2e57600080fd5b9450602086013593506040860135612c45816129fc565b92506060860135612c55816129fc565b91506080860135612c65816129fc565b809150509295509295909350565b600060208284031215612c8557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612cc857612cc8612c8c565b6040525050565b60008060408385031215612ce257600080fd5b8235612ced816129fc565b915060208381013567ffffffffffffffff80821115612d0b57600080fd5b818601915086601f830112612d1f57600080fd5b813581811115612d3157612d31612c8c565b6040519150612d49601f8201601f1916850183612ca2565b8082528784828501011115612d5d57600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600080600060808688031215612d9357600080fd5b612d9c86612a40565b94506020860135935060408601359250606086013567ffffffffffffffff811115612dc657600080fd5b612dd288828901612a54565b969995985093965092949392505050565b60008060008060006101608688031215612dfc57600080fd5b612e068787612a2e565b945061010086013567ffffffffffffffff811115612e2357600080fd5b612e2f88828901612b1d565b96999098509596610120810135966101409091013595509350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082612f0a57612f0a612ee5565b500690565b600060208284031215612f2157600080fd5b8151611347816129fc565b61012081016101008085843782018360005b6001811015612f5d578151835260209283019290910190600101612f3e565b5050509392505050565b600060033d11156111e15760046000803e5060005160e01c90565b600060443d1015612f905790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612fc057505050505090565b8285019150815181811115612fd85750505050505090565b843d8701016020828501011115612ff25750505050505090565b61300160208286010187612ca2565b509095945050505050565b60005b8381101561302757818101518382015260200161300f565b50506000910152565b602081526000825180602084015261304f81604085016020870161300c565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b61018081016101008085843782018360005b6004811015612f5d5781518352602092830192909101906001016130c3565b8181038181111561294757634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561313857600080fd5b8260051b80856044850137919091016044019695505050505050565b60008261316357613163612ee5565b500490565b60006020828403121561317a57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516131de81846020870161300c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220988abd93bd0eacc32fed88af248acf0831a9aa2879d35aff2e53ffa3126eef5164736f6c63430008150033", + "sourceMap": "442:11347:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27081:492:43;;;;;;;;;;-1:-1:-1;27081:492:43;;;;;:::i;:::-;;:::i;:::-;;19019:2122;;;;;;;;;;-1:-1:-1;19019:2122:43;;;;;:::i;:::-;;:::i;4039:327:44:-;;;;;;;;;;-1:-1:-1;4039:327:44;;;;;:::i;:::-;;:::i;25868:522:43:-;;;;;;;;;;-1:-1:-1;25868:522:43;;;;;:::i;:::-;;:::i;11102:685:44:-;;;;;;;;;;-1:-1:-1;11102:685:44;;;;;:::i;:::-;;:::i;:::-;;;3375:25:77;;;3363:2;3348:18;11102:685:44;;;;;;;;30701:499:43;;;;;;;;;;-1:-1:-1;30701:499:43;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;15045:1346:43:-;;;;;;;;;;-1:-1:-1;15045:1346:43;;;;;:::i;:::-;;:::i;8798:228:44:-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;5274:32:77;;;5256:51;;5244:2;5229:18;8798:228:44;5110:203:77;23429:567:43;;;;;;;;;;-1:-1:-1;23429:567:43;;;;;:::i;:::-;;:::i;:::-;;;;5721:13:77;;5703:32;;5795:4;5783:17;;;5777:24;-1:-1:-1;;;;;5773:65:77;5751:20;;;5744:95;5897:17;;;5891:24;5884:32;5877:40;5855:20;;;5848:70;5691:2;5676:18;23429:567:43;5503:421:77;27749:189:43;;;;;;;;;;;;;:::i;3763:222:23:-;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;7325:120:43:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;7325:120;;4649:109:45;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;22271:413:43:-;;;;;;;;;;-1:-1:-1;22271:413:43;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;28716:119:43;;;;;;;;;;;;;:::i;:::-;;;8278:4:77;8266:17;;;8248:36;;8236:2;8221:18;28716:119:43;8106:184:77;25309:231:43;;;;;;;;;;;;;:::i;29482:384::-;;;;;;;;;;-1:-1:-1;29482:384:43;;;;;:::i;:::-;;:::i;9346:517:44:-;;;;;;;;;;-1:-1:-1;9346:517:44;;;;;:::i;:::-;;:::i;28170:402:43:-;;;;;;;;;;-1:-1:-1;28170:402:43;;;;;:::i;:::-;;:::i;22812:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;6347:2113:44;;;;;;;;;;-1:-1:-1;6347:2113:44;;;;;:::i;:::-;;:::i;29056:133:43:-;;;;;;;;;;;;;:::i;26573:205::-;;;;;;;;;;;;;:::i;24439:638::-;;;;;;;;;;-1:-1:-1;24439:638:43;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;27081:492:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;27252:34:43;::::3;27248:89;;27309:17;;-1:-1:-1::0;;;27309:17:43::3;;;;;;;;;;;27248:89;27380:17;::::0;;-1:-1:-1;;;;;27407:31:43;;::::3;-1:-1:-1::0;;;;;;27407:31:43;::::3;::::0;::::3;::::0;;;27380:17:::3;::::0;;27484:28:::3;27453:113;;::::0;::::3;::::0;;;::::3;27238:335;27081:492:::0;:::o;19019:2122::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;31743:17:43::2;::::0;-1:-1:-1;;;;;31743:17:43::2;31729:10;:31;31725:93;;31783:24;::::0;-1:-1:-1;;;31783:24:43;;31796:10:::2;31783:24;::::0;::::2;5256:51:77::0;5229:18;;31783:24:43::2;5110:203:77::0;31725:93:43::2;19310:11:::3;;19299:7;:22;19295:95;;19367:11;::::0;19344:35:::3;::::0;-1:-1:-1;;;19344:35:43;;::::3;::::0;19358:7;;19344:35:::3;;10104:25:77::0;;;10160:2;10145:18;;10138:34;10092:2;10077:18;;9930:248;19295:95:43::3;19480:17;19500:112;19552:10;19564:7;19573:8;19583:19;;19500:38;:112::i;:::-;19480:132:::0;-1:-1:-1;19911:22:43::3;19936:39;4362:77;19480:132:::0;19936:39:::3;:::i;:::-;20105:23;::::0;:66:::3;::::0;-1:-1:-1;;;20105:66:43;;::::3;::::0;::::3;3375:25:77::0;;;19911:64:43;;-1:-1:-1;20059:31:43::3;::::0;-1:-1:-1;;;;;20105:23:43;;::::3;::::0;:38:::3;::::0;3348:18:77;;20105:66:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20240:63;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;20240:63:43;;20059:112;;-1:-1:-1;;;;;;20240:29:43;::::3;::::0;::::3;::::0;:63:::3;::::0;20270:14;;20240:63;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;20236:899;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;20887:9;20880:17;;-1:-1:-1::0;;;20880:17:43::3;;;;;;;;:::i;20236:899::-;;;21100:24;;-1:-1:-1::0;;;21100:24:43::3;;;;;;;;;;;20236:899;20472:11;:22:::0;;;20640:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;20640:47:43::3;20671:15;-1:-1:-1::0;;;;;20640:47:43::3;;::::0;;20472:22;;20707:52:::3;::::0;20719:7;;20707:52:::3;::::0;;;::::3;20236:899;19285:1856;;;19019:2122:::0;;;;;;:::o;4039:327:44:-;4871:13:22;;4127:1:44;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;4144:46:44;::::1;4140:104;;4213:20;;-1:-1:-1::0;;;4213:20:44::1;;;;;;;;;;;4140:104;4254:22;:48:::0;;-1:-1:-1;;;;;;4254:48:44::1;-1:-1:-1::0;;;;;4254:48:44;::::1;;::::0;;4318:41:::1;::::0;::::1;::::0;-1:-1:-1;;4318:41:44::1;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;8278:4:77;8266:17;;8248:36;;5080:20:22;;8236:2:77;8221:18;5080:20:22;;;;;;;4039:327:44;;:::o;25868:522:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;26057:31:43;::::3;26053:89;;26111:20;;-1:-1:-1::0;;;26111:20:43::3;;;;;;;;;;;26053:89;26183:23;::::0;;-1:-1:-1;;;;;26216:34:43;;::::3;-1:-1:-1::0;;;;;;26216:34:43;::::3;::::0;::::3;::::0;;;26183:23:::3;::::0;;;26265:118:::3;::::0;11102:685:44;11330:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;11402:4:44::2;11396:11;11458:1;11447:9;11443:17;11529:15;11499:28;11486:11;11473:72;11577:33:::0;;::::2;11623:28:::0;;;11688:2:::2;11671:20:::0;;::::2;11664:38:::0;;;;-1:-1:-1;;11750:2:44::2;11746:24:::0;;::::2;11723:48:::0;;;11102:685;-1:-1:-1;;11102:685:44:o;30701:499:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;30989:22:43::2;31006:4;30989:16;:22::i;:::-;31077:17;::::0;:116:::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;31077:116:43;;-1:-1:-1;;;;;31077:17:43;;::::2;::::0;:29:::2;::::0;:116:::2;::::0;31120:5;;31077:116;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;15045:1346:43:-;4871:13:22;;15299:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;15316:47:43;::::1;15312:105;;15386:20;;-1:-1:-1::0;;;15386:20:43::1;;;;;;;;;;;15312:105;-1:-1:-1::0;;;;;15431:44:43;::::1;15427:102;;15498:20;;-1:-1:-1::0;;;15498:20:43::1;;;;;;;;;;;15427:102;-1:-1:-1::0;;;;;15543:41:43;::::1;15539:96;;15607:17;;-1:-1:-1::0;;;15607:17:43::1;;;;;;;;;;;15539:96;15719:16;:14;:16::i;:::-;15751:48;15788:10;15751:36;:48::i;:::-;15746:119;;15822:32;::::0;-1:-1:-1;;;15822:32:43;;8278:4:77;8266:17;;15822:32:43::1;::::0;::::1;8248:36:77::0;8221:18;;15822:32:43::1;8106:184:77::0;15746:119:43::1;15932:9;:22:::0;;-1:-1:-1;;;;15932:22:43::1;-1:-1:-1::0;;;15932:22:43::1;::::0;::::1;;;::::0;;15984:7:::1;15964:17;:27:::0;16001:11:::1;:25:::0;;;16036:23:::1;:50:::0;;-1:-1:-1;;;;;;16036:50:43;;::::1;-1:-1:-1::0;;;;;16036:50:43;;::::1;::::0;;;::::1;::::0;;;16096:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;16153:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;16201:17:43::1;:27:::0;;1513:6:18;;;;16201:27:43;::::1;;::::0;;16288:18:::1;:16;:18::i;:::-;16322:62;::::0;;14161:4:77;14149:17;;14131:36;;14198:2;14183:18;;14176:34;;;16322:62:43::1;::::0;14104:18:77;16322:62:43::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;8278:4:77;8266:17;;8248:36;;5080:20:22;;8236:2:77;8221:18;5080:20:22;;;;;;;15045:1346:43;;;;;;:::o;8798:228:44:-;8958:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;8996:22:44::2;::::0;-1:-1:-1;;;;;8996:22:44::2;1144:1:74;8798:228:44::0;:::o;23429:567:43:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;23608:11:43::2;;23600:4;:19:::0;23596:394:::2;;-1:-1:-1::0;;23642:30:43::2;::::0;;::::2;::::0;::::2;::::0;;23651:11:::2;::::0;23642:30;;-1:-1:-1;23642:30:43::2;::::0;::::2;::::0;23667:4:::2;23642:30:::0;;;;;;;;23429:567::o;23596:394::-:2;23703:21;23727:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;23727:17:43::2;::::0;23763:18;;;23759:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;23808:14:::2;23801:21:::0;23429:567;-1:-1:-1;;;23429:567:43:o;23759:78::-:2;23902:17;::::0;23851:12:::2;::::0;23868:31:::2;-1:-1:-1::0;;;;;23868:31:43;::::2;:15;:31;:::i;:::-;23941:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;23941:38:43;;::::2;;::::0;::::2;::::0;23868:51;-1:-1:-1;23866:54:43::2;23941:38:::0;;;;-1:-1:-1;23941:38:43;-1:-1:-1;23596:394:43::2;23429:567:::0;;;:::o;27749:189::-;27884:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;27914:17:43::2;::::0;27749:189;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;14653:2:77;2308:92:23;;;14635:21:77;14692:2;14672:18;;;14665:30;14731:34;14711:18;;;14704:62;14802:26;14782:18;;;14775:54;14846:19;;2308:92:23;14451:420:77;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;4649:109:45:-;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;15078:2:77;2095:78:17;;;15060:21:77;15117:2;15097:18;;;15090:30;15156:34;15136:18;;;15129:62;-1:-1:-1;;;15207:18:77;;;15200:39;15256:19;;2095:78:17;14876:405:77;2095:78:17;2183:26;2202:6;2183:18;:26::i;22271:413:43:-;22506:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;22530:24:43::2;22586:10;22598:7;22607:8;22617:19;;22569:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22569:68:43;;::::2;::::0;;;;;;22655:22;;22569:68:::2;22655:22:::0;;::::2;::::0;;22271:413;-1:-1:-1;;;;;;;22271:413:43:o;28716:119::-;28795:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;28819:9:43::2;::::0;-1:-1:-1;;;28819:9:43;::::2;;;::::0;28716:119::o;25309:231::-;25471:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;25509:23:43::2;::::0;-1:-1:-1;;;;;25509:23:43::2;25309:231:::0;:::o;29482:384::-;29648:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;29693:17:43::3;::::0;;-1:-1:-1;;;;;29720:39:43;;::::3;-1:-1:-1::0;;;;;;29720:39:43;::::3;::::0;::::3;::::0;;;29774:57:::3;::::0;29693:17;::::3;::::0;29720:39;29693:17;;29774:57:::3;::::0;29671:19:::3;::::0;29774:57:::3;29848:11:::0;29482:384;-1:-1:-1;;29482:384:43:o;9346:517:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;9533:31:44;::::3;9529:89;;9587:20;;-1:-1:-1::0;;;9587:20:44::3;;;;;;;;;;;9529:89;9659:22;::::0;;-1:-1:-1;;;;;9691:33:44;;::::3;-1:-1:-1::0;;;;;;9691:33:44;::::3;::::0;::::3;::::0;;;9659:22:::3;::::0;;9770:38:::3;9739:117;::::0;28170:402:43;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;28332::43::3;28349:1;28332:18:::0;28328:86:::3;;28366:37;::::0;-1:-1:-1;;;28366:37:43;;16088:2:77;28366:37:43::3;::::0;::::3;16070:21:77::0;16127:2;16107:18;;;16100:30;16166:29;16146:18;;;16139:57;16213:18;;28366:37:43::3;15886:351:77::0;28328:86:43::3;28443:17;::::0;;28470:33;;;;28519:46:::3;::::0;28490:13;;28443:17;;28519:46:::3;::::0;28423:17:::3;::::0;28519:46:::3;28318:254;28170:402:::0;:::o;22812:121::-;22889:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;22915:11:43::2;::::0;22812:121;:::o;6347:2113:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;31743:17:43::2;::::0;-1:-1:-1;;;;;31743:17:43::2;31729:10;:31;31725:93;;31783:24;::::0;-1:-1:-1;;;31783:24:43;;31796:10:::2;31783:24;::::0;::::2;5256:51:77::0;5229:18;;31783:24:43::2;5110:203:77::0;31725:93:43::2;6591:16:44::3;6617:32;6648:1;6617:21:::0;:32:::3;:::i;:::-;6591:59;;6676:11;;6665:7;:22;6661:95;;6733:11;::::0;6710:35:::3;::::0;-1:-1:-1;;;6710:35:44;;::::3;::::0;6724:7;;6710:35:::3;;10104:25:77::0;;;10160:2;10145:18;;10138:34;10092:2;10077:18;;9930:248;6661:95:44::3;6847:17;6879:87;6914:21;;6937:7;6946:8;6956:9;6879:34;:87::i;:::-;6847:119:::0;-1:-1:-1;7265:22:44::3;7290:39;4362:77:43;6847:119:44::0;7290:39:::3;:::i;:::-;7446:22;::::0;:48:::3;::::0;-1:-1:-1;;;7446:48:44;;16542:10:77;16530:23;;7446:48:44::3;::::0;::::3;16512:42:77::0;7265:64:44;;-1:-1:-1;7413:30:44::3;::::0;-1:-1:-1;;;;;7446:22:44;;::::3;::::0;:37:::3;::::0;16485:18:77;;7446:48:44::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7563:61;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;7563:61:44;;7413:81;;-1:-1:-1;;;;;;7563:28:44;::::3;::::0;::::3;::::0;:61:::3;::::0;7592:13;;7563:61;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;7559:895;;;;:::i;:::-;7792:11;:22:::0;;;7960:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;7960:47:44::3;7991:15;-1:-1:-1::0;;;;;7960:47:44::3;;::::0;;7792:22;-1:-1:-1;8027:51:44::3;::::0;8039:7;;8027:51:::3;::::0;;;::::3;6581:1879;;;;6347:2113:::0;;;;;:::o;29056:133:43:-;29139:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29165:17:43::2;::::0;-1:-1:-1;;;;;29165:17:43::2;29056:133:::0;:::o;26573:205::-;26715:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;26753:17:43::2;::::0;-1:-1:-1;;;;;26753:17:43::2;26573:205:::0;:::o;24439:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;24591:11:43::2;::::0;24579:56;;24618:7:::2;24579:56;24710:21;24734:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;24734:17:43::2;::::0;24834:18;;;24830:73:::2;;24875:17;;-1:-1:-1::0;;;24875:17:43::2;;;;;;;;;;;24830:73;25007:17;::::0;24973:31:::2;-1:-1:-1::0;;;;;24973:31:43;::::2;:15;:31;:::i;:::-;:51;24969:102;;;25047:13;;-1:-1:-1::0;;;25047:13:43::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;16767:2:77;1654:68:18;;;16749:21:77;;;16786:18;;;16779:30;16845:34;16825:18;;;16818:62;16897:18;;1654:68:18;16565:356:77;1654:68:18;1599:130::o;4067:204:45:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;17317:2:77;3758:56:20;;;17299:21:77;17356:2;17336:18;;;17329:30;17395:34;17375:18;;;17368:62;-1:-1:-1;;;17446:18:77;;;17439:44;17500:19;;3758:56:20;17115:410:77;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;17732:2:77;3636:82:20;;;17714:21:77;17771:2;17751:18;;;17744:30;17810:34;17790:18;;;17783:62;-1:-1:-1;;;17861:18:77;;;17854:39;17910:19;;3636:82:20;17530:405:77;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;16725:97:43:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;16795:20:43::1;:18;:20::i;434:207:75:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:75;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:75:o;794:90:74:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:74::1;:19:::0;;-1:-1:-1;;858:19:74::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;18554:2:77;1878:106:20;;;18536:21:77;18593:2;18573:18;;;18566:30;18632:34;18612:18;;;18605:62;-1:-1:-1;;;18683:18:77;;;18676:43;18736:19;;1878:106:20;18352:409:77;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;18968:2:77;7195:88:20;;;18950:21:77;19007:2;18987:18;;;18980:30;19046:34;19026:18;;;19019:62;-1:-1:-1;;;19097:18:77;;;19090:36;19143:19;;7195:88:20;18766:402:77;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:77;-1:-1:-1;;;;;109:31:77;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:77;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:77;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:77;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:77:o;2254:347::-;2305:8;2315:6;2369:3;2362:4;2354:6;2350:17;2346:27;2336:55;;2387:1;2384;2377:12;2336:55;-1:-1:-1;2410:20:77;;2453:18;2442:30;;2439:50;;;2485:1;2482;2475:12;2439:50;2522:4;2514:6;2510:17;2498:29;;2574:3;2567:4;2558:6;2550;2546:19;2542:30;2539:39;2536:59;;;2591:1;2588;2581:12;2606:618;2702:6;2710;2718;2726;2734;2787:3;2775:9;2766:7;2762:23;2758:33;2755:53;;;2804:1;2801;2794:12;2755:53;2844:9;2831:23;2877:18;2869:6;2866:30;2863:50;;;2909:1;2906;2899:12;2863:50;2948:58;2998:7;2989:6;2978:9;2974:22;2948:58;:::i;:::-;3025:8;;-1:-1:-1;2922:84:77;-1:-1:-1;;3107:2:77;3092:18;;3079:32;;-1:-1:-1;3158:2:77;3143:18;;3130:32;;-1:-1:-1;3181:37:77;3214:2;3199:18;;3181:37;:::i;:::-;3171:47;;2606:618;;;;;;;;:::o;3411:509::-;3531:6;3539;3547;3555;3563;3616:3;3604:9;3595:7;3591:23;3587:33;3584:53;;;3633:1;3630;3623:12;3584:53;3669:9;3656:23;3646:33;;3726:2;3715:9;3711:18;3698:32;3688:42;;3777:2;3766:9;3762:18;3749:32;3739:42;;3828:2;3817:9;3813:18;3800:32;3790:42;;3851:63;3906:7;3900:3;3889:9;3885:19;3851:63;:::i;4197:908::-;4376:6;4384;4392;4400;4408;4461:3;4449:9;4440:7;4436:23;4432:33;4429:53;;;4478:1;4475;4468:12;4429:53;4517:9;4504:23;4567:4;4560:5;4556:16;4549:5;4546:27;4536:55;;4587:1;4584;4577:12;4536:55;4610:5;-1:-1:-1;4662:2:77;4647:18;;4634:32;;-1:-1:-1;4718:2:77;4703:18;;4690:32;4731:53;4690:32;4731:53;:::i;:::-;4803:7;-1:-1:-1;4862:2:77;4847:18;;4834:32;4875:53;4834:32;4875:53;:::i;:::-;4947:7;-1:-1:-1;5006:3:77;4991:19;;4978:33;5020:53;4978:33;5020:53;:::i;:::-;5092:7;5082:17;;;4197:908;;;;;;;;:::o;5318:180::-;5377:6;5430:2;5418:9;5409:7;5405:23;5401:32;5398:52;;;5446:1;5443;5436:12;5398:52;-1:-1:-1;5469:23:77;;5318:180;-1:-1:-1;5318:180:77:o;6111:127::-;6172:10;6167:3;6163:20;6160:1;6153:31;6203:4;6200:1;6193:15;6227:4;6224:1;6217:15;6243:249;6353:2;6334:13;;-1:-1:-1;;6330:27:77;6318:40;;6388:18;6373:34;;6409:22;;;6370:62;6367:88;;;6435:18;;:::i;:::-;6471:2;6464:22;-1:-1:-1;;6243:249:77:o;6497:953::-;6574:6;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6690:9;6677:23;6709:51;6754:5;6709:51;:::i;:::-;6779:5;-1:-1:-1;6803:2:77;6841:18;;;6828:32;6879:18;6909:14;;;6906:34;;;6936:1;6933;6926:12;6906:34;6974:6;6963:9;6959:22;6949:32;;7019:7;7012:4;7008:2;7004:13;7000:27;6990:55;;7041:1;7038;7031:12;6990:55;7077:2;7064:16;7099:2;7095;7092:10;7089:36;;;7105:18;;:::i;:::-;7154:2;7148:9;;-1:-1:-1;7166:65:77;7221:2;7202:13;;-1:-1:-1;;7198:27:77;7194:36;;7148:9;7166:65;:::i;:::-;7255:2;7247:6;7240:18;7295:7;7290:2;7285;7281;7277:11;7273:20;7270:33;7267:53;;;7316:1;7313;7306:12;7267:53;7372:2;7367;7363;7359:11;7354:2;7346:6;7342:15;7329:46;7417:1;7412:2;7407;7399:6;7395:15;7391:24;7384:35;;7438:6;7428:16;;;;;6497:953;;;;;:::o;7455:646::-;7567:6;7575;7583;7591;7599;7652:3;7640:9;7631:7;7627:23;7623:33;7620:53;;;7669:1;7666;7659:12;7620:53;7692:28;7710:9;7692:28;:::i;:::-;7682:38;;7767:2;7756:9;7752:18;7739:32;7729:42;;7818:2;7807:9;7803:18;7790:32;7780:42;;7873:2;7862:9;7858:18;7845:32;7900:18;7892:6;7889:30;7886:50;;;7932:1;7929;7922:12;7886:50;7971:70;8033:7;8024:6;8013:9;8009:22;7971:70;:::i;:::-;7455:646;;;;-1:-1:-1;7455:646:77;;-1:-1:-1;8060:8:77;;7945:96;7455:646;-1:-1:-1;;;7455:646:77:o;8295:672::-;8417:6;8425;8433;8441;8449;8502:3;8490:9;8481:7;8477:23;8473:33;8470:53;;;8519:1;8516;8509:12;8470:53;8542;8587:7;8576:9;8542:53;:::i;:::-;8532:63;;8646:3;8635:9;8631:19;8618:33;8674:18;8666:6;8663:30;8660:50;;;8706:1;8703;8696:12;8660:50;8745:58;8795:7;8786:6;8775:9;8771:22;8745:58;:::i;:::-;8295:672;;8822:8;;-1:-1:-1;8719:84:77;;8904:3;8889:19;;8876:33;;8956:3;8941:19;;;8928:33;;-1:-1:-1;8295:672:77;-1:-1:-1;;;;8295:672:77:o;8972:408::-;9174:2;9156:21;;;9213:2;9193:18;;;9186:30;9252:34;9247:2;9232:18;;9225:62;-1:-1:-1;;;9318:2:77;9303:18;;9296:42;9370:3;9355:19;;8972:408::o;9385:::-;9587:2;9569:21;;;9626:2;9606:18;;;9599:30;9665:34;9660:2;9645:18;;9638:62;-1:-1:-1;;;9731:2:77;9716:18;;9709:42;9783:3;9768:19;;9385:408::o;10183:127::-;10244:10;10239:3;10235:20;10232:1;10225:31;10275:4;10272:1;10265:15;10299:4;10296:1;10289:15;10315:112;10347:1;10373;10363:35;;10378:18;;:::i;:::-;-1:-1:-1;10412:9:77;;10315:112::o;10432:294::-;10525:6;10578:2;10566:9;10557:7;10553:23;10549:32;10546:52;;;10594:1;10591;10584:12;10546:52;10626:9;10620:16;10645:51;10690:5;10645:51;:::i;10731:646::-;10987:3;10972:19;;11010:6;;11049;10976:9;11025:35;11080:18;;11140:6;11164:1;11174:197;11188:4;11185:1;11182:11;11174:197;;;11250:13;;11238:26;;11287:4;11311:12;;;;11346:15;;;;11208:4;11201:12;11174:197;;;11178:3;;;10731:646;;;;;:::o;11382:179::-;11417:3;11459:1;11441:16;11438:23;11435:120;;;11505:1;11502;11499;11484:23;-1:-1:-1;11542:1:77;11536:8;11531:3;11527:18;11382:179;:::o;11566:671::-;11605:3;11647:4;11629:16;11626:26;11623:39;;;11566:671;:::o;11623:39::-;11689:2;11683:9;-1:-1:-1;;11754:16:77;11750:25;;11747:1;11683:9;11726:50;11805:4;11799:11;11829:16;11864:18;11935:2;11928:4;11920:6;11916:17;11913:25;11908:2;11900:6;11897:14;11894:45;11891:58;;;11942:5;;;;;11566:671;:::o;11891:58::-;11979:6;11973:4;11969:17;11958:28;;12015:3;12009:10;12042:2;12034:6;12031:14;12028:27;;;12048:5;;;;;;11566:671;:::o;12028:27::-;12132:2;12113:16;12107:4;12103:27;12099:36;12092:4;12083:6;12078:3;12074:16;12070:27;12067:69;12064:82;;;12139:5;;;;;;11566:671;:::o;12064:82::-;12155:57;12206:4;12197:6;12189;12185:19;12181:30;12175:4;12155:57;:::i;:::-;-1:-1:-1;12228:3:77;;11566:671;-1:-1:-1;;;;;11566:671:77:o;12242:250::-;12327:1;12337:113;12351:6;12348:1;12345:13;12337:113;;;12427:11;;;12421:18;12408:11;;;12401:39;12373:2;12366:10;12337:113;;;-1:-1:-1;;12484:1:77;12466:16;;12459:27;12242:250::o;12497:396::-;12646:2;12635:9;12628:21;12609:4;12678:6;12672:13;12721:6;12716:2;12705:9;12701:18;12694:34;12737:79;12809:6;12804:2;12793:9;12789:18;12784:2;12776:6;12772:15;12737:79;:::i;:::-;12877:2;12856:15;-1:-1:-1;;12852:29:77;12837:45;;;;12884:2;12833:54;;12497:396;-1:-1:-1;;12497:396:77:o;12898:410::-;13100:2;13082:21;;;13139:2;13119:18;;;13112:30;13178:34;13173:2;13158:18;;13151:62;-1:-1:-1;;;13244:2:77;13229:18;;13222:44;13298:3;13283:19;;12898:410::o;13313:643::-;13569:3;13554:19;;13592:6;;13631;13558:9;13607:35;13662:18;;13722:6;13746:1;13756:194;13770:4;13767:1;13764:11;13756:194;;;13829:13;;13817:26;;13866:4;13890:12;;;;13925:15;;;;13790:1;13783:9;13756:194;;14221:225;14288:9;;;14309:11;;;14306:134;;;14362:10;14357:3;14353:20;14350:1;14343:31;14397:4;14394:1;14387:15;14425:4;14422:1;14415:15;15286:595;15595:3;15573:16;;;-1:-1:-1;;;;;;15569:43:77;15557:56;;15638:1;15629:11;;15622:27;;;15674:2;15665:12;;15658:28;;;-1:-1:-1;;;;;;15698:31:77;;15695:51;;;15742:1;15739;15732:12;15695:51;15776:6;15773:1;15769:14;15827:6;15819;15814:2;15809:3;15805:12;15792:42;15854:16;;;;15872:2;15850:25;;15286:595;-1:-1:-1;;;;;;15286:595:77:o;16242:120::-;16282:1;16308;16298:35;;16313:18;;:::i;:::-;-1:-1:-1;16347:9:77;;16242:120::o;16926:184::-;16996:6;17049:2;17037:9;17028:7;17024:23;17020:32;17017:52;;;17065:1;17062;17055:12;17017:52;-1:-1:-1;17088:16:77;;16926:184;-1:-1:-1;16926:184:77:o;17940:407::-;18142:2;18124:21;;;18181:2;18161:18;;;18154:30;18220:34;18215:2;18200:18;;18193:62;-1:-1:-1;;;18286:2:77;18271:18;;18264:41;18337:3;18322:19;;17940:407::o;19173:287::-;19302:3;19340:6;19334:13;19356:66;19415:6;19410:3;19403:4;19395:6;19391:17;19356:66;:::i;:::-;19438:16;;;;;19173:287;-1:-1:-1;;19173:287:77:o", "linkReferences": {}, "immutableReferences": { "29832": [ { - "start": 1614, - "length": 32 - }, - { - "start": 1687, - "length": 32 - }, - { - "start": 1909, - "length": 32 - }, - { - "start": 1973, - "length": 32 - }, - { - "start": 2957, - "length": 32 - }, - { - "start": 3021, - "length": 32 - }, - { - "start": 4100, - "length": 32 - }, - { - "start": 4164, + "start": 1453, "length": 32 }, { - "start": 4347, + "start": 1526, "length": 32 }, { - "start": 4411, + "start": 1787, "length": 32 }, { - "start": 4583, + "start": 1851, "length": 32 }, { - "start": 4647, + "start": 2816, "length": 32 }, { - "start": 4903, + "start": 2880, "length": 32 }, { - "start": 4967, + "start": 3102, "length": 32 }, { - "start": 5495, + "start": 3166, "length": 32 }, { - "start": 5559, + "start": 3338, "length": 32 }, { - "start": 5737, + "start": 3402, "length": 32 }, { - "start": 5801, + "start": 3668, "length": 32 }, { - "start": 6143, + "start": 3732, "length": 32 }, { - "start": 6207, + "start": 4377, "length": 32 }, { - "start": 6346, + "start": 4441, "length": 32 }, { - "start": 6410, + "start": 4619, "length": 32 }, { - "start": 6533, + "start": 4683, "length": 32 }, { - "start": 6597, + "start": 5025, "length": 32 }, { - "start": 6748, + "start": 5089, "length": 32 }, { - "start": 6924, + "start": 5228, "length": 32 }, { - "start": 6988, + "start": 5292, "length": 32 }, { - "start": 7323, + "start": 5416, "length": 32 }, { - "start": 7387, + "start": 5746, "length": 32 }, { - "start": 7591, + "start": 5810, "length": 32 }, { - "start": 7655, + "start": 6005, "length": 32 }, { - "start": 7850, + "start": 6069, "length": 32 }, { - "start": 7914, + "start": 6220, "length": 32 }, { - "start": 8065, + "start": 6284, "length": 32 }, { - "start": 8129, + "start": 6434, "length": 32 }, { - "start": 8279, + "start": 6498, "length": 32 }, { - "start": 8343, + "start": 6722, "length": 32 }, { - "start": 8567, + "start": 6786, "length": 32 }, { - "start": 8631, + "start": 7006, "length": 32 }, { - "start": 8812, + "start": 7070, "length": 32 }, { - "start": 8876, + "start": 7349, "length": 32 }, { - "start": 9357, + "start": 7413, "length": 32 }, { - "start": 9421, + "start": 7552, "length": 32 }, { - "start": 9700, + "start": 7616, "length": 32 }, { - "start": 9764, + "start": 8260, "length": 32 }, { - "start": 9905, + "start": 8324, "length": 32 }, { - "start": 9969, + "start": 8474, "length": 32 }, { - "start": 10119, + "start": 8538, "length": 32 }, { - "start": 10183, + "start": 8686, "length": 32 }, { - "start": 10331, + "start": 8750, "length": 32 }, { - "start": 10395, + "start": 9236, "length": 32 }, { - "start": 10881, - "length": 32 - }, - { - "start": 10945, - "length": 32 - }, - { - "start": 11582, - "length": 32 - }, - { - "start": 11646, + "start": 9300, "length": 32 } ] @@ -1220,10 +1088,8 @@ "acceptOwnership()": "79ba5097", "calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)": "31e4e992", "calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])": "8c76a909", - "calculateIdentityUpdateInputHash(uint256,uint256,uint32[],uint256[],uint256[])": "86ec599a", - "deleteIdentities(uint256[8],uint32,bytes,uint256,uint256)": "23cfdba5", + "deleteIdentities(uint256[8],bytes,uint256,uint256)": "ea10fbbe", "getDeleteIdentitiesVerifierLookupTableAddress()": "3e8919b6", - "getIdentityUpdateVerifierLookupTableAddress()": "4ffbdde5", "getRegisterIdentitiesVerifierLookupTableAddress()": "8fc22e9f", "getRootHistoryExpiry()": "43f974cb", "getSemaphoreVerifierAddress()": "f2038f95", @@ -1241,17 +1107,15 @@ "requireValidRoot(uint256)": "f2358e1d", "setDeleteIdentitiesVerifierLookupTable(address)": "aa4a729e", "setIdentityOperator(address)": "a7bba582", - "setIdentityUpdateVerifierLookupTable(address)": "6b056600", "setRegisterIdentitiesVerifierLookupTable(address)": "2f059fca", "setRootHistoryExpiry(uint256)": "c70aa727", "setSemaphoreVerifier(address)": "0e3a12f3", "transferOwnership(address)": "f2fde38b", - "updateIdentities(uint256[8],uint256,uint32[],uint256[],uint256[],uint256)": "b843b4e5", "upgradeTo(address)": "3659cfe6", "upgradeToAndCall(address,bytes)": "4f1ef286", "verifyProof(uint256,uint256,uint256,uint256,uint256[8])": "354ca120" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"batchSize\",\"type\":\"uint32\"}],\"name\":\"calculateIdentityDeletionInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"leafIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"oldIdentities\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"newIdentities\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityUpdateInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"deletionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint32\",\"name\":\"batchSize\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"deleteIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeleteIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIdentityUpdateVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setDeleteIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setIdentityUpdateVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"updateProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"leafIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"oldIdentities\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"newIdentities\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"updateIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the insertions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"details\":\"Implements the computation described below.the deletion indices are packed into bytes calldata where each deletion index is 32 bits wide. The indices are encoded using abi.encodePacked for testing. We keccak hash all input to save verification gas. Inputs for the hash are arranged as follows: packedDeletionIndices || PreRoot || PostRoot 32 bits * batchSize || 256 || 256\",\"params\":{\"batchSize\":\"The number of identities that were deleted in this batch\",\"packedDeletionIndices\":\"The indices of the identities that were deleted from the tree.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\"},\"returns\":{\"hash\":\"The input hash calculated as described below.\"}},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"calculateIdentityUpdateInputHash(uint256,uint256,uint32[],uint256[],uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"leafIndices\":\"The array of leaf indices at which the update operations take place in the tree. Elements in this array are extended to 256 bits when encoding.\",\"newIdentities\":\"The array of new values for the identities. Length must match that of `leafIndices`.\",\"oldIdentities\":\"The array of old values for the identities. Length must match that of `leafIndices`.\",\"postRoot\":\"The root value of the tree after the updates were made.\",\"preRoot\":\"The root value of the tree before the updates were made.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. The arrays `leafIndices`, `oldIdentities` and `newIdentities` are arranged such that the triple at an element `i` in those arrays corresponds to one update operation. We keccak hash all input to save verification gas. The inputs are arranged as follows: preRoot || postRoot || ix[0] || ... || ix[n] || oi[0] || ... || oi[n] || ni[0] || ... || ni[n] || 256 || 256 || 256 || ... || 256 || 256 || ... || 256 || 256 || ... || 256 || where: - `ix[i] == leafIndices[i]` - `oi[i] == oldIdentities[i]` - `ni[i] == newIdentities[i]` - `id[i] == identities[i]` - `n == batchSize - 1`\"}},\"deleteIdentities(uint256[8],uint32,bytes,uint256,uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.InvalidCommitment If one or more of the provided commitments is invalid.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `deletionProof` cannot be verified using the provided inputs.UnreducedElement If any of the `preRoot`, `postRoot` and `identityCommitments` is not an element of the field `Kr`. It describes the type and value of the unreduced element.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.VerifierLookupTable.BatchTooLarge If the batch size exceeds the maximum batch size.\",\"details\":\"Can only be called by the owner.Deletion is performed off-chain and verified on-chain via the `deletionProof`. This saves gas and time over deleting identities one at a time.\",\"params\":{\"batchSize\":\"The number of identities that are to be deleted in the current batch.\",\"deletionProof\":\"The proof that given the conditions (`preRoot` and `packedDeletionIndices`), deletion into the tree results in `postRoot`. Elements 0 and 1 are the `x` and `y` coordinates for `ar` respectively. Elements 2 and 3 are the `x` coordinate for `bs`, and elements 4 and 5 are the `y` coordinate for `bs`. Elements 6 and 7 are the `x` and `y` coordinates for `krs`.\",\"packedDeletionIndices\":\"The indices of the identities that were deleted from the tree.\",\"postRoot\":\"The root obtained after deleting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`.\",\"preRoot\":\"The value for the root of the tree before the `identityCommitments` have been inserted. Must be an element of the field `Kr`.\"}},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"details\":\"The deletion verifier supports batch deletions of size 10, 100 and 1000 members per batch.\",\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getIdentityUpdateVerifierLookupTableAddress()\":{\"details\":\"The update verifier is also used for member removals.\",\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"initializeV2(address)\":{\"details\":\"Must be called exactly onceThis is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\"},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.VerifierLookupTable.BatchTooLarge If the batch size exceeds the maximum batch size.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity deletions.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setIdentityUpdateVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.The update verifier is also used for member removals.\",\"params\":{\"newTable\":\"The new lookup table instance to be used for verifying identity updates.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"updateIdentities(uint256[8],uint256,uint32[],uint256[],uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to update identities.NotLatestRoot If the provided `preRoot` is not the latest root.MismatchedInputLengths If the provided arrays for `leafIndices`, `oldIdentities` and `newIdentities` do not match in length.ProofValidationFailure If `removalProof` cannot be verified using the provided inputs.UnreducedElement If any of the `preRoot`, `postRoot` and `identities` is not an element of the field `Kr`. It describes the type and value of the unreduced element.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"leafIndices\":\"The array of leaf indices at which the update operations take place in the tree. Elements in this array are extended to 256 bits when encoding.\",\"newIdentities\":\"The array of new values for the identities. Length must match that of `leafIndices`.\",\"oldIdentities\":\"The array of old values for the identities. Length must match that of `leafIndices`.\",\"postRoot\":\"The root obtained after removing all of `removedIdentities` from the tree described by `preRoot`. Must be an element of the field `Kr`. The arrays `leafIndices`, `oldIdentities` and `newIdentities` are arranged such that the triple at an element `i` in those arrays corresponds to one update operation.\"}},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"title\":\"WorldID Identity Manager Implementation Version 2\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` or `updateIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"notice\":\"Calculates the input hash for the identity deletion verifier.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"calculateIdentityUpdateInputHash(uint256,uint256,uint32[],uint256[],uint256[])\":{\"notice\":\"Calculates the input hash for the identity update verifier.\"},\"deleteIdentities(uint256[8],uint32,bytes,uint256,uint256)\":{\"notice\":\"Deletes identities from the WorldID system.\"},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for batch identity deletions.\"},\"getIdentityUpdateVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity updates.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"initializeV2(address)\":{\"notice\":\"Initializes the V2 implementation contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity deletions.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setIdentityUpdateVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers to be used for verification of identity updates.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV2.sol\":\"WorldIDIdentityManagerImplV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/semaphore/packages/contracts/contracts/base/Pairing.sol\":{\"keccak256\":\"0x44390032d1247a0e3931eb39f1220f170db653c6b3b4321b2e2b0034f5e07334\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://725cc4bdf047d17bf9d47c9a0205d90897c0da334de8e556c1a3049b1beb9aed\",\"dweb:/ipfs/QmSo7SXpqyrqHFhYi7F8SGjcVxCdVr6FNdgiw7Qfre1NGt\"]},\"lib/semaphore/packages/contracts/contracts/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0x5b5b1118ed7936014d3e410419d6048cc9c0ae69fd700442593f2c2cc782e1af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://601cf2c7e3c98735ff38eaff225af090ec847d63ec599ecc2340323145430668\",\"dweb:/ipfs/QmUoZYgge8GmQokXrYiRXn24s4HgBZetiNWQssiSoTFrdi\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0xa1065360c830348be5e6f45dfb766d9f415d0321170a804da0b2f56338c14b36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd10fbb5eaf1f57cfe026baf79ee8cb7ca9d7db50599b77062d2634a147e9645\",\"dweb:/ipfs/QmdtRnh5nPkRFynH2mNsYvaAur8QPwsuCg6A1AAQnKB291\"]},\"src/WorldIDIdentityManagerImplV2.sol\":{\"keccak256\":\"0xa88ed74cd795d2a9a7cbb99f88fa1393c25d7807525c6f081b57d163180f887b\",\"urls\":[\"bzz-raw://5e045ea6313140813d515f5ceb43624cba08cfd14657445a731ba76a1e8252f1\",\"dweb:/ipfs/Qmb4kfWzbV3gVjrhfVo2PphCijTXxdBUvz9N1mV3Mivcd5\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0xb572aeae7331d96981d46b0dd4408db9ad507a06a2dbf0624386114b2244c8ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6159630f78e9e0b3a326d064772713f8c1e73172718c2a6d5af1fb36b35c5991\",\"dweb:/ipfs/QmPN5VyQvonPfPdTvrmP5wqsFT3QNW3RwC8DHYdEtwXZT4\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierLUT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"WorldIDIdentityManagerImplV2Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"batchSize\",\"type\":\"uint32\"}],\"name\":\"calculateIdentityDeletionInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"deletionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"deleteIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeleteIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchDeletionVerifiers\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setDeleteIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the deletions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"details\":\"This error is no longer in use as we now verify the commitments off-chain within the circuit no need to check for reduced elements or invalid commitments.preserved for ABI backwards compatibility with V1, no longer used, all elements are validated by the circuit\",\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"InvalidStateBridgeAddress()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"MismatchedInputLengths()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"StateBridgeAlreadyDisabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"StateBridgeAlreadyEnabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.preserved for ABI backwards compatibility with V1, no longer used, all elements come out reduced from the circuit\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\",\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"details\":\"Implements the computation described below.the deletion indices are packed into bytes calldata where each deletion index is 32 bits wide. The indices are encoded using abi.encodePacked for testing. We keccak hash all input to save verification gas. Inputs for the hash are arranged as follows: packedDeletionIndices || PreRoot || PostRoot 32 bits * batchSize || 256 || 256\",\"params\":{\"batchSize\":\"The number of identities that were deleted in this batch\",\"packedDeletionIndices\":\"The indices of the identities that were deleted from the tree.\",\"postRoot\":\"The root value of the tree after these deletions were made.\",\"preRoot\":\"The root value of the tree before these deletions were made.\"},\"returns\":{\"hash\":\"The input hash calculated as described below.\"}},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"deleteIdentities(uint256[8],bytes,uint256,uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `deletionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"postRoot\":\"The root obtained after deleting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`.\",\"preRoot\":\"The value for the root of the tree before the corresponding identity commitments have been deleted. Must be an element of the field `Kr`.\"}},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"details\":\"The deletion verifier supports batch deletions of size 10, 100 and 1000 members per batch.\",\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"initializeV2(address)\":{\"details\":\"Must be called exactly onceThis is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchDeletionVerifiers\":\"The table of verifiers for verifying batch identity deletions.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity deletions.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"title\":\"WorldID Identity Manager Implementation Version 2\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"InvalidVerifier()\":[{\"notice\":\"Thrown when a verifier is initialized to be the zero address\"}],\"InvalidVerifierLUT()\":[{\"notice\":\"Thrown when a verifier lookup table is initialized to be the zero address\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"},\"WorldIDIdentityManagerImplV2Initialized()\":{\"notice\":\"Thrown when the WorldIDIdentityManagerImplV2 contract is initalized\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"notice\":\"Calculates the input hash for the identity deletion verifier.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for batch identity deletions.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"initializeV2(address)\":{\"notice\":\"Initializes the V2 implementation contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity deletions.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV2.sol\":\"WorldIDIdentityManagerImplV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x5d05b909d5ea55446c4b3009ed6283924992fdb7bd9f93179b92f84b60d583ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27eae247b4e8ce77ae921a4ba0a947d82a19eb303451a28ccc2771b99f348123\",\"dweb:/ipfs/QmUKTYz3UTNBEF3zBrS82mmrDzcZ992LEBSUAiS4cmMBtX\"]},\"src/WorldIDIdentityManagerImplV2.sol\":{\"keccak256\":\"0x4c1ffc1d6343e9a042dd6e4529bc79e6963bcc77751d2cde91fd5f52bea5729e\",\"urls\":[\"bzz-raw://31536585c39fe12bd08df0e8deef3d5af0de294271ad26ed061d28c92c6639ce\",\"dweb:/ipfs/QmUbsD3cuNnFygtEyiLBzGyHFgn9aXknnhhCjposVzQhru\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b\",\"dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.21+commit.d9974bed" @@ -1290,6 +1154,16 @@ "type": "error", "name": "InvalidStateBridgeAddress" }, + { + "inputs": [], + "type": "error", + "name": "InvalidVerifier" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidVerifierLUT" + }, { "inputs": [], "type": "error", @@ -1585,6 +1459,12 @@ "name": "WorldIDIdentityManagerImplInitialized", "anonymous": false }, + { + "inputs": [], + "type": "event", + "name": "WorldIDIdentityManagerImplV2Initialized", + "anonymous": false + }, { "inputs": [], "stateMutability": "pure", @@ -1689,45 +1569,6 @@ } ] }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "preRoot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "postRoot", - "type": "uint256" - }, - { - "internalType": "uint32[]", - "name": "leafIndices", - "type": "uint32[]" - }, - { - "internalType": "uint256[]", - "name": "oldIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "newIdentities", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function", - "name": "calculateIdentityUpdateInputHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "hash", - "type": "bytes32" - } - ] - }, { "inputs": [ { @@ -1735,11 +1576,6 @@ "name": "deletionProof", "type": "uint256[8]" }, - { - "internalType": "uint32", - "name": "batchSize", - "type": "uint32" - }, { "internalType": "bytes", "name": "packedDeletionIndices", @@ -1773,19 +1609,6 @@ } ] }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getIdentityUpdateVerifierLookupTableAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, { "inputs": [], "stateMutability": "view", @@ -1887,7 +1710,7 @@ "inputs": [ { "internalType": "contract VerifierLookupTable", - "name": "_batchUpdateVerifiers", + "name": "_batchDeletionVerifiers", "type": "address" } ], @@ -2064,18 +1887,6 @@ } ] }, - { - "inputs": [ - { - "internalType": "contract VerifierLookupTable", - "name": "newTable", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setIdentityUpdateVerifierLookupTable" - }, { "inputs": [ { @@ -2124,43 +1935,6 @@ "type": "function", "name": "transferOwnership" }, - { - "inputs": [ - { - "internalType": "uint256[8]", - "name": "updateProof", - "type": "uint256[8]" - }, - { - "internalType": "uint256", - "name": "preRoot", - "type": "uint256" - }, - { - "internalType": "uint32[]", - "name": "leafIndices", - "type": "uint32[]" - }, - { - "internalType": "uint256[]", - "name": "oldIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "newIdentities", - "type": "uint256[]" - }, - { - "internalType": "uint256", - "name": "postRoot", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "updateIdentities" - }, { "inputs": [ { @@ -2237,8 +2011,8 @@ "params": { "batchSize": "The number of identities that were deleted in this batch", "packedDeletionIndices": "The indices of the identities that were deleted from the tree.", - "postRoot": "The root value of the tree after these insertions were made.", - "preRoot": "The root value of the tree before these insertions were made." + "postRoot": "The root value of the tree after these deletions were made.", + "preRoot": "The root value of the tree before these deletions were made." }, "returns": { "hash": "The input hash calculated as described below." @@ -2256,28 +2030,11 @@ "hash": "The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\t || 256 || 256 || 256 || 256 || ... || 256 bits" } }, - "calculateIdentityUpdateInputHash(uint256,uint256,uint32[],uint256[],uint256[])": { - "details": "Implements the computation described below.", - "params": { - "leafIndices": "The array of leaf indices at which the update operations take place in the tree. Elements in this array are extended to 256 bits when encoding.", - "newIdentities": "The array of new values for the identities. Length must match that of `leafIndices`.", - "oldIdentities": "The array of old values for the identities. Length must match that of `leafIndices`.", - "postRoot": "The root value of the tree after the updates were made.", - "preRoot": "The root value of the tree before the updates were made." - }, - "returns": { - "hash": "The input hash calculated as described below. The arrays `leafIndices`, `oldIdentities` and `newIdentities` are arranged such that the triple at an element `i` in those arrays corresponds to one update operation. We keccak hash all input to save verification gas. The inputs are arranged as follows: preRoot || postRoot || ix[0] || ... || ix[n] || oi[0] || ... || oi[n] || ni[0] || ... || ni[n] || 256 || 256 || 256 || ... || 256 || 256 || ... || 256 || 256 || ... || 256 || where: - `ix[i] == leafIndices[i]` - `oi[i] == oldIdentities[i]` - `ni[i] == newIdentities[i]` - `id[i] == identities[i]` - `n == batchSize - 1`" - } - }, - "deleteIdentities(uint256[8],uint32,bytes,uint256,uint256)": { - "custom:reverts": "Unauthorized If the message sender is not authorised to add identities.InvalidCommitment If one or more of the provided commitments is invalid.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `deletionProof` cannot be verified using the provided inputs.UnreducedElement If any of the `preRoot`, `postRoot` and `identityCommitments` is not an element of the field `Kr`. It describes the type and value of the unreduced element.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.VerifierLookupTable.BatchTooLarge If the batch size exceeds the maximum batch size.", - "details": "Can only be called by the owner.Deletion is performed off-chain and verified on-chain via the `deletionProof`. This saves gas and time over deleting identities one at a time.", + "deleteIdentities(uint256[8],bytes,uint256,uint256)": { + "custom:reverts": "Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `deletionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.", "params": { - "batchSize": "The number of identities that are to be deleted in the current batch.", - "deletionProof": "The proof that given the conditions (`preRoot` and `packedDeletionIndices`), deletion into the tree results in `postRoot`. Elements 0 and 1 are the `x` and `y` coordinates for `ar` respectively. Elements 2 and 3 are the `x` coordinate for `bs`, and elements 4 and 5 are the `y` coordinate for `bs`. Elements 6 and 7 are the `x` and `y` coordinates for `krs`.", - "packedDeletionIndices": "The indices of the identities that were deleted from the tree.", "postRoot": "The root obtained after deleting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`.", - "preRoot": "The value for the root of the tree before the `identityCommitments` have been inserted. Must be an element of the field `Kr`." + "preRoot": "The value for the root of the tree before the corresponding identity commitments have been deleted. Must be an element of the field `Kr`." } }, "getDeleteIdentitiesVerifierLookupTableAddress()": { @@ -2286,12 +2043,6 @@ "_0": "addr The address of the contract being used as the verifier lookup table." } }, - "getIdentityUpdateVerifierLookupTableAddress()": { - "details": "The update verifier is also used for member removals.", - "returns": { - "_0": "addr The address of the contract being used as the verifier lookup table." - } - }, "getRegisterIdentitiesVerifierLookupTableAddress()": { "returns": { "_0": "addr The address of the contract being used as the verifier lookup table." @@ -2329,7 +2080,10 @@ } }, "initializeV2(address)": { - "details": "Must be called exactly onceThis is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead." + "details": "Must be called exactly onceThis is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.", + "params": { + "_batchDeletionVerifiers": "The table of verifiers for verifying batch identity deletions." + } }, "latestRoot()": { "returns": { @@ -2355,7 +2109,7 @@ } }, "registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)": { - "custom:reverts": "Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.VerifierLookupTable.BatchTooLarge If the batch size exceeds the maximum batch size.", + "custom:reverts": "Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.", "params": { "identityCommitments": "The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.", "postRoot": "The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)", @@ -2386,12 +2140,6 @@ "_0": "_ The address of the old identity operator." } }, - "setIdentityUpdateVerifierLookupTable(address)": { - "details": "Only the owner of the contract can call this function.The update verifier is also used for member removals.", - "params": { - "newTable": "The new lookup table instance to be used for verifying identity updates." - } - }, "setRegisterIdentitiesVerifierLookupTable(address)": { "details": "Only the owner of the contract can call this function.", "params": { @@ -2413,15 +2161,6 @@ "transferOwnership(address)": { "details": "Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner." }, - "updateIdentities(uint256[8],uint256,uint32[],uint256[],uint256[],uint256)": { - "custom:reverts": "Unauthorized If the message sender is not authorised to update identities.NotLatestRoot If the provided `preRoot` is not the latest root.MismatchedInputLengths If the provided arrays for `leafIndices`, `oldIdentities` and `newIdentities` do not match in length.ProofValidationFailure If `removalProof` cannot be verified using the provided inputs.UnreducedElement If any of the `preRoot`, `postRoot` and `identities` is not an element of the field `Kr`. It describes the type and value of the unreduced element.NoSuchVerifier If the batch sizes doesn't match a known verifier.", - "params": { - "leafIndices": "The array of leaf indices at which the update operations take place in the tree. Elements in this array are extended to 256 bits when encoding.", - "newIdentities": "The array of new values for the identities. Length must match that of `leafIndices`.", - "oldIdentities": "The array of old values for the identities. Length must match that of `leafIndices`.", - "postRoot": "The root obtained after removing all of `removedIdentities` from the tree described by `preRoot`. Must be an element of the field `Kr`. The arrays `leafIndices`, `oldIdentities` and `newIdentities` are arranged such that the triple at an element `i` in those arrays corresponds to one update operation." - } - }, "upgradeTo(address)": { "details": "Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." }, @@ -2454,18 +2193,9 @@ "calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])": { "notice": "Calculates the input hash for the identity registration verifier." }, - "calculateIdentityUpdateInputHash(uint256,uint256,uint32[],uint256[],uint256[])": { - "notice": "Calculates the input hash for the identity update verifier." - }, - "deleteIdentities(uint256[8],uint32,bytes,uint256,uint256)": { - "notice": "Deletes identities from the WorldID system." - }, "getDeleteIdentitiesVerifierLookupTableAddress()": { "notice": "Gets the address for the lookup table of merkle tree verifiers used for batch identity deletions." }, - "getIdentityUpdateVerifierLookupTableAddress()": { - "notice": "Gets the address for the lookup table of merkle tree verifiers used for identity updates." - }, "getRegisterIdentitiesVerifierLookupTableAddress()": { "notice": "Gets the address for the lookup table of merkle tree verifiers used for identity registrations." }, @@ -2505,9 +2235,6 @@ "setIdentityOperator(address)": { "notice": "Sets the address that is authorised to perform identity operations on this identity manager instance." }, - "setIdentityUpdateVerifierLookupTable(address)": { - "notice": "Sets the address for the lookup table of merkle tree verifiers to be used for verification of identity updates." - }, "setRegisterIdentitiesVerifierLookupTable(address)": { "notice": "Sets the address for the lookup table of merkle tree verifiers used for identity registrations." }, @@ -2529,7 +2256,6 @@ "@zk-kit/=lib/zk-kit/packages/", "contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "ds-test/=lib/ds-test/src/", - "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", @@ -2655,35 +2381,19 @@ ], "license": "MIT" }, - "lib/semaphore/packages/contracts/contracts/base/Pairing.sol": { - "keccak256": "0x44390032d1247a0e3931eb39f1220f170db653c6b3b4321b2e2b0034f5e07334", - "urls": [ - "bzz-raw://725cc4bdf047d17bf9d47c9a0205d90897c0da334de8e556c1a3049b1beb9aed", - "dweb:/ipfs/QmSo7SXpqyrqHFhYi7F8SGjcVxCdVr6FNdgiw7Qfre1NGt" - ], - "license": "MIT" - }, - "lib/semaphore/packages/contracts/contracts/interfaces/ISemaphoreVerifier.sol": { - "keccak256": "0x5b5b1118ed7936014d3e410419d6048cc9c0ae69fd700442593f2c2cc782e1af", - "urls": [ - "bzz-raw://601cf2c7e3c98735ff38eaff225af090ec847d63ec599ecc2340323145430668", - "dweb:/ipfs/QmUoZYgge8GmQokXrYiRXn24s4HgBZetiNWQssiSoTFrdi" - ], - "license": "MIT" - }, "src/WorldIDIdentityManagerImplV1.sol": { - "keccak256": "0xa1065360c830348be5e6f45dfb766d9f415d0321170a804da0b2f56338c14b36", + "keccak256": "0x5d05b909d5ea55446c4b3009ed6283924992fdb7bd9f93179b92f84b60d583ad", "urls": [ - "bzz-raw://cd10fbb5eaf1f57cfe026baf79ee8cb7ca9d7db50599b77062d2634a147e9645", - "dweb:/ipfs/QmdtRnh5nPkRFynH2mNsYvaAur8QPwsuCg6A1AAQnKB291" + "bzz-raw://27eae247b4e8ce77ae921a4ba0a947d82a19eb303451a28ccc2771b99f348123", + "dweb:/ipfs/QmUKTYz3UTNBEF3zBrS82mmrDzcZ992LEBSUAiS4cmMBtX" ], "license": "MIT" }, "src/WorldIDIdentityManagerImplV2.sol": { - "keccak256": "0xa88ed74cd795d2a9a7cbb99f88fa1393c25d7807525c6f081b57d163180f887b", + "keccak256": "0x4c1ffc1d6343e9a042dd6e4529bc79e6963bcc77751d2cde91fd5f52bea5729e", "urls": [ - "bzz-raw://5e045ea6313140813d515f5ceb43624cba08cfd14657445a731ba76a1e8252f1", - "dweb:/ipfs/Qmb4kfWzbV3gVjrhfVo2PphCijTXxdBUvz9N1mV3Mivcd5" + "bzz-raw://31536585c39fe12bd08df0e8deef3d5af0de294271ad26ed061d28c92c6639ce", + "dweb:/ipfs/QmUbsD3cuNnFygtEyiLBzGyHFgn9aXknnhhCjposVzQhru" ], "license": null }, @@ -2719,11 +2429,19 @@ ], "license": "MIT" }, + "src/interfaces/ISemaphoreVerifier.sol": { + "keccak256": "0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787", + "urls": [ + "bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b", + "dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa" + ], + "license": "MIT" + }, "src/interfaces/ITreeVerifier.sol": { - "keccak256": "0xb572aeae7331d96981d46b0dd4408db9ad507a06a2dbf0624386114b2244c8ad", + "keccak256": "0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f", "urls": [ - "bzz-raw://6159630f78e9e0b3a326d064772713f8c1e73172718c2a6d5af1fb36b35c5991", - "dweb:/ipfs/QmPN5VyQvonPfPdTvrmP5wqsFT3QNW3RwC8DHYdEtwXZT4" + "bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4", + "dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw" ], "license": "MIT" }, @@ -2756,43 +2474,43 @@ }, "ast": { "absolutePath": "src/WorldIDIdentityManagerImplV2.sol", - "id": 34136, + "id": 35113, "exportedSymbols": { "IBridge": [ - 34450 + 35427 ], "ISemaphoreVerifier": [ - 32716 + 35443 ], "ITreeVerifier": [ - 34478 + 35459 ], "IWorldID": [ - 34502 + 35483 ], "SemaphoreTreeDepthValidator": [ - 47908 + 48493 ], "VerifierLookupTable": [ - 34425 + 35402 ], "WorldIDIdentityManagerImplV1": [ - 33896 + 34869 ], "WorldIDIdentityManagerImplV2": [ - 34135 + 35112 ], "WorldIDImpl": [ - 34190 + 35167 ] }, "nodeType": "SourceUnit", - "src": "0:12051:43", + "src": "0:11790:44", "nodes": [ { - "id": 33898, + "id": 34871, "nodeType": "PragmaDirective", - "src": "0:24:43", + "src": "0:24:44", "nodes": [], "literals": [ "solidity", @@ -2802,128 +2520,370 @@ ] }, { - "id": 33899, + "id": 34872, "nodeType": "ImportDirective", - "src": "26:44:43", + "src": "26:44:44", "nodes": [], "absolutePath": "src/WorldIDIdentityManagerImplV1.sol", "file": "./WorldIDIdentityManagerImplV1.sol", "nameLocation": "-1:-1:-1", - "scope": 34136, - "sourceUnit": 33897, + "scope": 35113, + "sourceUnit": 34870, "symbolAliases": [], "unitAlias": "" }, { - "id": 34135, + "id": 35112, "nodeType": "ContractDefinition", - "src": "443:11607:43", + "src": "442:11347:44", "nodes": [ { - "id": 33906, + "id": 34879, "nodeType": "VariableDeclaration", - "src": "3108:51:43", + "src": "3107:51:44", "nodes": [], "constant": false, "documentation": { - "id": 33903, + "id": 34876, "nodeType": "StructuredDocumentation", - "src": "3029:74:43", + "src": "3028:74:44", "text": "@notice The table of verifiers for verifying batch identity deletions." }, "mutability": "mutable", "name": "batchDeletionVerifiers", - "nameLocation": "3137:22:43", - "scope": 34135, + "nameLocation": "3136:22:44", + "scope": 35112, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 33905, + "id": 34878, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33904, + "id": 34877, "name": "VerifierLookupTable", "nameLocations": [ - "3108:19:43" + "3107:19:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34425, - "src": "3108:19:43" + "referencedDeclaration": 35402, + "src": "3107:19:44" }, - "referencedDeclaration": 34425, - "src": "3108:19:43", + "referencedDeclaration": 35402, + "src": "3107:19:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" }, { - "id": 33921, + "id": 34882, + "nodeType": "EventDefinition", + "src": "3249:48:44", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 34880, + "nodeType": "StructuredDocumentation", + "src": "3165:79:44", + "text": "@notice Thrown when the WorldIDIdentityManagerImplV2 contract is initalized" + }, + "eventSelector": "e416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a", + "name": "WorldIDIdentityManagerImplV2Initialized", + "nameLocation": "3255:39:44", + "parameters": { + "id": 34881, + "nodeType": "ParameterList", + "parameters": [], + "src": "3294:2:44" + } + }, + { + "id": 34914, "nodeType": "FunctionDefinition", - "src": "3800:152:43", + "src": "4039:327:44", "nodes": [], "body": { - "id": 33920, + "id": 34913, "nodeType": "Block", - "src": "3889:63:43", + "src": "4130:236:44", "nodes": [], "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 34900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 34894, + "name": "_batchDeletionVerifiers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34886, + "src": "4152:23:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeString": "contract VerifierLookupTable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeString": "contract VerifierLookupTable" + } + ], + "id": 34893, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4144:7:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4144:7:44", + "typeDescriptions": {} + } + }, + "id": 34895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4144:32:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 34898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4188:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 34897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4180:7:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 34896, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4180:7:44", + "typeDescriptions": {} + } + }, + "id": 34899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4180:10:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4144:46:44", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34905, + "nodeType": "IfStatement", + "src": "4140:104:44", + "trueBody": { + "id": 34904, + "nodeType": "Block", + "src": "4192:52:44", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34901, + "name": "InvalidVerifierLUT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34149, + "src": "4213:18:44", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 34902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4213:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34903, + "nodeType": "RevertStatement", + "src": "4206:27:44" + } + ] + } + }, { "expression": { - "id": 33918, + "id": 34908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 33916, + "id": 34906, "name": "batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33906, - "src": "3899:22:43", + "referencedDeclaration": 34879, + "src": "4254:22:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 33917, - "name": "_batchUpdateVerifiers", + "id": 34907, + "name": "_batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33910, - "src": "3924:21:43", + "referencedDeclaration": 34886, + "src": "4279:23:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, - "src": "3899:46:43", + "src": "4254:48:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, - "id": 33919, + "id": 34909, "nodeType": "ExpressionStatement", - "src": "3899:46:43" + "src": "4254:48:44" + }, + { + "eventCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34910, + "name": "WorldIDIdentityManagerImplV2Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34882, + "src": "4318:39:44", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 34911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4318:41:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34912, + "nodeType": "EmitStatement", + "src": "4313:46:44" } ] }, "documentation": { - "id": 33907, + "id": 34883, "nodeType": "StructuredDocumentation", - "src": "3166:629:43", - "text": "@notice Initializes the V2 implementation contract.\n @dev Must be called exactly once\n @dev This is marked `reinitializer()` to allow for updated initialisation steps when working\n with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed)\n initialisations allowed, so decide carefully when to use them. Many cases can safely be\n replaced by use of setters.\n @dev This function is explicitly not virtual as it does not make sense to override even when\n upgrading. Create a separate initializer function instead." + "src": "3303:731:44", + "text": "@notice Initializes the V2 implementation contract.\n @param _batchDeletionVerifiers The table of verifiers for verifying batch identity deletions.\n @dev Must be called exactly once\n @dev This is marked `reinitializer()` to allow for updated initialisation steps when working\n with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed)\n initialisations allowed, so decide carefully when to use them. Many cases can safely be\n replaced by use of setters.\n @dev This function is explicitly not virtual as it does not make sense to override even when\n upgrading. Create a separate initializer function instead." }, "functionSelector": "29b6eca9", "implemented": true, @@ -2933,14 +2893,14 @@ "arguments": [ { "hexValue": "32", - "id": 33913, + "id": 34889, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3886:1:43", + "src": "4127:1:44", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -2948,166 +2908,309 @@ "value": "2" } ], - "id": 33914, + "id": 34890, "kind": "modifierInvocation", "modifierName": { - "id": 33912, + "id": 34888, "name": "reinitializer", "nameLocations": [ - "3872:13:43" + "4113:13:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29736, - "src": "3872:13:43" + "src": "4113:13:44" }, "nodeType": "ModifierInvocation", - "src": "3872:16:43" + "src": "4113:16:44" } ], "name": "initializeV2", - "nameLocation": "3809:12:43", + "nameLocation": "4048:12:44", "parameters": { - "id": 33911, + "id": 34887, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33910, + "id": 34886, "mutability": "mutable", - "name": "_batchUpdateVerifiers", - "nameLocation": "3842:21:43", + "name": "_batchDeletionVerifiers", + "nameLocation": "4081:23:44", "nodeType": "VariableDeclaration", - "scope": 33921, - "src": "3822:41:43", + "scope": 34914, + "src": "4061:43:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 33909, + "id": 34885, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33908, + "id": 34884, "name": "VerifierLookupTable", "nameLocations": [ - "3822:19:43" + "4061:19:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34425, - "src": "3822:19:43" + "referencedDeclaration": 35402, + "src": "4061:19:44" }, - "referencedDeclaration": 34425, - "src": "3822:19:43", + "referencedDeclaration": 35402, + "src": "4061:19:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" } ], - "src": "3821:43:43" + "src": "4060:45:44" }, "returnParameters": { - "id": 33915, + "id": 34891, "nodeType": "ParameterList", "parameters": [], - "src": "3889:0:43" + "src": "4130:0:44" }, - "scope": 34135, + "scope": 35112, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 34062, + "id": 35025, "nodeType": "FunctionDefinition", - "src": "6380:2438:43", + "src": "6347:2113:44", "nodes": [], "body": { - "id": 34061, + "id": 35024, "nodeType": "Block", - "src": "6640:2178:43", + "src": "6581:1879:44", "nodes": [], "statements": [ { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33943, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33932, - "src": "6654:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 33944, - "name": "_latestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "6665:11:43", + "assignments": [ + 34935 + ], + "declarations": [ + { + "constant": false, + "id": 34935, + "mutability": "mutable", + "name": "batchSize", + "nameLocation": "6598:9:44", + "nodeType": "VariableDeclaration", + "scope": 35024, + "src": "6591:16:44", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6654:22:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 34934, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "6591:6:44", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" } - }, - "id": 33952, - "nodeType": "IfStatement", - "src": "6650:95:43", - "trueBody": { - "id": 33951, - "nodeType": "Block", - "src": "6678:67:43", - "statements": [ + ], + "id": 34943, + "initialValue": { + "arguments": [ { - "errorCall": { - "arguments": [ - { - "id": 33947, - "name": "preRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33932, - "src": "6713:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 33948, - "name": "_latestRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "6722:11:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 34938, + "name": "packedDeletionIndices", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34921, + "src": "6617:21:44", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 34939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6639:6:44", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6617:28:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "34", + "id": 34940, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6648:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "6617:32:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 34937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6610:6:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 34936, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "6610:6:44", + "typeDescriptions": {} + } + }, + "id": 34942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6610:40:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6591:59:44" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 34944, + "name": "preRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34923, + "src": "6665:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 34945, + "name": "_latestRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34024, + "src": "6676:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6665:22:44", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34953, + "nodeType": "IfStatement", + "src": "6661:95:44", + "trueBody": { + "id": 34952, + "nodeType": "Block", + "src": "6689:67:44", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 34948, + "name": "preRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34923, + "src": "6724:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 34949, + "name": "_latestRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34024, + "src": "6733:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], @@ -3122,18 +3225,18 @@ "typeString": "uint256" } ], - "id": 33946, + "id": 34947, "name": "NotLatestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32868, - "src": "6699:13:43", + "referencedDeclaration": 34126, + "src": "6710:13:44", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256) pure" } }, - "id": 33949, + "id": 34950, "isConstant": false, "isLValue": false, "isPure": false, @@ -3142,34 +3245,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6699:35:43", + "src": "6710:35:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 33950, + "id": 34951, "nodeType": "RevertStatement", - "src": "6692:42:43" + "src": "6703:42:44" } ] } }, { "assignments": [ - 33954 + 34955 ], "declarations": [ { "constant": false, - "id": 33954, + "id": 34955, "mutability": "mutable", "name": "inputHash", - "nameLocation": "6844:9:43", + "nameLocation": "6855:9:44", "nodeType": "VariableDeclaration", - "scope": 34061, - "src": "6836:17:43", + "scope": 35024, + "src": "6847:17:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3177,10 +3280,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 33953, + "id": 34954, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6836:7:43", + "src": "6847:7:44", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3189,52 +3292,52 @@ "visibility": "internal" } ], - "id": 33961, + "id": 34962, "initialValue": { "arguments": [ { - "id": 33956, + "id": 34957, "name": "packedDeletionIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33930, - "src": "6903:21:43", + "referencedDeclaration": 34921, + "src": "6914:21:44", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 33957, + "id": 34958, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33932, - "src": "6926:7:43", + "referencedDeclaration": 34923, + "src": "6937:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 33958, + "id": 34959, "name": "postRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33934, - "src": "6935:8:43", + "referencedDeclaration": 34925, + "src": "6946:8:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 33959, + "id": 34960, "name": "batchSize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33928, - "src": "6945:9:43", + "referencedDeclaration": 34935, + "src": "6956:9:44", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3260,18 +3363,18 @@ "typeString": "uint32" } ], - "id": 33955, + "id": 34956, "name": "calculateIdentityDeletionInputHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34134, - "src": "6868:34:43", + "referencedDeclaration": 35111, + "src": "6879:34:44", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes_calldata_ptr_$_t_uint256_$_t_uint256_$_t_uint32_$returns$_t_bytes32_$", "typeString": "function (bytes calldata,uint256,uint256,uint32) view returns (bytes32)" } }, - "id": 33960, + "id": 34961, "isConstant": false, "isLValue": false, "isPure": false, @@ -3280,7 +3383,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6868:87:43", + "src": "6879:87:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3288,22 +3391,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6836:119:43" + "src": "6847:119:44" }, { "assignments": [ - 33963 + 34964 ], "declarations": [ { "constant": false, - "id": 33963, + "id": 34964, "mutability": "mutable", "name": "reducedElement", - "nameLocation": "7234:14:43", + "nameLocation": "7273:14:44", "nodeType": "VariableDeclaration", - "scope": 34061, - "src": "7226:22:43", + "scope": 35024, + "src": "7265:22:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3311,10 +3414,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33962, + "id": 34963, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7226:7:43", + "src": "7265:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3323,13 +3426,13 @@ "visibility": "internal" } ], - "id": 33970, + "id": 34971, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 33969, + "id": 34970, "isConstant": false, "isLValue": false, "isPure": false, @@ -3337,12 +3440,12 @@ "leftExpression": { "arguments": [ { - "id": 33966, + "id": 34967, "name": "inputHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33954, - "src": "7259:9:43", + "referencedDeclaration": 34955, + "src": "7298:9:44", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3356,26 +3459,26 @@ "typeString": "bytes32" } ], - "id": 33965, + "id": 34966, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7251:7:43", + "src": "7290:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 33964, + "id": 34965, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7251:7:43", + "src": "7290:7:44", "typeDescriptions": {} } }, - "id": 33967, + "id": 34968, "isConstant": false, "isLValue": false, "isPure": false, @@ -3384,7 +3487,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7251:18:43", + "src": "7290:18:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3394,79 +3497,79 @@ "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { - "id": 33968, + "id": 34969, "name": "SNARK_SCALAR_FIELD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32776, - "src": "7272:18:43", + "referencedDeclaration": 34036, + "src": "7311:18:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7251:39:43", + "src": "7290:39:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7226:64:43" + "src": "7265:64:44" }, { "assignments": [ - 33973 + 34974 ], "declarations": [ { "constant": false, - "id": 33973, + "id": 34974, "mutability": "mutable", "name": "deletionVerifier", - "nameLocation": "7388:16:43", + "nameLocation": "7427:16:44", "nodeType": "VariableDeclaration", - "scope": 34061, - "src": "7374:30:43", + "scope": 35024, + "src": "7413:30:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$34478", + "typeIdentifier": "t_contract$_ITreeVerifier_$35459", "typeString": "contract ITreeVerifier" }, "typeName": { - "id": 33972, + "id": 34973, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33971, + "id": 34972, "name": "ITreeVerifier", "nameLocations": [ - "7374:13:43" + "7413:13:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34478, - "src": "7374:13:43" + "referencedDeclaration": 35459, + "src": "7413:13:44" }, - "referencedDeclaration": 34478, - "src": "7374:13:43", + "referencedDeclaration": 35459, + "src": "7413:13:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$34478", + "typeIdentifier": "t_contract$_ITreeVerifier_$35459", "typeString": "contract ITreeVerifier" } }, "visibility": "internal" } ], - "id": 33978, + "id": 34979, "initialValue": { "arguments": [ { - "id": 33976, + "id": 34977, "name": "batchSize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33928, - "src": "7445:9:43", + "referencedDeclaration": 34935, + "src": "7484:9:44", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3481,33 +3584,33 @@ } ], "expression": { - "id": 33974, + "id": 34975, "name": "batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33906, - "src": "7407:22:43", + "referencedDeclaration": 34879, + "src": "7446:22:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, - "id": 33975, + "id": 34976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7430:14:43", + "memberLocation": "7469:14:44", "memberName": "getVerifierFor", "nodeType": "MemberAccess", - "referencedDeclaration": 34297, - "src": "7407:37:43", + "referencedDeclaration": 35274, + "src": "7446:37:44", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_ITreeVerifier_$34478_$", + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_ITreeVerifier_$35459_$", "typeString": "function (uint256) view external returns (contract ITreeVerifier)" } }, - "id": 33977, + "id": 34978, "isConstant": false, "isLValue": false, "isPure": false, @@ -3516,113 +3619,38 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7407:48:43", + "src": "7446:48:44", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$34478", + "typeIdentifier": "t_contract$_ITreeVerifier_$35459", "typeString": "contract ITreeVerifier" } }, "nodeType": "VariableDeclarationStatement", - "src": "7374:81:43" + "src": "7413:81:44" }, { "clauses": [ { "block": { - "id": 34044, + "id": 35007, "nodeType": "Block", - "src": "7813:634:43", + "src": "7625:464:44", "statements": [ - { - "condition": { - "id": 34017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7901:15:43", - "subExpression": { - "id": 34016, - "name": "verifierResult", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34014, - "src": "7902:14:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34022, - "nodeType": "IfStatement", - "src": "7897:85:43", - "trueBody": { - "id": 34021, - "nodeType": "Block", - "src": "7918:64:43", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34018, - "name": "ProofValidationFailure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32861, - "src": "7943:22:43", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7943:24:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34020, - "nodeType": "RevertStatement", - "src": "7936:31:43" - } - ] - } - }, { "expression": { - "id": 34025, + "id": 34988, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 34023, + "id": 34986, "name": "_latestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32764, - "src": "8150:11:43", + "referencedDeclaration": 34024, + "src": "7792:11:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3631,55 +3659,55 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 34024, + "id": 34987, "name": "postRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33934, - "src": "8164:8:43", + "referencedDeclaration": 34925, + "src": "7806:8:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8150:22:43", + "src": "7792:22:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 34026, + "id": 34989, "nodeType": "ExpressionStatement", - "src": "8150:22:43" + "src": "7792:22:44" }, { "expression": { - "id": 34035, + "id": 34998, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 34027, + "id": 34990, "name": "rootHistory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32769, - "src": "8318:11:43", + "referencedDeclaration": 34029, + "src": "7960:11:44", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", "typeString": "mapping(uint256 => uint128)" } }, - "id": 34029, + "id": 34992, "indexExpression": { - "id": 34028, + "id": 34991, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33932, - "src": "8330:7:43", + "referencedDeclaration": 34923, + "src": "7972:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3690,7 +3718,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8318:20:43", + "src": "7960:20:44", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -3702,26 +3730,26 @@ "arguments": [ { "expression": { - "id": 34032, + "id": 34995, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "8349:5:43", + "src": "7991:5:44", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 34033, + "id": 34996, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8355:9:43", + "memberLocation": "7997:9:44", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "8349:15:43", + "src": "7991:15:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3735,26 +3763,26 @@ "typeString": "uint256" } ], - "id": 34031, + "id": 34994, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8341:7:43", + "src": "7983:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }, "typeName": { - "id": 34030, + "id": 34993, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "8341:7:43", + "src": "7983:7:44", "typeDescriptions": {} } }, - "id": 34034, + "id": 34997, "isConstant": false, "isLValue": false, "isPure": false, @@ -3763,33 +3791,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8341:24:43", + "src": "7983:24:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "8318:47:43", + "src": "7960:47:44", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 34036, + "id": 34999, "nodeType": "ExpressionStatement", - "src": "8318:47:43" + "src": "7960:47:44" }, { "eventCall": { "arguments": [ { - "id": 34038, + "id": 35001, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33932, - "src": "8397:7:43", + "referencedDeclaration": 34923, + "src": "8039:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3797,39 +3825,39 @@ }, { "expression": { - "id": 34039, + "id": 35002, "name": "TreeChange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32819, - "src": "8406:10:43", + "referencedDeclaration": 34078, + "src": "8048:10:44", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TreeChange_$32819_$", + "typeIdentifier": "t_type$_t_enum$_TreeChange_$34078_$", "typeString": "type(enum WorldIDIdentityManagerImplV1.TreeChange)" } }, - "id": 34040, + "id": 35003, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "8417:8:43", + "memberLocation": "8059:8:44", "memberName": "Deletion", "nodeType": "MemberAccess", - "referencedDeclaration": 32817, - "src": "8406:19:43", + "referencedDeclaration": 34077, + "src": "8048:19:44", "typeDescriptions": { - "typeIdentifier": "t_enum$_TreeChange_$32819", + "typeIdentifier": "t_enum$_TreeChange_$34078", "typeString": "enum WorldIDIdentityManagerImplV1.TreeChange" } }, { - "id": 34041, + "id": 35004, "name": "postRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33934, - "src": "8427:8:43", + "referencedDeclaration": 34925, + "src": "8069:8:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3843,7 +3871,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_enum$_TreeChange_$32819", + "typeIdentifier": "t_enum$_TreeChange_$34078", "typeString": "enum WorldIDIdentityManagerImplV1.TreeChange" }, { @@ -3851,18 +3879,18 @@ "typeString": "uint256" } ], - "id": 34037, + "id": 35000, "name": "TreeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32895, - "src": "8385:11:43", + "referencedDeclaration": 34159, + "src": "8027:11:44", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TreeChange_$32819_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TreeChange_$34078_$_t_uint256_$returns$__$", "typeString": "function (uint256,enum WorldIDIdentityManagerImplV1.TreeChange,uint256)" } }, - "id": 34042, + "id": 35005, "isConstant": false, "isLValue": false, "isPure": false, @@ -3871,75 +3899,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8385:51:43", + "src": "8027:51:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34043, + "id": 35006, "nodeType": "EmitStatement", - "src": "8380:56:43" + "src": "8022:56:44" } ] }, "errorName": "", - "id": 34045, + "id": 35008, "nodeType": "TryCatchClause", - "parameters": { - "id": 34015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34014, - "mutability": "mutable", - "name": "verifierResult", - "nameLocation": "7797:14:43", - "nodeType": "VariableDeclaration", - "scope": 34045, - "src": "7792:19:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7792:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "7791:21:43" - }, - "src": "7783:664:43" + "src": "7625:464:44" }, { "block": { - "id": 34053, + "id": 35016, "nodeType": "Block", - "src": "8485:100:43", + "src": "8127:100:44", "statements": [ { "documentation": "This is not the revert we're looking for.", "expression": { "arguments": [ { - "id": 34050, + "id": 35013, "name": "errString", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34047, - "src": "8564:9:43", + "referencedDeclaration": 35010, + "src": "8206:9:44", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3953,7 +3947,7 @@ "typeString": "string memory" } ], - "id": 34049, + "id": 35012, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3961,556 +3955,160 @@ -19 ], "referencedDeclaration": -19, - "src": "8557:6:43", + "src": "8199:6:44", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" - } - }, - "id": 34051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8557:17:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34052, - "nodeType": "ExpressionStatement", - "src": "8557:17:43" - } - ] - }, - "errorName": "Error", - "id": 34054, - "nodeType": "TryCatchClause", - "parameters": { - "id": 34048, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34047, - "mutability": "mutable", - "name": "errString", - "nameLocation": "8474:9:43", - "nodeType": "VariableDeclaration", - "scope": 34054, - "src": "8460:23:43", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 34046, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8460:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "8459:25:43" - }, - "src": "8448:137:43" - }, - { - "block": { - "id": 34058, - "nodeType": "Block", - "src": "8592:220:43", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34055, - "name": "ProofValidationFailure", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32861, - "src": "8777:22:43", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8777:24:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34057, - "nodeType": "RevertStatement", - "src": "8770:31:43" - } - ] - }, - "errorName": "", - "id": 34059, - "nodeType": "TryCatchClause", - "src": "8586:226:43" - } - ], - "externalCall": { - "arguments": [ - { - "components": [ - { - "baseExpression": { - "id": 33981, - "name": "deletionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33926, - "src": "7567:13:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33983, - "indexExpression": { - "hexValue": "30", - "id": 33982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7581:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7567:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33984, - "name": "deletionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33926, - "src": "7585:13:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33986, - "indexExpression": { - "hexValue": "31", - "id": 33985, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7599:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7585:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33987, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7566:36:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "components": [ - { - "baseExpression": { - "id": 33988, - "name": "deletionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33926, - "src": "7618:13:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33990, - "indexExpression": { - "hexValue": "32", - "id": 33989, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7632:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7618:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33991, - "name": "deletionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33926, - "src": "7636:13:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33993, - "indexExpression": { - "hexValue": "33", - "id": 33992, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7650:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7636:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 33994, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7617:36:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "baseExpression": { - "id": 33995, - "name": "deletionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33926, - "src": "7656:13:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 33997, - "indexExpression": { - "hexValue": "34", - "id": 33996, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7670:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7656:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 33998, - "name": "deletionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33926, - "src": "7674:13:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 34000, - "indexExpression": { - "hexValue": "35", - "id": 33999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7688:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7674:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 34001, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7655:36:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 34002, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7616:76:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", - "typeString": "uint256[2] memory[2] memory" - } - }, - { - "components": [ - { - "baseExpression": { - "id": 34003, - "name": "deletionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33926, - "src": "7707:13:43", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 34005, - "indexExpression": { - "hexValue": "36", - "id": 34004, + } + }, + "id": 35014, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "7721:1:43", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8199:17:44", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7707:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "id": 35015, + "nodeType": "ExpressionStatement", + "src": "8199:17:44" + } + ] + }, + "errorName": "Error", + "id": 35017, + "nodeType": "TryCatchClause", + "parameters": { + "id": 35011, + "nodeType": "ParameterList", + "parameters": [ { - "baseExpression": { - "id": 34006, - "name": "deletionProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33926, - "src": "7725:13:43", + "constant": false, + "id": 35010, + "mutability": "mutable", + "name": "errString", + "nameLocation": "8116:9:44", + "nodeType": "VariableDeclaration", + "scope": 35017, + "src": "8102:23:44", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 35009, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8102:6:44", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "id": 34008, - "indexExpression": { - "hexValue": "37", - "id": 34007, + "visibility": "internal" + } + ], + "src": "8101:25:44" + }, + "src": "8090:137:44" + }, + { + "block": { + "id": 35021, + "nodeType": "Block", + "src": "8234:220:44", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 35018, + "name": "ProofValidationFailure", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34119, + "src": "8419:22:44", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 35019, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "7739:1:43", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8419:24:44", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_rational_7_by_1", - "typeString": "int_const 7" - }, - "value": "7" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7725:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 35020, + "nodeType": "RevertStatement", + "src": "8412:31:44" } - ], - "id": 34009, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7706:36:43", + ] + }, + "errorName": "", + "id": 35022, + "nodeType": "TryCatchClause", + "src": "8228:226:44" + } + ], + "externalCall": { + "arguments": [ + { + "id": 34982, + "name": "deletionProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34919, + "src": "7592:13:44", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" } }, { "components": [ { - "id": 34010, + "id": 34983, "name": "reducedElement", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33963, - "src": "7757:14:43", + "referencedDeclaration": 34964, + "src": "7608:14:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 34011, + "id": 34984, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7756:16:43", + "src": "7607:16:44", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", "typeString": "uint256[1] memory" @@ -4520,16 +4118,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", - "typeString": "uint256[2] memory[2] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" }, { "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", @@ -4537,33 +4127,33 @@ } ], "expression": { - "id": 33979, + "id": 34980, "name": "deletionVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33973, - "src": "7524:16:43", + "referencedDeclaration": 34974, + "src": "7563:16:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$34478", + "typeIdentifier": "t_contract$_ITreeVerifier_$35459", "typeString": "contract ITreeVerifier" } }, - "id": 33980, + "id": 34981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7541:11:43", + "memberLocation": "7580:11:44", "memberName": "verifyProof", "nodeType": "MemberAccess", - "referencedDeclaration": 34477, - "src": "7524:28:43", + "referencedDeclaration": 35458, + "src": "7563:28:44", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_uint256_$1_memory_ptr_$returns$_t_bool_$", - "typeString": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[1] memory) external returns (bool)" + "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_uint256_$1_memory_ptr_$returns$__$", + "typeString": "function (uint256[8] memory,uint256[1] memory) external" } }, - "id": 34012, + "id": 34985, "isConstant": false, "isLValue": false, "isPure": false, @@ -4572,93 +4162,93 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7524:258:43", + "src": "7563:61:44", "tryCall": true, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 34060, + "id": 35023, "nodeType": "TryStatement", - "src": "7520:1292:43" + "src": "7559:895:44" } ] }, "documentation": { - "id": 33922, + "id": 34915, "nodeType": "StructuredDocumentation", - "src": "4175:2200:43", - "text": "@notice Deletes identities from the WorldID system.\n @dev Can only be called by the owner.\n @dev Deletion is performed off-chain and verified on-chain via the `deletionProof`.\n This saves gas and time over deleting identities one at a time.\n @param deletionProof The proof that given the conditions (`preRoot` and `packedDeletionIndices`),\n deletion into the tree results in `postRoot`. Elements 0 and 1 are the `x` and `y`\n coordinates for `ar` respectively. Elements 2 and 3 are the `x` coordinate for `bs`,\n and elements 4 and 5 are the `y` coordinate for `bs`. Elements 6 and 7 are the `x`\n and `y` coordinates for `krs`.\n @param batchSize The number of identities that are to be deleted in the current batch.\n @param packedDeletionIndices The indices of the identities that were deleted from the tree.\n @param preRoot The value for the root of the tree before the `identityCommitments` have been\n inserted. Must be an element of the field `Kr`.\n @param postRoot The root obtained after deleting all of `identityCommitments` into the tree\n described by `preRoot`. Must be an element of the field `Kr`.\n @custom:reverts Unauthorized If the message sender is not authorised to add identities.\n @custom:reverts InvalidCommitment If one or more of the provided commitments is invalid.\n @custom:reverts NotLatestRoot If the provided `preRoot` is not the latest root.\n @custom:reverts ProofValidationFailure If `deletionProof` cannot be verified using the\n provided inputs.\n @custom:reverts UnreducedElement If any of the `preRoot`, `postRoot` and\n `identityCommitments` is not an element of the field `Kr`. It describes the\n type and value of the unreduced element.\n @custom:reverts VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known\n verifier.\n @custom:reverts VerifierLookupTable.BatchTooLarge If the batch size exceeds the maximum\n batch size." + "src": "5539:803:44", + "text": "@param preRoot The value for the root of the tree before the corresponding identity commitments have\n been deleted. Must be an element of the field `Kr`.\n @param postRoot The root obtained after deleting all of `identityCommitments` into the tree\n described by `preRoot`. Must be an element of the field `Kr`.\n @custom:reverts Unauthorized If the message sender is not authorised to add identities.\n @custom:reverts NotLatestRoot If the provided `preRoot` is not the latest root.\n @custom:reverts ProofValidationFailure If `deletionProof` cannot be verified using the\n provided inputs.\n @custom:reverts VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known\n verifier." }, - "functionSelector": "23cfdba5", + "functionSelector": "ea10fbbe", "implemented": true, "kind": "function", "modifiers": [ { - "id": 33937, + "id": 34928, "kind": "modifierInvocation", "modifierName": { - "id": 33936, + "id": 34927, "name": "onlyProxy", "nameLocations": [ - "6593:9:43" + "6534:9:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "6593:9:43" + "src": "6534:9:44" }, "nodeType": "ModifierInvocation", - "src": "6593:9:43" + "src": "6534:9:44" }, { - "id": 33939, + "id": 34930, "kind": "modifierInvocation", "modifierName": { - "id": 33938, + "id": 34929, "name": "onlyInitialized", "nameLocations": [ - "6603:15:43" + "6544:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 47873, - "src": "6603:15:43" + "referencedDeclaration": 48458, + "src": "6544:15:44" }, "nodeType": "ModifierInvocation", - "src": "6603:15:43" + "src": "6544:15:44" }, { - "id": 33941, + "id": 34932, "kind": "modifierInvocation", "modifierName": { - "id": 33940, + "id": 34931, "name": "onlyIdentityOperator", "nameLocations": [ - "6619:20:43" + "6560:20:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 33895, - "src": "6619:20:43" + "referencedDeclaration": 34868, + "src": "6560:20:44" }, "nodeType": "ModifierInvocation", - "src": "6619:20:43" + "src": "6560:20:44" } ], "name": "deleteIdentities", - "nameLocation": "6389:16:43", + "nameLocation": "6356:16:44", "parameters": { - "id": 33935, + "id": 34926, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33926, + "id": 34919, "mutability": "mutable", "name": "deletionProof", - "nameLocation": "6435:13:43", + "nameLocation": "6402:13:44", "nodeType": "VariableDeclaration", - "scope": 34062, - "src": "6415:33:43", + "scope": 35025, + "src": "6382:33:44", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -4667,26 +4257,26 @@ }, "typeName": { "baseType": { - "id": 33923, + "id": 34916, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6415:7:43", + "src": "6382:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 33925, + "id": 34918, "length": { "hexValue": "38", - "id": 33924, + "id": 34917, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6423:1:43", + "src": "6390:1:44", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" @@ -4694,7 +4284,7 @@ "value": "8" }, "nodeType": "ArrayTypeName", - "src": "6415:10:43", + "src": "6382:10:44", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", "typeString": "uint256[8]" @@ -4704,40 +4294,13 @@ }, { "constant": false, - "id": 33928, - "mutability": "mutable", - "name": "batchSize", - "nameLocation": "6465:9:43", - "nodeType": "VariableDeclaration", - "scope": 34062, - "src": "6458:16:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 33927, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6458:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33930, + "id": 34921, "mutability": "mutable", "name": "packedDeletionIndices", - "nameLocation": "6499:21:43", + "nameLocation": "6440:21:44", "nodeType": "VariableDeclaration", - "scope": 34062, - "src": "6484:36:43", + "scope": 35025, + "src": "6425:36:44", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -4745,10 +4308,10 @@ "typeString": "bytes" }, "typeName": { - "id": 33929, + "id": 34920, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6484:5:43", + "src": "6425:5:44", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4758,13 +4321,13 @@ }, { "constant": false, - "id": 33932, + "id": 34923, "mutability": "mutable", "name": "preRoot", - "nameLocation": "6538:7:43", + "nameLocation": "6479:7:44", "nodeType": "VariableDeclaration", - "scope": 34062, - "src": "6530:15:43", + "scope": 35025, + "src": "6471:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4772,10 +4335,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33931, + "id": 34922, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6530:7:43", + "src": "6471:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4785,13 +4348,13 @@ }, { "constant": false, - "id": 33934, + "id": 34925, "mutability": "mutable", "name": "postRoot", - "nameLocation": "6563:8:43", + "nameLocation": "6504:8:44", "nodeType": "VariableDeclaration", - "scope": 34062, - "src": "6555:16:43", + "scope": 35025, + "src": "6496:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4799,10 +4362,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33933, + "id": 34924, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6555:7:43", + "src": "6496:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4811,42 +4374,42 @@ "visibility": "internal" } ], - "src": "6405:172:43" + "src": "6372:146:44" }, "returnParameters": { - "id": 33942, + "id": 34933, "nodeType": "ParameterList", "parameters": [], - "src": "6640:0:43" + "src": "6581:0:44" }, - "scope": 34135, + "scope": 35112, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 34078, + "id": 35041, "nodeType": "FunctionDefinition", - "src": "9156:228:43", + "src": "8798:228:44", "nodes": [], "body": { - "id": 34077, + "id": 35040, "nodeType": "Block", - "src": "9329:55:43", + "src": "8971:55:44", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 34074, + "id": 35037, "name": "batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33906, - "src": "9354:22:43", + "referencedDeclaration": 34879, + "src": "8996:22:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } } @@ -4854,30 +4417,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } ], - "id": 34073, + "id": 35036, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9346:7:43", + "src": "8988:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34072, + "id": 35035, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9346:7:43", + "src": "8988:7:44", "typeDescriptions": {} } }, - "id": 34075, + "id": 35038, "isConstant": false, "isLValue": false, "isPure": false, @@ -4886,24 +4449,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9346:31:43", + "src": "8988:31:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 34071, - "id": 34076, + "functionReturnParameters": 35034, + "id": 35039, "nodeType": "Return", - "src": "9339:38:43" + "src": "8981:38:44" } ] }, "documentation": { - "id": 34063, + "id": 35026, "nodeType": "StructuredDocumentation", - "src": "8824:327:43", + "src": "8466:327:44", "text": "@notice Gets the address for the lookup table of merkle tree verifiers used for batch identity\n deletions.\n @dev The deletion verifier supports batch deletions of size 10, 100 and 1000 members per batch.\n @return addr The address of the contract being used as the verifier lookup table." }, "functionSelector": "3e8919b6", @@ -4911,59 +4474,59 @@ "kind": "function", "modifiers": [ { - "id": 34066, + "id": 35029, "kind": "modifierInvocation", "modifierName": { - "id": 34065, + "id": 35028, "name": "onlyProxy", "nameLocations": [ - "9265:9:43" + "8907:9:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "9265:9:43" + "src": "8907:9:44" }, "nodeType": "ModifierInvocation", - "src": "9265:9:43" + "src": "8907:9:44" }, { - "id": 34068, + "id": 35031, "kind": "modifierInvocation", "modifierName": { - "id": 34067, + "id": 35030, "name": "onlyInitialized", "nameLocations": [ - "9283:15:43" + "8925:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 47873, - "src": "9283:15:43" + "referencedDeclaration": 48458, + "src": "8925:15:44" }, "nodeType": "ModifierInvocation", - "src": "9283:15:43" + "src": "8925:15:44" } ], "name": "getDeleteIdentitiesVerifierLookupTableAddress", - "nameLocation": "9165:45:43", + "nameLocation": "8807:45:44", "parameters": { - "id": 34064, + "id": 35027, "nodeType": "ParameterList", "parameters": [], - "src": "9210:2:43" + "src": "8852:2:44" }, "returnParameters": { - "id": 34071, + "id": 35034, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34070, + "id": 35033, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 34078, - "src": "9316:7:43", + "scope": 35041, + "src": "8958:7:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4971,10 +4534,10 @@ "typeString": "address" }, "typeName": { - "id": 34069, + "id": 35032, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9316:7:43", + "src": "8958:7:44", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4984,168 +4547,352 @@ "visibility": "internal" } ], - "src": "9315:9:43" + "src": "8957:9:44" }, - "scope": 34135, + "scope": 35112, "stateMutability": "view", "virtual": true, "visibility": "public" }, { - "id": 34114, + "id": 35091, "nodeType": "FunctionDefinition", - "src": "9704:418:43", + "src": "9346:517:44", "nodes": [], "body": { - "id": 34113, + "id": 35090, "nodeType": "Block", - "src": "9877:245:43", + "src": "9519:344:44", "nodes": [], "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 35062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 35056, + "name": "newTable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35045, + "src": "9541:8:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeString": "contract VerifierLookupTable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeString": "contract VerifierLookupTable" + } + ], + "id": 35055, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9533:7:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 35054, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9533:7:44", + "typeDescriptions": {} + } + }, + "id": 35057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9533:17:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 35060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9562:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 35059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9554:7:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 35058, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9554:7:44", + "typeDescriptions": {} + } + }, + "id": 35061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9554:10:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9533:31:44", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 35067, + "nodeType": "IfStatement", + "src": "9529:89:44", + "trueBody": { + "id": 35066, + "nodeType": "Block", + "src": "9566:52:44", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 35063, + "name": "InvalidVerifierLUT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34149, + "src": "9587:18:44", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 35064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9587:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 35065, + "nodeType": "RevertStatement", + "src": "9580:27:44" + } + ] + } + }, { "assignments": [ - 34093 + 35070 ], "declarations": [ { "constant": false, - "id": 34093, + "id": 35070, "mutability": "mutable", "name": "oldTable", - "nameLocation": "9907:8:43", + "nameLocation": "9648:8:44", "nodeType": "VariableDeclaration", - "scope": 34113, - "src": "9887:28:43", + "scope": 35090, + "src": "9628:28:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 34092, + "id": 35069, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 34091, + "id": 35068, "name": "VerifierLookupTable", "nameLocations": [ - "9887:19:43" + "9628:19:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34425, - "src": "9887:19:43" + "referencedDeclaration": 35402, + "src": "9628:19:44" }, - "referencedDeclaration": 34425, - "src": "9887:19:43", + "referencedDeclaration": 35402, + "src": "9628:19:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" } ], - "id": 34095, + "id": 35072, "initialValue": { - "id": 34094, + "id": 35071, "name": "batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33906, - "src": "9918:22:43", + "referencedDeclaration": 34879, + "src": "9659:22:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, "nodeType": "VariableDeclarationStatement", - "src": "9887:53:43" + "src": "9628:53:44" }, { "expression": { - "id": 34098, + "id": 35075, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 34096, + "id": 35073, "name": "batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33906, - "src": "9950:22:43", + "referencedDeclaration": 34879, + "src": "9691:22:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 34097, + "id": 35074, "name": "newTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34082, - "src": "9975:8:43", + "referencedDeclaration": 35045, + "src": "9716:8:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, - "src": "9950:33:43", + "src": "9691:33:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, - "id": 34099, + "id": 35076, "nodeType": "ExpressionStatement", - "src": "9950:33:43" + "src": "9691:33:44" }, { "eventCall": { "arguments": [ { "expression": { - "id": 34101, + "id": 35078, "name": "Dependency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32826, - "src": "10029:10:43", + "referencedDeclaration": 34084, + "src": "9770:10:44", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Dependency_$32826_$", + "typeIdentifier": "t_type$_t_enum$_Dependency_$34084_$", "typeString": "type(enum WorldIDIdentityManagerImplV1.Dependency)" } }, - "id": 34102, + "id": 35079, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "10040:27:43", + "memberLocation": "9781:27:44", "memberName": "DeletionVerifierLookupTable", "nodeType": "MemberAccess", - "referencedDeclaration": 32823, - "src": "10029:38:43", + "referencedDeclaration": 34082, + "src": "9770:38:44", "typeDescriptions": { - "typeIdentifier": "t_enum$_Dependency_$32826", + "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" } }, { "arguments": [ { - "id": 34105, + "id": 35082, "name": "oldTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34093, - "src": "10077:8:43", + "referencedDeclaration": 35070, + "src": "9818:8:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } } @@ -5153,30 +4900,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } ], - "id": 34104, + "id": 35081, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10069:7:43", + "src": "9810:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34103, + "id": 35080, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10069:7:43", + "src": "9810:7:44", "typeDescriptions": {} } }, - "id": 34106, + "id": 35083, "isConstant": false, "isLValue": false, "isPure": false, @@ -5185,7 +4932,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10069:17:43", + "src": "9810:17:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5195,14 +4942,14 @@ { "arguments": [ { - "id": 34109, + "id": 35086, "name": "newTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34082, - "src": "10096:8:43", + "referencedDeclaration": 35045, + "src": "9837:8:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } } @@ -5210,30 +4957,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } ], - "id": 34108, + "id": 35085, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10088:7:43", + "src": "9829:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34107, + "id": 35084, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10088:7:43", + "src": "9829:7:44", "typeDescriptions": {} } }, - "id": 34110, + "id": 35087, "isConstant": false, "isLValue": false, "isPure": false, @@ -5242,7 +4989,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10088:17:43", + "src": "9829:17:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5253,7 +5000,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Dependency_$32826", + "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" }, { @@ -5265,18 +5012,18 @@ "typeString": "address" } ], - "id": 34100, + "id": 35077, "name": "DependencyUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 32905, - "src": "9998:17:43", + "referencedDeclaration": 34169, + "src": "9739:17:44", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$32826_$_t_address_$_t_address_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$34084_$_t_address_$_t_address_$returns$__$", "typeString": "function (enum WorldIDIdentityManagerImplV1.Dependency,address,address)" } }, - "id": 34111, + "id": 35088, "isConstant": false, "isLValue": false, "isPure": false, @@ -5285,23 +5032,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9998:117:43", + "src": "9739:117:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34112, + "id": 35089, "nodeType": "EmitStatement", - "src": "9993:122:43" + "src": "9734:122:44" } ] }, "documentation": { - "id": 34079, + "id": 35042, "nodeType": "StructuredDocumentation", - "src": "9390:309:43", + "src": "9032:309:44", "text": "@notice Sets the address for the lookup table of merkle tree verifiers used for identity\n deletions.\n @dev Only the owner of the contract can call this function.\n @param newTable The new verifier lookup table to be used for verifying identity\n deletions." }, "functionSelector": "aa4a729e", @@ -5309,200 +5056,200 @@ "kind": "function", "modifiers": [ { - "id": 34085, + "id": 35048, "kind": "modifierInvocation", "modifierName": { - "id": 34084, + "id": 35047, "name": "onlyProxy", "nameLocations": [ - "9821:9:43" + "9463:9:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "9821:9:43" + "src": "9463:9:44" }, "nodeType": "ModifierInvocation", - "src": "9821:9:43" + "src": "9463:9:44" }, { - "id": 34087, + "id": 35050, "kind": "modifierInvocation", "modifierName": { - "id": 34086, + "id": 35049, "name": "onlyInitialized", "nameLocations": [ - "9839:15:43" + "9481:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 47873, - "src": "9839:15:43" + "referencedDeclaration": 48458, + "src": "9481:15:44" }, "nodeType": "ModifierInvocation", - "src": "9839:15:43" + "src": "9481:15:44" }, { - "id": 34089, + "id": 35052, "kind": "modifierInvocation", "modifierName": { - "id": 34088, + "id": 35051, "name": "onlyOwner", "nameLocations": [ - "9863:9:43" + "9505:9:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29157, - "src": "9863:9:43" + "src": "9505:9:44" }, "nodeType": "ModifierInvocation", - "src": "9863:9:43" + "src": "9505:9:44" } ], "name": "setDeleteIdentitiesVerifierLookupTable", - "nameLocation": "9713:38:43", + "nameLocation": "9355:38:44", "parameters": { - "id": 34083, + "id": 35046, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34082, + "id": 35045, "mutability": "mutable", "name": "newTable", - "nameLocation": "9772:8:43", + "nameLocation": "9414:8:44", "nodeType": "VariableDeclaration", - "scope": 34114, - "src": "9752:28:43", + "scope": 35091, + "src": "9394:28:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 34081, + "id": 35044, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 34080, + "id": 35043, "name": "VerifierLookupTable", "nameLocations": [ - "9752:19:43" + "9394:19:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 34425, - "src": "9752:19:43" + "referencedDeclaration": 35402, + "src": "9394:19:44" }, - "referencedDeclaration": 34425, - "src": "9752:19:43", + "referencedDeclaration": 35402, + "src": "9394:19:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$34425", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" } ], - "src": "9751:30:43" + "src": "9393:30:44" }, "returnParameters": { - "id": 34090, + "id": 35053, "nodeType": "ParameterList", "parameters": [], - "src": "9877:0:43" + "src": "9519:0:44" }, - "scope": 34135, + "scope": 35112, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 34134, + "id": 35111, "nodeType": "FunctionDefinition", - "src": "11363:685:43", + "src": "11102:685:44", "nodes": [], "body": { - "id": 34133, + "id": 35110, "nodeType": "Block", - "src": "11605:443:43", + "src": "11344:443:44", "nodes": [], "statements": [ { "AST": { - "nativeSrc": "11624:418:43", + "nativeSrc": "11363:418:44", "nodeType": "YulBlock", - "src": "11624:418:43", + "src": "11363:418:44", "statements": [ { - "nativeSrc": "11638:30:43", + "nativeSrc": "11377:30:44", "nodeType": "YulVariableDeclaration", - "src": "11638:30:43", + "src": "11377:30:44", "value": { "arguments": [ { "kind": "number", - "nativeSrc": "11663:4:43", + "nativeSrc": "11402:4:44", "nodeType": "YulLiteral", - "src": "11663:4:43", + "src": "11402:4:44", "type": "", "value": "0x40" } ], "functionName": { "name": "mload", - "nativeSrc": "11657:5:43", + "nativeSrc": "11396:5:44", "nodeType": "YulIdentifier", - "src": "11657:5:43" + "src": "11396:5:44" }, - "nativeSrc": "11657:11:43", + "nativeSrc": "11396:11:44", "nodeType": "YulFunctionCall", - "src": "11657:11:43" + "src": "11396:11:44" }, "variables": [ { "name": "startOffset", - "nativeSrc": "11642:11:43", + "nativeSrc": "11381:11:44", "nodeType": "YulTypedName", - "src": "11642:11:43", + "src": "11381:11:44", "type": "" } ] }, { - "nativeSrc": "11681:40:43", + "nativeSrc": "11420:40:44", "nodeType": "YulVariableDeclaration", - "src": "11681:40:43", + "src": "11420:40:44", "value": { "arguments": [ { "name": "batchSize", - "nativeSrc": "11708:9:43", + "nativeSrc": "11447:9:44", "nodeType": "YulIdentifier", - "src": "11708:9:43" + "src": "11447:9:44" }, { "kind": "number", - "nativeSrc": "11719:1:43", + "nativeSrc": "11458:1:44", "nodeType": "YulLiteral", - "src": "11719:1:43", + "src": "11458:1:44", "type": "", "value": "4" } ], "functionName": { "name": "mul", - "nativeSrc": "11704:3:43", + "nativeSrc": "11443:3:44", "nodeType": "YulIdentifier", - "src": "11704:3:43" + "src": "11443:3:44" }, - "nativeSrc": "11704:17:43", + "nativeSrc": "11443:17:44", "nodeType": "YulFunctionCall", - "src": "11704:17:43" + "src": "11443:17:44" }, "variables": [ { "name": "indicesByteSize", - "nativeSrc": "11685:15:43", + "nativeSrc": "11424:15:44", "nodeType": "YulTypedName", - "src": "11685:15:43", + "src": "11424:15:44", "type": "" } ] @@ -5512,72 +5259,72 @@ "arguments": [ { "name": "startOffset", - "nativeSrc": "11747:11:43", + "nativeSrc": "11486:11:44", "nodeType": "YulIdentifier", - "src": "11747:11:43" + "src": "11486:11:44" }, { "name": "packedDeletionIndices.offset", - "nativeSrc": "11760:28:43", + "nativeSrc": "11499:28:44", "nodeType": "YulIdentifier", - "src": "11760:28:43" + "src": "11499:28:44" }, { "name": "indicesByteSize", - "nativeSrc": "11790:15:43", + "nativeSrc": "11529:15:44", "nodeType": "YulIdentifier", - "src": "11790:15:43" + "src": "11529:15:44" } ], "functionName": { "name": "calldatacopy", - "nativeSrc": "11734:12:43", + "nativeSrc": "11473:12:44", "nodeType": "YulIdentifier", - "src": "11734:12:43" + "src": "11473:12:44" }, - "nativeSrc": "11734:72:43", + "nativeSrc": "11473:72:44", "nodeType": "YulFunctionCall", - "src": "11734:72:43" + "src": "11473:72:44" }, - "nativeSrc": "11734:72:43", + "nativeSrc": "11473:72:44", "nodeType": "YulExpressionStatement", - "src": "11734:72:43" + "src": "11473:72:44" }, { - "nativeSrc": "11819:52:43", + "nativeSrc": "11558:52:44", "nodeType": "YulVariableDeclaration", - "src": "11819:52:43", + "src": "11558:52:44", "value": { "arguments": [ { "name": "startOffset", - "nativeSrc": "11842:11:43", + "nativeSrc": "11581:11:44", "nodeType": "YulIdentifier", - "src": "11842:11:43" + "src": "11581:11:44" }, { "name": "indicesByteSize", - "nativeSrc": "11855:15:43", + "nativeSrc": "11594:15:44", "nodeType": "YulIdentifier", - "src": "11855:15:43" + "src": "11594:15:44" } ], "functionName": { "name": "add", - "nativeSrc": "11838:3:43", + "nativeSrc": "11577:3:44", "nodeType": "YulIdentifier", - "src": "11838:3:43" + "src": "11577:3:44" }, - "nativeSrc": "11838:33:43", + "nativeSrc": "11577:33:44", "nodeType": "YulFunctionCall", - "src": "11838:33:43" + "src": "11577:33:44" }, "variables": [ { "name": "rootsOffset", - "nativeSrc": "11823:11:43", + "nativeSrc": "11562:11:44", "nodeType": "YulTypedName", - "src": "11823:11:43", + "src": "11562:11:44", "type": "" } ] @@ -5587,30 +5334,30 @@ "arguments": [ { "name": "rootsOffset", - "nativeSrc": "11891:11:43", + "nativeSrc": "11630:11:44", "nodeType": "YulIdentifier", - "src": "11891:11:43" + "src": "11630:11:44" }, { "name": "preRoot", - "nativeSrc": "11904:7:43", + "nativeSrc": "11643:7:44", "nodeType": "YulIdentifier", - "src": "11904:7:43" + "src": "11643:7:44" } ], "functionName": { "name": "mstore", - "nativeSrc": "11884:6:43", + "nativeSrc": "11623:6:44", "nodeType": "YulIdentifier", - "src": "11884:6:43" + "src": "11623:6:44" }, - "nativeSrc": "11884:28:43", + "nativeSrc": "11623:28:44", "nodeType": "YulFunctionCall", - "src": "11884:28:43" + "src": "11623:28:44" }, - "nativeSrc": "11884:28:43", + "nativeSrc": "11623:28:44", "nodeType": "YulExpressionStatement", - "src": "11884:28:43" + "src": "11623:28:44" }, { "expression": { @@ -5619,106 +5366,106 @@ "arguments": [ { "name": "rootsOffset", - "nativeSrc": "11936:11:43", + "nativeSrc": "11675:11:44", "nodeType": "YulIdentifier", - "src": "11936:11:43" + "src": "11675:11:44" }, { "kind": "number", - "nativeSrc": "11949:2:43", + "nativeSrc": "11688:2:44", "nodeType": "YulLiteral", - "src": "11949:2:43", + "src": "11688:2:44", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "11932:3:43", + "nativeSrc": "11671:3:44", "nodeType": "YulIdentifier", - "src": "11932:3:43" + "src": "11671:3:44" }, - "nativeSrc": "11932:20:43", + "nativeSrc": "11671:20:44", "nodeType": "YulFunctionCall", - "src": "11932:20:43" + "src": "11671:20:44" }, { "name": "postRoot", - "nativeSrc": "11954:8:43", + "nativeSrc": "11693:8:44", "nodeType": "YulIdentifier", - "src": "11954:8:43" + "src": "11693:8:44" } ], "functionName": { "name": "mstore", - "nativeSrc": "11925:6:43", + "nativeSrc": "11664:6:44", "nodeType": "YulIdentifier", - "src": "11925:6:43" + "src": "11664:6:44" }, - "nativeSrc": "11925:38:43", + "nativeSrc": "11664:38:44", "nodeType": "YulFunctionCall", - "src": "11925:38:43" + "src": "11664:38:44" }, - "nativeSrc": "11925:38:43", + "nativeSrc": "11664:38:44", "nodeType": "YulExpressionStatement", - "src": "11925:38:43" + "src": "11664:38:44" }, { - "nativeSrc": "11976:56:43", + "nativeSrc": "11715:56:44", "nodeType": "YulAssignment", - "src": "11976:56:43", + "src": "11715:56:44", "value": { "arguments": [ { "name": "startOffset", - "nativeSrc": "11994:11:43", + "nativeSrc": "11733:11:44", "nodeType": "YulIdentifier", - "src": "11994:11:43" + "src": "11733:11:44" }, { "arguments": [ { "kind": "number", - "nativeSrc": "12011:2:43", + "nativeSrc": "11750:2:44", "nodeType": "YulLiteral", - "src": "12011:2:43", + "src": "11750:2:44", "type": "", "value": "64" }, { "name": "indicesByteSize", - "nativeSrc": "12015:15:43", + "nativeSrc": "11754:15:44", "nodeType": "YulIdentifier", - "src": "12015:15:43" + "src": "11754:15:44" } ], "functionName": { "name": "add", - "nativeSrc": "12007:3:43", + "nativeSrc": "11746:3:44", "nodeType": "YulIdentifier", - "src": "12007:3:43" + "src": "11746:3:44" }, - "nativeSrc": "12007:24:43", + "nativeSrc": "11746:24:44", "nodeType": "YulFunctionCall", - "src": "12007:24:43" + "src": "11746:24:44" } ], "functionName": { "name": "keccak256", - "nativeSrc": "11984:9:43", + "nativeSrc": "11723:9:44", "nodeType": "YulIdentifier", - "src": "11984:9:43" + "src": "11723:9:44" }, - "nativeSrc": "11984:48:43", + "nativeSrc": "11723:48:44", "nodeType": "YulFunctionCall", - "src": "11984:48:43" + "src": "11723:48:44" }, "variableNames": [ { "name": "hash", - "nativeSrc": "11976:4:43", + "nativeSrc": "11715:4:44", "nodeType": "YulIdentifier", - "src": "11976:4:43" + "src": "11715:4:44" } ] } @@ -5727,106 +5474,106 @@ "evmVersion": "paris", "externalReferences": [ { - "declaration": 34123, + "declaration": 35100, "isOffset": false, "isSlot": false, - "src": "11708:9:43", + "src": "11447:9:44", "valueSize": 1 }, { - "declaration": 34130, + "declaration": 35107, "isOffset": false, "isSlot": false, - "src": "11976:4:43", + "src": "11715:4:44", "valueSize": 1 }, { - "declaration": 34117, + "declaration": 35094, "isOffset": true, "isSlot": false, - "src": "11760:28:43", + "src": "11499:28:44", "suffix": "offset", "valueSize": 1 }, { - "declaration": 34121, + "declaration": 35098, "isOffset": false, "isSlot": false, - "src": "11954:8:43", + "src": "11693:8:44", "valueSize": 1 }, { - "declaration": 34119, + "declaration": 35096, "isOffset": false, "isSlot": false, - "src": "11904:7:43", + "src": "11643:7:44", "valueSize": 1 } ], - "id": 34132, + "id": 35109, "nodeType": "InlineAssembly", - "src": "11615:427:43" + "src": "11354:427:44" } ] }, "documentation": { - "id": 34115, + "id": 35092, "nodeType": "StructuredDocumentation", - "src": "10381:977:43", - "text": "@notice Calculates the input hash for the identity deletion verifier.\n @dev Implements the computation described below.\n @param packedDeletionIndices The indices of the identities that were deleted from the tree.\n @param preRoot The root value of the tree before these insertions were made.\n @param postRoot The root value of the tree after these insertions were made.\n @param batchSize The number of identities that were deleted in this batch\n @return hash The input hash calculated as described below.\n @dev the deletion indices are packed into bytes calldata where each deletion index is 32 bits\n wide. The indices are encoded using abi.encodePacked for testing.\n We keccak hash all input to save verification gas. Inputs for the hash are arranged as follows:\n packedDeletionIndices || PreRoot || PostRoot\n 32 bits * batchSize || 256 || 256" + "src": "10122:975:44", + "text": "@notice Calculates the input hash for the identity deletion verifier.\n @dev Implements the computation described below.\n @param packedDeletionIndices The indices of the identities that were deleted from the tree.\n @param preRoot The root value of the tree before these deletions were made.\n @param postRoot The root value of the tree after these deletions were made.\n @param batchSize The number of identities that were deleted in this batch\n @return hash The input hash calculated as described below.\n @dev the deletion indices are packed into bytes calldata where each deletion index is 32 bits\n wide. The indices are encoded using abi.encodePacked for testing.\n We keccak hash all input to save verification gas. Inputs for the hash are arranged as follows:\n packedDeletionIndices || PreRoot || PostRoot\n 32 bits * batchSize || 256 || 256" }, "functionSelector": "31e4e992", "implemented": true, "kind": "function", "modifiers": [ { - "id": 34126, + "id": 35103, "kind": "modifierInvocation", "modifierName": { - "id": 34125, + "id": 35102, "name": "onlyProxy", "nameLocations": [ - "11556:9:43" + "11295:9:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "11556:9:43" + "src": "11295:9:44" }, "nodeType": "ModifierInvocation", - "src": "11556:9:43" + "src": "11295:9:44" }, { - "id": 34128, + "id": 35105, "kind": "modifierInvocation", "modifierName": { - "id": 34127, + "id": 35104, "name": "onlyInitialized", "nameLocations": [ - "11566:15:43" + "11305:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 47873, - "src": "11566:15:43" + "referencedDeclaration": 48458, + "src": "11305:15:44" }, "nodeType": "ModifierInvocation", - "src": "11566:15:43" + "src": "11305:15:44" } ], "name": "calculateIdentityDeletionInputHash", - "nameLocation": "11372:34:43", + "nameLocation": "11111:34:44", "parameters": { - "id": 34124, + "id": 35101, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34117, + "id": 35094, "mutability": "mutable", "name": "packedDeletionIndices", - "nameLocation": "11431:21:43", + "nameLocation": "11170:21:44", "nodeType": "VariableDeclaration", - "scope": 34134, - "src": "11416:36:43", + "scope": 35111, + "src": "11155:36:44", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -5834,10 +5581,10 @@ "typeString": "bytes" }, "typeName": { - "id": 34116, + "id": 35093, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11416:5:43", + "src": "11155:5:44", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5847,13 +5594,13 @@ }, { "constant": false, - "id": 34119, + "id": 35096, "mutability": "mutable", "name": "preRoot", - "nameLocation": "11470:7:43", + "nameLocation": "11209:7:44", "nodeType": "VariableDeclaration", - "scope": 34134, - "src": "11462:15:43", + "scope": 35111, + "src": "11201:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5861,10 +5608,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34118, + "id": 35095, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11462:7:43", + "src": "11201:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5874,13 +5621,13 @@ }, { "constant": false, - "id": 34121, + "id": 35098, "mutability": "mutable", "name": "postRoot", - "nameLocation": "11495:8:43", + "nameLocation": "11234:8:44", "nodeType": "VariableDeclaration", - "scope": 34134, - "src": "11487:16:43", + "scope": 35111, + "src": "11226:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5888,10 +5635,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34120, + "id": 35097, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11487:7:43", + "src": "11226:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5901,13 +5648,13 @@ }, { "constant": false, - "id": 34123, + "id": 35100, "mutability": "mutable", "name": "batchSize", - "nameLocation": "11520:9:43", + "nameLocation": "11259:9:44", "nodeType": "VariableDeclaration", - "scope": 34134, - "src": "11513:16:43", + "scope": 35111, + "src": "11252:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5915,10 +5662,10 @@ "typeString": "uint32" }, "typeName": { - "id": 34122, + "id": 35099, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "11513:6:43", + "src": "11252:6:44", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5927,21 +5674,21 @@ "visibility": "internal" } ], - "src": "11406:129:43" + "src": "11145:129:44" }, "returnParameters": { - "id": 34131, + "id": 35108, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34130, + "id": 35107, "mutability": "mutable", "name": "hash", - "nameLocation": "11599:4:43", + "nameLocation": "11338:4:44", "nodeType": "VariableDeclaration", - "scope": 34134, - "src": "11591:12:43", + "scope": 35111, + "src": "11330:12:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5949,10 +5696,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 34129, + "id": 35106, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "11591:7:43", + "src": "11330:7:44", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5961,9 +5708,9 @@ "visibility": "internal" } ], - "src": "11590:14:43" + "src": "11329:14:44" }, - "scope": 34135, + "scope": 35112, "stateMutability": "view", "virtual": true, "visibility": "public" @@ -5973,37 +5720,37 @@ "baseContracts": [ { "baseName": { - "id": 33901, + "id": 34874, "name": "WorldIDIdentityManagerImplV1", "nameLocations": [ - "484:28:43" + "483:28:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 33896, - "src": "484:28:43" + "referencedDeclaration": 34869, + "src": "483:28:44" }, - "id": 33902, + "id": 34875, "nodeType": "InheritanceSpecifier", - "src": "484:28:43" + "src": "483:28:44" } ], "canonicalName": "WorldIDIdentityManagerImplV2", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 33900, + "id": 34873, "nodeType": "StructuredDocumentation", - "src": "72:371:43", - "text": "@title WorldID Identity Manager Implementation Version 2\n @author Worldcoin\n @notice An implementation of a batch-based identity manager for the WorldID protocol.\n @dev The manager is based on the principle of verifying externally-created Zero Knowledge Proofs\n to perform the insertions.\n @dev This is the implementation delegated to by a proxy." + "src": "72:370:44", + "text": "@title WorldID Identity Manager Implementation Version 2\n @author Worldcoin\n @notice An implementation of a batch-based identity manager for the WorldID protocol.\n @dev The manager is based on the principle of verifying externally-created Zero Knowledge Proofs\n to perform the deletions.\n @dev This is the implementation delegated to by a proxy." }, "fullyImplemented": true, "linearizedBaseContracts": [ - 34135, - 33896, - 34502, - 34435, - 34190, - 47879, + 35112, + 34869, + 35483, + 35412, + 35167, + 48464, 29937, 29622, 29253, @@ -6013,23 +5760,25 @@ 29801 ], "name": "WorldIDIdentityManagerImplV2", - "nameLocation": "452:28:43", - "scope": 34136, + "nameLocation": "451:28:44", + "scope": 35113, "usedErrors": [ - 32848, - 32853, - 32858, - 32861, - 32868, - 32871, - 32874, - 32877, - 32882, - 32885, - 34166, - 34431, - 34434, - 47850 + 34106, + 34111, + 34116, + 34119, + 34126, + 34129, + 34132, + 34135, + 34140, + 34143, + 34146, + 34149, + 35143, + 35408, + 35411, + 48435 ], "usedEvents": [ 29037, @@ -6038,15 +5787,16 @@ 29431, 29496, 29647, - 32895, - 32905, - 32910, - 32917, - 32924, - 32931 + 34159, + 34169, + 34174, + 34181, + 34188, + 34195, + 34882 ] } ] }, - "id": 43 + "id": 44 } \ No newline at end of file diff --git a/src/contracts/abi.rs b/src/contracts/abi.rs index 32f7e7aa..234a2582 100644 --- a/src/contracts/abi.rs +++ b/src/contracts/abi.rs @@ -36,7 +36,7 @@ abigen!( struct RootInfo { uint256 root; uint128 supersededTimestamp; bool isValid } event TreeChanged(uint256 indexed preRoot, uint8 indexed kind, uint256 indexed postRoot) function registerIdentities(uint256[8] calldata insertionProof, uint256 preRoot, uint32 startIndex, uint256[] calldata identityCommitments, uint256 postRoot) public virtual - function deleteIdentities(uint256[8] calldata deletionProof, uint32 batchSize, bytes calldata packedDeletionIndices, uint256 preRoot, uint256 postRoot) public virtual + function deleteIdentities(uint256[8] calldata deletionProof, bytes calldata packedDeletionIndices, uint256 preRoot, uint256 postRoot) public virtual function latestRoot() public view virtual returns (uint256 root) function owner() public view virtual returns (address) function queryRoot(uint256 root) public view virtual returns (RootInfo memory) diff --git a/src/contracts/mod.rs b/src/contracts/mod.rs index 1c4adc3a..797b18ad 100644 --- a/src/contracts/mod.rs +++ b/src/contracts/mod.rs @@ -311,7 +311,6 @@ impl IdentityManager { .abi .delete_identities( proof_points_array, - batch_size, packed_deletion_indices.into(), pre_root, post_root, From c8856aaaae9823385973d3d74381e8fd1fd8d699 Mon Sep 17 00:00:00 2001 From: "dcbuilder.eth" Date: Wed, 11 Oct 2023 13:10:21 +0100 Subject: [PATCH 2/4] small fix tests still fail --- src/contracts/mod.rs | 1 - src/task_monitor/tasks/process_identities.rs | 8 +------- tests/common/mod.rs | 5 +++++ 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/contracts/mod.rs b/src/contracts/mod.rs index 797b18ad..aa8cbf2f 100644 --- a/src/contracts/mod.rs +++ b/src/contracts/mod.rs @@ -300,7 +300,6 @@ impl IdentityManager { pub async fn delete_identities( &self, deletion_proof: Proof, - batch_size: u32, packed_deletion_indices: Vec, pre_root: U256, post_root: U256, diff --git a/src/task_monitor/tasks/process_identities.rs b/src/task_monitor/tasks/process_identities.rs index 4cf925ab..17420f20 100644 --- a/src/task_monitor/tasks/process_identities.rs +++ b/src/task_monitor/tasks/process_identities.rs @@ -548,13 +548,7 @@ pub async fn delete_identities( // With all the data prepared we can submit the identities to the on-chain // identity manager and wait for that transaction to be mined. let transaction_id = identity_manager - .delete_identities( - proof, - batch_size as u32, - packed_deletion_indices, - pre_root, - post_root, - ) + .delete_identities(proof, packed_deletion_indices, pre_root, post_root) .await .map_err(|e| { error!(?e, "Failed to insert identity to contract."); diff --git a/tests/common/mod.rs b/tests/common/mod.rs index ae386237..f45a8c5a 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -301,6 +301,11 @@ pub async fn test_inclusion_status( .expect("Failed to convert response body to bytes"); let result = String::from_utf8(bytes.into_iter().collect()) .expect("Could not parse response bytes to utf-8"); + println!( + "########################################################## \n + result: {:?}", + result + ); let result_json = serde_json::from_str::(&result) .expect("Failed to parse response as json"); let status = result_json["status"] From a92209b6aed40d03310fae509ddfd5270565f54f Mon Sep 17 00:00:00 2001 From: "dcbuilder.eth" Date: Wed, 11 Oct 2023 13:42:12 +0100 Subject: [PATCH 3/4] update ABIs --- sol/WorldIDIdentityManagerImplV1.json | 1888 +++++++++++++------------ sol/WorldIDIdentityManagerImplV2.json | 1681 ++++++++++++---------- 2 files changed, 1875 insertions(+), 1694 deletions(-) diff --git a/sol/WorldIDIdentityManagerImplV1.json b/sol/WorldIDIdentityManagerImplV1.json index cc716476..0705831a 100644 --- a/sol/WorldIDIdentityManagerImplV1.json +++ b/sol/WorldIDIdentityManagerImplV1.json @@ -788,13 +788,13 @@ } ], "bytecode": { - "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161299f62000200600039600081816104ad015281816104f6015281816105fb0152818161063b015281816109060152818161094601528181610a2201528181610a6201528181610b6c01528181610bac01528181610e9301528181610ed30152818161102901528181611069015281816110f501528181611135015281816111b1015281816112fb0152818161133b015281816113fe0152818161143e015281816114d501528181611515015281816115ab015281816115eb015281816116cb0152818161170b0152818161182201528181611862015281816118ef0152818161192f015281816119c501528181611a0501528181611a9901528181611ad901528181611cbf0152611cff015261299f6000f3fe6080604052600436106101665760003560e01c806379ba5097116100d1578063c70aa7271161008a578063f134b6ca11610064578063f134b6ca14610439578063f2038f951461044e578063f2358e1d14610463578063f2fde38b1461048357600080fd5b8063c70aa727146103e6578063d7b0fef114610406578063e30c39781461041b57600080fd5b806379ba5097146103235780638c76a909146103385780638da5cb5b146103585780638e5cdd501461038a5780638fc22e9f146103b1578063a7bba582146103c657600080fd5b80633f7c178d116101235780633f7c178d1461022d57806343f974cb1461027f5780634f1ef286146102a257806352d1902d146102b5578063561f204b146102ca578063715018a61461030e57600080fd5b80630e3a12f31461016b5780632217b2111461018d5780632f059fca146101ad578063354ca120146101cd5780633659cfe6146101ed57806338c870651461020d575b600080fd5b34801561017757600080fd5b5061018b6101863660046122bc565b6104a3565b005b34801561019957600080fd5b5061018b6101a836600461234b565b6105f1565b3480156101b957600080fd5b5061018b6101c83660046122bc565b6108fc565b3480156101d957600080fd5b5061018b6101e83660046123c8565b610a18565b3480156101f957600080fd5b5061018b6102083660046122bc565b610b62565b34801561021957600080fd5b5061018b610228366004612413565b610c2a565b34801561023957600080fd5b5061024d610248366004612481565b610e6c565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b34801561028b57600080fd5b5061029461101d565b604051908152602001610276565b61018b6102b03660046124dd565b6110eb565b3480156102c157600080fd5b506102946111a4565b3480156102d657600080fd5b50604080516060808201835260008083526020808401829052928401819052835191820184528082529181018290529182015261024d565b34801561031a57600080fd5b5061018b611257565b34801561032f57600080fd5b5061018b611278565b34801561034457600080fd5b50610294610353366004612589565b6112ef565b34801561036457600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561039657600080fd5b5061039f6113f2565b60405160ff9091168152602001610276565b3480156103bd57600080fd5b506103726114c9565b3480156103d257600080fd5b506103726103e13660046122bc565b61159f565b3480156103f257600080fd5b5061018b610401366004612481565b6116c1565b34801561041257600080fd5b50610294611816565b34801561042757600080fd5b506065546001600160a01b0316610372565b34801561044557600080fd5b506103726118e3565b34801561045a57600080fd5b506103726119b9565b34801561046f57600080fd5b5061018b61047e366004612481565b611a8f565b34801561048f57600080fd5b5061018b61049e3660046122bc565b611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104f45760405162461bcd60e51b81526004016104eb906125f1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610526611c3d565b6001600160a01b03161461054c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661056f57604051630103019560e11b815260040160405180910390fd5b610577611c59565b6001600160a01b03811661059e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066b611c3d565b6001600160a01b0316146106915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166106b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146106e25760405163472511eb60e11b81523360048201526024016104eb565b61012e5485146107145761012e5460405163542fced960e11b81526104eb918791600401918252602082015260400190565b600061072385878487876112ef565b905060006107517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612689565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c591906126ab565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610801918d91906004016126c8565b600060405180830381600087803b15801561081b57600080fd5b505af192505050801561082c575060015b61088c57610838612703565b806308c379a003610871575061084c61271e565b806108575750610873565b8060405162461bcd60e51b81526004016104eb91906127cc565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546fffffffffffffffffffffffffffffffff1916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109445760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610976611c3d565b6001600160a01b03161461099c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166109bf57604051630103019560e11b815260040160405180910390fd5b6109c7611c59565b6001600160a01b0381166109ee57604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016105c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a92611c3d565b6001600160a01b031614610ab85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610adb57604051630103019560e11b815260040160405180910390fd5b610ae485611a8f565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610b36918591906004016127ff565b60006040518083038186803b158015610b4e57600080fd5b505afa1580156108f1573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610baa5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611c3d565b6001600160a01b031614610c025760405162461bcd60e51b81526004016104eb9061263d565b610c0b81611cb5565b60408051600080825260208201909252610c2791839190611d5d565b50565b600054600190610100900460ff16158015610c4c575060005460ff8083169116105b610caf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104eb565b6000805461ffff191660ff8316176101001790556001600160a01b038416610cea57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610d1157604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610d385760405163baa3de5f60e01b815260040160405180910390fd5b610d40611ecd565b610d4986611efc565b610d6b57604051630220cee360e61b815260ff871660048201526024016104eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055610de7611f23565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ed15760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f03611c3d565b6001600160a01b031614610f295760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610f4c57604051630103019560e11b815260040160405180910390fd5b61012e548203610f7b5750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b031690819003610fd65760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b61013054600090610ff06001600160801b03841642612830565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110675760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611099611c3d565b6001600160a01b0316146110bf5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166110e257604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111335760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611165611c3d565b6001600160a01b03161461118b5760405162461bcd60e51b81526004016104eb9061263d565b61119482611cb5565b6111a082826001611d5d565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104eb565b5060008051602061292383398151915290565b61125f611c59565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146112e65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104eb565b610c2781611f59565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661136b611c3d565b6001600160a01b0316146113915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166113b457604051630103019560e11b815260040160405180910390fd5b600086868686866040516020016113cf959493929190612851565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361143c5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661146e611c3d565b6001600160a01b0316146114945760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166114b757604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115135760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611545611c3d565b6001600160a01b03161461156b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661158e57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115e95760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661161b611c3d565b6001600160a01b0316146116415760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661166457604051630103019560e11b815260040160405180910390fd5b61166c611c59565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117095760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661173b611c3d565b6001600160a01b0316146117615760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661178457604051630103019560e11b815260040160405180910390fd5b61178c611c59565b806000036117dc5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016104eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611892611c3d565b6001600160a01b0316146118b85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166118db57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361192d5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661195f611c3d565b6001600160a01b0316146119855760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166119a857604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a035760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a35611c3d565b6001600160a01b031614611a5b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611a7e57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ad75760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b09611c3d565b6001600160a01b031614611b2f5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611b5257604051630103019560e11b815260040160405180910390fd5b61012e548114610c2757600081815261012f60205260408120546001600160801b031690819003611b965760405163ddae3b7160e01b815260040160405180910390fd5b61013054611bad6001600160801b03831642612830565b11156111a057604051631d739acf60e11b815260040160405180910390fd5b611bd4611c59565b606580546001600160a01b0383166001600160a01b03199091168117909155611c056033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612923833981519152546001600160a01b031690565b6033546001600160a01b03163314611cb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104eb565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cfd5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d2f611c3d565b6001600160a01b031614611d555760405162461bcd60e51b81526004016104eb9061263d565b610c27611c59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d9557611d9083611f72565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611def575060408051601f3d908101601f19168201909252611dec918101906128a2565b60015b611e525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104eb565b6000805160206129238339815191528114611ec15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104eb565b50611d9083838361200e565b600054610100900460ff16611ef45760405162461bcd60e51b81526004016104eb906128bb565b611cb3612039565b60006010602060ff84168211801590611f1b57508060ff168460ff1611155b949350505050565b600054610100900460ff16611f4a5760405162461bcd60e51b81526004016104eb906128bb565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610c2781612070565b6001600160a01b0381163b611fdf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104eb565b60008051602061292383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612017836120c2565b6000825111806120245750805b15611d90576120338383612102565b50505050565b600054610100900460ff166120605760405162461bcd60e51b81526004016104eb906128bb565b6120686121f8565b611cb3612227565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120cb81611f72565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61216a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104eb565b600080846001600160a01b0316846040516121859190612906565b600060405180830381855af49150503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121ed82826040518060600160405280602781526020016129436027913961224e565b925050505b92915050565b600054610100900460ff1661221f5760405162461bcd60e51b81526004016104eb906128bb565b611cb3612267565b600054610100900460ff16611cb35760405162461bcd60e51b81526004016104eb906128bb565b6060831561225d575081610fcf565b610fcf8383612297565b600054610100900460ff1661228e5760405162461bcd60e51b81526004016104eb906128bb565b611cb333611f59565b8151156108575781518083602001fd5b6001600160a01b0381168114610c2757600080fd5b6000602082840312156122ce57600080fd5b8135610fcf816122a7565b8061010081018310156121f257600080fd5b803563ffffffff8116811461101857600080fd5b60008083601f84011261231157600080fd5b50813567ffffffffffffffff81111561232957600080fd5b6020830191508360208260051b850101111561234457600080fd5b9250929050565b600080600080600080610180878903121561236557600080fd5b61236f88886122d9565b9550610100870135945061238661012088016122eb565b935061014087013567ffffffffffffffff8111156123a357600080fd5b6123af89828a016122ff565b979a969950949794969561016090950135949350505050565b600080600080600061018086880312156123e157600080fd5b8535945060208601359350604086013592506060860135915061240787608088016122d9565b90509295509295909350565b600080600080600060a0868803121561242b57600080fd5b853560ff8116811461243c57600080fd5b9450602086013593506040860135612453816122a7565b92506060860135612463816122a7565b91506080860135612473816122a7565b809150509295509295909350565b60006020828403121561249357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156124d6576124d661249a565b6040525050565b600080604083850312156124f057600080fd5b82356124fb816122a7565b915060208381013567ffffffffffffffff8082111561251957600080fd5b818601915086601f83011261252d57600080fd5b81358181111561253f5761253f61249a565b6040519150612557601f8201601f19168501836124b0565b808252878482850101111561256b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806000608086880312156125a157600080fd5b6125aa866122eb565b94506020860135935060408601359250606086013567ffffffffffffffff8111156125d457600080fd5b6125e0888289016122ff565b969995985093965092949392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826126a657634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156126bd57600080fd5b8151610fcf816122a7565b61012081016101008085843782018360005b60018110156126f95781518352602092830192909101906001016126da565b5050509392505050565b600060033d11156110e85760046000803e5060005160e01c90565b600060443d101561272c5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561275c57505050505090565b82850191508151818111156127745750505050505090565b843d870101602082850101111561278e5750505050505090565b61279d602082860101876124b0565b509095945050505050565b60005b838110156127c35781810151838201526020016127ab565b50506000910152565b60208152600082518060208401526127eb8160408501602087016127a8565b601f01601f19169190910160400192915050565b61018081016101008085843782018360005b60048110156126f9578151835260209283019290910190600101612811565b818103818111156121f257634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561288657600080fd5b8260051b80856044850137919091016044019695505050505050565b6000602082840312156128b457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516129188184602087016127a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d633b870ce7639e47f939f23913c37dfc96a2846c751924ff2ef6c68d09aa72264736f6c63430008150033", - "sourceMap": "879:30959:43:-:0;;;1332:4:23;1289:48;;13484:281:43;;;;;;;;;-1:-1:-1;13736:22:43;:20;:22::i;:::-;879:30959;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:77;5987:66:22;;;198:21:77;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:77;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:77;;;6162:28:22;;552:2:77;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:77:-;879:30959:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161299f62000200600039600081816104ad015281816104f6015281816105fb0152818161063b015281816109060152818161094601528181610a2201528181610a6201528181610b6c01528181610bac01528181610e9301528181610ed30152818161102901528181611069015281816110f501528181611135015281816111b1015281816112fb0152818161133b015281816113fe0152818161143e015281816114d501528181611515015281816115ab015281816115eb015281816116cb0152818161170b0152818161182201528181611862015281816118ef0152818161192f015281816119c501528181611a0501528181611a9901528181611ad901528181611cbf0152611cff015261299f6000f3fe6080604052600436106101665760003560e01c806379ba5097116100d1578063c70aa7271161008a578063f134b6ca11610064578063f134b6ca14610439578063f2038f951461044e578063f2358e1d14610463578063f2fde38b1461048357600080fd5b8063c70aa727146103e6578063d7b0fef114610406578063e30c39781461041b57600080fd5b806379ba5097146103235780638c76a909146103385780638da5cb5b146103585780638e5cdd501461038a5780638fc22e9f146103b1578063a7bba582146103c657600080fd5b80633f7c178d116101235780633f7c178d1461022d57806343f974cb1461027f5780634f1ef286146102a257806352d1902d146102b5578063561f204b146102ca578063715018a61461030e57600080fd5b80630e3a12f31461016b5780632217b2111461018d5780632f059fca146101ad578063354ca120146101cd5780633659cfe6146101ed57806338c870651461020d575b600080fd5b34801561017757600080fd5b5061018b6101863660046122bc565b6104a3565b005b34801561019957600080fd5b5061018b6101a836600461234b565b6105f1565b3480156101b957600080fd5b5061018b6101c83660046122bc565b6108fc565b3480156101d957600080fd5b5061018b6101e83660046123c8565b610a18565b3480156101f957600080fd5b5061018b6102083660046122bc565b610b62565b34801561021957600080fd5b5061018b610228366004612413565b610c2a565b34801561023957600080fd5b5061024d610248366004612481565b610e6c565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b34801561028b57600080fd5b5061029461101d565b604051908152602001610276565b61018b6102b03660046124dd565b6110eb565b3480156102c157600080fd5b506102946111a4565b3480156102d657600080fd5b50604080516060808201835260008083526020808401829052928401819052835191820184528082529181018290529182015261024d565b34801561031a57600080fd5b5061018b611257565b34801561032f57600080fd5b5061018b611278565b34801561034457600080fd5b50610294610353366004612589565b6112ef565b34801561036457600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561039657600080fd5b5061039f6113f2565b60405160ff9091168152602001610276565b3480156103bd57600080fd5b506103726114c9565b3480156103d257600080fd5b506103726103e13660046122bc565b61159f565b3480156103f257600080fd5b5061018b610401366004612481565b6116c1565b34801561041257600080fd5b50610294611816565b34801561042757600080fd5b506065546001600160a01b0316610372565b34801561044557600080fd5b506103726118e3565b34801561045a57600080fd5b506103726119b9565b34801561046f57600080fd5b5061018b61047e366004612481565b611a8f565b34801561048f57600080fd5b5061018b61049e3660046122bc565b611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104f45760405162461bcd60e51b81526004016104eb906125f1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610526611c3d565b6001600160a01b03161461054c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661056f57604051630103019560e11b815260040160405180910390fd5b610577611c59565b6001600160a01b03811661059e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066b611c3d565b6001600160a01b0316146106915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166106b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146106e25760405163472511eb60e11b81523360048201526024016104eb565b61012e5485146107145761012e5460405163542fced960e11b81526104eb918791600401918252602082015260400190565b600061072385878487876112ef565b905060006107517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612689565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c591906126ab565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610801918d91906004016126c8565b600060405180830381600087803b15801561081b57600080fd5b505af192505050801561082c575060015b61088c57610838612703565b806308c379a003610871575061084c61271e565b806108575750610873565b8060405162461bcd60e51b81526004016104eb91906127cc565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546fffffffffffffffffffffffffffffffff1916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109445760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610976611c3d565b6001600160a01b03161461099c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166109bf57604051630103019560e11b815260040160405180910390fd5b6109c7611c59565b6001600160a01b0381166109ee57604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016105c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a92611c3d565b6001600160a01b031614610ab85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610adb57604051630103019560e11b815260040160405180910390fd5b610ae485611a8f565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610b36918591906004016127ff565b60006040518083038186803b158015610b4e57600080fd5b505afa1580156108f1573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610baa5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611c3d565b6001600160a01b031614610c025760405162461bcd60e51b81526004016104eb9061263d565b610c0b81611cb5565b60408051600080825260208201909252610c2791839190611d5d565b50565b600054600190610100900460ff16158015610c4c575060005460ff8083169116105b610caf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104eb565b6000805461ffff191660ff8316176101001790556001600160a01b038416610cea57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610d1157604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610d385760405163baa3de5f60e01b815260040160405180910390fd5b610d40611ecd565b610d4986611efc565b610d6b57604051630220cee360e61b815260ff871660048201526024016104eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055610de7611f23565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ed15760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f03611c3d565b6001600160a01b031614610f295760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610f4c57604051630103019560e11b815260040160405180910390fd5b61012e548203610f7b5750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b031690819003610fd65760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b61013054600090610ff06001600160801b03841642612830565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110675760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611099611c3d565b6001600160a01b0316146110bf5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166110e257604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111335760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611165611c3d565b6001600160a01b03161461118b5760405162461bcd60e51b81526004016104eb9061263d565b61119482611cb5565b6111a082826001611d5d565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104eb565b5060008051602061292383398151915290565b61125f611c59565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146112e65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104eb565b610c2781611f59565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661136b611c3d565b6001600160a01b0316146113915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166113b457604051630103019560e11b815260040160405180910390fd5b600086868686866040516020016113cf959493929190612851565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361143c5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661146e611c3d565b6001600160a01b0316146114945760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166114b757604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115135760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611545611c3d565b6001600160a01b03161461156b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661158e57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115e95760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661161b611c3d565b6001600160a01b0316146116415760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661166457604051630103019560e11b815260040160405180910390fd5b61166c611c59565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117095760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661173b611c3d565b6001600160a01b0316146117615760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661178457604051630103019560e11b815260040160405180910390fd5b61178c611c59565b806000036117dc5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016104eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611892611c3d565b6001600160a01b0316146118b85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166118db57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361192d5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661195f611c3d565b6001600160a01b0316146119855760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166119a857604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a035760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a35611c3d565b6001600160a01b031614611a5b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611a7e57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ad75760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b09611c3d565b6001600160a01b031614611b2f5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611b5257604051630103019560e11b815260040160405180910390fd5b61012e548114610c2757600081815261012f60205260408120546001600160801b031690819003611b965760405163ddae3b7160e01b815260040160405180910390fd5b61013054611bad6001600160801b03831642612830565b11156111a057604051631d739acf60e11b815260040160405180910390fd5b611bd4611c59565b606580546001600160a01b0383166001600160a01b03199091168117909155611c056033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612923833981519152546001600160a01b031690565b6033546001600160a01b03163314611cb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104eb565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cfd5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d2f611c3d565b6001600160a01b031614611d555760405162461bcd60e51b81526004016104eb9061263d565b610c27611c59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d9557611d9083611f72565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611def575060408051601f3d908101601f19168201909252611dec918101906128a2565b60015b611e525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104eb565b6000805160206129238339815191528114611ec15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104eb565b50611d9083838361200e565b600054610100900460ff16611ef45760405162461bcd60e51b81526004016104eb906128bb565b611cb3612039565b60006010602060ff84168211801590611f1b57508060ff168460ff1611155b949350505050565b600054610100900460ff16611f4a5760405162461bcd60e51b81526004016104eb906128bb565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610c2781612070565b6001600160a01b0381163b611fdf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104eb565b60008051602061292383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612017836120c2565b6000825111806120245750805b15611d90576120338383612102565b50505050565b600054610100900460ff166120605760405162461bcd60e51b81526004016104eb906128bb565b6120686121f8565b611cb3612227565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120cb81611f72565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61216a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104eb565b600080846001600160a01b0316846040516121859190612906565b600060405180830381855af49150503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121ed82826040518060600160405280602781526020016129436027913961224e565b925050505b92915050565b600054610100900460ff1661221f5760405162461bcd60e51b81526004016104eb906128bb565b611cb3612267565b600054610100900460ff16611cb35760405162461bcd60e51b81526004016104eb906128bb565b6060831561225d575081610fcf565b610fcf8383612297565b600054610100900460ff1661228e5760405162461bcd60e51b81526004016104eb906128bb565b611cb333611f59565b8151156108575781518083602001fd5b6001600160a01b0381168114610c2757600080fd5b6000602082840312156122ce57600080fd5b8135610fcf816122a7565b8061010081018310156121f257600080fd5b803563ffffffff8116811461101857600080fd5b60008083601f84011261231157600080fd5b50813567ffffffffffffffff81111561232957600080fd5b6020830191508360208260051b850101111561234457600080fd5b9250929050565b600080600080600080610180878903121561236557600080fd5b61236f88886122d9565b9550610100870135945061238661012088016122eb565b935061014087013567ffffffffffffffff8111156123a357600080fd5b6123af89828a016122ff565b979a969950949794969561016090950135949350505050565b600080600080600061018086880312156123e157600080fd5b8535945060208601359350604086013592506060860135915061240787608088016122d9565b90509295509295909350565b600080600080600060a0868803121561242b57600080fd5b853560ff8116811461243c57600080fd5b9450602086013593506040860135612453816122a7565b92506060860135612463816122a7565b91506080860135612473816122a7565b809150509295509295909350565b60006020828403121561249357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156124d6576124d661249a565b6040525050565b600080604083850312156124f057600080fd5b82356124fb816122a7565b915060208381013567ffffffffffffffff8082111561251957600080fd5b818601915086601f83011261252d57600080fd5b81358181111561253f5761253f61249a565b6040519150612557601f8201601f19168501836124b0565b808252878482850101111561256b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806000608086880312156125a157600080fd5b6125aa866122eb565b94506020860135935060408601359250606086013567ffffffffffffffff8111156125d457600080fd5b6125e0888289016122ff565b969995985093965092949392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826126a657634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156126bd57600080fd5b8151610fcf816122a7565b61012081016101008085843782018360005b60018110156126f95781518352602092830192909101906001016126da565b5050509392505050565b600060033d11156110e85760046000803e5060005160e01c90565b600060443d101561272c5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561275c57505050505090565b82850191508151818111156127745750505050505090565b843d870101602082850101111561278e5750505050505090565b61279d602082860101876124b0565b509095945050505050565b60005b838110156127c35781810151838201526020016127ab565b50506000910152565b60208152600082518060208401526127eb8160408501602087016127a8565b601f01601f19169190910160400192915050565b61018081016101008085843782018360005b60048110156126f9578151835260209283019290910190600101612811565b818103818111156121f257634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561288657600080fd5b8260051b80856044850137919091016044019695505050505050565b6000602082840312156128b457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516129188184602087016127a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220773b014bcc7e739553d343f4e60ab5a377632dc6ff4f71e3d2a07d476a370d0b64736f6c63430008150033", + "sourceMap": "879:31345:43:-:0;;;1332:4:23;1289:48;;13484:281:43;;;;;;;;;-1:-1:-1;13736:22:43;:20;:22::i;:::-;879:31345;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:77;5987:66:22;;;198:21:77;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:77;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:77;;;6162:28:22;;552:2:77;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:77:-;879:31345:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6080604052600436106101665760003560e01c806379ba5097116100d1578063c70aa7271161008a578063f134b6ca11610064578063f134b6ca14610439578063f2038f951461044e578063f2358e1d14610463578063f2fde38b1461048357600080fd5b8063c70aa727146103e6578063d7b0fef114610406578063e30c39781461041b57600080fd5b806379ba5097146103235780638c76a909146103385780638da5cb5b146103585780638e5cdd501461038a5780638fc22e9f146103b1578063a7bba582146103c657600080fd5b80633f7c178d116101235780633f7c178d1461022d57806343f974cb1461027f5780634f1ef286146102a257806352d1902d146102b5578063561f204b146102ca578063715018a61461030e57600080fd5b80630e3a12f31461016b5780632217b2111461018d5780632f059fca146101ad578063354ca120146101cd5780633659cfe6146101ed57806338c870651461020d575b600080fd5b34801561017757600080fd5b5061018b6101863660046122bc565b6104a3565b005b34801561019957600080fd5b5061018b6101a836600461234b565b6105f1565b3480156101b957600080fd5b5061018b6101c83660046122bc565b6108fc565b3480156101d957600080fd5b5061018b6101e83660046123c8565b610a18565b3480156101f957600080fd5b5061018b6102083660046122bc565b610b62565b34801561021957600080fd5b5061018b610228366004612413565b610c2a565b34801561023957600080fd5b5061024d610248366004612481565b610e6c565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b34801561028b57600080fd5b5061029461101d565b604051908152602001610276565b61018b6102b03660046124dd565b6110eb565b3480156102c157600080fd5b506102946111a4565b3480156102d657600080fd5b50604080516060808201835260008083526020808401829052928401819052835191820184528082529181018290529182015261024d565b34801561031a57600080fd5b5061018b611257565b34801561032f57600080fd5b5061018b611278565b34801561034457600080fd5b50610294610353366004612589565b6112ef565b34801561036457600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561039657600080fd5b5061039f6113f2565b60405160ff9091168152602001610276565b3480156103bd57600080fd5b506103726114c9565b3480156103d257600080fd5b506103726103e13660046122bc565b61159f565b3480156103f257600080fd5b5061018b610401366004612481565b6116c1565b34801561041257600080fd5b50610294611816565b34801561042757600080fd5b506065546001600160a01b0316610372565b34801561044557600080fd5b506103726118e3565b34801561045a57600080fd5b506103726119b9565b34801561046f57600080fd5b5061018b61047e366004612481565b611a8f565b34801561048f57600080fd5b5061018b61049e3660046122bc565b611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104f45760405162461bcd60e51b81526004016104eb906125f1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610526611c3d565b6001600160a01b03161461054c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661056f57604051630103019560e11b815260040160405180910390fd5b610577611c59565b6001600160a01b03811661059e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066b611c3d565b6001600160a01b0316146106915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166106b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146106e25760405163472511eb60e11b81523360048201526024016104eb565b61012e5485146107145761012e5460405163542fced960e11b81526104eb918791600401918252602082015260400190565b600061072385878487876112ef565b905060006107517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612689565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c591906126ab565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610801918d91906004016126c8565b600060405180830381600087803b15801561081b57600080fd5b505af192505050801561082c575060015b61088c57610838612703565b806308c379a003610871575061084c61271e565b806108575750610873565b8060405162461bcd60e51b81526004016104eb91906127cc565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546fffffffffffffffffffffffffffffffff1916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109445760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610976611c3d565b6001600160a01b03161461099c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166109bf57604051630103019560e11b815260040160405180910390fd5b6109c7611c59565b6001600160a01b0381166109ee57604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016105c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a92611c3d565b6001600160a01b031614610ab85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610adb57604051630103019560e11b815260040160405180910390fd5b610ae485611a8f565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610b36918591906004016127ff565b60006040518083038186803b158015610b4e57600080fd5b505afa1580156108f1573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610baa5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611c3d565b6001600160a01b031614610c025760405162461bcd60e51b81526004016104eb9061263d565b610c0b81611cb5565b60408051600080825260208201909252610c2791839190611d5d565b50565b600054600190610100900460ff16158015610c4c575060005460ff8083169116105b610caf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104eb565b6000805461ffff191660ff8316176101001790556001600160a01b038416610cea57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610d1157604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610d385760405163baa3de5f60e01b815260040160405180910390fd5b610d40611ecd565b610d4986611efc565b610d6b57604051630220cee360e61b815260ff871660048201526024016104eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055610de7611f23565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ed15760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f03611c3d565b6001600160a01b031614610f295760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610f4c57604051630103019560e11b815260040160405180910390fd5b61012e548203610f7b5750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b031690819003610fd65760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b61013054600090610ff06001600160801b03841642612830565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110675760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611099611c3d565b6001600160a01b0316146110bf5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166110e257604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111335760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611165611c3d565b6001600160a01b03161461118b5760405162461bcd60e51b81526004016104eb9061263d565b61119482611cb5565b6111a082826001611d5d565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104eb565b5060008051602061292383398151915290565b61125f611c59565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146112e65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104eb565b610c2781611f59565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661136b611c3d565b6001600160a01b0316146113915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166113b457604051630103019560e11b815260040160405180910390fd5b600086868686866040516020016113cf959493929190612851565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361143c5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661146e611c3d565b6001600160a01b0316146114945760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166114b757604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115135760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611545611c3d565b6001600160a01b03161461156b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661158e57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115e95760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661161b611c3d565b6001600160a01b0316146116415760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661166457604051630103019560e11b815260040160405180910390fd5b61166c611c59565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117095760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661173b611c3d565b6001600160a01b0316146117615760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661178457604051630103019560e11b815260040160405180910390fd5b61178c611c59565b806000036117dc5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016104eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611892611c3d565b6001600160a01b0316146118b85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166118db57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361192d5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661195f611c3d565b6001600160a01b0316146119855760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166119a857604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a035760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a35611c3d565b6001600160a01b031614611a5b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611a7e57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ad75760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b09611c3d565b6001600160a01b031614611b2f5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611b5257604051630103019560e11b815260040160405180910390fd5b61012e548114610c2757600081815261012f60205260408120546001600160801b031690819003611b965760405163ddae3b7160e01b815260040160405180910390fd5b61013054611bad6001600160801b03831642612830565b11156111a057604051631d739acf60e11b815260040160405180910390fd5b611bd4611c59565b606580546001600160a01b0383166001600160a01b03199091168117909155611c056033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612923833981519152546001600160a01b031690565b6033546001600160a01b03163314611cb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104eb565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cfd5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d2f611c3d565b6001600160a01b031614611d555760405162461bcd60e51b81526004016104eb9061263d565b610c27611c59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d9557611d9083611f72565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611def575060408051601f3d908101601f19168201909252611dec918101906128a2565b60015b611e525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104eb565b6000805160206129238339815191528114611ec15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104eb565b50611d9083838361200e565b600054610100900460ff16611ef45760405162461bcd60e51b81526004016104eb906128bb565b611cb3612039565b60006010602060ff84168211801590611f1b57508060ff168460ff1611155b949350505050565b600054610100900460ff16611f4a5760405162461bcd60e51b81526004016104eb906128bb565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610c2781612070565b6001600160a01b0381163b611fdf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104eb565b60008051602061292383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612017836120c2565b6000825111806120245750805b15611d90576120338383612102565b50505050565b600054610100900460ff166120605760405162461bcd60e51b81526004016104eb906128bb565b6120686121f8565b611cb3612227565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120cb81611f72565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61216a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104eb565b600080846001600160a01b0316846040516121859190612906565b600060405180830381855af49150503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121ed82826040518060600160405280602781526020016129436027913961224e565b925050505b92915050565b600054610100900460ff1661221f5760405162461bcd60e51b81526004016104eb906128bb565b611cb3612267565b600054610100900460ff16611cb35760405162461bcd60e51b81526004016104eb906128bb565b6060831561225d575081610fcf565b610fcf8383612297565b600054610100900460ff1661228e5760405162461bcd60e51b81526004016104eb906128bb565b611cb333611f59565b8151156108575781518083602001fd5b6001600160a01b0381168114610c2757600080fd5b6000602082840312156122ce57600080fd5b8135610fcf816122a7565b8061010081018310156121f257600080fd5b803563ffffffff8116811461101857600080fd5b60008083601f84011261231157600080fd5b50813567ffffffffffffffff81111561232957600080fd5b6020830191508360208260051b850101111561234457600080fd5b9250929050565b600080600080600080610180878903121561236557600080fd5b61236f88886122d9565b9550610100870135945061238661012088016122eb565b935061014087013567ffffffffffffffff8111156123a357600080fd5b6123af89828a016122ff565b979a969950949794969561016090950135949350505050565b600080600080600061018086880312156123e157600080fd5b8535945060208601359350604086013592506060860135915061240787608088016122d9565b90509295509295909350565b600080600080600060a0868803121561242b57600080fd5b853560ff8116811461243c57600080fd5b9450602086013593506040860135612453816122a7565b92506060860135612463816122a7565b91506080860135612473816122a7565b809150509295509295909350565b60006020828403121561249357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156124d6576124d661249a565b6040525050565b600080604083850312156124f057600080fd5b82356124fb816122a7565b915060208381013567ffffffffffffffff8082111561251957600080fd5b818601915086601f83011261252d57600080fd5b81358181111561253f5761253f61249a565b6040519150612557601f8201601f19168501836124b0565b808252878482850101111561256b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806000608086880312156125a157600080fd5b6125aa866122eb565b94506020860135935060408601359250606086013567ffffffffffffffff8111156125d457600080fd5b6125e0888289016122ff565b969995985093965092949392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826126a657634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156126bd57600080fd5b8151610fcf816122a7565b61012081016101008085843782018360005b60018110156126f95781518352602092830192909101906001016126da565b5050509392505050565b600060033d11156110e85760046000803e5060005160e01c90565b600060443d101561272c5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561275c57505050505090565b82850191508151818111156127745750505050505090565b843d870101602082850101111561278e5750505050505090565b61279d602082860101876124b0565b509095945050505050565b60005b838110156127c35781810151838201526020016127ab565b50506000910152565b60208152600082518060208401526127eb8160408501602087016127a8565b601f01601f19169190910160400192915050565b61018081016101008085843782018360005b60048110156126f9578151835260209283019290910190600101612811565b818103818111156121f257634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561288657600080fd5b8260051b80856044850137919091016044019695505050505050565b6000602082840312156128b457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516129188184602087016127a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d633b870ce7639e47f939f23913c37dfc96a2846c751924ff2ef6c68d09aa72264736f6c63430008150033", - "sourceMap": "879:30959:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27081:492;;;;;;;;;;-1:-1:-1;27081:492:43;;;;;:::i;:::-;;:::i;:::-;;19019:2122;;;;;;;;;;-1:-1:-1;19019:2122:43;;;;;:::i;:::-;;:::i;25868:522::-;;;;;;;;;;-1:-1:-1;25868:522:43;;;;;:::i;:::-;;:::i;30701:499::-;;;;;;;;;;-1:-1:-1;30701:499:43;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;15045:1346:43:-;;;;;;;;;;-1:-1:-1;15045:1346:43;;;;;:::i;:::-;;:::i;23429:567::-;;;;;;;;;;-1:-1:-1;23429:567:43;;;;;:::i;:::-;;:::i;:::-;;;;4356:13:77;;4338:32;;4430:4;4418:17;;;4412:24;-1:-1:-1;;;;;4408:65:77;4386:20;;;4379:95;4532:17;;;4526:24;4519:32;4512:40;4490:20;;;4483:70;4326:2;4311:18;23429:567:43;;;;;;;;27749:189;;;;;;;;;;;;;:::i;:::-;;;4710:25:77;;;4698:2;4683:18;27749:189:43;4564:177:77;3763:222:23;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;7325:120:43:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;7325:120;;4649:109:45;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;22271:413:43:-;;;;;;;;;;-1:-1:-1;22271:413:43;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;;-1:-1:-1;;;;;7087:32:77;;;7069:51;;7057:2;7042:18;1441:85:18;6923:203:77;28716:119:43;;;;;;;;;;;;;:::i;:::-;;;7303:4:77;7291:17;;;7273:36;;7261:2;7246:18;28716:119:43;7131:184:77;25309:231:43;;;;;;;;;;;;;:::i;29482:384::-;;;;;;;;;;-1:-1:-1;29482:384:43;;;;;:::i;:::-;;:::i;28170:402::-;;;;;;;;;;-1:-1:-1;28170:402:43;;;;;:::i;:::-;;:::i;22812:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;29056:133:43;;;;;;;;;;;;;:::i;26573:205::-;;;;;;;;;;;;;:::i;24439:638::-;;;;;;;;;;-1:-1:-1;24439:638:43;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;27081:492:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;27252:34:43;::::3;27248:89;;27309:17;;-1:-1:-1::0;;;27309:17:43::3;;;;;;;;;;;27248:89;27380:17;::::0;;-1:-1:-1;;;;;27407:31:43;;::::3;-1:-1:-1::0;;;;;;27407:31:43;::::3;::::0;::::3;::::0;;;27380:17:::3;::::0;;27484:28:::3;27453:113;;::::0;::::3;::::0;;;::::3;27238:335;27081:492:::0;:::o;19019:2122::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;31743:17:43::2;::::0;-1:-1:-1;;;;;31743:17:43::2;31729:10;:31;31725:93;;31783:24;::::0;-1:-1:-1;;;31783:24:43;;31796:10:::2;31783:24;::::0;::::2;7069:51:77::0;7042:18;;31783:24:43::2;6923:203:77::0;31725:93:43::2;19310:11:::3;;19299:7;:22;19295:95;;19367:11;::::0;19344:35:::3;::::0;-1:-1:-1;;;19344:35:43;;::::3;::::0;19358:7;;19344:35:::3;;8452:25:77::0;;;8508:2;8493:18;;8486:34;8440:2;8425:18;;8278:248;19295:95:43::3;19480:17;19500:112;19552:10;19564:7;19573:8;19583:19;;19500:38;:112::i;:::-;19480:132:::0;-1:-1:-1;19911:22:43::3;19936:39;4362:77;19480:132:::0;19936:39:::3;:::i;:::-;20105:23;::::0;:66:::3;::::0;-1:-1:-1;;;20105:66:43;;::::3;::::0;::::3;4710:25:77::0;;;19911:64:43;;-1:-1:-1;20059:31:43::3;::::0;-1:-1:-1;;;;;20105:23:43;;::::3;::::0;:38:::3;::::0;4683:18:77;;20105:66:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20240:63;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;20240:63:43;;20059:112;;-1:-1:-1;;;;;;20240:29:43;::::3;::::0;::::3;::::0;:63:::3;::::0;20270:14;;20240:63;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;20236:899;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;20887:9;20880:17;;-1:-1:-1::0;;;20880:17:43::3;;;;;;;;:::i;20236:899::-;;;21100:24;;-1:-1:-1::0;;;21100:24:43::3;;;;;;;;;;;20236:899;20472:11;:22:::0;;;20640:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;20640:47:43::3;20671:15;-1:-1:-1::0;;;;;20640:47:43::3;;::::0;;20472:22;;20707:52:::3;::::0;20719:7;;20707:52:::3;::::0;;;::::3;20236:899;19285:1856;;;19019:2122:::0;;;;;;:::o;25868:522::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;26057:31:43;::::3;26053:89;;26111:20;;-1:-1:-1::0;;;26111:20:43::3;;;;;;;;;;;26053:89;26183:23;::::0;;-1:-1:-1;;;;;26216:34:43;;::::3;-1:-1:-1::0;;;;;;26216:34:43;::::3;::::0;::::3;::::0;;;26183:23:::3;::::0;;;26265:118:::3;::::0;30701:499;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;30989:22:43::2;31006:4;30989:16;:22::i;:::-;31077:17;::::0;:116:::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;31077:116:43;;-1:-1:-1;;;;;31077:17:43;;::::2;::::0;:29:::2;::::0;:116:::2;::::0;31120:5;;31077:116;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;15045:1346:43:-;4871:13:22;;15299:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;12061:2:77;4862:99:22;;;12043:21:77;12100:2;12080:18;;;12073:30;12139:34;12119:18;;;12112:62;-1:-1:-1;;;12190:18:77;;;12183:44;12244:19;;4862:99:22;11859:410:77;4862:99:22;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;15316:47:43;::::1;15312:105;;15386:20;;-1:-1:-1::0;;;15386:20:43::1;;;;;;;;;;;15312:105;-1:-1:-1::0;;;;;15431:44:43;::::1;15427:102;;15498:20;;-1:-1:-1::0;;;15498:20:43::1;;;;;;;;;;;15427:102;-1:-1:-1::0;;;;;15543:41:43;::::1;15539:96;;15607:17;;-1:-1:-1::0;;;15607:17:43::1;;;;;;;;;;;15539:96;15719:16;:14;:16::i;:::-;15751:48;15788:10;15751:36;:48::i;:::-;15746:119;;15822:32;::::0;-1:-1:-1;;;15822:32:43;;7303:4:77;7291:17;;15822:32:43::1;::::0;::::1;7273:36:77::0;7246:18;;15822:32:43::1;7131:184:77::0;15746:119:43::1;15932:9;:22:::0;;-1:-1:-1;;;;15932:22:43::1;-1:-1:-1::0;;;15932:22:43::1;::::0;::::1;;;::::0;;15984:7:::1;15964:17;:27:::0;16001:11:::1;:25:::0;;;16036:23:::1;:50:::0;;-1:-1:-1;;;;;;16036:50:43;;::::1;-1:-1:-1::0;;;;;16036:50:43;;::::1;::::0;;;::::1;::::0;;;16096:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;16153:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;16201:17:43::1;:27:::0;;1513:6:18;;;;16201:27:43;::::1;;::::0;;16288:18:::1;:16;:18::i;:::-;16322:62;::::0;;12474:4:77;12462:17;;12444:36;;12511:2;12496:18;;12489:34;;;16322:62:43::1;::::0;12417:18:77;16322:62:43::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;7303:4:77;7291:17;;7273:36;;5080:20:22;;7261:2:77;7246:18;5080:20:22;;;;;;;15045:1346:43;;;;;;:::o;23429:567::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;23608:11:43::2;;23600:4;:19:::0;23596:394:::2;;-1:-1:-1::0;;23642:30:43::2;::::0;;::::2;::::0;::::2;::::0;;23651:11:::2;::::0;23642:30;;-1:-1:-1;23642:30:43::2;::::0;::::2;::::0;23667:4:::2;23642:30:::0;;;;;;;;23429:567::o;23596:394::-:2;23703:21;23727:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;23727:17:43::2;::::0;23763:18;;;23759:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;23808:14:::2;23801:21:::0;23429:567;-1:-1:-1;;;23429:567:43:o;23759:78::-:2;23902:17;::::0;23851:12:::2;::::0;23868:31:::2;-1:-1:-1::0;;;;;23868:31:43;::::2;:15;:31;:::i;:::-;23941:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;23941:38:43;;::::2;;::::0;::::2;::::0;23868:51;-1:-1:-1;23866:54:43::2;23941:38:::0;;;;-1:-1:-1;23941:38:43;-1:-1:-1;23596:394:43::2;23429:567:::0;;;:::o;27749:189::-;27884:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;27914:17:43::2;::::0;1144:1:74::2;27749:189:43::0;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;12966:2:77;2308:92:23;;;12948:21:77;13005:2;12985:18;;;12978:30;13044:34;13024:18;;;13017:62;13115:26;13095:18;;;13088:54;13159:19;;2308:92:23;12764:420:77;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;4649:109:45:-;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;13391:2:77;2095:78:17;;;13373:21:77;13430:2;13410:18;;;13403:30;13469:34;13449:18;;;13442:62;-1:-1:-1;;;13520:18:77;;;13513:39;13569:19;;2095:78:17;13189:405:77;2095:78:17;2183:26;2202:6;2183:18;:26::i;22271:413:43:-;22506:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;22530:24:43::2;22586:10;22598:7;22607:8;22617:19;;22569:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22569:68:43;;::::2;::::0;;;;;;22655:22;;22569:68:::2;22655:22:::0;;::::2;::::0;;22271:413;-1:-1:-1;;;;;;;22271:413:43:o;28716:119::-;28795:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;28819:9:43::2;::::0;-1:-1:-1;;;28819:9:43;::::2;;;::::0;28716:119::o;25309:231::-;25471:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;25509:23:43::2;::::0;-1:-1:-1;;;;;25509:23:43::2;25309:231:::0;:::o;29482:384::-;29648:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;29693:17:43::3;::::0;;-1:-1:-1;;;;;29720:39:43;;::::3;-1:-1:-1::0;;;;;;29720:39:43;::::3;::::0;::::3;::::0;;;29774:57:::3;::::0;29693:17;::::3;::::0;29720:39;29693:17;;29774:57:::3;::::0;29671:19:::3;::::0;29774:57:::3;29848:11:::0;29482:384;-1:-1:-1;;29482:384:43:o;28170:402::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;28332::43::3;28349:1;28332:18:::0;28328:86:::3;;28366:37;::::0;-1:-1:-1;;;28366:37:43;;14401:2:77;28366:37:43::3;::::0;::::3;14383:21:77::0;14440:2;14420:18;;;14413:30;14479:29;14459:18;;;14452:57;14526:18;;28366:37:43::3;14199:351:77::0;28328:86:43::3;28443:17;::::0;;28470:33;;;;28519:46:::3;::::0;28490:13;;28443:17;;28519:46:::3;::::0;28423:17:::3;::::0;28519:46:::3;28318:254;28170:402:::0;:::o;22812:121::-;22889:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;22915:11:43::2;::::0;22812:121;:::o;29056:133::-;29139:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29165:17:43::2;::::0;-1:-1:-1;;;;;29165:17:43::2;29056:133:::0;:::o;26573:205::-;26715:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;26753:17:43::2;::::0;-1:-1:-1;;;;;26753:17:43::2;26573:205:::0;:::o;24439:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;24591:11:43::2;::::0;24579:56;;24618:7:::2;24579:56;24710:21;24734:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;24734:17:43::2;::::0;24834:18;;;24830:73:::2;;24875:17;;-1:-1:-1::0;;;24875:17:43::2;;;;;;;;;;;24830:73;25007:17;::::0;24973:31:::2;-1:-1:-1::0;;;;;24973:31:43;::::2;:15;:31;:::i;:::-;:51;24969:102;;;25047:13;;-1:-1:-1::0;;;25047:13:43::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;14757:2:77;1654:68:18;;;14739:21:77;;;14776:18;;;14769:30;14835:34;14815:18;;;14808:62;14887:18;;1654:68:18;14555:356:77;1654:68:18;1599:130::o;4067:204:45:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;15307:2:77;3758:56:20;;;15289:21:77;15346:2;15326:18;;;15319:30;15385:34;15365:18;;;15358:62;-1:-1:-1;;;15436:18:77;;;15429:44;15490:19;;3758:56:20;15105:410:77;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;15722:2:77;3636:82:20;;;15704:21:77;15761:2;15741:18;;;15734:30;15800:34;15780:18;;;15773:62;-1:-1:-1;;;15851:18:77;;;15844:39;15900:19;;3636:82:20;15520:405:77;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;16725:97:43:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;16795:20:43::1;:18;:20::i;434:207:75:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:75;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:75:o;794:90:74:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:74::1;:19:::0;;-1:-1:-1;;858:19:74::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;16544:2:77;1878:106:20;;;16526:21:77;16583:2;16563:18;;;16556:30;16622:34;16602:18;;;16595:62;-1:-1:-1;;;16673:18:77;;;16666:43;16726:19;;1878:106:20;16342:409:77;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;16958:2:77;7195:88:20;;;16940:21:77;16997:2;16977:18;;;16970:30;17036:34;17016:18;;;17009:62;-1:-1:-1;;;17087:18:77;;;17080:36;17133:19;;7195:88:20;16756:402:77;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:77;-1:-1:-1;;;;;109:31:77;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:77;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:77;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:77;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:77:o;2254:509::-;2374:6;2382;2390;2398;2406;2459:3;2447:9;2438:7;2434:23;2430:33;2427:53;;;2476:1;2473;2466:12;2427:53;2512:9;2499:23;2489:33;;2569:2;2558:9;2554:18;2541:32;2531:42;;2620:2;2609:9;2605:18;2592:32;2582:42;;2671:2;2660:9;2656:18;2643:32;2633:42;;2694:63;2749:7;2743:3;2732:9;2728:19;2694:63;:::i;:::-;2684:73;;2254:509;;;;;;;;:::o;3040:908::-;3219:6;3227;3235;3243;3251;3304:3;3292:9;3283:7;3279:23;3275:33;3272:53;;;3321:1;3318;3311:12;3272:53;3360:9;3347:23;3410:4;3403:5;3399:16;3392:5;3389:27;3379:55;;3430:1;3427;3420:12;3379:55;3453:5;-1:-1:-1;3505:2:77;3490:18;;3477:32;;-1:-1:-1;3561:2:77;3546:18;;3533:32;3574:53;3533:32;3574:53;:::i;:::-;3646:7;-1:-1:-1;3705:2:77;3690:18;;3677:32;3718:53;3677:32;3718:53;:::i;:::-;3790:7;-1:-1:-1;3849:3:77;3834:19;;3821:33;3863:53;3821:33;3863:53;:::i;:::-;3935:7;3925:17;;;3040:908;;;;;;;;:::o;3953:180::-;4012:6;4065:2;4053:9;4044:7;4040:23;4036:32;4033:52;;;4081:1;4078;4071:12;4033:52;-1:-1:-1;4104:23:77;;3953:180;-1:-1:-1;3953:180:77:o;4746:127::-;4807:10;4802:3;4798:20;4795:1;4788:31;4838:4;4835:1;4828:15;4862:4;4859:1;4852:15;4878:249;4988:2;4969:13;;-1:-1:-1;;4965:27:77;4953:40;;5023:18;5008:34;;5044:22;;;5005:62;5002:88;;;5070:18;;:::i;:::-;5106:2;5099:22;-1:-1:-1;;4878:249:77:o;5132:953::-;5209:6;5217;5270:2;5258:9;5249:7;5245:23;5241:32;5238:52;;;5286:1;5283;5276:12;5238:52;5325:9;5312:23;5344:51;5389:5;5344:51;:::i;:::-;5414:5;-1:-1:-1;5438:2:77;5476:18;;;5463:32;5514:18;5544:14;;;5541:34;;;5571:1;5568;5561:12;5541:34;5609:6;5598:9;5594:22;5584:32;;5654:7;5647:4;5643:2;5639:13;5635:27;5625:55;;5676:1;5673;5666:12;5625:55;5712:2;5699:16;5734:2;5730;5727:10;5724:36;;;5740:18;;:::i;:::-;5789:2;5783:9;;-1:-1:-1;5801:65:77;5856:2;5837:13;;-1:-1:-1;;5833:27:77;5829:36;;5783:9;5801:65;:::i;:::-;5890:2;5882:6;5875:18;5930:7;5925:2;5920;5916;5912:11;5908:20;5905:33;5902:53;;;5951:1;5948;5941:12;5902:53;6007:2;6002;5998;5994:11;5989:2;5981:6;5977:15;5964:46;6052:1;6047:2;6042;6034:6;6030:15;6026:24;6019:35;;6073:6;6063:16;;;;;5132:953;;;;;:::o;6272:646::-;6384:6;6392;6400;6408;6416;6469:3;6457:9;6448:7;6444:23;6440:33;6437:53;;;6486:1;6483;6476:12;6437:53;6509:28;6527:9;6509:28;:::i;:::-;6499:38;;6584:2;6573:9;6569:18;6556:32;6546:42;;6635:2;6624:9;6620:18;6607:32;6597:42;;6690:2;6679:9;6675:18;6662:32;6717:18;6709:6;6706:30;6703:50;;;6749:1;6746;6739:12;6703:50;6788:70;6850:7;6841:6;6830:9;6826:22;6788:70;:::i;:::-;6272:646;;;;-1:-1:-1;6272:646:77;;-1:-1:-1;6877:8:77;;6762:96;6272:646;-1:-1:-1;;;6272:646:77:o;7320:408::-;7522:2;7504:21;;;7561:2;7541:18;;;7534:30;7600:34;7595:2;7580:18;;7573:62;-1:-1:-1;;;7666:2:77;7651:18;;7644:42;7718:3;7703:19;;7320:408::o;7733:::-;7935:2;7917:21;;;7974:2;7954:18;;;7947:30;8013:34;8008:2;7993:18;;7986:62;-1:-1:-1;;;8079:2:77;8064:18;;8057:42;8131:3;8116:19;;7733:408::o;8531:209::-;8563:1;8589;8579:132;;8633:10;8628:3;8624:20;8621:1;8614:31;8668:4;8665:1;8658:15;8696:4;8693:1;8686:15;8579:132;-1:-1:-1;8725:9:77;;8531:209::o;8745:294::-;8838:6;8891:2;8879:9;8870:7;8866:23;8862:32;8859:52;;;8907:1;8904;8897:12;8859:52;8939:9;8933:16;8958:51;9003:5;8958:51;:::i;9044:646::-;9300:3;9285:19;;9323:6;;9362;9289:9;9338:35;9393:18;;9453:6;9477:1;9487:197;9501:4;9498:1;9495:11;9487:197;;;9563:13;;9551:26;;9600:4;9624:12;;;;9659:15;;;;9521:4;9514:12;9487:197;;;9491:3;;;9044:646;;;;;:::o;9695:179::-;9730:3;9772:1;9754:16;9751:23;9748:120;;;9818:1;9815;9812;9797:23;-1:-1:-1;9855:1:77;9849:8;9844:3;9840:18;9695:179;:::o;9879:671::-;9918:3;9960:4;9942:16;9939:26;9936:39;;;9879:671;:::o;9936:39::-;10002:2;9996:9;-1:-1:-1;;10067:16:77;10063:25;;10060:1;9996:9;10039:50;10118:4;10112:11;10142:16;10177:18;10248:2;10241:4;10233:6;10229:17;10226:25;10221:2;10213:6;10210:14;10207:45;10204:58;;;10255:5;;;;;9879:671;:::o;10204:58::-;10292:6;10286:4;10282:17;10271:28;;10328:3;10322:10;10355:2;10347:6;10344:14;10341:27;;;10361:5;;;;;;9879:671;:::o;10341:27::-;10445:2;10426:16;10420:4;10416:27;10412:36;10405:4;10396:6;10391:3;10387:16;10383:27;10380:69;10377:82;;;10452:5;;;;;;9879:671;:::o;10377:82::-;10468:57;10519:4;10510:6;10502;10498:19;10494:30;10488:4;10468:57;:::i;:::-;-1:-1:-1;10541:3:77;;9879:671;-1:-1:-1;;;;;9879:671:77:o;10555:250::-;10640:1;10650:113;10664:6;10661:1;10658:13;10650:113;;;10740:11;;;10734:18;10721:11;;;10714:39;10686:2;10679:10;10650:113;;;-1:-1:-1;;10797:1:77;10779:16;;10772:27;10555:250::o;10810:396::-;10959:2;10948:9;10941:21;10922:4;10991:6;10985:13;11034:6;11029:2;11018:9;11014:18;11007:34;11050:79;11122:6;11117:2;11106:9;11102:18;11097:2;11089:6;11085:15;11050:79;:::i;:::-;11190:2;11169:15;-1:-1:-1;;11165:29:77;11150:45;;;;11197:2;11146:54;;10810:396;-1:-1:-1;;10810:396:77:o;11211:643::-;11467:3;11452:19;;11490:6;;11529;11456:9;11505:35;11560:18;;11620:6;11644:1;11654:194;11668:4;11665:1;11662:11;11654:194;;;11727:13;;11715:26;;11764:4;11788:12;;;;11823:15;;;;11688:1;11681:9;11654:194;;12534:225;12601:9;;;12622:11;;;12619:134;;;12675:10;12670:3;12666:20;12663:1;12656:31;12710:4;12707:1;12700:15;12738:4;12735:1;12728:15;13599:595;13908:3;13886:16;;;-1:-1:-1;;;;;;13882:43:77;13870:56;;13951:1;13942:11;;13935:27;;;13987:2;13978:12;;13971:28;;;-1:-1:-1;;;;;;14011:31:77;;14008:51;;;14055:1;14052;14045:12;14008:51;14089:6;14086:1;14082:14;14140:6;14132;14127:2;14122:3;14118:12;14105:42;14167:16;;;;14185:2;14163:25;;13599:595;-1:-1:-1;;;;;;13599:595:77:o;14916:184::-;14986:6;15039:2;15027:9;15018:7;15014:23;15010:32;15007:52;;;15055:1;15052;15045:12;15007:52;-1:-1:-1;15078:16:77;;14916:184;-1:-1:-1;14916:184:77:o;15930:407::-;16132:2;16114:21;;;16171:2;16151:18;;;16144:30;16210:34;16205:2;16190:18;;16183:62;-1:-1:-1;;;16276:2:77;16261:18;;16254:41;16327:3;16312:19;;15930:407::o;17163:287::-;17292:3;17330:6;17324:13;17346:66;17405:6;17400:3;17393:4;17385:6;17381:17;17346:66;:::i;:::-;17428:16;;;;;17163:287;-1:-1:-1;;17163:287:77:o", + "object": "0x6080604052600436106101665760003560e01c806379ba5097116100d1578063c70aa7271161008a578063f134b6ca11610064578063f134b6ca14610439578063f2038f951461044e578063f2358e1d14610463578063f2fde38b1461048357600080fd5b8063c70aa727146103e6578063d7b0fef114610406578063e30c39781461041b57600080fd5b806379ba5097146103235780638c76a909146103385780638da5cb5b146103585780638e5cdd501461038a5780638fc22e9f146103b1578063a7bba582146103c657600080fd5b80633f7c178d116101235780633f7c178d1461022d57806343f974cb1461027f5780634f1ef286146102a257806352d1902d146102b5578063561f204b146102ca578063715018a61461030e57600080fd5b80630e3a12f31461016b5780632217b2111461018d5780632f059fca146101ad578063354ca120146101cd5780633659cfe6146101ed57806338c870651461020d575b600080fd5b34801561017757600080fd5b5061018b6101863660046122bc565b6104a3565b005b34801561019957600080fd5b5061018b6101a836600461234b565b6105f1565b3480156101b957600080fd5b5061018b6101c83660046122bc565b6108fc565b3480156101d957600080fd5b5061018b6101e83660046123c8565b610a18565b3480156101f957600080fd5b5061018b6102083660046122bc565b610b62565b34801561021957600080fd5b5061018b610228366004612413565b610c2a565b34801561023957600080fd5b5061024d610248366004612481565b610e6c565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b34801561028b57600080fd5b5061029461101d565b604051908152602001610276565b61018b6102b03660046124dd565b6110eb565b3480156102c157600080fd5b506102946111a4565b3480156102d657600080fd5b50604080516060808201835260008083526020808401829052928401819052835191820184528082529181018290529182015261024d565b34801561031a57600080fd5b5061018b611257565b34801561032f57600080fd5b5061018b611278565b34801561034457600080fd5b50610294610353366004612589565b6112ef565b34801561036457600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561039657600080fd5b5061039f6113f2565b60405160ff9091168152602001610276565b3480156103bd57600080fd5b506103726114c9565b3480156103d257600080fd5b506103726103e13660046122bc565b61159f565b3480156103f257600080fd5b5061018b610401366004612481565b6116c1565b34801561041257600080fd5b50610294611816565b34801561042757600080fd5b506065546001600160a01b0316610372565b34801561044557600080fd5b506103726118e3565b34801561045a57600080fd5b506103726119b9565b34801561046f57600080fd5b5061018b61047e366004612481565b611a8f565b34801561048f57600080fd5b5061018b61049e3660046122bc565b611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104f45760405162461bcd60e51b81526004016104eb906125f1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610526611c3d565b6001600160a01b03161461054c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661056f57604051630103019560e11b815260040160405180910390fd5b610577611c59565b6001600160a01b03811661059e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066b611c3d565b6001600160a01b0316146106915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166106b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146106e25760405163472511eb60e11b81523360048201526024016104eb565b61012e5485146107145761012e5460405163542fced960e11b81526104eb918791600401918252602082015260400190565b600061072385878487876112ef565b905060006107517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612689565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c591906126ab565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610801918d91906004016126c8565b600060405180830381600087803b15801561081b57600080fd5b505af192505050801561082c575060015b61088c57610838612703565b806308c379a003610871575061084c61271e565b806108575750610873565b8060405162461bcd60e51b81526004016104eb91906127cc565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546fffffffffffffffffffffffffffffffff1916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109445760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610976611c3d565b6001600160a01b03161461099c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166109bf57604051630103019560e11b815260040160405180910390fd5b6109c7611c59565b6001600160a01b0381166109ee57604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016105c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a92611c3d565b6001600160a01b031614610ab85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610adb57604051630103019560e11b815260040160405180910390fd5b610ae485611a8f565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610b36918591906004016127ff565b60006040518083038186803b158015610b4e57600080fd5b505afa1580156108f1573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610baa5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611c3d565b6001600160a01b031614610c025760405162461bcd60e51b81526004016104eb9061263d565b610c0b81611cb5565b60408051600080825260208201909252610c2791839190611d5d565b50565b600054600190610100900460ff16158015610c4c575060005460ff8083169116105b610caf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104eb565b6000805461ffff191660ff8316176101001790556001600160a01b038416610cea57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610d1157604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610d385760405163baa3de5f60e01b815260040160405180910390fd5b610d40611ecd565b610d4986611efc565b610d6b57604051630220cee360e61b815260ff871660048201526024016104eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055610de7611f23565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ed15760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f03611c3d565b6001600160a01b031614610f295760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610f4c57604051630103019560e11b815260040160405180910390fd5b61012e548203610f7b5750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b031690819003610fd65760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b61013054600090610ff06001600160801b03841642612830565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110675760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611099611c3d565b6001600160a01b0316146110bf5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166110e257604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111335760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611165611c3d565b6001600160a01b03161461118b5760405162461bcd60e51b81526004016104eb9061263d565b61119482611cb5565b6111a082826001611d5d565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104eb565b5060008051602061292383398151915290565b61125f611c59565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146112e65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104eb565b610c2781611f59565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661136b611c3d565b6001600160a01b0316146113915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166113b457604051630103019560e11b815260040160405180910390fd5b600086868686866040516020016113cf959493929190612851565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361143c5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661146e611c3d565b6001600160a01b0316146114945760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166114b757604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115135760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611545611c3d565b6001600160a01b03161461156b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661158e57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115e95760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661161b611c3d565b6001600160a01b0316146116415760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661166457604051630103019560e11b815260040160405180910390fd5b61166c611c59565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117095760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661173b611c3d565b6001600160a01b0316146117615760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661178457604051630103019560e11b815260040160405180910390fd5b61178c611c59565b806000036117dc5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016104eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611892611c3d565b6001600160a01b0316146118b85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166118db57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361192d5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661195f611c3d565b6001600160a01b0316146119855760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166119a857604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a035760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a35611c3d565b6001600160a01b031614611a5b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611a7e57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ad75760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b09611c3d565b6001600160a01b031614611b2f5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611b5257604051630103019560e11b815260040160405180910390fd5b61012e548114610c2757600081815261012f60205260408120546001600160801b031690819003611b965760405163ddae3b7160e01b815260040160405180910390fd5b61013054611bad6001600160801b03831642612830565b11156111a057604051631d739acf60e11b815260040160405180910390fd5b611bd4611c59565b606580546001600160a01b0383166001600160a01b03199091168117909155611c056033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612923833981519152546001600160a01b031690565b6033546001600160a01b03163314611cb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104eb565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cfd5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d2f611c3d565b6001600160a01b031614611d555760405162461bcd60e51b81526004016104eb9061263d565b610c27611c59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d9557611d9083611f72565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611def575060408051601f3d908101601f19168201909252611dec918101906128a2565b60015b611e525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104eb565b6000805160206129238339815191528114611ec15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104eb565b50611d9083838361200e565b600054610100900460ff16611ef45760405162461bcd60e51b81526004016104eb906128bb565b611cb3612039565b60006010602060ff84168211801590611f1b57508060ff168460ff1611155b949350505050565b600054610100900460ff16611f4a5760405162461bcd60e51b81526004016104eb906128bb565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610c2781612070565b6001600160a01b0381163b611fdf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104eb565b60008051602061292383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612017836120c2565b6000825111806120245750805b15611d90576120338383612102565b50505050565b600054610100900460ff166120605760405162461bcd60e51b81526004016104eb906128bb565b6120686121f8565b611cb3612227565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120cb81611f72565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61216a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104eb565b600080846001600160a01b0316846040516121859190612906565b600060405180830381855af49150503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121ed82826040518060600160405280602781526020016129436027913961224e565b925050505b92915050565b600054610100900460ff1661221f5760405162461bcd60e51b81526004016104eb906128bb565b611cb3612267565b600054610100900460ff16611cb35760405162461bcd60e51b81526004016104eb906128bb565b6060831561225d575081610fcf565b610fcf8383612297565b600054610100900460ff1661228e5760405162461bcd60e51b81526004016104eb906128bb565b611cb333611f59565b8151156108575781518083602001fd5b6001600160a01b0381168114610c2757600080fd5b6000602082840312156122ce57600080fd5b8135610fcf816122a7565b8061010081018310156121f257600080fd5b803563ffffffff8116811461101857600080fd5b60008083601f84011261231157600080fd5b50813567ffffffffffffffff81111561232957600080fd5b6020830191508360208260051b850101111561234457600080fd5b9250929050565b600080600080600080610180878903121561236557600080fd5b61236f88886122d9565b9550610100870135945061238661012088016122eb565b935061014087013567ffffffffffffffff8111156123a357600080fd5b6123af89828a016122ff565b979a969950949794969561016090950135949350505050565b600080600080600061018086880312156123e157600080fd5b8535945060208601359350604086013592506060860135915061240787608088016122d9565b90509295509295909350565b600080600080600060a0868803121561242b57600080fd5b853560ff8116811461243c57600080fd5b9450602086013593506040860135612453816122a7565b92506060860135612463816122a7565b91506080860135612473816122a7565b809150509295509295909350565b60006020828403121561249357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156124d6576124d661249a565b6040525050565b600080604083850312156124f057600080fd5b82356124fb816122a7565b915060208381013567ffffffffffffffff8082111561251957600080fd5b818601915086601f83011261252d57600080fd5b81358181111561253f5761253f61249a565b6040519150612557601f8201601f19168501836124b0565b808252878482850101111561256b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806000608086880312156125a157600080fd5b6125aa866122eb565b94506020860135935060408601359250606086013567ffffffffffffffff8111156125d457600080fd5b6125e0888289016122ff565b969995985093965092949392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826126a657634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156126bd57600080fd5b8151610fcf816122a7565b61012081016101008085843782018360005b60018110156126f95781518352602092830192909101906001016126da565b5050509392505050565b600060033d11156110e85760046000803e5060005160e01c90565b600060443d101561272c5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561275c57505050505090565b82850191508151818111156127745750505050505090565b843d870101602082850101111561278e5750505050505090565b61279d602082860101876124b0565b509095945050505050565b60005b838110156127c35781810151838201526020016127ab565b50506000910152565b60208152600082518060208401526127eb8160408501602087016127a8565b601f01601f19169190910160400192915050565b61018081016101008085843782018360005b60048110156126f9578151835260209283019290910190600101612811565b818103818111156121f257634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561288657600080fd5b8260051b80856044850137919091016044019695505050505050565b6000602082840312156128b457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516129188184602087016127a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220773b014bcc7e739553d343f4e60ab5a377632dc6ff4f71e3d2a07d476a370d0b64736f6c63430008150033", + "sourceMap": "879:31345:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27467:492;;;;;;;;;;-1:-1:-1;27467:492:43;;;;;:::i;:::-;;:::i;:::-;;19237:2122;;;;;;;;;;-1:-1:-1;19237:2122:43;;;;;:::i;:::-;;:::i;26170:522::-;;;;;;;;;;-1:-1:-1;26170:522:43;;;;;:::i;:::-;;:::i;31087:499::-;;;;;;;;;;-1:-1:-1;31087:499:43;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;15263:1346:43:-;;;;;;;;;;-1:-1:-1;15263:1346:43;;;;;:::i;:::-;;:::i;23647:567::-;;;;;;;;;;-1:-1:-1;23647:567:43;;;;;:::i;:::-;;:::i;:::-;;;;4356:13:77;;4338:32;;4430:4;4418:17;;;4412:24;-1:-1:-1;;;;;4408:65:77;4386:20;;;4379:95;4532:17;;;4526:24;4519:32;4512:40;4490:20;;;4483:70;4326:2;4311:18;23647:567:43;;;;;;;;28135:189;;;;;;;;;;;;;:::i;:::-;;;4710:25:77;;;4698:2;4683:18;28135:189:43;4564:177:77;3763:222:23;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;7325:120:43:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;7325:120;;4649:109:45;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;22489:413:43:-;;;;;;;;;;-1:-1:-1;22489:413:43;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;;-1:-1:-1;;;;;7087:32:77;;;7069:51;;7057:2;7042:18;1441:85:18;6923:203:77;29102:119:43;;;;;;;;;;;;;:::i;:::-;;;7303:4:77;7291:17;;;7273:36;;7261:2;7246:18;29102:119:43;7131:184:77;25527:231:43;;;;;;;;;;;;;:::i;29868:384::-;;;;;;;;;;-1:-1:-1;29868:384:43;;;;;:::i;:::-;;:::i;28556:402::-;;;;;;;;;;-1:-1:-1;28556:402:43;;;;;:::i;:::-;;:::i;23030:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;29442:133:43;;;;;;;;;;;;;:::i;26875:205::-;;;;;;;;;;;;;:::i;24657:638::-;;;;;;;;;;-1:-1:-1;24657:638:43;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;27467:492:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;27638:34:43;::::3;27634:89;;27695:17;;-1:-1:-1::0;;;27695:17:43::3;;;;;;;;;;;27634:89;27766:17;::::0;;-1:-1:-1;;;;;27793:31:43;;::::3;-1:-1:-1::0;;;;;;27793:31:43;::::3;::::0;::::3;::::0;;;27766:17:::3;::::0;;27870:28:::3;27839:113;;::::0;::::3;::::0;;;::::3;27624:335;27467:492:::0;:::o;19237:2122::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;32129:17:43::2;::::0;-1:-1:-1;;;;;32129:17:43::2;32115:10;:31;32111:93;;32169:24;::::0;-1:-1:-1;;;32169:24:43;;32182:10:::2;32169:24;::::0;::::2;7069:51:77::0;7042:18;;32169:24:43::2;6923:203:77::0;32111:93:43::2;19528:11:::3;;19517:7;:22;19513:95;;19585:11;::::0;19562:35:::3;::::0;-1:-1:-1;;;19562:35:43;;::::3;::::0;19576:7;;19562:35:::3;;8452:25:77::0;;;8508:2;8493:18;;8486:34;8440:2;8425:18;;8278:248;19513:95:43::3;19698:17;19718:112;19770:10;19782:7;19791:8;19801:19;;19718:38;:112::i;:::-;19698:132:::0;-1:-1:-1;20129:22:43::3;20154:39;4362:77;19698:132:::0;20154:39:::3;:::i;:::-;20323:23;::::0;:66:::3;::::0;-1:-1:-1;;;20323:66:43;;::::3;::::0;::::3;4710:25:77::0;;;20129:64:43;;-1:-1:-1;20277:31:43::3;::::0;-1:-1:-1;;;;;20323:23:43;;::::3;::::0;:38:::3;::::0;4683:18:77;;20323:66:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20458:63;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;20458:63:43;;20277:112;;-1:-1:-1;;;;;;20458:29:43;::::3;::::0;::::3;::::0;:63:::3;::::0;20488:14;;20458:63;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;20454:899;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;21105:9;21098:17;;-1:-1:-1::0;;;21098:17:43::3;;;;;;;;:::i;20454:899::-;;;21318:24;;-1:-1:-1::0;;;21318:24:43::3;;;;;;;;;;;20454:899;20690:11;:22:::0;;;20858:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;20858:47:43::3;20889:15;-1:-1:-1::0;;;;;20858:47:43::3;;::::0;;20690:22;;20925:52:::3;::::0;20937:7;;20925:52:::3;::::0;;;::::3;20454:899;19503:1856;;;19237:2122:::0;;;;;;:::o;26170:522::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;26359:31:43;::::3;26355:89;;26413:20;;-1:-1:-1::0;;;26413:20:43::3;;;;;;;;;;;26355:89;26485:23;::::0;;-1:-1:-1;;;;;26518:34:43;;::::3;-1:-1:-1::0;;;;;;26518:34:43;::::3;::::0;::::3;::::0;;;26485:23:::3;::::0;;;26567:118:::3;::::0;31087:499;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;31375:22:43::2;31392:4;31375:16;:22::i;:::-;31463:17;::::0;:116:::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;31463:116:43;;-1:-1:-1;;;;;31463:17:43;;::::2;::::0;:29:::2;::::0;:116:::2;::::0;31506:5;;31463:116;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;15263:1346:43:-;4871:13:22;;15517:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;12061:2:77;4862:99:22;;;12043:21:77;12100:2;12080:18;;;12073:30;12139:34;12119:18;;;12112:62;-1:-1:-1;;;12190:18:77;;;12183:44;12244:19;;4862:99:22;11859:410:77;4862:99:22;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;15534:47:43;::::1;15530:105;;15604:20;;-1:-1:-1::0;;;15604:20:43::1;;;;;;;;;;;15530:105;-1:-1:-1::0;;;;;15649:44:43;::::1;15645:102;;15716:20;;-1:-1:-1::0;;;15716:20:43::1;;;;;;;;;;;15645:102;-1:-1:-1::0;;;;;15761:41:43;::::1;15757:96;;15825:17;;-1:-1:-1::0;;;15825:17:43::1;;;;;;;;;;;15757:96;15937:16;:14;:16::i;:::-;15969:48;16006:10;15969:36;:48::i;:::-;15964:119;;16040:32;::::0;-1:-1:-1;;;16040:32:43;;7303:4:77;7291:17;;16040:32:43::1;::::0;::::1;7273:36:77::0;7246:18;;16040:32:43::1;7131:184:77::0;15964:119:43::1;16150:9;:22:::0;;-1:-1:-1;;;;16150:22:43::1;-1:-1:-1::0;;;16150:22:43::1;::::0;::::1;;;::::0;;16202:7:::1;16182:17;:27:::0;16219:11:::1;:25:::0;;;16254:23:::1;:50:::0;;-1:-1:-1;;;;;;16254:50:43;;::::1;-1:-1:-1::0;;;;;16254:50:43;;::::1;::::0;;;::::1;::::0;;;16314:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;16371:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;16419:17:43::1;:27:::0;;1513:6:18;;;;16419:27:43;::::1;;::::0;;16506:18:::1;:16;:18::i;:::-;16540:62;::::0;;12474:4:77;12462:17;;12444:36;;12511:2;12496:18;;12489:34;;;16540:62:43::1;::::0;12417:18:77;16540:62:43::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;7303:4:77;7291:17;;7273:36;;5080:20:22;;7261:2:77;7246:18;5080:20:22;;;;;;;15263:1346:43;;;;;;:::o;23647:567::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;23826:11:43::2;;23818:4;:19:::0;23814:394:::2;;-1:-1:-1::0;;23860:30:43::2;::::0;;::::2;::::0;::::2;::::0;;23869:11:::2;::::0;23860:30;;-1:-1:-1;23860:30:43::2;::::0;::::2;::::0;23885:4:::2;23860:30:::0;;;;;;;;23647:567::o;23814:394::-:2;23921:21;23945:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;23945:17:43::2;::::0;23981:18;;;23977:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;24026:14:::2;24019:21:::0;23647:567;-1:-1:-1;;;23647:567:43:o;23977:78::-:2;24120:17;::::0;24069:12:::2;::::0;24086:31:::2;-1:-1:-1::0;;;;;24086:31:43;::::2;:15;:31;:::i;:::-;24159:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;24159:38:43;;::::2;;::::0;::::2;::::0;24086:51;-1:-1:-1;24084:54:43::2;24159:38:::0;;;;-1:-1:-1;24159:38:43;-1:-1:-1;23814:394:43::2;23647:567:::0;;;:::o;28135:189::-;28270:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;28300:17:43::2;::::0;1144:1:74::2;28135:189:43::0;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;12966:2:77;2308:92:23;;;12948:21:77;13005:2;12985:18;;;12978:30;13044:34;13024:18;;;13017:62;13115:26;13095:18;;;13088:54;13159:19;;2308:92:23;12764:420:77;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;4649:109:45:-;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;13391:2:77;2095:78:17;;;13373:21:77;13430:2;13410:18;;;13403:30;13469:34;13449:18;;;13442:62;-1:-1:-1;;;13520:18:77;;;13513:39;13569:19;;2095:78:17;13189:405:77;2095:78:17;2183:26;2202:6;2183:18;:26::i;22489:413:43:-;22724:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;22748:24:43::2;22804:10;22816:7;22825:8;22835:19;;22787:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22787:68:43;;::::2;::::0;;;;;;22873:22;;22787:68:::2;22873:22:::0;;::::2;::::0;;22489:413;-1:-1:-1;;;;;;;22489:413:43:o;29102:119::-;29181:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29205:9:43::2;::::0;-1:-1:-1;;;29205:9:43;::::2;;;::::0;29102:119::o;25527:231::-;25689:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;25727:23:43::2;::::0;-1:-1:-1;;;;;25727:23:43::2;25527:231:::0;:::o;29868:384::-;30034:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;30079:17:43::3;::::0;;-1:-1:-1;;;;;30106:39:43;;::::3;-1:-1:-1::0;;;;;;30106:39:43;::::3;::::0;::::3;::::0;;;30160:57:::3;::::0;30079:17;::::3;::::0;30106:39;30079:17;;30160:57:::3;::::0;30057:19:::3;::::0;30160:57:::3;30234:11:::0;29868:384;-1:-1:-1;;29868:384:43:o;28556:402::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;28718::43::3;28735:1;28718:18:::0;28714:86:::3;;28752:37;::::0;-1:-1:-1;;;28752:37:43;;14401:2:77;28752:37:43::3;::::0;::::3;14383:21:77::0;14440:2;14420:18;;;14413:30;14479:29;14459:18;;;14452:57;14526:18;;28752:37:43::3;14199:351:77::0;28714:86:43::3;28829:17;::::0;;28856:33;;;;28905:46:::3;::::0;28876:13;;28829:17;;28905:46:::3;::::0;28809:17:::3;::::0;28905:46:::3;28704:254;28556:402:::0;:::o;23030:121::-;23107:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;23133:11:43::2;::::0;23030:121;:::o;29442:133::-;29525:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29551:17:43::2;::::0;-1:-1:-1;;;;;29551:17:43::2;29442:133:::0;:::o;26875:205::-;27017:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;27055:17:43::2;::::0;-1:-1:-1;;;;;27055:17:43::2;26875:205:::0;:::o;24657:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;24809:11:43::2;::::0;24797:56;;24836:7:::2;24797:56;24928:21;24952:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;24952:17:43::2;::::0;25052:18;;;25048:73:::2;;25093:17;;-1:-1:-1::0;;;25093:17:43::2;;;;;;;;;;;25048:73;25225:17;::::0;25191:31:::2;-1:-1:-1::0;;;;;25191:31:43;::::2;:15;:31;:::i;:::-;:51;25187:102;;;25265:13;;-1:-1:-1::0;;;25265:13:43::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;14757:2:77;1654:68:18;;;14739:21:77;;;14776:18;;;14769:30;14835:34;14815:18;;;14808:62;14887:18;;1654:68:18;14555:356:77;1654:68:18;1599:130::o;4067:204:45:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;15307:2:77;3758:56:20;;;15289:21:77;15346:2;15326:18;;;15319:30;15385:34;15365:18;;;15358:62;-1:-1:-1;;;15436:18:77;;;15429:44;15490:19;;3758:56:20;15105:410:77;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;15722:2:77;3636:82:20;;;15704:21:77;15761:2;15741:18;;;15734:30;15800:34;15780:18;;;15773:62;-1:-1:-1;;;15851:18:77;;;15844:39;15900:19;;3636:82:20;15520:405:77;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;16943:97:43:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;17013:20:43::1;:18;:20::i;434:207:75:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:75;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:75:o;794:90:74:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:74::1;:19:::0;;-1:-1:-1;;858:19:74::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;16544:2:77;1878:106:20;;;16526:21:77;16583:2;16563:18;;;16556:30;16622:34;16602:18;;;16595:62;-1:-1:-1;;;16673:18:77;;;16666:43;16726:19;;1878:106:20;16342:409:77;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;16958:2:77;7195:88:20;;;16940:21:77;16997:2;16977:18;;;16970:30;17036:34;17016:18;;;17009:62;-1:-1:-1;;;17087:18:77;;;17080:36;17133:19;;7195:88:20;16756:402:77;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:77;-1:-1:-1;;;;;109:31:77;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:77;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:77;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:77;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:77:o;2254:509::-;2374:6;2382;2390;2398;2406;2459:3;2447:9;2438:7;2434:23;2430:33;2427:53;;;2476:1;2473;2466:12;2427:53;2512:9;2499:23;2489:33;;2569:2;2558:9;2554:18;2541:32;2531:42;;2620:2;2609:9;2605:18;2592:32;2582:42;;2671:2;2660:9;2656:18;2643:32;2633:42;;2694:63;2749:7;2743:3;2732:9;2728:19;2694:63;:::i;:::-;2684:73;;2254:509;;;;;;;;:::o;3040:908::-;3219:6;3227;3235;3243;3251;3304:3;3292:9;3283:7;3279:23;3275:33;3272:53;;;3321:1;3318;3311:12;3272:53;3360:9;3347:23;3410:4;3403:5;3399:16;3392:5;3389:27;3379:55;;3430:1;3427;3420:12;3379:55;3453:5;-1:-1:-1;3505:2:77;3490:18;;3477:32;;-1:-1:-1;3561:2:77;3546:18;;3533:32;3574:53;3533:32;3574:53;:::i;:::-;3646:7;-1:-1:-1;3705:2:77;3690:18;;3677:32;3718:53;3677:32;3718:53;:::i;:::-;3790:7;-1:-1:-1;3849:3:77;3834:19;;3821:33;3863:53;3821:33;3863:53;:::i;:::-;3935:7;3925:17;;;3040:908;;;;;;;;:::o;3953:180::-;4012:6;4065:2;4053:9;4044:7;4040:23;4036:32;4033:52;;;4081:1;4078;4071:12;4033:52;-1:-1:-1;4104:23:77;;3953:180;-1:-1:-1;3953:180:77:o;4746:127::-;4807:10;4802:3;4798:20;4795:1;4788:31;4838:4;4835:1;4828:15;4862:4;4859:1;4852:15;4878:249;4988:2;4969:13;;-1:-1:-1;;4965:27:77;4953:40;;5023:18;5008:34;;5044:22;;;5005:62;5002:88;;;5070:18;;:::i;:::-;5106:2;5099:22;-1:-1:-1;;4878:249:77:o;5132:953::-;5209:6;5217;5270:2;5258:9;5249:7;5245:23;5241:32;5238:52;;;5286:1;5283;5276:12;5238:52;5325:9;5312:23;5344:51;5389:5;5344:51;:::i;:::-;5414:5;-1:-1:-1;5438:2:77;5476:18;;;5463:32;5514:18;5544:14;;;5541:34;;;5571:1;5568;5561:12;5541:34;5609:6;5598:9;5594:22;5584:32;;5654:7;5647:4;5643:2;5639:13;5635:27;5625:55;;5676:1;5673;5666:12;5625:55;5712:2;5699:16;5734:2;5730;5727:10;5724:36;;;5740:18;;:::i;:::-;5789:2;5783:9;;-1:-1:-1;5801:65:77;5856:2;5837:13;;-1:-1:-1;;5833:27:77;5829:36;;5783:9;5801:65;:::i;:::-;5890:2;5882:6;5875:18;5930:7;5925:2;5920;5916;5912:11;5908:20;5905:33;5902:53;;;5951:1;5948;5941:12;5902:53;6007:2;6002;5998;5994:11;5989:2;5981:6;5977:15;5964:46;6052:1;6047:2;6042;6034:6;6030:15;6026:24;6019:35;;6073:6;6063:16;;;;;5132:953;;;;;:::o;6272:646::-;6384:6;6392;6400;6408;6416;6469:3;6457:9;6448:7;6444:23;6440:33;6437:53;;;6486:1;6483;6476:12;6437:53;6509:28;6527:9;6509:28;:::i;:::-;6499:38;;6584:2;6573:9;6569:18;6556:32;6546:42;;6635:2;6624:9;6620:18;6607:32;6597:42;;6690:2;6679:9;6675:18;6662:32;6717:18;6709:6;6706:30;6703:50;;;6749:1;6746;6739:12;6703:50;6788:70;6850:7;6841:6;6830:9;6826:22;6788:70;:::i;:::-;6272:646;;;;-1:-1:-1;6272:646:77;;-1:-1:-1;6877:8:77;;6762:96;6272:646;-1:-1:-1;;;6272:646:77:o;7320:408::-;7522:2;7504:21;;;7561:2;7541:18;;;7534:30;7600:34;7595:2;7580:18;;7573:62;-1:-1:-1;;;7666:2:77;7651:18;;7644:42;7718:3;7703:19;;7320:408::o;7733:::-;7935:2;7917:21;;;7974:2;7954:18;;;7947:30;8013:34;8008:2;7993:18;;7986:62;-1:-1:-1;;;8079:2:77;8064:18;;8057:42;8131:3;8116:19;;7733:408::o;8531:209::-;8563:1;8589;8579:132;;8633:10;8628:3;8624:20;8621:1;8614:31;8668:4;8665:1;8658:15;8696:4;8693:1;8686:15;8579:132;-1:-1:-1;8725:9:77;;8531:209::o;8745:294::-;8838:6;8891:2;8879:9;8870:7;8866:23;8862:32;8859:52;;;8907:1;8904;8897:12;8859:52;8939:9;8933:16;8958:51;9003:5;8958:51;:::i;9044:646::-;9300:3;9285:19;;9323:6;;9362;9289:9;9338:35;9393:18;;9453:6;9477:1;9487:197;9501:4;9498:1;9495:11;9487:197;;;9563:13;;9551:26;;9600:4;9624:12;;;;9659:15;;;;9521:4;9514:12;9487:197;;;9491:3;;;9044:646;;;;;:::o;9695:179::-;9730:3;9772:1;9754:16;9751:23;9748:120;;;9818:1;9815;9812;9797:23;-1:-1:-1;9855:1:77;9849:8;9844:3;9840:18;9695:179;:::o;9879:671::-;9918:3;9960:4;9942:16;9939:26;9936:39;;;9879:671;:::o;9936:39::-;10002:2;9996:9;-1:-1:-1;;10067:16:77;10063:25;;10060:1;9996:9;10039:50;10118:4;10112:11;10142:16;10177:18;10248:2;10241:4;10233:6;10229:17;10226:25;10221:2;10213:6;10210:14;10207:45;10204:58;;;10255:5;;;;;9879:671;:::o;10204:58::-;10292:6;10286:4;10282:17;10271:28;;10328:3;10322:10;10355:2;10347:6;10344:14;10341:27;;;10361:5;;;;;;9879:671;:::o;10341:27::-;10445:2;10426:16;10420:4;10416:27;10412:36;10405:4;10396:6;10391:3;10387:16;10383:27;10380:69;10377:82;;;10452:5;;;;;;9879:671;:::o;10377:82::-;10468:57;10519:4;10510:6;10502;10498:19;10494:30;10488:4;10468:57;:::i;:::-;-1:-1:-1;10541:3:77;;9879:671;-1:-1:-1;;;;;9879:671:77:o;10555:250::-;10640:1;10650:113;10664:6;10661:1;10658:13;10650:113;;;10740:11;;;10734:18;10721:11;;;10714:39;10686:2;10679:10;10650:113;;;-1:-1:-1;;10797:1:77;10779:16;;10772:27;10555:250::o;10810:396::-;10959:2;10948:9;10941:21;10922:4;10991:6;10985:13;11034:6;11029:2;11018:9;11014:18;11007:34;11050:79;11122:6;11117:2;11106:9;11102:18;11097:2;11089:6;11085:15;11050:79;:::i;:::-;11190:2;11169:15;-1:-1:-1;;11165:29:77;11150:45;;;;11197:2;11146:54;;10810:396;-1:-1:-1;;10810:396:77:o;11211:643::-;11467:3;11452:19;;11490:6;;11529;11456:9;11505:35;11560:18;;11620:6;11644:1;11654:194;11668:4;11665:1;11662:11;11654:194;;;11727:13;;11715:26;;11764:4;11788:12;;;;11823:15;;;;11688:1;11681:9;11654:194;;12534:225;12601:9;;;12622:11;;;12619:134;;;12675:10;12670:3;12666:20;12663:1;12656:31;12710:4;12707:1;12700:15;12738:4;12735:1;12728:15;13599:595;13908:3;13886:16;;;-1:-1:-1;;;;;;13882:43:77;13870:56;;13951:1;13942:11;;13935:27;;;13987:2;13978:12;;13971:28;;;-1:-1:-1;;;;;;14011:31:77;;14008:51;;;14055:1;14052;14045:12;14008:51;14089:6;14086:1;14082:14;14140:6;14132;14127:2;14122:3;14118:12;14105:42;14167:16;;;;14185:2;14163:25;;13599:595;-1:-1:-1;;;;;;13599:595:77:o;14916:184::-;14986:6;15039:2;15027:9;15018:7;15014:23;15010:32;15007:52;;;15055:1;15052;15045:12;15007:52;-1:-1:-1;15078:16:77;;14916:184;-1:-1:-1;14916:184:77:o;15930:407::-;16132:2;16114:21;;;16171:2;16151:18;;;16144:30;16210:34;16205:2;16190:18;;16183:62;-1:-1:-1;;;16276:2:77;16261:18;;16254:41;16327:3;16312:19;;15930:407::o;17163:287::-;17292:3;17330:6;17324:13;17346:66;17405:6;17400:3;17393:4;17385:6;17381:17;17346:66;:::i;:::-;17428:16;;;;;17163:287;-1:-1:-1;;17163:287:77:o", "linkReferences": {}, "immutableReferences": { "29832": [ @@ -976,7 +976,7 @@ "upgradeToAndCall(address,bytes)": "4f1ef286", "verifyProof(uint256,uint256,uint256,uint256,uint256[8])": "354ca120" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierLUT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the insertions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"details\":\"This error is no longer in use as we now verify the commitments off-chain within the circuit no need to check for reduced elements or invalid commitments.preserved for ABI backwards compatibility with V1, no longer used, all elements are validated by the circuit\",\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"InvalidStateBridgeAddress()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"MismatchedInputLengths()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"StateBridgeAlreadyDisabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"StateBridgeAlreadyEnabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.preserved for ABI backwards compatibility with V1, no longer used, all elements come out reduced from the circuit\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\",\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"stateVariables\":{\"SNARK_SCALAR_FIELD\":{\"details\":\"Used internally to ensure that the proof input is scaled to within the field `Fr`.\"},\"_identityOperator\":{\"details\":\"The identity operator defaults to being the same as the owner.\"},\"_stateBridge\":{\"details\":\"preserved for storage reasons, no longer used\"},\"identityUpdateVerifiers\":{\"details\":\"preserved for storage reasons, no longer used\"},\"rootHistoryExpiry\":{\"details\":\"This prevents proofs getting invalidated in the mempool by another tx modifying the group.\"}},\"title\":\"WorldID Identity Manager Implementation Version 1\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"InvalidVerifier()\":[{\"notice\":\"Thrown when a verifier is initialized to be the zero address\"}],\"InvalidVerifierLUT()\":[{\"notice\":\"Thrown when a verifier lookup table is initialized to be the zero address\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"constructor\":{\"notice\":\"Constructs the contract.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV1.sol\":\"WorldIDIdentityManagerImplV1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x5d05b909d5ea55446c4b3009ed6283924992fdb7bd9f93179b92f84b60d583ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27eae247b4e8ce77ae921a4ba0a947d82a19eb303451a28ccc2771b99f348123\",\"dweb:/ipfs/QmUKTYz3UTNBEF3zBrS82mmrDzcZ992LEBSUAiS4cmMBtX\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b\",\"dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierLUT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the insertions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"details\":\"This error is no longer in use as we now verify the commitments off-chain within the circuit no need to check for reduced elements or invalid commitments.preserved for ABI backwards compatibility with V1, no longer used, all elements are validated by the circuit\",\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"InvalidStateBridgeAddress()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"MismatchedInputLengths()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"StateBridgeAlreadyDisabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"StateBridgeAlreadyEnabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.preserved for ABI backwards compatibility with V1, no longer used, all elements come out reduced from the circuit\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\",\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.InvalidVerifierLUT if `_batchInsertionVerifiers` or `_batchUpdateVerifiers` is set to the zero addressInvalidVerifier if `_semaphoreVerifier` is set to the zero address\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `newTable` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"custom:reverts\":\"InvalidVerifier if `newVerifier` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"stateVariables\":{\"SNARK_SCALAR_FIELD\":{\"details\":\"Used internally to ensure that the proof input is scaled to within the field `Fr`.\"},\"_identityOperator\":{\"details\":\"The identity operator defaults to being the same as the owner.\"},\"_stateBridge\":{\"details\":\"preserved for storage reasons, no longer used\"},\"identityUpdateVerifiers\":{\"details\":\"preserved for storage reasons, no longer used\"},\"rootHistoryExpiry\":{\"details\":\"This prevents proofs getting invalidated in the mempool by another tx modifying the group.\"}},\"title\":\"WorldID Identity Manager Implementation Version 1\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"InvalidVerifier()\":[{\"notice\":\"Thrown when a verifier is initialized to be the zero address\"}],\"InvalidVerifierLUT()\":[{\"notice\":\"Thrown when a verifier lookup table is initialized to be the zero address\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"constructor\":{\"notice\":\"Constructs the contract.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV1.sol\":\"WorldIDIdentityManagerImplV1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x75e9235f2cda58708d4a8b00c101fa7da4ae1627435569a933ca6cc0d4a0783e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67a1a9a738074036270f02e42fcc4548413e3c821da3f59bc8b42ad0e49e4dcc\",\"dweb:/ipfs/QmcCroTkesx2yMbmCFJ7NiNL8xY4zqLStQzSETetCGVsCK\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b\",\"dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.21+commit.d9974bed" @@ -1806,7 +1806,7 @@ } }, "initialize(uint8,uint256,address,address,address)": { - "custom:reverts": "string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.", + "custom:reverts": "string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.InvalidVerifierLUT if `_batchInsertionVerifiers` or `_batchUpdateVerifiers` is set to the zero addressInvalidVerifier if `_semaphoreVerifier` is set to the zero address", "details": "Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.", "params": { "_batchInsertionVerifiers": "The verifier lookup table for batch insertions.", @@ -1866,6 +1866,7 @@ } }, "setRegisterIdentitiesVerifierLookupTable(address)": { + "custom:reverts": "InvalidVerifierLUT if `newTable` is set to the zero address", "details": "Only the owner of the contract can call this function.", "params": { "newTable": "The new verifier lookup table to be used for verifying identity registrations." @@ -1878,6 +1879,7 @@ } }, "setSemaphoreVerifier(address)": { + "custom:reverts": "InvalidVerifier if `newVerifier` is set to the zero address", "details": "Only the owner of the contract can call this function.", "params": { "newVerifier": "The new verifier instance to be used for verifying semaphore proofs." @@ -2098,10 +2100,10 @@ "license": "MIT" }, "src/WorldIDIdentityManagerImplV1.sol": { - "keccak256": "0x5d05b909d5ea55446c4b3009ed6283924992fdb7bd9f93179b92f84b60d583ad", + "keccak256": "0x75e9235f2cda58708d4a8b00c101fa7da4ae1627435569a933ca6cc0d4a0783e", "urls": [ - "bzz-raw://27eae247b4e8ce77ae921a4ba0a947d82a19eb303451a28ccc2771b99f348123", - "dweb:/ipfs/QmUKTYz3UTNBEF3zBrS82mmrDzcZ992LEBSUAiS4cmMBtX" + "bzz-raw://67a1a9a738074036270f02e42fcc4548413e3c821da3f59bc8b42ad0e49e4dcc", + "dweb:/ipfs/QmcCroTkesx2yMbmCFJ7NiNL8xY4zqLStQzSETetCGVsCK" ], "license": "MIT" }, @@ -2185,32 +2187,32 @@ "id": 34870, "exportedSymbols": { "IBridge": [ - 35413 + 35441 ], "ISemaphoreVerifier": [ - 35429 + 35457 ], "ITreeVerifier": [ - 35445 + 35473 ], "IWorldID": [ - 35469 + 35497 ], "SemaphoreTreeDepthValidator": [ - 48479 + 48535 ], "VerifierLookupTable": [ - 35388 + 35416 ], "WorldIDIdentityManagerImplV1": [ 34869 ], "WorldIDImpl": [ - 35153 + 35181 ] }, "nodeType": "SourceUnit", - "src": "32:31807:43", + "src": "32:32193:43", "nodes": [ { "id": 33999, @@ -2233,7 +2235,7 @@ "file": "./abstract/WorldIDImpl.sol", "nameLocation": "-1:-1:-1", "scope": 34870, - "sourceUnit": 35154, + "sourceUnit": 35182, "symbolAliases": [ { "foreign": { @@ -2241,7 +2243,7 @@ "name": "WorldIDImpl", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35153, + "referencedDeclaration": 35181, "src": "66:11:43", "typeDescriptions": {} }, @@ -2259,7 +2261,7 @@ "file": "./interfaces/IWorldID.sol", "nameLocation": "-1:-1:-1", "scope": 34870, - "sourceUnit": 35470, + "sourceUnit": 35498, "symbolAliases": [ { "foreign": { @@ -2267,7 +2269,7 @@ "name": "IWorldID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35469, + "referencedDeclaration": 35497, "src": "123:8:43", "typeDescriptions": {} }, @@ -2285,7 +2287,7 @@ "file": "./interfaces/ITreeVerifier.sol", "nameLocation": "-1:-1:-1", "scope": 34870, - "sourceUnit": 35446, + "sourceUnit": 35474, "symbolAliases": [ { "foreign": { @@ -2293,7 +2295,7 @@ "name": "ITreeVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35445, + "referencedDeclaration": 35473, "src": "175:13:43", "typeDescriptions": {} }, @@ -2311,7 +2313,7 @@ "file": "src/interfaces/ISemaphoreVerifier.sol", "nameLocation": "-1:-1:-1", "scope": 34870, - "sourceUnit": 35430, + "sourceUnit": 35458, "symbolAliases": [ { "foreign": { @@ -2319,7 +2321,7 @@ "name": "ISemaphoreVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35429, + "referencedDeclaration": 35457, "src": "237:18:43", "typeDescriptions": {} }, @@ -2337,7 +2339,7 @@ "file": "./interfaces/IBridge.sol", "nameLocation": "-1:-1:-1", "scope": 34870, - "sourceUnit": 35414, + "sourceUnit": 35442, "symbolAliases": [ { "foreign": { @@ -2345,7 +2347,7 @@ "name": "IBridge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35413, + "referencedDeclaration": 35441, "src": "311:7:43", "typeDescriptions": {} }, @@ -2363,7 +2365,7 @@ "file": "./utils/SemaphoreTreeDepthValidator.sol", "nameLocation": "-1:-1:-1", "scope": 34870, - "sourceUnit": 48480, + "sourceUnit": 48536, "symbolAliases": [ { "foreign": { @@ -2371,7 +2373,7 @@ "name": "SemaphoreTreeDepthValidator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48479, + "referencedDeclaration": 48535, "src": "362:27:43", "typeDescriptions": {} }, @@ -2389,7 +2391,7 @@ "file": "./data/VerifierLookupTable.sol", "nameLocation": "-1:-1:-1", "scope": 34870, - "sourceUnit": 35389, + "sourceUnit": 35417, "symbolAliases": [ { "foreign": { @@ -2397,7 +2399,7 @@ "name": "VerifierLookupTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35388, + "referencedDeclaration": 35416, "src": "447:19:43", "typeDescriptions": {} }, @@ -2409,7 +2411,7 @@ { "id": 34869, "nodeType": "ContractDefinition", - "src": "879:30959:43", + "src": "879:31345:43", "nodes": [ { "id": 34021, @@ -2684,7 +2686,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" }, "typeName": { @@ -2697,13 +2699,13 @@ "4672:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35388, + "referencedDeclaration": 35416, "src": "4672:19:43" }, - "referencedDeclaration": 35388, + "referencedDeclaration": 35416, "src": "4672:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, @@ -2728,7 +2730,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" }, "typeName": { @@ -2741,13 +2743,13 @@ "4861:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35388, + "referencedDeclaration": 35416, "src": "4861:19:43" }, - "referencedDeclaration": 35388, + "referencedDeclaration": 35416, "src": "4861:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, @@ -2772,7 +2774,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" }, "typeName": { @@ -2785,13 +2787,13 @@ "5010:18:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35429, + "referencedDeclaration": 35457, "src": "5010:18:43" }, - "referencedDeclaration": 35429, + "referencedDeclaration": 35457, "src": "5010:18:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, @@ -2816,7 +2818,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$35413", + "typeIdentifier": "t_contract$_IBridge_$35441", "typeString": "contract IBridge" }, "typeName": { @@ -2829,13 +2831,13 @@ "5210:7:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35413, + "referencedDeclaration": 35441, "src": "5210:7:43" }, - "referencedDeclaration": 35413, + "referencedDeclaration": 35441, "src": "5210:7:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_IBridge_$35413", + "typeIdentifier": "t_contract$_IBridge_$35441", "typeString": "contract IBridge" } }, @@ -4365,12 +4367,12 @@ { "id": 34317, "nodeType": "FunctionDefinition", - "src": "15045:1346:43", + "src": "15263:1346:43", "nodes": [], "body": { "id": 34316, "nodeType": "Block", - "src": "15302:1089:43", + "src": "15520:1089:43", "nodes": [], "statements": [ { @@ -4392,9 +4394,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34211, - "src": "15324:24:43", + "src": "15542:24:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -4402,7 +4404,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], @@ -4412,7 +4414,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15316:7:43", + "src": "15534:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -4421,7 +4423,7 @@ "id": 34223, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15316:7:43", + "src": "15534:7:43", "typeDescriptions": {} } }, @@ -4434,7 +4436,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15316:33:43", + "src": "15534:33:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4454,7 +4456,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15361:1:43", + "src": "15579:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4475,7 +4477,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15353:7:43", + "src": "15571:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -4484,7 +4486,7 @@ "id": 34227, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15353:7:43", + "src": "15571:7:43", "typeDescriptions": {} } }, @@ -4497,14 +4499,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15353:10:43", + "src": "15571:10:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "15316:47:43", + "src": "15534:47:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4512,11 +4514,11 @@ }, "id": 34236, "nodeType": "IfStatement", - "src": "15312:105:43", + "src": "15530:105:43", "trueBody": { "id": 34235, "nodeType": "Block", - "src": "15365:52:43", + "src": "15583:52:43", "statements": [ { "errorCall": { @@ -4528,7 +4530,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34149, - "src": "15386:18:43", + "src": "15604:18:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" @@ -4543,7 +4545,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15386:20:43", + "src": "15604:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4552,7 +4554,7 @@ }, "id": 34234, "nodeType": "RevertStatement", - "src": "15379:27:43" + "src": "15597:27:43" } ] } @@ -4576,9 +4578,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34214, - "src": "15439:21:43", + "src": "15657:21:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -4586,7 +4588,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], @@ -4596,7 +4598,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15431:7:43", + "src": "15649:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -4605,7 +4607,7 @@ "id": 34237, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15431:7:43", + "src": "15649:7:43", "typeDescriptions": {} } }, @@ -4618,7 +4620,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15431:30:43", + "src": "15649:30:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4638,7 +4640,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15473:1:43", + "src": "15691:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4659,7 +4661,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15465:7:43", + "src": "15683:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -4668,7 +4670,7 @@ "id": 34241, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15465:7:43", + "src": "15683:7:43", "typeDescriptions": {} } }, @@ -4681,14 +4683,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15465:10:43", + "src": "15683:10:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "15431:44:43", + "src": "15649:44:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4696,11 +4698,11 @@ }, "id": 34250, "nodeType": "IfStatement", - "src": "15427:102:43", + "src": "15645:102:43", "trueBody": { "id": 34249, "nodeType": "Block", - "src": "15477:52:43", + "src": "15695:52:43", "statements": [ { "errorCall": { @@ -4712,7 +4714,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34149, - "src": "15498:18:43", + "src": "15716:18:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" @@ -4727,7 +4729,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15498:20:43", + "src": "15716:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4736,7 +4738,7 @@ }, "id": 34248, "nodeType": "RevertStatement", - "src": "15491:27:43" + "src": "15709:27:43" } ] } @@ -4760,9 +4762,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34217, - "src": "15551:18:43", + "src": "15769:18:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } } @@ -4770,7 +4772,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } ], @@ -4780,7 +4782,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15543:7:43", + "src": "15761:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -4789,7 +4791,7 @@ "id": 34251, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15543:7:43", + "src": "15761:7:43", "typeDescriptions": {} } }, @@ -4802,7 +4804,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15543:27:43", + "src": "15761:27:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4822,7 +4824,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15582:1:43", + "src": "15800:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4843,7 +4845,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15574:7:43", + "src": "15792:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -4852,7 +4854,7 @@ "id": 34255, "name": "address", "nodeType": "ElementaryTypeName", - "src": "15574:7:43", + "src": "15792:7:43", "typeDescriptions": {} } }, @@ -4865,14 +4867,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15574:10:43", + "src": "15792:10:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "15543:41:43", + "src": "15761:41:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4880,11 +4882,11 @@ }, "id": 34264, "nodeType": "IfStatement", - "src": "15539:96:43", + "src": "15757:96:43", "trueBody": { "id": 34263, "nodeType": "Block", - "src": "15586:49:43", + "src": "15804:49:43", "statements": [ { "errorCall": { @@ -4896,7 +4898,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34146, - "src": "15607:15:43", + "src": "15825:15:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" @@ -4911,7 +4913,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15607:17:43", + "src": "15825:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4920,7 +4922,7 @@ }, "id": 34262, "nodeType": "RevertStatement", - "src": "15600:24:43" + "src": "15818:24:43" } ] } @@ -4935,7 +4937,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34327, - "src": "15719:14:43", + "src": "15937:14:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" @@ -4950,7 +4952,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15719:16:43", + "src": "15937:16:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4959,7 +4961,7 @@ }, "id": 34267, "nodeType": "ExpressionStatement", - "src": "15719:16:43" + "src": "15937:16:43" }, { "condition": { @@ -4971,7 +4973,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "15750:49:43", + "src": "15968:49:43", "subExpression": { "arguments": [ { @@ -4980,7 +4982,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34206, - "src": "15788:10:43", + "src": "16006:10:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4999,10 +5001,10 @@ "name": "SemaphoreTreeDepthValidator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48479, - "src": "15751:27:43", + "referencedDeclaration": 48535, + "src": "15969:27:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SemaphoreTreeDepthValidator_$48479_$", + "typeIdentifier": "t_type$_t_contract$_SemaphoreTreeDepthValidator_$48535_$", "typeString": "type(library SemaphoreTreeDepthValidator)" } }, @@ -5011,11 +5013,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "15779:8:43", + "memberLocation": "15997:8:43", "memberName": "validate", "nodeType": "MemberAccess", - "referencedDeclaration": 48478, - "src": "15751:36:43", + "referencedDeclaration": 48534, + "src": "15969:36:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", "typeString": "function (uint8) pure returns (bool)" @@ -5030,7 +5032,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15751:48:43", + "src": "15969:48:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5044,11 +5046,11 @@ }, "id": 34278, "nodeType": "IfStatement", - "src": "15746:119:43", + "src": "15964:119:43", "trueBody": { "id": 34277, "nodeType": "Block", - "src": "15801:64:43", + "src": "16019:64:43", "statements": [ { "errorCall": { @@ -5059,7 +5061,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34206, - "src": "15843:10:43", + "src": "16061:10:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5078,7 +5080,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34140, - "src": "15822:20:43", + "src": "16040:20:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint8_$returns$__$", "typeString": "function (uint8) pure" @@ -5093,7 +5095,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15822:32:43", + "src": "16040:32:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -5102,7 +5104,7 @@ }, "id": 34276, "nodeType": "RevertStatement", - "src": "15815:39:43" + "src": "16033:39:43" } ] } @@ -5120,7 +5122,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34061, - "src": "15932:9:43", + "src": "16150:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5134,13 +5136,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34206, - "src": "15944:10:43", + "src": "16162:10:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "15932:22:43", + "src": "16150:22:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5148,7 +5150,7 @@ }, "id": 34282, "nodeType": "ExpressionStatement", - "src": "15932:22:43" + "src": "16150:22:43" }, { "expression": { @@ -5163,7 +5165,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34032, - "src": "15964:17:43", + "src": "16182:17:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5180,7 +5182,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15984:7:43", + "src": "16202:7:43", "subdenomination": "hours", "typeDescriptions": { "typeIdentifier": "t_rational_3600_by_1", @@ -5188,7 +5190,7 @@ }, "value": "1" }, - "src": "15964:27:43", + "src": "16182:27:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5196,7 +5198,7 @@ }, "id": 34286, "nodeType": "ExpressionStatement", - "src": "15964:27:43" + "src": "16182:27:43" }, { "expression": { @@ -5211,7 +5213,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "16001:11:43", + "src": "16219:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5225,13 +5227,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34208, - "src": "16015:11:43", + "src": "16233:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "16001:25:43", + "src": "16219:25:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5239,7 +5241,7 @@ }, "id": 34290, "nodeType": "ExpressionStatement", - "src": "16001:25:43" + "src": "16219:25:43" }, { "expression": { @@ -5254,9 +5256,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34043, - "src": "16036:23:43", + "src": "16254:23:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, @@ -5268,21 +5270,21 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34211, - "src": "16062:24:43", + "src": "16280:24:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, - "src": "16036:50:43", + "src": "16254:50:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "id": 34294, "nodeType": "ExpressionStatement", - "src": "16036:50:43" + "src": "16254:50:43" }, { "expression": { @@ -5297,9 +5299,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34047, - "src": "16096:23:43", + "src": "16314:23:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, @@ -5311,21 +5313,21 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34214, - "src": "16122:21:43", + "src": "16340:21:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, - "src": "16096:47:43", + "src": "16314:47:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "id": 34298, "nodeType": "ExpressionStatement", - "src": "16096:47:43" + "src": "16314:47:43" }, { "expression": { @@ -5340,9 +5342,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34051, - "src": "16153:17:43", + "src": "16371:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, @@ -5354,21 +5356,21 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34217, - "src": "16173:18:43", + "src": "16391:18:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, - "src": "16153:38:43", + "src": "16371:38:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, "id": 34302, "nodeType": "ExpressionStatement", - "src": "16153:38:43" + "src": "16371:38:43" }, { "expression": { @@ -5383,7 +5385,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34021, - "src": "16201:17:43", + "src": "16419:17:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5400,7 +5402,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29166, - "src": "16221:5:43", + "src": "16439:5:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" @@ -5415,14 +5417,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16221:7:43", + "src": "16439:7:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "16201:27:43", + "src": "16419:27:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5430,7 +5432,7 @@ }, "id": 34307, "nodeType": "ExpressionStatement", - "src": "16201:27:43" + "src": "16419:27:43" }, { "expression": { @@ -5441,8 +5443,8 @@ "name": "__setInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48432, - "src": "16288:16:43", + "referencedDeclaration": 48488, + "src": "16506:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" @@ -5457,7 +5459,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16288:18:43", + "src": "16506:18:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -5466,7 +5468,7 @@ }, "id": 34310, "nodeType": "ExpressionStatement", - "src": "16288:18:43" + "src": "16506:18:43" }, { "eventCall": { @@ -5477,7 +5479,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34206, - "src": "16360:10:43", + "src": "16578:10:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5489,7 +5491,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34208, - "src": "16372:11:43", + "src": "16590:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5512,7 +5514,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34195, - "src": "16322:37:43", + "src": "16540:37:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint256_$returns$__$", "typeString": "function (uint8,uint256)" @@ -5527,7 +5529,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16322:62:43", + "src": "16540:62:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -5536,15 +5538,15 @@ }, "id": 34315, "nodeType": "EmitStatement", - "src": "16317:67:43" + "src": "16535:67:43" } ] }, "documentation": { "id": 34204, "nodeType": "StructuredDocumentation", - "src": "13771:1269:43", - "text": "@notice Initializes the contract.\n @dev Must be called exactly once.\n @dev This is marked `reinitializer()` to allow for updated initialisation steps when working\n with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed)\n initialisations allowed, so decide carefully when to use them. Many cases can safely be\n replaced by use of setters.\n @dev This function is explicitly not virtual as it does not make sense to override even when\n upgrading. Create a separate initializer function instead.\n @param _treeDepth The depth of the MerkeTree\n @param initialRoot The initial value for the `latestRoot` in the contract. When deploying\n this should be set to the root of the empty tree.\n @param _batchInsertionVerifiers The verifier lookup table for batch insertions.\n @param _batchUpdateVerifiers The verifier lookup table for batch updates.\n @param _semaphoreVerifier The verifier to use for semaphore protocol proofs.\n @custom:reverts string If called more than once at the same initialisation number.\n @custom:reverts UnsupportedTreeDepth If passed tree depth is not among defined values." + "src": "13771:1487:43", + "text": "@notice Initializes the contract.\n @dev Must be called exactly once.\n @dev This is marked `reinitializer()` to allow for updated initialisation steps when working\n with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed)\n initialisations allowed, so decide carefully when to use them. Many cases can safely be\n replaced by use of setters.\n @dev This function is explicitly not virtual as it does not make sense to override even when\n upgrading. Create a separate initializer function instead.\n @param _treeDepth The depth of the MerkeTree\n @param initialRoot The initial value for the `latestRoot` in the contract. When deploying\n this should be set to the root of the empty tree.\n @param _batchInsertionVerifiers The verifier lookup table for batch insertions.\n @param _batchUpdateVerifiers The verifier lookup table for batch updates.\n @param _semaphoreVerifier The verifier to use for semaphore protocol proofs.\n @custom:reverts string If called more than once at the same initialisation number.\n @custom:reverts UnsupportedTreeDepth If passed tree depth is not among defined values.\n @custom:reverts InvalidVerifierLUT if `_batchInsertionVerifiers` or `_batchUpdateVerifiers` is set to the zero address\n @custom:reverts InvalidVerifier if `_semaphoreVerifier` is set to the zero address" }, "functionSelector": "38c87065", "implemented": true, @@ -5561,7 +5563,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15299:1:43", + "src": "15517:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -5575,18 +5577,18 @@ "id": 34219, "name": "reinitializer", "nameLocations": [ - "15285:13:43" + "15503:13:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29736, - "src": "15285:13:43" + "src": "15503:13:43" }, "nodeType": "ModifierInvocation", - "src": "15285:16:43" + "src": "15503:16:43" } ], "name": "initialize", - "nameLocation": "15054:10:43", + "nameLocation": "15272:10:43", "parameters": { "id": 34218, "nodeType": "ParameterList", @@ -5596,10 +5598,10 @@ "id": 34206, "mutability": "mutable", "name": "_treeDepth", - "nameLocation": "15080:10:43", + "nameLocation": "15298:10:43", "nodeType": "VariableDeclaration", "scope": 34317, - "src": "15074:16:43", + "src": "15292:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5610,7 +5612,7 @@ "id": 34205, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "15074:5:43", + "src": "15292:5:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5623,10 +5625,10 @@ "id": 34208, "mutability": "mutable", "name": "initialRoot", - "nameLocation": "15108:11:43", + "nameLocation": "15326:11:43", "nodeType": "VariableDeclaration", "scope": 34317, - "src": "15100:19:43", + "src": "15318:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5637,7 +5639,7 @@ "id": 34207, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "15100:7:43", + "src": "15318:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5650,14 +5652,14 @@ "id": 34211, "mutability": "mutable", "name": "_batchInsertionVerifiers", - "nameLocation": "15149:24:43", + "nameLocation": "15367:24:43", "nodeType": "VariableDeclaration", "scope": 34317, - "src": "15129:44:43", + "src": "15347:44:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" }, "typeName": { @@ -5667,16 +5669,16 @@ "id": 34209, "name": "VerifierLookupTable", "nameLocations": [ - "15129:19:43" + "15347:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35388, - "src": "15129:19:43" + "referencedDeclaration": 35416, + "src": "15347:19:43" }, - "referencedDeclaration": 35388, - "src": "15129:19:43", + "referencedDeclaration": 35416, + "src": "15347:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, @@ -5687,14 +5689,14 @@ "id": 34214, "mutability": "mutable", "name": "_batchUpdateVerifiers", - "nameLocation": "15203:21:43", + "nameLocation": "15421:21:43", "nodeType": "VariableDeclaration", "scope": 34317, - "src": "15183:41:43", + "src": "15401:41:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" }, "typeName": { @@ -5704,16 +5706,16 @@ "id": 34212, "name": "VerifierLookupTable", "nameLocations": [ - "15183:19:43" + "15401:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35388, - "src": "15183:19:43" + "referencedDeclaration": 35416, + "src": "15401:19:43" }, - "referencedDeclaration": 35388, - "src": "15183:19:43", + "referencedDeclaration": 35416, + "src": "15401:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, @@ -5724,14 +5726,14 @@ "id": 34217, "mutability": "mutable", "name": "_semaphoreVerifier", - "nameLocation": "15253:18:43", + "nameLocation": "15471:18:43", "nodeType": "VariableDeclaration", "scope": 34317, - "src": "15234:37:43", + "src": "15452:37:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" }, "typeName": { @@ -5741,29 +5743,29 @@ "id": 34215, "name": "ISemaphoreVerifier", "nameLocations": [ - "15234:18:43" + "15452:18:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35429, - "src": "15234:18:43" + "referencedDeclaration": 35457, + "src": "15452:18:43" }, - "referencedDeclaration": 35429, - "src": "15234:18:43", + "referencedDeclaration": 35457, + "src": "15452:18:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, "visibility": "internal" } ], - "src": "15064:213:43" + "src": "15282:213:43" }, "returnParameters": { "id": 34222, "nodeType": "ParameterList", "parameters": [], - "src": "15302:0:43" + "src": "15520:0:43" }, "scope": 34869, "stateMutability": "nonpayable", @@ -5773,12 +5775,12 @@ { "id": 34327, "nodeType": "FunctionDefinition", - "src": "16725:97:43", + "src": "16943:97:43", "nodes": [], "body": { "id": 34326, "nodeType": "Block", - "src": "16785:37:43", + "src": "17003:37:43", "nodes": [], "statements": [ { @@ -5790,8 +5792,8 @@ "name": "__WorldIDImpl_init", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35126, - "src": "16795:18:43", + "referencedDeclaration": 35154, + "src": "17013:18:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" @@ -5806,7 +5808,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "16795:20:43", + "src": "17013:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -5815,14 +5817,14 @@ }, "id": 34325, "nodeType": "ExpressionStatement", - "src": "16795:20:43" + "src": "17013:20:43" } ] }, "documentation": { "id": 34318, "nodeType": "StructuredDocumentation", - "src": "16397:323:43", + "src": "16615:323:43", "text": "@notice Responsible for initialising all of the supertypes of this contract.\n @dev Must be called exactly once.\n @dev When adding new superclasses, ensure that any initialization that they need to perform\n is accounted for here.\n @custom:reverts string If called more than once." }, "implemented": true, @@ -5835,29 +5837,29 @@ "id": 34320, "name": "onlyInitializing", "nameLocations": [ - "16768:16:43" + "16986:16:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29746, - "src": "16768:16:43" + "src": "16986:16:43" }, "nodeType": "ModifierInvocation", - "src": "16768:16:43" + "src": "16986:16:43" } ], "name": "__delegateInit", - "nameLocation": "16734:14:43", + "nameLocation": "16952:14:43", "parameters": { "id": 34319, "nodeType": "ParameterList", "parameters": [], - "src": "16748:2:43" + "src": "16966:2:43" }, "returnParameters": { "id": 34322, "nodeType": "ParameterList", "parameters": [], - "src": "16785:0:43" + "src": "17003:0:43" }, "scope": 34869, "stateMutability": "nonpayable", @@ -5867,12 +5869,12 @@ { "id": 34432, "nodeType": "FunctionDefinition", - "src": "19019:2122:43", + "src": "19237:2122:43", "nodes": [], "body": { "id": 34431, "nodeType": "Block", - "src": "19285:1856:43", + "src": "19503:1856:43", "nodes": [], "statements": [ { @@ -5892,7 +5894,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34334, - "src": "19299:7:43", + "src": "19517:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5906,13 +5908,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "19310:11:43", + "src": "19528:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "19299:22:43", + "src": "19517:22:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5920,11 +5922,11 @@ }, "id": 34359, "nodeType": "IfStatement", - "src": "19295:95:43", + "src": "19513:95:43", "trueBody": { "id": 34358, "nodeType": "Block", - "src": "19323:67:43", + "src": "19541:67:43", "statements": [ { "errorCall": { @@ -5935,7 +5937,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34334, - "src": "19358:7:43", + "src": "19576:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5947,7 +5949,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "19367:11:43", + "src": "19585:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5970,7 +5972,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34126, - "src": "19344:13:43", + "src": "19562:13:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256) pure" @@ -5985,7 +5987,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19344:35:43", + "src": "19562:35:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -5994,7 +5996,7 @@ }, "id": 34357, "nodeType": "RevertStatement", - "src": "19337:42:43" + "src": "19555:42:43" } ] } @@ -6009,10 +6011,10 @@ "id": 34361, "mutability": "mutable", "name": "inputHash", - "nameLocation": "19488:9:43", + "nameLocation": "19706:9:43", "nodeType": "VariableDeclaration", "scope": 34431, - "src": "19480:17:43", + "src": "19698:17:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6023,7 +6025,7 @@ "id": 34360, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "19480:7:43", + "src": "19698:7:43", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6041,7 +6043,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34336, - "src": "19552:10:43", + "src": "19770:10:43", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6053,7 +6055,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34334, - "src": "19564:7:43", + "src": "19782:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6065,7 +6067,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34341, - "src": "19573:8:43", + "src": "19791:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6077,7 +6079,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34339, - "src": "19583:19:43", + "src": "19801:19:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -6108,7 +6110,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34468, - "src": "19500:38:43", + "src": "19718:38:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$_t_bytes32_$", "typeString": "function (uint32,uint256,uint256,uint256[] calldata) view returns (bytes32)" @@ -6123,7 +6125,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19500:112:43", + "src": "19718:112:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6131,7 +6133,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "19480:132:43" + "src": "19698:132:43" }, { "assignments": [ @@ -6143,10 +6145,10 @@ "id": 34370, "mutability": "mutable", "name": "reducedElement", - "nameLocation": "19919:14:43", + "nameLocation": "20137:14:43", "nodeType": "VariableDeclaration", "scope": 34431, - "src": "19911:22:43", + "src": "20129:22:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6157,7 +6159,7 @@ "id": 34369, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "19911:7:43", + "src": "20129:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6185,7 +6187,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34361, - "src": "19944:9:43", + "src": "20162:9:43", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6205,7 +6207,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19936:7:43", + "src": "20154:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" @@ -6214,7 +6216,7 @@ "id": 34371, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "19936:7:43", + "src": "20154:7:43", "typeDescriptions": {} } }, @@ -6227,7 +6229,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "19936:18:43", + "src": "20154:18:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6242,20 +6244,20 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34036, - "src": "19957:18:43", + "src": "20175:18:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "19936:39:43", + "src": "20154:39:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "19911:64:43" + "src": "20129:64:43" }, { "assignments": [ @@ -6267,14 +6269,14 @@ "id": 34380, "mutability": "mutable", "name": "insertionVerifier", - "nameLocation": "20073:17:43", + "nameLocation": "20291:17:43", "nodeType": "VariableDeclaration", "scope": 34431, - "src": "20059:31:43", + "src": "20277:31:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35445", + "typeIdentifier": "t_contract$_ITreeVerifier_$35473", "typeString": "contract ITreeVerifier" }, "typeName": { @@ -6284,16 +6286,16 @@ "id": 34378, "name": "ITreeVerifier", "nameLocations": [ - "20059:13:43" + "20277:13:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35445, - "src": "20059:13:43" + "referencedDeclaration": 35473, + "src": "20277:13:43" }, - "referencedDeclaration": 35445, - "src": "20059:13:43", + "referencedDeclaration": 35473, + "src": "20277:13:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35445", + "typeIdentifier": "t_contract$_ITreeVerifier_$35473", "typeString": "contract ITreeVerifier" } }, @@ -6310,7 +6312,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34339, - "src": "20144:19:43", + "src": "20362:19:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -6321,10 +6323,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20164:6:43", + "memberLocation": "20382:6:43", "memberName": "length", "nodeType": "MemberAccess", - "src": "20144:26:43", + "src": "20362:26:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6344,9 +6346,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34043, - "src": "20105:23:43", + "src": "20323:23:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, @@ -6355,13 +6357,13 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20129:14:43", + "memberLocation": "20347:14:43", "memberName": "getVerifierFor", "nodeType": "MemberAccess", - "referencedDeclaration": 35260, - "src": "20105:38:43", + "referencedDeclaration": 35288, + "src": "20323:38:43", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_ITreeVerifier_$35445_$", + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_ITreeVerifier_$35473_$", "typeString": "function (uint256) view external returns (contract ITreeVerifier)" } }, @@ -6374,15 +6376,15 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20105:66:43", + "src": "20323:66:43", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35445", + "typeIdentifier": "t_contract$_ITreeVerifier_$35473", "typeString": "contract ITreeVerifier" } }, "nodeType": "VariableDeclarationStatement", - "src": "20059:112:43" + "src": "20277:112:43" }, { "clauses": [ @@ -6390,7 +6392,7 @@ "block": { "id": 34414, "nodeType": "Block", - "src": "20304:466:43", + "src": "20522:466:43", "statements": [ { "expression": { @@ -6405,7 +6407,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "20472:11:43", + "src": "20690:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6419,13 +6421,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34341, - "src": "20486:8:43", + "src": "20704:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "20472:22:43", + "src": "20690:22:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6433,7 +6435,7 @@ }, "id": 34396, "nodeType": "ExpressionStatement", - "src": "20472:22:43" + "src": "20690:22:43" }, { "expression": { @@ -6449,7 +6451,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34029, - "src": "20640:11:43", + "src": "20858:11:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", "typeString": "mapping(uint256 => uint128)" @@ -6462,7 +6464,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34334, - "src": "20652:7:43", + "src": "20870:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6473,7 +6475,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "20640:20:43", + "src": "20858:20:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -6490,7 +6492,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "20671:5:43", + "src": "20889:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" @@ -6501,10 +6503,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20677:9:43", + "memberLocation": "20895:9:43", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "20671:15:43", + "src": "20889:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6524,7 +6526,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20663:7:43", + "src": "20881:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" @@ -6533,7 +6535,7 @@ "id": 34400, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "20663:7:43", + "src": "20881:7:43", "typeDescriptions": {} } }, @@ -6546,14 +6548,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20663:24:43", + "src": "20881:24:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "20640:47:43", + "src": "20858:47:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -6561,7 +6563,7 @@ }, "id": 34406, "nodeType": "ExpressionStatement", - "src": "20640:47:43" + "src": "20858:47:43" }, { "eventCall": { @@ -6572,7 +6574,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34334, - "src": "20719:7:43", + "src": "20937:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6585,7 +6587,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34078, - "src": "20728:10:43", + "src": "20946:10:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TreeChange_$34078_$", "typeString": "type(enum WorldIDIdentityManagerImplV1.TreeChange)" @@ -6596,11 +6598,11 @@ "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "20739:9:43", + "memberLocation": "20957:9:43", "memberName": "Insertion", "nodeType": "MemberAccess", "referencedDeclaration": 34076, - "src": "20728:20:43", + "src": "20946:20:43", "typeDescriptions": { "typeIdentifier": "t_enum$_TreeChange_$34078", "typeString": "enum WorldIDIdentityManagerImplV1.TreeChange" @@ -6612,7 +6614,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34341, - "src": "20750:8:43", + "src": "20968:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6639,7 +6641,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34159, - "src": "20707:11:43", + "src": "20925:11:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TreeChange_$34078_$_t_uint256_$returns$__$", "typeString": "function (uint256,enum WorldIDIdentityManagerImplV1.TreeChange,uint256)" @@ -6654,7 +6656,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20707:52:43", + "src": "20925:52:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -6663,20 +6665,20 @@ }, "id": 34413, "nodeType": "EmitStatement", - "src": "20702:57:43" + "src": "20920:57:43" } ] }, "errorName": "", "id": 34415, "nodeType": "TryCatchClause", - "src": "20304:466:43" + "src": "20522:466:43" }, { "block": { "id": 34423, "nodeType": "Block", - "src": "20808:100:43", + "src": "21026:100:43", "statements": [ { "documentation": "This is not the revert we're looking for.", @@ -6688,7 +6690,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34417, - "src": "20887:9:43", + "src": "21105:9:43", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -6710,7 +6712,7 @@ -19 ], "referencedDeclaration": -19, - "src": "20880:6:43", + "src": "21098:6:43", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" @@ -6725,7 +6727,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20880:17:43", + "src": "21098:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -6734,7 +6736,7 @@ }, "id": 34422, "nodeType": "ExpressionStatement", - "src": "20880:17:43" + "src": "21098:17:43" } ] }, @@ -6750,10 +6752,10 @@ "id": 34417, "mutability": "mutable", "name": "errString", - "nameLocation": "20797:9:43", + "nameLocation": "21015:9:43", "nodeType": "VariableDeclaration", "scope": 34424, - "src": "20783:23:43", + "src": "21001:23:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6764,7 +6766,7 @@ "id": 34416, "name": "string", "nodeType": "ElementaryTypeName", - "src": "20783:6:43", + "src": "21001:6:43", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -6773,15 +6775,15 @@ "visibility": "internal" } ], - "src": "20782:25:43" + "src": "21000:25:43" }, - "src": "20771:137:43" + "src": "20989:137:43" }, { "block": { "id": 34428, "nodeType": "Block", - "src": "20915:220:43", + "src": "21133:220:43", "statements": [ { "errorCall": { @@ -6793,7 +6795,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34119, - "src": "21100:22:43", + "src": "21318:22:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" @@ -6808,7 +6810,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "21100:24:43", + "src": "21318:24:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -6817,14 +6819,14 @@ }, "id": 34427, "nodeType": "RevertStatement", - "src": "21093:31:43" + "src": "21311:31:43" } ] }, "errorName": "", "id": 34429, "nodeType": "TryCatchClause", - "src": "20909:226:43" + "src": "21127:226:43" } ], "externalCall": { @@ -6835,7 +6837,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34332, - "src": "20270:14:43", + "src": "20488:14:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", "typeString": "uint256[8] calldata" @@ -6849,7 +6851,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34370, - "src": "20287:14:43", + "src": "20505:14:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6863,7 +6865,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "20286:16:43", + "src": "20504:16:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", "typeString": "uint256[1] memory" @@ -6887,9 +6889,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34380, - "src": "20240:17:43", + "src": "20458:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35445", + "typeIdentifier": "t_contract$_ITreeVerifier_$35473", "typeString": "contract ITreeVerifier" } }, @@ -6898,11 +6900,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "20258:11:43", + "memberLocation": "20476:11:43", "memberName": "verifyProof", "nodeType": "MemberAccess", - "referencedDeclaration": 35444, - "src": "20240:29:43", + "referencedDeclaration": 35472, + "src": "20458:29:43", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_uint256_$1_memory_ptr_$returns$__$", "typeString": "function (uint256[8] memory,uint256[1] memory) external" @@ -6917,7 +6919,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "20240:63:43", + "src": "20458:63:43", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -6926,14 +6928,14 @@ }, "id": 34430, "nodeType": "TryStatement", - "src": "20236:899:43" + "src": "20454:899:43" } ] }, "documentation": { "id": 34328, "nodeType": "StructuredDocumentation", - "src": "18036:978:43", + "src": "18254:978:43", "text": "@param startIndex The position in the tree at which the insertions were made.\n @param identityCommitments The identities that were inserted into the tree starting at\n `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be\n elements of the field `Kr`.\n @param postRoot The root obtained after inserting all of `identityCommitments` into the tree\n described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\n @custom:reverts Unauthorized If the message sender is not authorised to add identities.\n @custom:reverts NotLatestRoot If the provided `preRoot` is not the latest root.\n @custom:reverts ProofValidationFailure If `insertionProof` cannot be verified using the\n provided inputs.\n @custom:reverts VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known\n verifier." }, "functionSelector": "2217b211", @@ -6947,14 +6949,14 @@ "id": 34343, "name": "onlyProxy", "nameLocations": [ - "19238:9:43" + "19456:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "19238:9:43" + "src": "19456:9:43" }, "nodeType": "ModifierInvocation", - "src": "19238:9:43" + "src": "19456:9:43" }, { "id": 34346, @@ -6963,14 +6965,14 @@ "id": 34345, "name": "onlyInitialized", "nameLocations": [ - "19248:15:43" + "19466:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "19248:15:43" + "referencedDeclaration": 48500, + "src": "19466:15:43" }, "nodeType": "ModifierInvocation", - "src": "19248:15:43" + "src": "19466:15:43" }, { "id": 34348, @@ -6979,18 +6981,18 @@ "id": 34347, "name": "onlyIdentityOperator", "nameLocations": [ - "19264:20:43" + "19482:20:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 34868, - "src": "19264:20:43" + "src": "19482:20:43" }, "nodeType": "ModifierInvocation", - "src": "19264:20:43" + "src": "19482:20:43" } ], "name": "registerIdentities", - "nameLocation": "19028:18:43", + "nameLocation": "19246:18:43", "parameters": { "id": 34342, "nodeType": "ParameterList", @@ -7000,10 +7002,10 @@ "id": 34332, "mutability": "mutable", "name": "insertionProof", - "nameLocation": "19076:14:43", + "nameLocation": "19294:14:43", "nodeType": "VariableDeclaration", "scope": 34432, - "src": "19056:34:43", + "src": "19274:34:43", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -7015,7 +7017,7 @@ "id": 34329, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "19056:7:43", + "src": "19274:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7031,7 +7033,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19064:1:43", + "src": "19282:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" @@ -7039,7 +7041,7 @@ "value": "8" }, "nodeType": "ArrayTypeName", - "src": "19056:10:43", + "src": "19274:10:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", "typeString": "uint256[8]" @@ -7052,10 +7054,10 @@ "id": 34334, "mutability": "mutable", "name": "preRoot", - "nameLocation": "19108:7:43", + "nameLocation": "19326:7:43", "nodeType": "VariableDeclaration", "scope": 34432, - "src": "19100:15:43", + "src": "19318:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7066,7 +7068,7 @@ "id": 34333, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "19100:7:43", + "src": "19318:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7079,10 +7081,10 @@ "id": 34336, "mutability": "mutable", "name": "startIndex", - "nameLocation": "19132:10:43", + "nameLocation": "19350:10:43", "nodeType": "VariableDeclaration", "scope": 34432, - "src": "19125:17:43", + "src": "19343:17:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7093,7 +7095,7 @@ "id": 34335, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19125:6:43", + "src": "19343:6:43", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -7106,10 +7108,10 @@ "id": 34339, "mutability": "mutable", "name": "identityCommitments", - "nameLocation": "19171:19:43", + "nameLocation": "19389:19:43", "nodeType": "VariableDeclaration", "scope": 34432, - "src": "19152:38:43", + "src": "19370:38:43", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -7121,7 +7123,7 @@ "id": 34337, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "19152:7:43", + "src": "19370:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7129,7 +7131,7 @@ }, "id": 34338, "nodeType": "ArrayTypeName", - "src": "19152:9:43", + "src": "19370:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -7142,10 +7144,10 @@ "id": 34341, "mutability": "mutable", "name": "postRoot", - "nameLocation": "19208:8:43", + "nameLocation": "19426:8:43", "nodeType": "VariableDeclaration", "scope": 34432, - "src": "19200:16:43", + "src": "19418:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7156,7 +7158,7 @@ "id": 34340, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "19200:7:43", + "src": "19418:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7165,13 +7167,13 @@ "visibility": "internal" } ], - "src": "19046:176:43" + "src": "19264:176:43" }, "returnParameters": { "id": 34349, "nodeType": "ParameterList", "parameters": [], - "src": "19285:0:43" + "src": "19503:0:43" }, "scope": 34869, "stateMutability": "nonpayable", @@ -7181,12 +7183,12 @@ { "id": 34468, "nodeType": "FunctionDefinition", - "src": "22271:413:43", + "src": "22489:413:43", "nodes": [], "body": { "id": 34467, "nodeType": "Block", - "src": "22520:164:43", + "src": "22738:164:43", "nodes": [], "statements": [ { @@ -7199,10 +7201,10 @@ "id": 34452, "mutability": "mutable", "name": "bytesToHash", - "nameLocation": "22543:11:43", + "nameLocation": "22761:11:43", "nodeType": "VariableDeclaration", "scope": 34467, - "src": "22530:24:43", + "src": "22748:24:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7213,7 +7215,7 @@ "id": 34451, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "22530:5:43", + "src": "22748:5:43", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7231,7 +7233,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34435, - "src": "22586:10:43", + "src": "22804:10:43", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -7243,7 +7245,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34437, - "src": "22598:7:43", + "src": "22816:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7255,7 +7257,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34439, - "src": "22607:8:43", + "src": "22825:8:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7267,7 +7269,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34442, - "src": "22617:19:43", + "src": "22835:19:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -7299,7 +7301,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "22569:3:43", + "src": "22787:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" @@ -7310,10 +7312,10 @@ "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "22573:12:43", + "memberLocation": "22791:12:43", "memberName": "encodePacked", "nodeType": "MemberAccess", - "src": "22569:16:43", + "src": "22787:16:43", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" @@ -7328,7 +7330,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "22569:68:43", + "src": "22787:68:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7336,7 +7338,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "22530:107:43" + "src": "22748:107:43" }, { "expression": { @@ -7351,7 +7353,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34449, - "src": "22648:4:43", + "src": "22866:4:43", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7367,7 +7369,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34452, - "src": "22665:11:43", + "src": "22883:11:43", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7386,7 +7388,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "22655:9:43", + "src": "22873:9:43", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" @@ -7401,14 +7403,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "22655:22:43", + "src": "22873:22:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "22648:29:43", + "src": "22866:29:43", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7416,14 +7418,14 @@ }, "id": 34466, "nodeType": "ExpressionStatement", - "src": "22648:29:43" + "src": "22866:29:43" } ] }, "documentation": { "id": 34433, "nodeType": "StructuredDocumentation", - "src": "21400:866:43", + "src": "21618:866:43", "text": "@notice Calculates the input hash for the identity registration verifier.\n @dev Implements the computation described below.\n @param startIndex The index in the tree from which inserting started.\n @param preRoot The root value of the tree before these insertions were made.\n @param postRoot The root value of the tree after these insertions were made.\n @param identityCommitments The identities that were added to the tree to produce `postRoot`.\n @return hash The input hash calculated as described below.\n We keccak hash all input to save verification gas. Inputs are arranged as follows:\n StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1]\n 32\t || 256 || 256 || 256 || 256 || ... || 256 bits" }, "functionSelector": "8c76a909", @@ -7437,14 +7439,14 @@ "id": 34444, "name": "onlyProxy", "nameLocations": [ - "22471:9:43" + "22689:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "22471:9:43" + "src": "22689:9:43" }, "nodeType": "ModifierInvocation", - "src": "22471:9:43" + "src": "22689:9:43" }, { "id": 34447, @@ -7453,18 +7455,18 @@ "id": 34446, "name": "onlyInitialized", "nameLocations": [ - "22481:15:43" + "22699:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "22481:15:43" + "referencedDeclaration": 48500, + "src": "22699:15:43" }, "nodeType": "ModifierInvocation", - "src": "22481:15:43" + "src": "22699:15:43" } ], "name": "calculateIdentityRegistrationInputHash", - "nameLocation": "22280:38:43", + "nameLocation": "22498:38:43", "parameters": { "id": 34443, "nodeType": "ParameterList", @@ -7474,10 +7476,10 @@ "id": 34435, "mutability": "mutable", "name": "startIndex", - "nameLocation": "22335:10:43", + "nameLocation": "22553:10:43", "nodeType": "VariableDeclaration", "scope": 34468, - "src": "22328:17:43", + "src": "22546:17:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7488,7 +7490,7 @@ "id": 34434, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22328:6:43", + "src": "22546:6:43", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -7501,10 +7503,10 @@ "id": 34437, "mutability": "mutable", "name": "preRoot", - "nameLocation": "22363:7:43", + "nameLocation": "22581:7:43", "nodeType": "VariableDeclaration", "scope": 34468, - "src": "22355:15:43", + "src": "22573:15:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7515,7 +7517,7 @@ "id": 34436, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "22355:7:43", + "src": "22573:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7528,10 +7530,10 @@ "id": 34439, "mutability": "mutable", "name": "postRoot", - "nameLocation": "22388:8:43", + "nameLocation": "22606:8:43", "nodeType": "VariableDeclaration", "scope": 34468, - "src": "22380:16:43", + "src": "22598:16:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7542,7 +7544,7 @@ "id": 34438, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "22380:7:43", + "src": "22598:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7555,10 +7557,10 @@ "id": 34442, "mutability": "mutable", "name": "identityCommitments", - "nameLocation": "22425:19:43", + "nameLocation": "22643:19:43", "nodeType": "VariableDeclaration", "scope": 34468, - "src": "22406:38:43", + "src": "22624:38:43", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -7570,7 +7572,7 @@ "id": 34440, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "22406:7:43", + "src": "22624:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7578,7 +7580,7 @@ }, "id": 34441, "nodeType": "ArrayTypeName", - "src": "22406:9:43", + "src": "22624:9:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -7587,7 +7589,7 @@ "visibility": "internal" } ], - "src": "22318:132:43" + "src": "22536:132:43" }, "returnParameters": { "id": 34450, @@ -7598,10 +7600,10 @@ "id": 34449, "mutability": "mutable", "name": "hash", - "nameLocation": "22514:4:43", + "nameLocation": "22732:4:43", "nodeType": "VariableDeclaration", "scope": 34468, - "src": "22506:12:43", + "src": "22724:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7612,7 +7614,7 @@ "id": 34448, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "22506:7:43", + "src": "22724:7:43", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7621,7 +7623,7 @@ "visibility": "internal" } ], - "src": "22505:14:43" + "src": "22723:14:43" }, "scope": 34869, "stateMutability": "view", @@ -7631,12 +7633,12 @@ { "id": 34481, "nodeType": "FunctionDefinition", - "src": "22812:121:43", + "src": "23030:121:43", "nodes": [], "body": { "id": 34480, "nodeType": "Block", - "src": "22898:35:43", + "src": "23116:35:43", "nodes": [], "statements": [ { @@ -7646,7 +7648,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "22915:11:43", + "src": "23133:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7655,14 +7657,14 @@ "functionReturnParameters": 34477, "id": 34479, "nodeType": "Return", - "src": "22908:18:43" + "src": "23126:18:43" } ] }, "documentation": { "id": 34469, "nodeType": "StructuredDocumentation", - "src": "22690:117:43", + "src": "22908:117:43", "text": "@notice Allows a caller to query the latest root.\n @return root The value of the latest tree root." }, "functionSelector": "d7b0fef1", @@ -7676,14 +7678,14 @@ "id": 34471, "name": "onlyProxy", "nameLocations": [ - "22854:9:43" + "23072:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "22854:9:43" + "src": "23072:9:43" }, "nodeType": "ModifierInvocation", - "src": "22854:9:43" + "src": "23072:9:43" }, { "id": 34474, @@ -7692,23 +7694,23 @@ "id": 34473, "name": "onlyInitialized", "nameLocations": [ - "22864:15:43" + "23082:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "22864:15:43" + "referencedDeclaration": 48500, + "src": "23082:15:43" }, "nodeType": "ModifierInvocation", - "src": "22864:15:43" + "src": "23082:15:43" } ], "name": "latestRoot", - "nameLocation": "22821:10:43", + "nameLocation": "23039:10:43", "parameters": { "id": 34470, "nodeType": "ParameterList", "parameters": [], - "src": "22831:2:43" + "src": "23049:2:43" }, "returnParameters": { "id": 34477, @@ -7722,7 +7724,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 34481, - "src": "22889:7:43", + "src": "23107:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7733,7 +7735,7 @@ "id": 34475, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "22889:7:43", + "src": "23107:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7742,7 +7744,7 @@ "visibility": "internal" } ], - "src": "22888:9:43" + "src": "23106:9:43" }, "scope": 34869, "stateMutability": "view", @@ -7752,12 +7754,12 @@ { "id": 34538, "nodeType": "FunctionDefinition", - "src": "23429:567:43", + "src": "23647:567:43", "nodes": [], "body": { "id": 34537, "nodeType": "Block", - "src": "23586:410:43", + "src": "23804:410:43", "nodes": [], "statements": [ { @@ -7777,7 +7779,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34484, - "src": "23600:4:43", + "src": "23818:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7791,13 +7793,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "23608:11:43", + "src": "23826:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "23600:19:43", + "src": "23818:19:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7806,7 +7808,7 @@ "falseBody": { "id": 34535, "nodeType": "Block", - "src": "23689:301:43", + "src": "23907:301:43", "statements": [ { "assignments": [ @@ -7818,10 +7820,10 @@ "id": 34505, "mutability": "mutable", "name": "rootTimestamp", - "nameLocation": "23711:13:43", + "nameLocation": "23929:13:43", "nodeType": "VariableDeclaration", "scope": 34535, - "src": "23703:21:43", + "src": "23921:21:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7832,7 +7834,7 @@ "id": 34504, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "23703:7:43", + "src": "23921:7:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -7849,7 +7851,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34029, - "src": "23727:11:43", + "src": "23945:11:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", "typeString": "mapping(uint256 => uint128)" @@ -7862,7 +7864,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34484, - "src": "23739:4:43", + "src": "23957:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7873,14 +7875,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "23727:17:43", + "src": "23945:17:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "VariableDeclarationStatement", - "src": "23703:41:43" + "src": "23921:41:43" }, { "condition": { @@ -7899,7 +7901,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34505, - "src": "23763:13:43", + "src": "23981:13:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -7916,14 +7918,14 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23780:1:43", + "src": "23998:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "23763:18:43", + "src": "23981:18:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7931,11 +7933,11 @@ }, "id": 34517, "nodeType": "IfStatement", - "src": "23759:78:43", + "src": "23977:78:43", "trueBody": { "id": 34516, "nodeType": "Block", - "src": "23783:54:43", + "src": "24001:54:43", "statements": [ { "expression": { @@ -7947,7 +7949,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34098, - "src": "23808:12:43", + "src": "24026:12:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_RootInfo_$34069_memory_ptr_$", "typeString": "function () pure returns (struct WorldIDIdentityManagerImplV1.RootInfo memory)" @@ -7962,7 +7964,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "23808:14:43", + "src": "24026:14:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_RootInfo_$34069_memory_ptr", @@ -7972,7 +7974,7 @@ "functionReturnParameters": 34493, "id": 34515, "nodeType": "Return", - "src": "23801:21:43" + "src": "24019:21:43" } ] } @@ -7987,10 +7989,10 @@ "id": 34519, "mutability": "mutable", "name": "isValid", - "nameLocation": "23856:7:43", + "nameLocation": "24074:7:43", "nodeType": "VariableDeclaration", "scope": 34535, - "src": "23851:12:43", + "src": "24069:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8001,7 +8003,7 @@ "id": 34518, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "23851:4:43", + "src": "24069:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8020,7 +8022,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "23866:54:43", + "src": "24084:54:43", "subExpression": { "components": [ { @@ -8050,7 +8052,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "23868:5:43", + "src": "24086:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" @@ -8061,10 +8063,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "23874:9:43", + "memberLocation": "24092:9:43", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "23868:15:43", + "src": "24086:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8078,13 +8080,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34505, - "src": "23886:13:43", + "src": "24104:13:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "23868:31:43", + "src": "24086:31:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8098,13 +8100,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34032, - "src": "23902:17:43", + "src": "24120:17:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "23868:51:43", + "src": "24086:51:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8118,7 +8120,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "23867:53:43", + "src": "24085:53:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8130,7 +8132,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "23851:69:43" + "src": "24069:69:43" }, { "expression": { @@ -8141,7 +8143,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34484, - "src": "23950:4:43", + "src": "24168:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8153,7 +8155,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34505, - "src": "23956:13:43", + "src": "24174:13:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -8165,7 +8167,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34519, - "src": "23971:7:43", + "src": "24189:7:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8192,7 +8194,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34069, - "src": "23941:8:43", + "src": "24159:8:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_RootInfo_$34069_storage_ptr_$", "typeString": "type(struct WorldIDIdentityManagerImplV1.RootInfo storage pointer)" @@ -8207,7 +8209,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "23941:38:43", + "src": "24159:38:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_RootInfo_$34069_memory_ptr", @@ -8217,17 +8219,17 @@ "functionReturnParameters": 34493, "id": 34534, "nodeType": "Return", - "src": "23934:45:43" + "src": "24152:45:43" } ] }, "id": 34536, "nodeType": "IfStatement", - "src": "23596:394:43", + "src": "23814:394:43", "trueBody": { "id": 34503, "nodeType": "Block", - "src": "23621:62:43", + "src": "23839:62:43", "statements": [ { "expression": { @@ -8238,7 +8240,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "23651:11:43", + "src": "23869:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8253,7 +8255,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23664:1:43", + "src": "23882:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -8269,7 +8271,7 @@ "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "23667:4:43", + "src": "23885:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8297,7 +8299,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34069, - "src": "23642:8:43", + "src": "23860:8:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_RootInfo_$34069_storage_ptr_$", "typeString": "type(struct WorldIDIdentityManagerImplV1.RootInfo storage pointer)" @@ -8312,7 +8314,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "23642:30:43", + "src": "23860:30:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_RootInfo_$34069_memory_ptr", @@ -8322,7 +8324,7 @@ "functionReturnParameters": 34493, "id": 34502, "nodeType": "Return", - "src": "23635:37:43" + "src": "23853:37:43" } ] } @@ -8332,7 +8334,7 @@ "documentation": { "id": 34482, "nodeType": "StructuredDocumentation", - "src": "22939:485:43", + "src": "23157:485:43", "text": "@notice Allows a caller to query the root history for information about a given root.\n @dev Should be used sparingly as the query can be quite expensive.\n @param root The root for which you are querying information.\n @return rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist.\n Note that if the queried root is the current, the timestamp will be invalid as the\n root has not been superseded." }, "functionSelector": "3f7c178d", @@ -8346,14 +8348,14 @@ "id": 34486, "name": "onlyProxy", "nameLocations": [ - "23514:9:43" + "23732:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "23514:9:43" + "src": "23732:9:43" }, "nodeType": "ModifierInvocation", - "src": "23514:9:43" + "src": "23732:9:43" }, { "id": 34489, @@ -8362,18 +8364,18 @@ "id": 34488, "name": "onlyInitialized", "nameLocations": [ - "23532:15:43" + "23750:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "23532:15:43" + "referencedDeclaration": 48500, + "src": "23750:15:43" }, "nodeType": "ModifierInvocation", - "src": "23532:15:43" + "src": "23750:15:43" } ], "name": "queryRoot", - "nameLocation": "23438:9:43", + "nameLocation": "23656:9:43", "parameters": { "id": 34485, "nodeType": "ParameterList", @@ -8383,10 +8385,10 @@ "id": 34484, "mutability": "mutable", "name": "root", - "nameLocation": "23456:4:43", + "nameLocation": "23674:4:43", "nodeType": "VariableDeclaration", "scope": 34538, - "src": "23448:12:43", + "src": "23666:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8397,7 +8399,7 @@ "id": 34483, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "23448:7:43", + "src": "23666:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8406,7 +8408,7 @@ "visibility": "internal" } ], - "src": "23447:14:43" + "src": "23665:14:43" }, "returnParameters": { "id": 34493, @@ -8420,7 +8422,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 34538, - "src": "23565:15:43", + "src": "23783:15:43", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8434,14 +8436,14 @@ "id": 34490, "name": "RootInfo", "nameLocations": [ - "23565:8:43" + "23783:8:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 34069, - "src": "23565:8:43" + "src": "23783:8:43" }, "referencedDeclaration": 34069, - "src": "23565:8:43", + "src": "23783:8:43", "typeDescriptions": { "typeIdentifier": "t_struct$_RootInfo_$34069_storage_ptr", "typeString": "struct WorldIDIdentityManagerImplV1.RootInfo" @@ -8450,7 +8452,7 @@ "visibility": "internal" } ], - "src": "23564:17:43" + "src": "23782:17:43" }, "scope": 34869, "stateMutability": "view", @@ -8460,12 +8462,12 @@ { "id": 34580, "nodeType": "FunctionDefinition", - "src": "24439:638:43", + "src": "24657:638:43", "nodes": [], "body": { "id": 34579, "nodeType": "Block", - "src": "24525:552:43", + "src": "24743:552:43", "nodes": [], "statements": [ { @@ -8485,7 +8487,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34541, - "src": "24583:4:43", + "src": "24801:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8499,13 +8501,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "24591:11:43", + "src": "24809:11:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "24583:19:43", + "src": "24801:19:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8513,17 +8515,17 @@ }, "id": 34553, "nodeType": "IfStatement", - "src": "24579:56:43", + "src": "24797:56:43", "trueBody": { "id": 34552, "nodeType": "Block", - "src": "24604:31:43", + "src": "24822:31:43", "statements": [ { "functionReturnParameters": 34547, "id": 34551, "nodeType": "Return", - "src": "24618:7:43" + "src": "24836:7:43" } ] } @@ -8538,10 +8540,10 @@ "id": 34555, "mutability": "mutable", "name": "rootTimestamp", - "nameLocation": "24718:13:43", + "nameLocation": "24936:13:43", "nodeType": "VariableDeclaration", "scope": 34579, - "src": "24710:21:43", + "src": "24928:21:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8552,7 +8554,7 @@ "id": 34554, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "24710:7:43", + "src": "24928:7:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -8569,7 +8571,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34029, - "src": "24734:11:43", + "src": "24952:11:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", "typeString": "mapping(uint256 => uint128)" @@ -8582,7 +8584,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34541, - "src": "24746:4:43", + "src": "24964:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8593,14 +8595,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "24734:17:43", + "src": "24952:17:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "VariableDeclarationStatement", - "src": "24710:41:43" + "src": "24928:41:43" }, { "condition": { @@ -8619,7 +8621,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34555, - "src": "24834:13:43", + "src": "25052:13:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -8636,14 +8638,14 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "24851:1:43", + "src": "25069:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "24834:18:43", + "src": "25052:18:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8651,11 +8653,11 @@ }, "id": 34567, "nodeType": "IfStatement", - "src": "24830:73:43", + "src": "25048:73:43", "trueBody": { "id": 34566, "nodeType": "Block", - "src": "24854:49:43", + "src": "25072:49:43", "statements": [ { "errorCall": { @@ -8666,8 +8668,8 @@ "name": "NonExistentRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35397, - "src": "24875:15:43", + "referencedDeclaration": 35425, + "src": "25093:15:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" @@ -8682,7 +8684,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "24875:17:43", + "src": "25093:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -8691,7 +8693,7 @@ }, "id": 34565, "nodeType": "RevertStatement", - "src": "24868:24:43" + "src": "25086:24:43" } ] } @@ -8724,7 +8726,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "24973:5:43", + "src": "25191:5:43", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" @@ -8735,10 +8737,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "24979:9:43", + "memberLocation": "25197:9:43", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "24973:15:43", + "src": "25191:15:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8752,13 +8754,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34555, - "src": "24991:13:43", + "src": "25209:13:43", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "24973:31:43", + "src": "25191:31:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8772,13 +8774,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34032, - "src": "25007:17:43", + "src": "25225:17:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "24973:51:43", + "src": "25191:51:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8786,11 +8788,11 @@ }, "id": 34578, "nodeType": "IfStatement", - "src": "24969:102:43", + "src": "25187:102:43", "trueBody": { "id": 34577, "nodeType": "Block", - "src": "25026:45:43", + "src": "25244:45:43", "statements": [ { "errorCall": { @@ -8801,8 +8803,8 @@ "name": "ExpiredRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35394, - "src": "25047:11:43", + "referencedDeclaration": 35422, + "src": "25265:11:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" @@ -8817,7 +8819,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "25047:13:43", + "src": "25265:13:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -8826,7 +8828,7 @@ }, "id": 34576, "nodeType": "RevertStatement", - "src": "25040:20:43" + "src": "25258:20:43" } ] } @@ -8836,7 +8838,7 @@ "documentation": { "id": 34539, "nodeType": "StructuredDocumentation", - "src": "24002:432:43", + "src": "24220:432:43", "text": "@notice Reverts if the provided root value is not valid.\n @dev A root is valid if it is either the latest root, or not the latest root but has not\n expired.\n @param root The root of the merkle tree to check for validity.\n @custom:reverts ExpiredRoot If the provided `root` has expired.\n @custom:reverts NonExistentRoot If the provided `root` does not exist in the history." }, "functionSelector": "f2358e1d", @@ -8850,14 +8852,14 @@ "id": 34543, "name": "onlyProxy", "nameLocations": [ - "24499:9:43" + "24717:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "24499:9:43" + "src": "24717:9:43" }, "nodeType": "ModifierInvocation", - "src": "24499:9:43" + "src": "24717:9:43" }, { "id": 34546, @@ -8866,18 +8868,18 @@ "id": 34545, "name": "onlyInitialized", "nameLocations": [ - "24509:15:43" + "24727:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "24509:15:43" + "referencedDeclaration": 48500, + "src": "24727:15:43" }, "nodeType": "ModifierInvocation", - "src": "24509:15:43" + "src": "24727:15:43" } ], "name": "requireValidRoot", - "nameLocation": "24448:16:43", + "nameLocation": "24666:16:43", "parameters": { "id": 34542, "nodeType": "ParameterList", @@ -8887,10 +8889,10 @@ "id": 34541, "mutability": "mutable", "name": "root", - "nameLocation": "24473:4:43", + "nameLocation": "24691:4:43", "nodeType": "VariableDeclaration", "scope": 34580, - "src": "24465:12:43", + "src": "24683:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8901,7 +8903,7 @@ "id": 34540, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "24465:7:43", + "src": "24683:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8910,13 +8912,13 @@ "visibility": "internal" } ], - "src": "24464:14:43" + "src": "24682:14:43" }, "returnParameters": { "id": 34547, "nodeType": "ParameterList", "parameters": [], - "src": "24525:0:43" + "src": "24743:0:43" }, "scope": 34869, "stateMutability": "view", @@ -8926,12 +8928,12 @@ { "id": 34596, "nodeType": "FunctionDefinition", - "src": "25309:231:43", + "src": "25527:231:43", "nodes": [], "body": { "id": 34595, "nodeType": "Block", - "src": "25484:56:43", + "src": "25702:56:43", "nodes": [], "statements": [ { @@ -8943,9 +8945,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34043, - "src": "25509:23:43", + "src": "25727:23:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -8953,7 +8955,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], @@ -8963,7 +8965,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "25501:7:43", + "src": "25719:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -8972,7 +8974,7 @@ "id": 34590, "name": "address", "nodeType": "ElementaryTypeName", - "src": "25501:7:43", + "src": "25719:7:43", "typeDescriptions": {} } }, @@ -8985,7 +8987,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "25501:32:43", + "src": "25719:32:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -8995,14 +8997,14 @@ "functionReturnParameters": 34589, "id": 34594, "nodeType": "Return", - "src": "25494:39:43" + "src": "25712:39:43" } ] }, "documentation": { "id": 34581, "nodeType": "StructuredDocumentation", - "src": "25083:221:43", + "src": "25301:221:43", "text": "@notice Gets the address for the lookup table of merkle tree verifiers used for identity\n registrations.\n @return addr The address of the contract being used as the verifier lookup table." }, "functionSelector": "8fc22e9f", @@ -9016,14 +9018,14 @@ "id": 34583, "name": "onlyProxy", "nameLocations": [ - "25420:9:43" + "25638:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "25420:9:43" + "src": "25638:9:43" }, "nodeType": "ModifierInvocation", - "src": "25420:9:43" + "src": "25638:9:43" }, { "id": 34586, @@ -9032,23 +9034,23 @@ "id": 34585, "name": "onlyInitialized", "nameLocations": [ - "25438:15:43" + "25656:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "25438:15:43" + "referencedDeclaration": 48500, + "src": "25656:15:43" }, "nodeType": "ModifierInvocation", - "src": "25438:15:43" + "src": "25656:15:43" } ], "name": "getRegisterIdentitiesVerifierLookupTableAddress", - "nameLocation": "25318:47:43", + "nameLocation": "25536:47:43", "parameters": { "id": 34582, "nodeType": "ParameterList", "parameters": [], - "src": "25365:2:43" + "src": "25583:2:43" }, "returnParameters": { "id": 34589, @@ -9062,7 +9064,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 34596, - "src": "25471:7:43", + "src": "25689:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9073,7 +9075,7 @@ "id": 34587, "name": "address", "nodeType": "ElementaryTypeName", - "src": "25471:7:43", + "src": "25689:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9083,7 +9085,7 @@ "visibility": "internal" } ], - "src": "25470:9:43" + "src": "25688:9:43" }, "scope": 34869, "stateMutability": "view", @@ -9093,12 +9095,12 @@ { "id": 34646, "nodeType": "FunctionDefinition", - "src": "25868:522:43", + "src": "26170:522:43", "nodes": [], "body": { "id": 34645, "nodeType": "Block", - "src": "26043:347:43", + "src": "26345:347:43", "nodes": [], "statements": [ { @@ -9120,9 +9122,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34600, - "src": "26065:8:43", + "src": "26367:8:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -9130,7 +9132,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], @@ -9140,7 +9142,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "26057:7:43", + "src": "26359:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -9149,7 +9151,7 @@ "id": 34609, "name": "address", "nodeType": "ElementaryTypeName", - "src": "26057:7:43", + "src": "26359:7:43", "typeDescriptions": {} } }, @@ -9162,7 +9164,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "26057:17:43", + "src": "26359:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9182,7 +9184,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "26086:1:43", + "src": "26388:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -9203,7 +9205,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "26078:7:43", + "src": "26380:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -9212,7 +9214,7 @@ "id": 34613, "name": "address", "nodeType": "ElementaryTypeName", - "src": "26078:7:43", + "src": "26380:7:43", "typeDescriptions": {} } }, @@ -9225,14 +9227,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "26078:10:43", + "src": "26380:10:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "26057:31:43", + "src": "26359:31:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9240,11 +9242,11 @@ }, "id": 34622, "nodeType": "IfStatement", - "src": "26053:89:43", + "src": "26355:89:43", "trueBody": { "id": 34621, "nodeType": "Block", - "src": "26090:52:43", + "src": "26392:52:43", "statements": [ { "errorCall": { @@ -9256,7 +9258,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34149, - "src": "26111:18:43", + "src": "26413:18:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" @@ -9271,7 +9273,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "26111:20:43", + "src": "26413:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -9280,7 +9282,7 @@ }, "id": 34620, "nodeType": "RevertStatement", - "src": "26104:27:43" + "src": "26406:27:43" } ] } @@ -9295,14 +9297,14 @@ "id": 34625, "mutability": "mutable", "name": "oldTable", - "nameLocation": "26172:8:43", + "nameLocation": "26474:8:43", "nodeType": "VariableDeclaration", "scope": 34645, - "src": "26152:28:43", + "src": "26454:28:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" }, "typeName": { @@ -9312,16 +9314,16 @@ "id": 34623, "name": "VerifierLookupTable", "nameLocations": [ - "26152:19:43" + "26454:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35388, - "src": "26152:19:43" + "referencedDeclaration": 35416, + "src": "26454:19:43" }, - "referencedDeclaration": 35388, - "src": "26152:19:43", + "referencedDeclaration": 35416, + "src": "26454:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, @@ -9335,14 +9337,14 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34043, - "src": "26183:23:43", + "src": "26485:23:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "nodeType": "VariableDeclarationStatement", - "src": "26152:54:43" + "src": "26454:54:43" }, { "expression": { @@ -9357,9 +9359,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34043, - "src": "26216:23:43", + "src": "26518:23:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, @@ -9371,21 +9373,21 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34600, - "src": "26242:8:43", + "src": "26544:8:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, - "src": "26216:34:43", + "src": "26518:34:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "id": 34631, "nodeType": "ExpressionStatement", - "src": "26216:34:43" + "src": "26518:34:43" }, { "eventCall": { @@ -9397,7 +9399,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34084, - "src": "26296:10:43", + "src": "26598:10:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Dependency_$34084_$", "typeString": "type(enum WorldIDIdentityManagerImplV1.Dependency)" @@ -9408,11 +9410,11 @@ "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "26307:28:43", + "memberLocation": "26609:28:43", "memberName": "InsertionVerifierLookupTable", "nodeType": "MemberAccess", "referencedDeclaration": 34081, - "src": "26296:39:43", + "src": "26598:39:43", "typeDescriptions": { "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" @@ -9426,9 +9428,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34625, - "src": "26345:8:43", + "src": "26647:8:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -9436,7 +9438,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], @@ -9446,7 +9448,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "26337:7:43", + "src": "26639:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -9455,7 +9457,7 @@ "id": 34635, "name": "address", "nodeType": "ElementaryTypeName", - "src": "26337:7:43", + "src": "26639:7:43", "typeDescriptions": {} } }, @@ -9468,7 +9470,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "26337:17:43", + "src": "26639:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9483,9 +9485,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34600, - "src": "26364:8:43", + "src": "26666:8:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -9493,7 +9495,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], @@ -9503,7 +9505,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "26356:7:43", + "src": "26658:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -9512,7 +9514,7 @@ "id": 34639, "name": "address", "nodeType": "ElementaryTypeName", - "src": "26356:7:43", + "src": "26658:7:43", "typeDescriptions": {} } }, @@ -9525,7 +9527,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "26356:17:43", + "src": "26658:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9553,7 +9555,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34169, - "src": "26265:17:43", + "src": "26567:17:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$34084_$_t_address_$_t_address_$returns$__$", "typeString": "function (enum WorldIDIdentityManagerImplV1.Dependency,address,address)" @@ -9568,7 +9570,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "26265:118:43", + "src": "26567:118:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -9577,15 +9579,15 @@ }, "id": 34644, "nodeType": "EmitStatement", - "src": "26260:123:43" + "src": "26562:123:43" } ] }, "documentation": { "id": 34597, "nodeType": "StructuredDocumentation", - "src": "25546:317:43", - "text": "@notice Sets the address for the lookup table of merkle tree verifiers used for identity\n registrations.\n @dev Only the owner of the contract can call this function.\n @param newTable The new verifier lookup table to be used for verifying identity\n registrations." + "src": "25764:401:43", + "text": "@notice Sets the address for the lookup table of merkle tree verifiers used for identity\n registrations.\n @dev Only the owner of the contract can call this function.\n @param newTable The new verifier lookup table to be used for verifying identity\n registrations.\n @custom:reverts InvalidVerifierLUT if `newTable` is set to the zero address" }, "functionSelector": "2f059fca", "implemented": true, @@ -9598,14 +9600,14 @@ "id": 34602, "name": "onlyProxy", "nameLocations": [ - "25987:9:43" + "26289:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "25987:9:43" + "src": "26289:9:43" }, "nodeType": "ModifierInvocation", - "src": "25987:9:43" + "src": "26289:9:43" }, { "id": 34605, @@ -9614,14 +9616,14 @@ "id": 34604, "name": "onlyInitialized", "nameLocations": [ - "26005:15:43" + "26307:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "26005:15:43" + "referencedDeclaration": 48500, + "src": "26307:15:43" }, "nodeType": "ModifierInvocation", - "src": "26005:15:43" + "src": "26307:15:43" }, { "id": 34607, @@ -9630,18 +9632,18 @@ "id": 34606, "name": "onlyOwner", "nameLocations": [ - "26029:9:43" + "26331:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29157, - "src": "26029:9:43" + "src": "26331:9:43" }, "nodeType": "ModifierInvocation", - "src": "26029:9:43" + "src": "26331:9:43" } ], "name": "setRegisterIdentitiesVerifierLookupTable", - "nameLocation": "25877:40:43", + "nameLocation": "26179:40:43", "parameters": { "id": 34601, "nodeType": "ParameterList", @@ -9651,14 +9653,14 @@ "id": 34600, "mutability": "mutable", "name": "newTable", - "nameLocation": "25938:8:43", + "nameLocation": "26240:8:43", "nodeType": "VariableDeclaration", "scope": 34646, - "src": "25918:28:43", + "src": "26220:28:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" }, "typeName": { @@ -9668,29 +9670,29 @@ "id": 34598, "name": "VerifierLookupTable", "nameLocations": [ - "25918:19:43" + "26220:19:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35388, - "src": "25918:19:43" + "referencedDeclaration": 35416, + "src": "26220:19:43" }, - "referencedDeclaration": 35388, - "src": "25918:19:43", + "referencedDeclaration": 35416, + "src": "26220:19:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35388", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" } ], - "src": "25917:30:43" + "src": "26219:30:43" }, "returnParameters": { "id": 34608, "nodeType": "ParameterList", "parameters": [], - "src": "26043:0:43" + "src": "26345:0:43" }, "scope": 34869, "stateMutability": "nonpayable", @@ -9700,12 +9702,12 @@ { "id": 34662, "nodeType": "FunctionDefinition", - "src": "26573:205:43", + "src": "26875:205:43", "nodes": [], "body": { "id": 34661, "nodeType": "Block", - "src": "26728:50:43", + "src": "27030:50:43", "nodes": [], "statements": [ { @@ -9717,9 +9719,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34051, - "src": "26753:17:43", + "src": "27055:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } } @@ -9727,7 +9729,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } ], @@ -9737,7 +9739,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "26745:7:43", + "src": "27047:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -9746,7 +9748,7 @@ "id": 34656, "name": "address", "nodeType": "ElementaryTypeName", - "src": "26745:7:43", + "src": "27047:7:43", "typeDescriptions": {} } }, @@ -9759,7 +9761,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "26745:26:43", + "src": "27047:26:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9769,14 +9771,14 @@ "functionReturnParameters": 34655, "id": 34660, "nodeType": "Return", - "src": "26738:33:43" + "src": "27040:33:43" } ] }, "documentation": { "id": 34647, "nodeType": "StructuredDocumentation", - "src": "26396:172:43", + "src": "26698:172:43", "text": "@notice Gets the address of the verifier used for verification of semaphore proofs.\n @return addr The address of the contract being used as the verifier." }, "functionSelector": "f2038f95", @@ -9790,14 +9792,14 @@ "id": 34649, "name": "onlyProxy", "nameLocations": [ - "26664:9:43" + "26966:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "26664:9:43" + "src": "26966:9:43" }, "nodeType": "ModifierInvocation", - "src": "26664:9:43" + "src": "26966:9:43" }, { "id": 34652, @@ -9806,23 +9808,23 @@ "id": 34651, "name": "onlyInitialized", "nameLocations": [ - "26682:15:43" + "26984:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "26682:15:43" + "referencedDeclaration": 48500, + "src": "26984:15:43" }, "nodeType": "ModifierInvocation", - "src": "26682:15:43" + "src": "26984:15:43" } ], "name": "getSemaphoreVerifierAddress", - "nameLocation": "26582:27:43", + "nameLocation": "26884:27:43", "parameters": { "id": 34648, "nodeType": "ParameterList", "parameters": [], - "src": "26609:2:43" + "src": "26911:2:43" }, "returnParameters": { "id": 34655, @@ -9836,7 +9838,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 34662, - "src": "26715:7:43", + "src": "27017:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9847,7 +9849,7 @@ "id": 34653, "name": "address", "nodeType": "ElementaryTypeName", - "src": "26715:7:43", + "src": "27017:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9857,7 +9859,7 @@ "visibility": "internal" } ], - "src": "26714:9:43" + "src": "27016:9:43" }, "scope": 34869, "stateMutability": "view", @@ -9867,12 +9869,12 @@ { "id": 34712, "nodeType": "FunctionDefinition", - "src": "27081:492:43", + "src": "27467:492:43", "nodes": [], "body": { "id": 34711, "nodeType": "Block", - "src": "27238:335:43", + "src": "27624:335:43", "nodes": [], "statements": [ { @@ -9894,9 +9896,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34666, - "src": "27260:11:43", + "src": "27646:11:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } } @@ -9904,7 +9906,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } ], @@ -9914,7 +9916,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "27252:7:43", + "src": "27638:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -9923,7 +9925,7 @@ "id": 34675, "name": "address", "nodeType": "ElementaryTypeName", - "src": "27252:7:43", + "src": "27638:7:43", "typeDescriptions": {} } }, @@ -9936,7 +9938,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "27252:20:43", + "src": "27638:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9956,7 +9958,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "27284:1:43", + "src": "27670:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -9977,7 +9979,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "27276:7:43", + "src": "27662:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -9986,7 +9988,7 @@ "id": 34679, "name": "address", "nodeType": "ElementaryTypeName", - "src": "27276:7:43", + "src": "27662:7:43", "typeDescriptions": {} } }, @@ -9999,14 +10001,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "27276:10:43", + "src": "27662:10:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "27252:34:43", + "src": "27638:34:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10014,11 +10016,11 @@ }, "id": 34688, "nodeType": "IfStatement", - "src": "27248:89:43", + "src": "27634:89:43", "trueBody": { "id": 34687, "nodeType": "Block", - "src": "27288:49:43", + "src": "27674:49:43", "statements": [ { "errorCall": { @@ -10030,7 +10032,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34146, - "src": "27309:15:43", + "src": "27695:15:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" @@ -10045,7 +10047,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "27309:17:43", + "src": "27695:17:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -10054,7 +10056,7 @@ }, "id": 34686, "nodeType": "RevertStatement", - "src": "27302:24:43" + "src": "27688:24:43" } ] } @@ -10069,14 +10071,14 @@ "id": 34691, "mutability": "mutable", "name": "oldVerifier", - "nameLocation": "27366:11:43", + "nameLocation": "27752:11:43", "nodeType": "VariableDeclaration", "scope": 34711, - "src": "27347:30:43", + "src": "27733:30:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" }, "typeName": { @@ -10086,16 +10088,16 @@ "id": 34689, "name": "ISemaphoreVerifier", "nameLocations": [ - "27347:18:43" + "27733:18:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35429, - "src": "27347:18:43" + "referencedDeclaration": 35457, + "src": "27733:18:43" }, - "referencedDeclaration": 35429, - "src": "27347:18:43", + "referencedDeclaration": 35457, + "src": "27733:18:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, @@ -10109,14 +10111,14 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34051, - "src": "27380:17:43", + "src": "27766:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, "nodeType": "VariableDeclarationStatement", - "src": "27347:50:43" + "src": "27733:50:43" }, { "expression": { @@ -10131,9 +10133,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34051, - "src": "27407:17:43", + "src": "27793:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, @@ -10145,21 +10147,21 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34666, - "src": "27427:11:43", + "src": "27813:11:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, - "src": "27407:31:43", + "src": "27793:31:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, "id": 34697, "nodeType": "ExpressionStatement", - "src": "27407:31:43" + "src": "27793:31:43" }, { "eventCall": { @@ -10171,7 +10173,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34084, - "src": "27484:10:43", + "src": "27870:10:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Dependency_$34084_$", "typeString": "type(enum WorldIDIdentityManagerImplV1.Dependency)" @@ -10182,11 +10184,11 @@ "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "27495:17:43", + "memberLocation": "27881:17:43", "memberName": "SemaphoreVerifier", "nodeType": "MemberAccess", "referencedDeclaration": 34083, - "src": "27484:28:43", + "src": "27870:28:43", "typeDescriptions": { "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" @@ -10200,9 +10202,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34691, - "src": "27522:11:43", + "src": "27908:11:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } } @@ -10210,7 +10212,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } ], @@ -10220,7 +10222,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "27514:7:43", + "src": "27900:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -10229,7 +10231,7 @@ "id": 34701, "name": "address", "nodeType": "ElementaryTypeName", - "src": "27514:7:43", + "src": "27900:7:43", "typeDescriptions": {} } }, @@ -10242,7 +10244,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "27514:20:43", + "src": "27900:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10257,9 +10259,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34666, - "src": "27544:11:43", + "src": "27930:11:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } } @@ -10267,7 +10269,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } ], @@ -10277,7 +10279,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "27536:7:43", + "src": "27922:7:43", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -10286,7 +10288,7 @@ "id": 34705, "name": "address", "nodeType": "ElementaryTypeName", - "src": "27536:7:43", + "src": "27922:7:43", "typeDescriptions": {} } }, @@ -10299,7 +10301,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "27536:20:43", + "src": "27922:20:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10327,7 +10329,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34169, - "src": "27453:17:43", + "src": "27839:17:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$34084_$_t_address_$_t_address_$returns$__$", "typeString": "function (enum WorldIDIdentityManagerImplV1.Dependency,address,address)" @@ -10342,7 +10344,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "27453:113:43", + "src": "27839:113:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -10351,15 +10353,15 @@ }, "id": 34710, "nodeType": "EmitStatement", - "src": "27448:118:43" + "src": "27834:118:43" } ] }, "documentation": { "id": 34663, "nodeType": "StructuredDocumentation", - "src": "26784:292:43", - "text": "@notice Sets the address for the semaphore verifier to be used for verification of\n semaphore proofs.\n @dev Only the owner of the contract can call this function.\n @param newVerifier The new verifier instance to be used for verifying semaphore proofs." + "src": "27086:376:43", + "text": "@notice Sets the address for the semaphore verifier to be used for verification of\n semaphore proofs.\n @dev Only the owner of the contract can call this function.\n @param newVerifier The new verifier instance to be used for verifying semaphore proofs.\n @custom:reverts InvalidVerifier if `newVerifier` is set to the zero address" }, "functionSelector": "0e3a12f3", "implemented": true, @@ -10372,14 +10374,14 @@ "id": 34668, "name": "onlyProxy", "nameLocations": [ - "27182:9:43" + "27568:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "27182:9:43" + "src": "27568:9:43" }, "nodeType": "ModifierInvocation", - "src": "27182:9:43" + "src": "27568:9:43" }, { "id": 34671, @@ -10388,14 +10390,14 @@ "id": 34670, "name": "onlyInitialized", "nameLocations": [ - "27200:15:43" + "27586:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "27200:15:43" + "referencedDeclaration": 48500, + "src": "27586:15:43" }, "nodeType": "ModifierInvocation", - "src": "27200:15:43" + "src": "27586:15:43" }, { "id": 34673, @@ -10404,18 +10406,18 @@ "id": 34672, "name": "onlyOwner", "nameLocations": [ - "27224:9:43" + "27610:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29157, - "src": "27224:9:43" + "src": "27610:9:43" }, "nodeType": "ModifierInvocation", - "src": "27224:9:43" + "src": "27610:9:43" } ], "name": "setSemaphoreVerifier", - "nameLocation": "27090:20:43", + "nameLocation": "27476:20:43", "parameters": { "id": 34667, "nodeType": "ParameterList", @@ -10425,14 +10427,14 @@ "id": 34666, "mutability": "mutable", "name": "newVerifier", - "nameLocation": "27130:11:43", + "nameLocation": "27516:11:43", "nodeType": "VariableDeclaration", "scope": 34712, - "src": "27111:30:43", + "src": "27497:30:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" }, "typeName": { @@ -10442,29 +10444,29 @@ "id": 34664, "name": "ISemaphoreVerifier", "nameLocations": [ - "27111:18:43" + "27497:18:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35429, - "src": "27111:18:43" + "referencedDeclaration": 35457, + "src": "27497:18:43" }, - "referencedDeclaration": 35429, - "src": "27111:18:43", + "referencedDeclaration": 35457, + "src": "27497:18:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, "visibility": "internal" } ], - "src": "27110:32:43" + "src": "27496:32:43" }, "returnParameters": { "id": 34674, "nodeType": "ParameterList", "parameters": [], - "src": "27238:0:43" + "src": "27624:0:43" }, "scope": 34869, "stateMutability": "nonpayable", @@ -10474,12 +10476,12 @@ { "id": 34725, "nodeType": "FunctionDefinition", - "src": "27749:189:43", + "src": "28135:189:43", "nodes": [], "body": { "id": 34724, "nodeType": "Block", - "src": "27897:41:43", + "src": "28283:41:43", "nodes": [], "statements": [ { @@ -10489,7 +10491,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34032, - "src": "27914:17:43", + "src": "28300:17:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10498,14 +10500,14 @@ "functionReturnParameters": 34721, "id": 34723, "nodeType": "Return", - "src": "27907:24:43" + "src": "28293:24:43" } ] }, "documentation": { "id": 34713, "nodeType": "StructuredDocumentation", - "src": "27579:165:43", + "src": "27965:165:43", "text": "@notice Gets the current amount of time used to expire roots in the history.\n @return expiryTime The amount of time it takes for a root to expire." }, "functionSelector": "43f974cb", @@ -10519,14 +10521,14 @@ "id": 34715, "name": "onlyProxy", "nameLocations": [ - "27833:9:43" + "28219:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "27833:9:43" + "src": "28219:9:43" }, "nodeType": "ModifierInvocation", - "src": "27833:9:43" + "src": "28219:9:43" }, { "id": 34718, @@ -10535,23 +10537,23 @@ "id": 34717, "name": "onlyInitialized", "nameLocations": [ - "27851:15:43" + "28237:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "27851:15:43" + "referencedDeclaration": 48500, + "src": "28237:15:43" }, "nodeType": "ModifierInvocation", - "src": "27851:15:43" + "src": "28237:15:43" } ], "name": "getRootHistoryExpiry", - "nameLocation": "27758:20:43", + "nameLocation": "28144:20:43", "parameters": { "id": 34714, "nodeType": "ParameterList", "parameters": [], - "src": "27778:2:43" + "src": "28164:2:43" }, "returnParameters": { "id": 34721, @@ -10565,7 +10567,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 34725, - "src": "27884:7:43", + "src": "28270:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10576,7 +10578,7 @@ "id": 34719, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "27884:7:43", + "src": "28270:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10585,7 +10587,7 @@ "visibility": "internal" } ], - "src": "27883:9:43" + "src": "28269:9:43" }, "scope": 34869, "stateMutability": "view", @@ -10595,12 +10597,12 @@ { "id": 34760, "nodeType": "FunctionDefinition", - "src": "28170:402:43", + "src": "28556:402:43", "nodes": [], "body": { "id": 34759, "nodeType": "Block", - "src": "28318:254:43", + "src": "28704:254:43", "nodes": [], "statements": [ { @@ -10620,7 +10622,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34728, - "src": "28332:13:43", + "src": "28718:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10637,14 +10639,14 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "28349:1:43", + "src": "28735:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "28332:18:43", + "src": "28718:18:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10652,11 +10654,11 @@ }, "id": 34745, "nodeType": "IfStatement", - "src": "28328:86:43", + "src": "28714:86:43", "trueBody": { "id": 34744, "nodeType": "Block", - "src": "28352:62:43", + "src": "28738:62:43", "statements": [ { "expression": { @@ -10670,7 +10672,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "28373:29:43", + "src": "28759:29:43", "typeDescriptions": { "typeIdentifier": "t_stringliteral_42d9ce1b1906fc6a6660b96b1a1887b9fefffe587f75da117e471256324ca69d", "typeString": "literal_string \"Expiry time cannot be zero.\"" @@ -10693,7 +10695,7 @@ -19 ], "referencedDeclaration": -19, - "src": "28366:6:43", + "src": "28752:6:43", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" @@ -10708,7 +10710,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "28366:37:43", + "src": "28752:37:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -10717,7 +10719,7 @@ }, "id": 34743, "nodeType": "ExpressionStatement", - "src": "28366:37:43" + "src": "28752:37:43" } ] } @@ -10732,10 +10734,10 @@ "id": 34747, "mutability": "mutable", "name": "oldExpiry", - "nameLocation": "28431:9:43", + "nameLocation": "28817:9:43", "nodeType": "VariableDeclaration", "scope": 34759, - "src": "28423:17:43", + "src": "28809:17:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10746,7 +10748,7 @@ "id": 34746, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "28423:7:43", + "src": "28809:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10762,14 +10764,14 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34032, - "src": "28443:17:43", + "src": "28829:17:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "28423:37:43" + "src": "28809:37:43" }, { "expression": { @@ -10784,7 +10786,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34032, - "src": "28470:17:43", + "src": "28856:17:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10798,13 +10800,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34728, - "src": "28490:13:43", + "src": "28876:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "28470:33:43", + "src": "28856:33:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10812,7 +10814,7 @@ }, "id": 34753, "nodeType": "ExpressionStatement", - "src": "28470:33:43" + "src": "28856:33:43" }, { "eventCall": { @@ -10823,7 +10825,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34747, - "src": "28540:9:43", + "src": "28926:9:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10835,7 +10837,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34728, - "src": "28551:13:43", + "src": "28937:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10858,7 +10860,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34181, - "src": "28519:20:43", + "src": "28905:20:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256)" @@ -10873,7 +10875,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "28519:46:43", + "src": "28905:46:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -10882,14 +10884,14 @@ }, "id": 34758, "nodeType": "EmitStatement", - "src": "28514:51:43" + "src": "28900:51:43" } ] }, "documentation": { "id": 34726, "nodeType": "StructuredDocumentation", - "src": "27944:221:43", + "src": "28330:221:43", "text": "@notice Sets the time to wait before expiring a root from the root history.\n @dev Only the owner of the contract can call this function.\n @param newExpiryTime The new time to use to expire roots." }, "functionSelector": "c70aa727", @@ -10903,14 +10905,14 @@ "id": 34730, "name": "onlyProxy", "nameLocations": [ - "28262:9:43" + "28648:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "28262:9:43" + "src": "28648:9:43" }, "nodeType": "ModifierInvocation", - "src": "28262:9:43" + "src": "28648:9:43" }, { "id": 34733, @@ -10919,14 +10921,14 @@ "id": 34732, "name": "onlyInitialized", "nameLocations": [ - "28280:15:43" + "28666:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "28280:15:43" + "referencedDeclaration": 48500, + "src": "28666:15:43" }, "nodeType": "ModifierInvocation", - "src": "28280:15:43" + "src": "28666:15:43" }, { "id": 34735, @@ -10935,18 +10937,18 @@ "id": 34734, "name": "onlyOwner", "nameLocations": [ - "28304:9:43" + "28690:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29157, - "src": "28304:9:43" + "src": "28690:9:43" }, "nodeType": "ModifierInvocation", - "src": "28304:9:43" + "src": "28690:9:43" } ], "name": "setRootHistoryExpiry", - "nameLocation": "28179:20:43", + "nameLocation": "28565:20:43", "parameters": { "id": 34729, "nodeType": "ParameterList", @@ -10956,10 +10958,10 @@ "id": 34728, "mutability": "mutable", "name": "newExpiryTime", - "nameLocation": "28208:13:43", + "nameLocation": "28594:13:43", "nodeType": "VariableDeclaration", "scope": 34760, - "src": "28200:21:43", + "src": "28586:21:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10970,7 +10972,7 @@ "id": 34727, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "28200:7:43", + "src": "28586:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10979,13 +10981,13 @@ "visibility": "internal" } ], - "src": "28199:23:43" + "src": "28585:23:43" }, "returnParameters": { "id": 34736, "nodeType": "ParameterList", "parameters": [], - "src": "28318:0:43" + "src": "28704:0:43" }, "scope": 34869, "stateMutability": "nonpayable", @@ -10995,12 +10997,12 @@ { "id": 34773, "nodeType": "FunctionDefinition", - "src": "28716:119:43", + "src": "29102:119:43", "nodes": [], "body": { "id": 34772, "nodeType": "Block", - "src": "28802:33:43", + "src": "29188:33:43", "nodes": [], "statements": [ { @@ -11010,7 +11012,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34061, - "src": "28819:9:43", + "src": "29205:9:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11019,14 +11021,14 @@ "functionReturnParameters": 34769, "id": 34771, "nodeType": "Return", - "src": "28812:16:43" + "src": "29198:16:43" } ] }, "documentation": { "id": 34761, "nodeType": "StructuredDocumentation", - "src": "28578:133:43", + "src": "28964:133:43", "text": "@notice Gets the Semaphore tree depth the contract was initialized with.\n @return initializedTreeDepth Tree depth." }, "functionSelector": "8e5cdd50", @@ -11040,14 +11042,14 @@ "id": 34763, "name": "onlyProxy", "nameLocations": [ - "28760:9:43" + "29146:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "28760:9:43" + "src": "29146:9:43" }, "nodeType": "ModifierInvocation", - "src": "28760:9:43" + "src": "29146:9:43" }, { "id": 34766, @@ -11056,23 +11058,23 @@ "id": 34765, "name": "onlyInitialized", "nameLocations": [ - "28770:15:43" + "29156:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "28770:15:43" + "referencedDeclaration": 48500, + "src": "29156:15:43" }, "nodeType": "ModifierInvocation", - "src": "28770:15:43" + "src": "29156:15:43" } ], "name": "getTreeDepth", - "nameLocation": "28725:12:43", + "nameLocation": "29111:12:43", "parameters": { "id": 34762, "nodeType": "ParameterList", "parameters": [], - "src": "28737:2:43" + "src": "29123:2:43" }, "returnParameters": { "id": 34769, @@ -11086,7 +11088,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 34773, - "src": "28795:5:43", + "src": "29181:5:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11097,7 +11099,7 @@ "id": 34767, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "28795:5:43", + "src": "29181:5:43", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11106,7 +11108,7 @@ "visibility": "internal" } ], - "src": "28794:7:43" + "src": "29180:7:43" }, "scope": 34869, "stateMutability": "view", @@ -11116,12 +11118,12 @@ { "id": 34786, "nodeType": "FunctionDefinition", - "src": "29056:133:43", + "src": "29442:133:43", "nodes": [], "body": { "id": 34785, "nodeType": "Block", - "src": "29148:41:43", + "src": "29534:41:43", "nodes": [], "statements": [ { @@ -11131,7 +11133,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34021, - "src": "29165:17:43", + "src": "29551:17:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11140,14 +11142,14 @@ "functionReturnParameters": 34782, "id": 34784, "nodeType": "Return", - "src": "29158:24:43" + "src": "29544:24:43" } ] }, "documentation": { "id": 34774, "nodeType": "StructuredDocumentation", - "src": "28841:210:43", + "src": "29227:210:43", "text": "@notice Gets the address that is authorised to perform identity operations on this identity\n manager instance.\n @return _ The address authorized to perform identity operations." }, "functionSelector": "f134b6ca", @@ -11161,14 +11163,14 @@ "id": 34776, "name": "onlyProxy", "nameLocations": [ - "29104:9:43" + "29490:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "29104:9:43" + "src": "29490:9:43" }, "nodeType": "ModifierInvocation", - "src": "29104:9:43" + "src": "29490:9:43" }, { "id": 34779, @@ -11177,23 +11179,23 @@ "id": 34778, "name": "onlyInitialized", "nameLocations": [ - "29114:15:43" + "29500:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "29114:15:43" + "referencedDeclaration": 48500, + "src": "29500:15:43" }, "nodeType": "ModifierInvocation", - "src": "29114:15:43" + "src": "29500:15:43" } ], "name": "identityOperator", - "nameLocation": "29065:16:43", + "nameLocation": "29451:16:43", "parameters": { "id": 34775, "nodeType": "ParameterList", "parameters": [], - "src": "29081:2:43" + "src": "29467:2:43" }, "returnParameters": { "id": 34782, @@ -11207,7 +11209,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 34786, - "src": "29139:7:43", + "src": "29525:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11218,7 +11220,7 @@ "id": 34780, "name": "address", "nodeType": "ElementaryTypeName", - "src": "29139:7:43", + "src": "29525:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11228,7 +11230,7 @@ "visibility": "internal" } ], - "src": "29138:9:43" + "src": "29524:9:43" }, "scope": 34869, "stateMutability": "view", @@ -11238,12 +11240,12 @@ { "id": 34816, "nodeType": "FunctionDefinition", - "src": "29482:384:43", + "src": "29868:384:43", "nodes": [], "body": { "id": 34815, "nodeType": "Block", - "src": "29661:205:43", + "src": "30047:205:43", "nodes": [], "statements": [ { @@ -11256,10 +11258,10 @@ "id": 34801, "mutability": "mutable", "name": "oldOperator", - "nameLocation": "29679:11:43", + "nameLocation": "30065:11:43", "nodeType": "VariableDeclaration", "scope": 34815, - "src": "29671:19:43", + "src": "30057:19:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11270,7 +11272,7 @@ "id": 34800, "name": "address", "nodeType": "ElementaryTypeName", - "src": "29671:7:43", + "src": "30057:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11287,14 +11289,14 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34021, - "src": "29693:17:43", + "src": "30079:17:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "29671:39:43" + "src": "30057:39:43" }, { "expression": { @@ -11309,7 +11311,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34021, - "src": "29720:17:43", + "src": "30106:17:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11323,13 +11325,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34789, - "src": "29740:19:43", + "src": "30126:19:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "29720:39:43", + "src": "30106:39:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11337,7 +11339,7 @@ }, "id": 34807, "nodeType": "ExpressionStatement", - "src": "29720:39:43" + "src": "30106:39:43" }, { "eventCall": { @@ -11348,7 +11350,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34801, - "src": "29798:11:43", + "src": "30184:11:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11360,7 +11362,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34789, - "src": "29811:19:43", + "src": "30197:19:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11383,7 +11385,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34188, - "src": "29774:23:43", + "src": "30160:23:43", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" @@ -11398,7 +11400,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "29774:57:43", + "src": "30160:57:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -11407,7 +11409,7 @@ }, "id": 34812, "nodeType": "EmitStatement", - "src": "29769:62:43" + "src": "30155:62:43" }, { "expression": { @@ -11416,7 +11418,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34801, - "src": "29848:11:43", + "src": "30234:11:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11425,14 +11427,14 @@ "functionReturnParameters": 34799, "id": 34814, "nodeType": "Return", - "src": "29841:18:43" + "src": "30227:18:43" } ] }, "documentation": { "id": 34787, "nodeType": "StructuredDocumentation", - "src": "29195:282:43", + "src": "29581:282:43", "text": "@notice Sets the address that is authorised to perform identity operations on this identity\n manager instance.\n @param newIdentityOperator The address of the new identity operator.\n @return _ The address of the old identity operator." }, "functionSelector": "a7bba582", @@ -11446,14 +11448,14 @@ "id": 34791, "name": "onlyProxy", "nameLocations": [ - "29579:9:43" + "29965:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "29579:9:43" + "src": "29965:9:43" }, "nodeType": "ModifierInvocation", - "src": "29579:9:43" + "src": "29965:9:43" }, { "id": 34794, @@ -11462,14 +11464,14 @@ "id": 34793, "name": "onlyInitialized", "nameLocations": [ - "29597:15:43" + "29983:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "29597:15:43" + "referencedDeclaration": 48500, + "src": "29983:15:43" }, "nodeType": "ModifierInvocation", - "src": "29597:15:43" + "src": "29983:15:43" }, { "id": 34796, @@ -11478,18 +11480,18 @@ "id": 34795, "name": "onlyOwner", "nameLocations": [ - "29621:9:43" + "30007:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29157, - "src": "29621:9:43" + "src": "30007:9:43" }, "nodeType": "ModifierInvocation", - "src": "29621:9:43" + "src": "30007:9:43" } ], "name": "setIdentityOperator", - "nameLocation": "29491:19:43", + "nameLocation": "29877:19:43", "parameters": { "id": 34790, "nodeType": "ParameterList", @@ -11499,10 +11501,10 @@ "id": 34789, "mutability": "mutable", "name": "newIdentityOperator", - "nameLocation": "29519:19:43", + "nameLocation": "29905:19:43", "nodeType": "VariableDeclaration", "scope": 34816, - "src": "29511:27:43", + "src": "29897:27:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11513,7 +11515,7 @@ "id": 34788, "name": "address", "nodeType": "ElementaryTypeName", - "src": "29511:7:43", + "src": "29897:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11523,7 +11525,7 @@ "visibility": "internal" } ], - "src": "29510:29:43" + "src": "29896:29:43" }, "returnParameters": { "id": 34799, @@ -11537,7 +11539,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 34816, - "src": "29648:7:43", + "src": "30034:7:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11548,7 +11550,7 @@ "id": 34797, "name": "address", "nodeType": "ElementaryTypeName", - "src": "29648:7:43", + "src": "30034:7:43", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11558,7 +11560,7 @@ "visibility": "internal" } ], - "src": "29647:9:43" + "src": "30033:9:43" }, "scope": 34869, "stateMutability": "nonpayable", @@ -11568,12 +11570,12 @@ { "id": 34852, "nodeType": "FunctionDefinition", - "src": "30701:499:43", + "src": "31087:499:43", "nodes": [], "body": { "id": 34851, "nodeType": "Block", - "src": "30929:271:43", + "src": "31315:271:43", "nodes": [], "statements": [ { @@ -11585,7 +11587,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34819, - "src": "31006:4:43", + "src": "31392:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11604,7 +11606,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34580, - "src": "30989:16:43", + "src": "31375:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" @@ -11619,7 +11621,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "30989:22:43", + "src": "31375:22:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -11628,7 +11630,7 @@ }, "id": 34839, "nodeType": "ExpressionStatement", - "src": "30989:22:43" + "src": "31375:22:43" }, { "expression": { @@ -11639,7 +11641,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34829, - "src": "31120:5:43", + "src": "31506:5:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", "typeString": "uint256[8] calldata" @@ -11653,7 +11655,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34819, - "src": "31128:4:43", + "src": "31514:4:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11665,7 +11667,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34823, - "src": "31134:13:43", + "src": "31520:13:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11677,7 +11679,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34821, - "src": "31149:10:43", + "src": "31535:10:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11689,7 +11691,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34825, - "src": "31161:21:43", + "src": "31547:21:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11703,7 +11705,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "31127:56:43", + "src": "31513:56:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" @@ -11727,9 +11729,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34051, - "src": "31077:17:43", + "src": "31463:17:43", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35429", + "typeIdentifier": "t_contract$_ISemaphoreVerifier_$35457", "typeString": "contract ISemaphoreVerifier" } }, @@ -11738,11 +11740,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "31095:11:43", + "memberLocation": "31481:11:43", "memberName": "verifyProof", "nodeType": "MemberAccess", - "referencedDeclaration": 35428, - "src": "31077:29:43", + "referencedDeclaration": 35456, + "src": "31463:29:43", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_uint256_$4_memory_ptr_$returns$__$", "typeString": "function (uint256[8] memory,uint256[4] memory) view external" @@ -11757,7 +11759,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "31077:116:43", + "src": "31463:116:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -11766,17 +11768,17 @@ }, "id": 34850, "nodeType": "ExpressionStatement", - "src": "31077:116:43" + "src": "31463:116:43" } ] }, "baseFunctions": [ - 35468 + 35496 ], "documentation": { "id": 34817, "nodeType": "StructuredDocumentation", - "src": "30125:571:43", + "src": "30511:571:43", "text": "@notice A verifier for the semaphore protocol.\n @dev Note that a double-signaling check is not included here, and should be carried by the\n caller.\n @param proof The zero-knowledge proof\n @param root The of the Merkle tree\n @param signalHash A keccak256 hash of the Semaphore signal\n @param nullifierHash The nullifier hash\n @param externalNullifierHash A keccak256 hash of the external nullifier\n @custom:reverts string If the zero-knowledge proof cannot be verified for the public inputs." }, "functionSelector": "354ca120", @@ -11790,14 +11792,14 @@ "id": 34831, "name": "onlyProxy", "nameLocations": [ - "30903:9:43" + "31289:9:43" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "30903:9:43" + "src": "31289:9:43" }, "nodeType": "ModifierInvocation", - "src": "30903:9:43" + "src": "31289:9:43" }, { "id": 34834, @@ -11806,18 +11808,18 @@ "id": 34833, "name": "onlyInitialized", "nameLocations": [ - "30913:15:43" + "31299:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48444, - "src": "30913:15:43" + "referencedDeclaration": 48500, + "src": "31299:15:43" }, "nodeType": "ModifierInvocation", - "src": "30913:15:43" + "src": "31299:15:43" } ], "name": "verifyProof", - "nameLocation": "30710:11:43", + "nameLocation": "31096:11:43", "parameters": { "id": 34830, "nodeType": "ParameterList", @@ -11827,10 +11829,10 @@ "id": 34819, "mutability": "mutable", "name": "root", - "nameLocation": "30739:4:43", + "nameLocation": "31125:4:43", "nodeType": "VariableDeclaration", "scope": 34852, - "src": "30731:12:43", + "src": "31117:12:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11841,7 +11843,7 @@ "id": 34818, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "30731:7:43", + "src": "31117:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11854,10 +11856,10 @@ "id": 34821, "mutability": "mutable", "name": "signalHash", - "nameLocation": "30761:10:43", + "nameLocation": "31147:10:43", "nodeType": "VariableDeclaration", "scope": 34852, - "src": "30753:18:43", + "src": "31139:18:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11868,7 +11870,7 @@ "id": 34820, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "30753:7:43", + "src": "31139:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11881,10 +11883,10 @@ "id": 34823, "mutability": "mutable", "name": "nullifierHash", - "nameLocation": "30789:13:43", + "nameLocation": "31175:13:43", "nodeType": "VariableDeclaration", "scope": 34852, - "src": "30781:21:43", + "src": "31167:21:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11895,7 +11897,7 @@ "id": 34822, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "30781:7:43", + "src": "31167:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11908,10 +11910,10 @@ "id": 34825, "mutability": "mutable", "name": "externalNullifierHash", - "nameLocation": "30820:21:43", + "nameLocation": "31206:21:43", "nodeType": "VariableDeclaration", "scope": 34852, - "src": "30812:29:43", + "src": "31198:29:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11922,7 +11924,7 @@ "id": 34824, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "30812:7:43", + "src": "31198:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11935,10 +11937,10 @@ "id": 34829, "mutability": "mutable", "name": "proof", - "nameLocation": "30871:5:43", + "nameLocation": "31257:5:43", "nodeType": "VariableDeclaration", "scope": 34852, - "src": "30851:25:43", + "src": "31237:25:43", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -11950,7 +11952,7 @@ "id": 34826, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "30851:7:43", + "src": "31237:7:43", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11966,7 +11968,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "30859:1:43", + "src": "31245:1:43", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" @@ -11974,7 +11976,7 @@ "value": "8" }, "nodeType": "ArrayTypeName", - "src": "30851:10:43", + "src": "31237:10:43", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", "typeString": "uint256[8]" @@ -11983,13 +11985,13 @@ "visibility": "internal" } ], - "src": "30721:161:43" + "src": "31107:161:43" }, "returnParameters": { "id": 34835, "nodeType": "ParameterList", "parameters": [], - "src": "30929:0:43" + "src": "31315:0:43" }, "scope": 34869, "stateMutability": "view", @@ -11999,12 +12001,12 @@ { "id": 34868, "nodeType": "ModifierDefinition", - "src": "31683:153:43", + "src": "32069:153:43", "nodes": [], "body": { "id": 34867, "nodeType": "Block", - "src": "31715:121:43", + "src": "32101:121:43", "nodes": [], "statements": [ { @@ -12025,7 +12027,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "31729:3:43", + "src": "32115:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" @@ -12036,10 +12038,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "31733:6:43", + "memberLocation": "32119:6:43", "memberName": "sender", "nodeType": "MemberAccess", - "src": "31729:10:43", + "src": "32115:10:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12053,13 +12055,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34021, - "src": "31743:17:43", + "src": "32129:17:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "31729:31:43", + "src": "32115:31:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12067,11 +12069,11 @@ }, "id": 34865, "nodeType": "IfStatement", - "src": "31725:93:43", + "src": "32111:93:43", "trueBody": { "id": 34864, "nodeType": "Block", - "src": "31762:56:43", + "src": "32148:56:43", "statements": [ { "errorCall": { @@ -12083,7 +12085,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "31796:3:43", + "src": "32182:3:43", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" @@ -12094,10 +12096,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "31800:6:43", + "memberLocation": "32186:6:43", "memberName": "sender", "nodeType": "MemberAccess", - "src": "31796:10:43", + "src": "32182:10:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12116,7 +12118,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34111, - "src": "31783:12:43", + "src": "32169:12:43", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", "typeString": "function (address) pure" @@ -12131,7 +12133,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "31783:24:43", + "src": "32169:24:43", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -12140,7 +12142,7 @@ }, "id": 34863, "nodeType": "RevertStatement", - "src": "31776:31:43" + "src": "32162:31:43" } ] } @@ -12148,23 +12150,23 @@ { "id": 34866, "nodeType": "PlaceholderStatement", - "src": "31828:1:43" + "src": "32214:1:43" } ] }, "documentation": { "id": 34853, "nodeType": "StructuredDocumentation", - "src": "31459:219:43", + "src": "31845:219:43", "text": "@notice Ensures that the guarded operation can only be performed by the authorized identity\n operator contract.\n @custom:reverts Unauthorized If the caller is not the identity operator." }, "name": "onlyIdentityOperator", - "nameLocation": "31692:20:43", + "nameLocation": "32078:20:43", "parameters": { "id": 34854, "nodeType": "ParameterList", "parameters": [], - "src": "31712:2:43" + "src": "32098:2:43" }, "virtual": false, "visibility": "internal" @@ -12180,7 +12182,7 @@ "920:11:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35153, + "referencedDeclaration": 35181, "src": "920:11:43" }, "id": 34016, @@ -12195,7 +12197,7 @@ "933:8:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35469, + "referencedDeclaration": 35497, "src": "933:8:43" }, "id": 34018, @@ -12215,10 +12217,10 @@ "fullyImplemented": true, "linearizedBaseContracts": [ 34869, - 35469, - 35398, - 35153, - 48450, + 35497, + 35426, + 35181, + 48506, 29937, 29622, 29253, @@ -12243,10 +12245,10 @@ 34143, 34146, 34149, - 35129, - 35394, - 35397, - 48421 + 35157, + 35422, + 35425, + 48477 ], "usedEvents": [ 29037, diff --git a/sol/WorldIDIdentityManagerImplV2.json b/sol/WorldIDIdentityManagerImplV2.json index cb2ce1a8..7bde4cfe 100644 --- a/sol/WorldIDIdentityManagerImplV2.json +++ b/sol/WorldIDIdentityManagerImplV2.json @@ -26,6 +26,11 @@ "name": "InvalidCommitment", "type": "error" }, + { + "inputs": [], + "name": "InvalidDeletionIndices", + "type": "error" + }, { "inputs": [], "name": "InvalidStateBridgeAddress", @@ -890,13 +895,13 @@ } ], "bytecode": { - "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161326562000238600039600081816105ad015281816105f6015281816106fb0152818161073b01528181610b0001528181610b4001528181610c1e01528181610c5e01528181610d0a01528181610d4a01528181610e5401528181610e9401528181611119015281816111590152818161120b0152818161124b015281816113a1015281816113e10152818161146c015281816114ac0152818161152801528181611672015281816116b201528181611775015281816117b50152818161184c0152818161188c015281816119220152818161196201528181611a4201528181611a8201528181611b5e01528181611b9e01528181611cb501528181611cf501528181611d8001528181611dc001528181612044015281816120840152818161211a0152818161215a015281816121ee0152818161222e01528181612414015261245401526132656000f3fe6080604052600436106101cd5760003560e01c806379ba5097116100f7578063c70aa72711610095578063f134b6ca11610064578063f134b6ca14610539578063f2038f951461054e578063f2358e1d14610563578063f2fde38b1461058357600080fd5b8063c70aa727146104c6578063d7b0fef1146104e6578063e30c3978146104fb578063ea10fbbe1461051957600080fd5b80638e5cdd50116100d15780638e5cdd501461044a5780638fc22e9f14610471578063a7bba58214610486578063aa4a729e146104a657600080fd5b806379ba5097146103f75780638c76a9091461040c5780638da5cb5b1461042c57600080fd5b806338c870651161016f5780634f1ef2861161013e5780634f1ef2861461037657806352d1902d14610389578063561f204b1461039e578063715018a6146103e257600080fd5b806338c87065146102c75780633e8919b6146102e75780633f7c178d1461031457806343f974cb1461036157600080fd5b80632f059fca116101ab5780632f059fca1461023457806331e4e99214610254578063354ca120146102875780633659cfe6146102a757600080fd5b80630e3a12f3146101d25780632217b211146101f457806329b6eca914610214575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612a11565b6105a3565b005b34801561020057600080fd5b506101f261020f366004612aa0565b6106f1565b34801561022057600080fd5b506101f261022f366004612a11565b6109f3565b34801561024057600080fd5b506101f261024f366004612a11565b610af6565b34801561026057600080fd5b5061027461026f366004612b5f565b610c12565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506101f26102a2366004612bc6565b610d00565b3480156102b357600080fd5b506101f26102c2366004612a11565b610e4a565b3480156102d357600080fd5b506101f26102e2366004612c05565b610f12565b3480156102f357600080fd5b506102fc61110d565b6040516001600160a01b03909116815260200161027e565b34801561032057600080fd5b5061033461032f366004612c73565b6111e4565b60408051825181526020808401516001600160801b0316908201529181015115159082015260600161027e565b34801561036d57600080fd5b50610274611395565b6101f2610384366004612ccf565b611462565b34801561039557600080fd5b5061027461151b565b3480156103aa57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610334565b3480156103ee57600080fd5b506101f26115ce565b34801561040357600080fd5b506101f26115ef565b34801561041857600080fd5b50610274610427366004612d7b565b611666565b34801561043857600080fd5b506033546001600160a01b03166102fc565b34801561045657600080fd5b5061045f611769565b60405160ff909116815260200161027e565b34801561047d57600080fd5b506102fc611840565b34801561049257600080fd5b506102fc6104a1366004612a11565b611916565b3480156104b257600080fd5b506101f26104c1366004612a11565b611a38565b3480156104d257600080fd5b506101f26104e1366004612c73565b611b54565b3480156104f257600080fd5b50610274611ca9565b34801561050757600080fd5b506065546001600160a01b03166102fc565b34801561052557600080fd5b506101f2610534366004612de3565b611d76565b34801561054557600080fd5b506102fc612038565b34801561055a57600080fd5b506102fc61210e565b34801561056f57600080fd5b506101f261057e366004612c73565b6121e4565b34801561058f57600080fd5b506101f261059e366004612a11565b612321565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f45760405162461bcd60e51b81526004016105eb90612e4d565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610626612392565b6001600160a01b03161461064c5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661066f57604051630103019560e11b815260040160405180910390fd5b6106776123ae565b6001600160a01b03811661069e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107395760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661076b612392565b6001600160a01b0316146107915760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166107b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146107e25760405163472511eb60e11b81523360048201526024016105eb565b61012e5485146108145761012e5460405163542fced960e11b81526105eb918791600401918252602082015260400190565b60006108238587848787611666565b905060006108517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612efb565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190612f0f565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610901918d9190600401612f2c565b600060405180830381600087803b15801561091b57600080fd5b505af192505050801561092c575060015b61098c57610938612f67565b806308c379a003610971575061094c612f82565b806109575750610973565b8060405162461bcd60e51b81526004016105eb9190613030565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546001600160801b031916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b600054600290610100900460ff16158015610a15575060005460ff8083169116105b610a315760405162461bcd60e51b81526004016105eb90613063565b6000805461ffff191660ff8316176101001790556001600160a01b038216610a6c57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b0384161790556040517fe416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a90600090a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b70612392565b6001600160a01b031614610b965760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610bb957604051630103019560e11b815260040160405180910390fd5b610bc16123ae565b6001600160a01b038116610be857604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106c4565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c5c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c8e612392565b6001600160a01b031614610cb45760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610cd757604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d485760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7a612392565b6001600160a01b031614610da05760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610dc357604051630103019560e11b815260040160405180910390fd5b610dcc856121e4565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610e1e918591906004016130b1565b60006040518083038186803b158015610e3657600080fd5b505afa1580156109e8573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e925760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ec4612392565b6001600160a01b031614610eea5760405162461bcd60e51b81526004016105eb90612e99565b610ef38161240a565b60408051600080825260208201909252610f0f918391906124b2565b50565b600054600190610100900460ff16158015610f34575060005460ff8083169116105b610f505760405162461bcd60e51b81526004016105eb90613063565b6000805461ffff191660ff8316176101001790556001600160a01b038416610f8b57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610fb257604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610fd95760405163baa3de5f60e01b815260040160405180910390fd5b610fe1612622565b610fea86612651565b61100c57604051630220cee360e61b815260ff871660048201526024016105eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055611088612678565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111575760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611189612392565b6001600160a01b0316146111af5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166111d257604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112495760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127b612392565b6001600160a01b0316146112a15760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166112c457604051630103019560e11b815260040160405180910390fd5b61012e5482036112f35750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b03169081900361134e5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906113686001600160801b038416426130e2565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113df5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611411612392565b6001600160a01b0316146114375760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661145a57604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114aa5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114dc612392565b6001600160a01b0316146115025760405162461bcd60e51b81526004016105eb90612e99565b61150b8261240a565b611517828260016124b2565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115bb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105eb565b506000805160206131e983398151915290565b6115d66123ae565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b0316811461165d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105eb565b610f0f816126ae565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116b05760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e2612392565b6001600160a01b0316146117085760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661172b57604051630103019560e11b815260040160405180910390fd5b60008686868686604051602001611746959493929190613103565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117b35760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117e5612392565b6001600160a01b03161461180b5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661182e57604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361188a5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118bc612392565b6001600160a01b0316146118e25760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661190557604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119605760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611992612392565b6001600160a01b0316146119b85760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166119db57604051630103019560e11b815260040160405180910390fd5b6119e36123ae565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a805760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab2612392565b6001600160a01b031614611ad85760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611afb57604051630103019560e11b815260040160405180910390fd5b611b036123ae565b6001600160a01b038116611b2a57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b038381166001600160a01b03198316811790935516908160026106c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b9c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bce612392565b6001600160a01b031614611bf45760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611c1757604051630103019560e11b815260040160405180910390fd5b611c1f6123ae565b80600003611c6f5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016105eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cf35760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d25612392565b6001600160a01b031614611d4b5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611d6e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dbe5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611df0612392565b6001600160a01b031614611e165760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611e3957604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e675760405163472511eb60e11b81523360048201526024016105eb565b6000611e74600485613154565b905061012e548314611ea85761012e5460405163542fced960e11b81526105eb918591600401918252602082015260400190565b6000611eb78686868686610c12565b90506000611ee57f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612efb565b61013554604051638a283fc360e01b815263ffffffff861660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5e9190612f0f565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991611f9a918d9190600401612f2c565b600060405180830381600087803b158015611fb457600080fd5b505af1925050508015611fc5575060015b611fd157610938612f67565b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120825760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120b4612392565b6001600160a01b0316146120da5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166120fd57604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121585760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661218a612392565b6001600160a01b0316146121b05760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166121d357604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361222c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661225e612392565b6001600160a01b0316146122845760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166122a757604051630103019560e11b815260040160405180910390fd5b61012e548114610f0f57600081815261012f60205260408120546001600160801b0316908190036122eb5760405163ddae3b7160e01b815260040160405180910390fd5b610130546123026001600160801b038316426130e2565b111561151757604051631d739acf60e11b815260040160405180910390fd5b6123296123ae565b606580546001600160a01b0383166001600160a01b0319909116811790915561235a6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000805160206131e9833981519152546001600160a01b031690565b6033546001600160a01b031633146124085760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105eb565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036124525760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612484612392565b6001600160a01b0316146124aa5760405162461bcd60e51b81526004016105eb90612e99565b610f0f6123ae565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156124ea576124e5836126c7565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612544575060408051601f3d908101601f1916820190925261254191810190613168565b60015b6125a75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105eb565b6000805160206131e983398151915281146126165760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105eb565b506124e5838383612763565b600054610100900460ff166126495760405162461bcd60e51b81526004016105eb90613181565b61240861278e565b60006010602060ff8416821180159061267057508060ff168460ff1611155b949350505050565b600054610100900460ff1661269f5760405162461bcd60e51b81526004016105eb90613181565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610f0f816127c5565b6001600160a01b0381163b6127345760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105eb565b6000805160206131e983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61276c83612817565b6000825111806127795750805b156124e5576127888383612857565b50505050565b600054610100900460ff166127b55760405162461bcd60e51b81526004016105eb90613181565b6127bd61294d565b61240861297c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612820816126c7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6128bf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105eb565b600080846001600160a01b0316846040516128da91906131cc565b600060405180830381855af49150503d8060008114612915576040519150601f19603f3d011682016040523d82523d6000602084013e61291a565b606091505b50915091506129428282604051806060016040528060278152602001613209602791396129a3565b925050505b92915050565b600054610100900460ff166129745760405162461bcd60e51b81526004016105eb90613181565b6124086129bc565b600054610100900460ff166124085760405162461bcd60e51b81526004016105eb90613181565b606083156129b2575081611347565b61134783836129ec565b600054610100900460ff166129e35760405162461bcd60e51b81526004016105eb90613181565b612408336126ae565b8151156109575781518083602001fd5b6001600160a01b0381168114610f0f57600080fd5b600060208284031215612a2357600080fd5b8135611347816129fc565b80610100810183101561294757600080fd5b803563ffffffff8116811461139057600080fd5b60008083601f840112612a6657600080fd5b50813567ffffffffffffffff811115612a7e57600080fd5b6020830191508360208260051b8501011115612a9957600080fd5b9250929050565b6000806000806000806101808789031215612aba57600080fd5b612ac48888612a2e565b95506101008701359450612adb6101208801612a40565b935061014087013567ffffffffffffffff811115612af857600080fd5b612b0489828a01612a54565b979a969950949794969561016090950135949350505050565b60008083601f840112612b2f57600080fd5b50813567ffffffffffffffff811115612b4757600080fd5b602083019150836020828501011115612a9957600080fd5b600080600080600060808688031215612b7757600080fd5b853567ffffffffffffffff811115612b8e57600080fd5b612b9a88828901612b1d565b9096509450506020860135925060408601359150612bba60608701612a40565b90509295509295909350565b60008060008060006101808688031215612bdf57600080fd5b85359450602086013593506040860135925060608601359150612bba8760808801612a2e565b600080600080600060a08688031215612c1d57600080fd5b853560ff81168114612c2e57600080fd5b9450602086013593506040860135612c45816129fc565b92506060860135612c55816129fc565b91506080860135612c65816129fc565b809150509295509295909350565b600060208284031215612c8557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612cc857612cc8612c8c565b6040525050565b60008060408385031215612ce257600080fd5b8235612ced816129fc565b915060208381013567ffffffffffffffff80821115612d0b57600080fd5b818601915086601f830112612d1f57600080fd5b813581811115612d3157612d31612c8c565b6040519150612d49601f8201601f1916850183612ca2565b8082528784828501011115612d5d57600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600080600060808688031215612d9357600080fd5b612d9c86612a40565b94506020860135935060408601359250606086013567ffffffffffffffff811115612dc657600080fd5b612dd288828901612a54565b969995985093965092949392505050565b60008060008060006101608688031215612dfc57600080fd5b612e068787612a2e565b945061010086013567ffffffffffffffff811115612e2357600080fd5b612e2f88828901612b1d565b96999098509596610120810135966101409091013595509350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082612f0a57612f0a612ee5565b500690565b600060208284031215612f2157600080fd5b8151611347816129fc565b61012081016101008085843782018360005b6001811015612f5d578151835260209283019290910190600101612f3e565b5050509392505050565b600060033d11156111e15760046000803e5060005160e01c90565b600060443d1015612f905790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612fc057505050505090565b8285019150815181811115612fd85750505050505090565b843d8701016020828501011115612ff25750505050505090565b61300160208286010187612ca2565b509095945050505050565b60005b8381101561302757818101518382015260200161300f565b50506000910152565b602081526000825180602084015261304f81604085016020870161300c565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b61018081016101008085843782018360005b6004811015612f5d5781518352602092830192909101906001016130c3565b8181038181111561294757634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561313857600080fd5b8260051b80856044850137919091016044019695505050505050565b60008261316357613163612ee5565b500490565b60006020828403121561317a57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516131de81846020870161300c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220988abd93bd0eacc32fed88af248acf0831a9aa2879d35aff2e53ffa3126eef5164736f6c63430008150033", - "sourceMap": "442:11347:44:-:0;;;1332:4:23;1289:48;;442:11347:44;;;;;;;;;-1:-1:-1;13736:22:43;:20;:22::i;:::-;442:11347:44;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:77;5987:66:22;;;198:21:77;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:77;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:77;;;6162:28:22;;552:2:77;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:77:-;442:11347:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161328e62000238600039600081816105ad015281816105f6015281816106fb0152818161073b01528181610b0001528181610b4001528181610c1e01528181610c5e01528181610d0a01528181610d4a01528181610e5401528181610e9401528181611119015281816111590152818161120b0152818161124b015281816113a1015281816113e10152818161146c015281816114ac0152818161152801528181611672015281816116b201528181611775015281816117b50152818161184c0152818161188c015281816119220152818161196201528181611a4201528181611a8201528181611b5e01528181611b9e01528181611cb501528181611cf501528181611d8001528181611dc00152818161206d015281816120ad015281816121430152818161218301528181612217015281816122570152818161243d015261247d015261328e6000f3fe6080604052600436106101cd5760003560e01c806379ba5097116100f7578063c70aa72711610095578063f134b6ca11610064578063f134b6ca14610539578063f2038f951461054e578063f2358e1d14610563578063f2fde38b1461058357600080fd5b8063c70aa727146104c6578063d7b0fef1146104e6578063e30c3978146104fb578063ea10fbbe1461051957600080fd5b80638e5cdd50116100d15780638e5cdd501461044a5780638fc22e9f14610471578063a7bba58214610486578063aa4a729e146104a657600080fd5b806379ba5097146103f75780638c76a9091461040c5780638da5cb5b1461042c57600080fd5b806338c870651161016f5780634f1ef2861161013e5780634f1ef2861461037657806352d1902d14610389578063561f204b1461039e578063715018a6146103e257600080fd5b806338c87065146102c75780633e8919b6146102e75780633f7c178d1461031457806343f974cb1461036157600080fd5b80632f059fca116101ab5780632f059fca1461023457806331e4e99214610254578063354ca120146102875780633659cfe6146102a757600080fd5b80630e3a12f3146101d25780632217b211146101f457806329b6eca914610214575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612a3a565b6105a3565b005b34801561020057600080fd5b506101f261020f366004612ac9565b6106f1565b34801561022057600080fd5b506101f261022f366004612a3a565b6109f3565b34801561024057600080fd5b506101f261024f366004612a3a565b610af6565b34801561026057600080fd5b5061027461026f366004612b88565b610c12565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506101f26102a2366004612bef565b610d00565b3480156102b357600080fd5b506101f26102c2366004612a3a565b610e4a565b3480156102d357600080fd5b506101f26102e2366004612c2e565b610f12565b3480156102f357600080fd5b506102fc61110d565b6040516001600160a01b03909116815260200161027e565b34801561032057600080fd5b5061033461032f366004612c9c565b6111e4565b60408051825181526020808401516001600160801b0316908201529181015115159082015260600161027e565b34801561036d57600080fd5b50610274611395565b6101f2610384366004612cf8565b611462565b34801561039557600080fd5b5061027461151b565b3480156103aa57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610334565b3480156103ee57600080fd5b506101f26115ce565b34801561040357600080fd5b506101f26115ef565b34801561041857600080fd5b50610274610427366004612da4565b611666565b34801561043857600080fd5b506033546001600160a01b03166102fc565b34801561045657600080fd5b5061045f611769565b60405160ff909116815260200161027e565b34801561047d57600080fd5b506102fc611840565b34801561049257600080fd5b506102fc6104a1366004612a3a565b611916565b3480156104b257600080fd5b506101f26104c1366004612a3a565b611a38565b3480156104d257600080fd5b506101f26104e1366004612c9c565b611b54565b3480156104f257600080fd5b50610274611ca9565b34801561050757600080fd5b506065546001600160a01b03166102fc565b34801561052557600080fd5b506101f2610534366004612e0c565b611d76565b34801561054557600080fd5b506102fc612061565b34801561055a57600080fd5b506102fc612137565b34801561056f57600080fd5b506101f261057e366004612c9c565b61220d565b34801561058f57600080fd5b506101f261059e366004612a3a565b61234a565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f45760405162461bcd60e51b81526004016105eb90612e76565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106266123bb565b6001600160a01b03161461064c5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661066f57604051630103019560e11b815260040160405180910390fd5b6106776123d7565b6001600160a01b03811661069e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107395760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661076b6123bb565b6001600160a01b0316146107915760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166107b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146107e25760405163472511eb60e11b81523360048201526024016105eb565b61012e5485146108145761012e5460405163542fced960e11b81526105eb918791600401918252602082015260400190565b60006108238587848787611666565b905060006108517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610901918d9190600401612f55565b600060405180830381600087803b15801561091b57600080fd5b505af192505050801561092c575060015b61098c57610938612f90565b806308c379a003610971575061094c612fab565b806109575750610973565b8060405162461bcd60e51b81526004016105eb9190613059565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546001600160801b031916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b600054600290610100900460ff16158015610a15575060005460ff8083169116105b610a315760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038216610a6c57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b0384161790556040517fe416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a90600090a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b706123bb565b6001600160a01b031614610b965760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610bb957604051630103019560e11b815260040160405180910390fd5b610bc16123d7565b6001600160a01b038116610be857604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106c4565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c5c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c8e6123bb565b6001600160a01b031614610cb45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610cd757604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d485760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7a6123bb565b6001600160a01b031614610da05760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610dc357604051630103019560e11b815260040160405180910390fd5b610dcc8561220d565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610e1e918591906004016130da565b60006040518083038186803b158015610e3657600080fd5b505afa1580156109e8573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e925760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ec46123bb565b6001600160a01b031614610eea5760405162461bcd60e51b81526004016105eb90612ec2565b610ef381612433565b60408051600080825260208201909252610f0f918391906124db565b50565b600054600190610100900460ff16158015610f34575060005460ff8083169116105b610f505760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038416610f8b57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610fb257604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610fd95760405163baa3de5f60e01b815260040160405180910390fd5b610fe161264b565b610fea8661267a565b61100c57604051630220cee360e61b815260ff871660048201526024016105eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d80549190931691161790556110886126a1565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111575760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111896123bb565b6001600160a01b0316146111af5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166111d257604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112495760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127b6123bb565b6001600160a01b0316146112a15760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166112c457604051630103019560e11b815260040160405180910390fd5b61012e5482036112f35750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b03169081900361134e5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906113686001600160801b0384164261310b565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113df5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114116123bb565b6001600160a01b0316146114375760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661145a57604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114aa5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114dc6123bb565b6001600160a01b0316146115025760405162461bcd60e51b81526004016105eb90612ec2565b61150b82612433565b611517828260016124db565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115bb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105eb565b5060008051602061321283398151915290565b6115d66123d7565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b0316811461165d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105eb565b610f0f816126d7565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116b05760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e26123bb565b6001600160a01b0316146117085760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661172b57604051630103019560e11b815260040160405180910390fd5b6000868686868660405160200161174695949392919061312c565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117b35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117e56123bb565b6001600160a01b03161461180b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661182e57604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361188a5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118bc6123bb565b6001600160a01b0316146118e25760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661190557604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119605760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119926123bb565b6001600160a01b0316146119b85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166119db57604051630103019560e11b815260040160405180910390fd5b6119e36123d7565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a805760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab26123bb565b6001600160a01b031614611ad85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611afb57604051630103019560e11b815260040160405180910390fd5b611b036123d7565b6001600160a01b038116611b2a57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b038381166001600160a01b03198316811790935516908160026106c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b9c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bce6123bb565b6001600160a01b031614611bf45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611c1757604051630103019560e11b815260040160405180910390fd5b611c1f6123d7565b80600003611c6f5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016105eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cf35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d256123bb565b6001600160a01b031614611d4b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611d6e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dbe5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611df06123bb565b6001600160a01b031614611e165760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611e3957604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e675760405163472511eb60e11b81523360048201526024016105eb565b611e72600484612f24565b15611e90576040516308f3ed5160e41b815260040160405180910390fd5b6000611e9d60048561317d565b905061012e548314611ed15761012e5460405163542fced960e11b81526105eb918591600401918252602082015260400190565b6000611ee08686868686610c12565b90506000611f0e7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013554604051638a283fc360e01b815263ffffffff861660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991611fc3918d9190600401612f55565b600060405180830381600087803b158015611fdd57600080fd5b505af1925050508015611fee575060015b611ffa57610938612f90565b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120ab5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120dd6123bb565b6001600160a01b0316146121035760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661212657604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121815760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121b36123bb565b6001600160a01b0316146121d95760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166121fc57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122555760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122876123bb565b6001600160a01b0316146122ad5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166122d057604051630103019560e11b815260040160405180910390fd5b61012e548114610f0f57600081815261012f60205260408120546001600160801b0316908190036123145760405163ddae3b7160e01b815260040160405180910390fd5b6101305461232b6001600160801b0383164261310b565b111561151757604051631d739acf60e11b815260040160405180910390fd5b6123526123d7565b606580546001600160a01b0383166001600160a01b031990911681179091556123836033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020613212833981519152546001600160a01b031690565b6033546001600160a01b031633146124315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105eb565b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361247b5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124ad6123bb565b6001600160a01b0316146124d35760405162461bcd60e51b81526004016105eb90612ec2565b610f0f6123d7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125135761250e836126f0565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561256d575060408051601f3d908101601f1916820190925261256a91810190613191565b60015b6125d05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105eb565b600080516020613212833981519152811461263f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105eb565b5061250e83838361278c565b600054610100900460ff166126725760405162461bcd60e51b81526004016105eb906131aa565b6124316127b7565b60006010602060ff8416821180159061269957508060ff168460ff1611155b949350505050565b600054610100900460ff166126c85760405162461bcd60e51b81526004016105eb906131aa565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610f0f816127ee565b6001600160a01b0381163b61275d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105eb565b60008051602061321283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61279583612840565b6000825111806127a25750805b1561250e576127b18383612880565b50505050565b600054610100900460ff166127de5760405162461bcd60e51b81526004016105eb906131aa565b6127e6612976565b6124316129a5565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612849816126f0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6128e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105eb565b600080846001600160a01b03168460405161290391906131f5565b600060405180830381855af49150503d806000811461293e576040519150601f19603f3d011682016040523d82523d6000602084013e612943565b606091505b509150915061296b8282604051806060016040528060278152602001613232602791396129cc565b925050505b92915050565b600054610100900460ff1661299d5760405162461bcd60e51b81526004016105eb906131aa565b6124316129e5565b600054610100900460ff166124315760405162461bcd60e51b81526004016105eb906131aa565b606083156129db575081611347565b6113478383612a15565b600054610100900460ff16612a0c5760405162461bcd60e51b81526004016105eb906131aa565b612431336126d7565b8151156109575781518083602001fd5b6001600160a01b0381168114610f0f57600080fd5b600060208284031215612a4c57600080fd5b813561134781612a25565b80610100810183101561297057600080fd5b803563ffffffff8116811461139057600080fd5b60008083601f840112612a8f57600080fd5b50813567ffffffffffffffff811115612aa757600080fd5b6020830191508360208260051b8501011115612ac257600080fd5b9250929050565b6000806000806000806101808789031215612ae357600080fd5b612aed8888612a57565b95506101008701359450612b046101208801612a69565b935061014087013567ffffffffffffffff811115612b2157600080fd5b612b2d89828a01612a7d565b979a969950949794969561016090950135949350505050565b60008083601f840112612b5857600080fd5b50813567ffffffffffffffff811115612b7057600080fd5b602083019150836020828501011115612ac257600080fd5b600080600080600060808688031215612ba057600080fd5b853567ffffffffffffffff811115612bb757600080fd5b612bc388828901612b46565b9096509450506020860135925060408601359150612be360608701612a69565b90509295509295909350565b60008060008060006101808688031215612c0857600080fd5b85359450602086013593506040860135925060608601359150612be38760808801612a57565b600080600080600060a08688031215612c4657600080fd5b853560ff81168114612c5757600080fd5b9450602086013593506040860135612c6e81612a25565b92506060860135612c7e81612a25565b91506080860135612c8e81612a25565b809150509295509295909350565b600060208284031215612cae57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612cf157612cf1612cb5565b6040525050565b60008060408385031215612d0b57600080fd5b8235612d1681612a25565b915060208381013567ffffffffffffffff80821115612d3457600080fd5b818601915086601f830112612d4857600080fd5b813581811115612d5a57612d5a612cb5565b6040519150612d72601f8201601f1916850183612ccb565b8082528784828501011115612d8657600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600080600060808688031215612dbc57600080fd5b612dc586612a69565b94506020860135935060408601359250606086013567ffffffffffffffff811115612def57600080fd5b612dfb88828901612a7d565b969995985093965092949392505050565b60008060008060006101608688031215612e2557600080fd5b612e2f8787612a57565b945061010086013567ffffffffffffffff811115612e4c57600080fd5b612e5888828901612b46565b96999098509596610120810135966101409091013595509350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082612f3357612f33612f0e565b500690565b600060208284031215612f4a57600080fd5b815161134781612a25565b61012081016101008085843782018360005b6001811015612f86578151835260209283019290910190600101612f67565b5050509392505050565b600060033d11156111e15760046000803e5060005160e01c90565b600060443d1015612fb95790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612fe957505050505090565b82850191508151818111156130015750505050505090565b843d870101602082850101111561301b5750505050505090565b61302a60208286010187612ccb565b509095945050505050565b60005b83811015613050578181015183820152602001613038565b50506000910152565b6020815260008251806020840152613078816040850160208701613035565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b61018081016101008085843782018360005b6004811015612f865781518352602092830192909101906001016130ec565b8181038181111561297057634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561316157600080fd5b8260051b80856044850137919091016044019695505050505050565b60008261318c5761318c612f0e565b500490565b6000602082840312156131a357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613207818460208701613035565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200c1f878bc397d9918c135c7b89e86999234f14244cede0aad31ed2828432cd2564736f6c63430008150033", + "sourceMap": "442:11955:44:-:0;;;1332:4:23;1289:48;;442:11955:44;;;;;;;;;-1:-1:-1;13736:22:43;:20;:22::i;:::-;442:11955:44;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:77;5987:66:22;;;198:21:77;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:77;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:77;;;6162:28:22;;552:2:77;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:77:-;442:11955:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6080604052600436106101cd5760003560e01c806379ba5097116100f7578063c70aa72711610095578063f134b6ca11610064578063f134b6ca14610539578063f2038f951461054e578063f2358e1d14610563578063f2fde38b1461058357600080fd5b8063c70aa727146104c6578063d7b0fef1146104e6578063e30c3978146104fb578063ea10fbbe1461051957600080fd5b80638e5cdd50116100d15780638e5cdd501461044a5780638fc22e9f14610471578063a7bba58214610486578063aa4a729e146104a657600080fd5b806379ba5097146103f75780638c76a9091461040c5780638da5cb5b1461042c57600080fd5b806338c870651161016f5780634f1ef2861161013e5780634f1ef2861461037657806352d1902d14610389578063561f204b1461039e578063715018a6146103e257600080fd5b806338c87065146102c75780633e8919b6146102e75780633f7c178d1461031457806343f974cb1461036157600080fd5b80632f059fca116101ab5780632f059fca1461023457806331e4e99214610254578063354ca120146102875780633659cfe6146102a757600080fd5b80630e3a12f3146101d25780632217b211146101f457806329b6eca914610214575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612a11565b6105a3565b005b34801561020057600080fd5b506101f261020f366004612aa0565b6106f1565b34801561022057600080fd5b506101f261022f366004612a11565b6109f3565b34801561024057600080fd5b506101f261024f366004612a11565b610af6565b34801561026057600080fd5b5061027461026f366004612b5f565b610c12565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506101f26102a2366004612bc6565b610d00565b3480156102b357600080fd5b506101f26102c2366004612a11565b610e4a565b3480156102d357600080fd5b506101f26102e2366004612c05565b610f12565b3480156102f357600080fd5b506102fc61110d565b6040516001600160a01b03909116815260200161027e565b34801561032057600080fd5b5061033461032f366004612c73565b6111e4565b60408051825181526020808401516001600160801b0316908201529181015115159082015260600161027e565b34801561036d57600080fd5b50610274611395565b6101f2610384366004612ccf565b611462565b34801561039557600080fd5b5061027461151b565b3480156103aa57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610334565b3480156103ee57600080fd5b506101f26115ce565b34801561040357600080fd5b506101f26115ef565b34801561041857600080fd5b50610274610427366004612d7b565b611666565b34801561043857600080fd5b506033546001600160a01b03166102fc565b34801561045657600080fd5b5061045f611769565b60405160ff909116815260200161027e565b34801561047d57600080fd5b506102fc611840565b34801561049257600080fd5b506102fc6104a1366004612a11565b611916565b3480156104b257600080fd5b506101f26104c1366004612a11565b611a38565b3480156104d257600080fd5b506101f26104e1366004612c73565b611b54565b3480156104f257600080fd5b50610274611ca9565b34801561050757600080fd5b506065546001600160a01b03166102fc565b34801561052557600080fd5b506101f2610534366004612de3565b611d76565b34801561054557600080fd5b506102fc612038565b34801561055a57600080fd5b506102fc61210e565b34801561056f57600080fd5b506101f261057e366004612c73565b6121e4565b34801561058f57600080fd5b506101f261059e366004612a11565b612321565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f45760405162461bcd60e51b81526004016105eb90612e4d565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610626612392565b6001600160a01b03161461064c5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661066f57604051630103019560e11b815260040160405180910390fd5b6106776123ae565b6001600160a01b03811661069e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107395760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661076b612392565b6001600160a01b0316146107915760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166107b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146107e25760405163472511eb60e11b81523360048201526024016105eb565b61012e5485146108145761012e5460405163542fced960e11b81526105eb918791600401918252602082015260400190565b60006108238587848787611666565b905060006108517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612efb565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190612f0f565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610901918d9190600401612f2c565b600060405180830381600087803b15801561091b57600080fd5b505af192505050801561092c575060015b61098c57610938612f67565b806308c379a003610971575061094c612f82565b806109575750610973565b8060405162461bcd60e51b81526004016105eb9190613030565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546001600160801b031916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b600054600290610100900460ff16158015610a15575060005460ff8083169116105b610a315760405162461bcd60e51b81526004016105eb90613063565b6000805461ffff191660ff8316176101001790556001600160a01b038216610a6c57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b0384161790556040517fe416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a90600090a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b70612392565b6001600160a01b031614610b965760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610bb957604051630103019560e11b815260040160405180910390fd5b610bc16123ae565b6001600160a01b038116610be857604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106c4565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c5c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c8e612392565b6001600160a01b031614610cb45760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610cd757604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d485760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7a612392565b6001600160a01b031614610da05760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16610dc357604051630103019560e11b815260040160405180910390fd5b610dcc856121e4565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610e1e918591906004016130b1565b60006040518083038186803b158015610e3657600080fd5b505afa1580156109e8573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e925760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ec4612392565b6001600160a01b031614610eea5760405162461bcd60e51b81526004016105eb90612e99565b610ef38161240a565b60408051600080825260208201909252610f0f918391906124b2565b50565b600054600190610100900460ff16158015610f34575060005460ff8083169116105b610f505760405162461bcd60e51b81526004016105eb90613063565b6000805461ffff191660ff8316176101001790556001600160a01b038416610f8b57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610fb257604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610fd95760405163baa3de5f60e01b815260040160405180910390fd5b610fe1612622565b610fea86612651565b61100c57604051630220cee360e61b815260ff871660048201526024016105eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055611088612678565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111575760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611189612392565b6001600160a01b0316146111af5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166111d257604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112495760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127b612392565b6001600160a01b0316146112a15760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166112c457604051630103019560e11b815260040160405180910390fd5b61012e5482036112f35750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b03169081900361134e5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906113686001600160801b038416426130e2565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113df5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611411612392565b6001600160a01b0316146114375760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661145a57604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114aa5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114dc612392565b6001600160a01b0316146115025760405162461bcd60e51b81526004016105eb90612e99565b61150b8261240a565b611517828260016124b2565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115bb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105eb565b506000805160206131e983398151915290565b6115d66123ae565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b0316811461165d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105eb565b610f0f816126ae565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116b05760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e2612392565b6001600160a01b0316146117085760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661172b57604051630103019560e11b815260040160405180910390fd5b60008686868686604051602001611746959493929190613103565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117b35760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117e5612392565b6001600160a01b03161461180b5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661182e57604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361188a5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118bc612392565b6001600160a01b0316146118e25760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff1661190557604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119605760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611992612392565b6001600160a01b0316146119b85760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166119db57604051630103019560e11b815260040160405180910390fd5b6119e36123ae565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a805760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab2612392565b6001600160a01b031614611ad85760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611afb57604051630103019560e11b815260040160405180910390fd5b611b036123ae565b6001600160a01b038116611b2a57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b038381166001600160a01b03198316811790935516908160026106c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b9c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bce612392565b6001600160a01b031614611bf45760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611c1757604051630103019560e11b815260040160405180910390fd5b611c1f6123ae565b80600003611c6f5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016105eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cf35760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d25612392565b6001600160a01b031614611d4b5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611d6e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dbe5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611df0612392565b6001600160a01b031614611e165760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff16611e3957604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e675760405163472511eb60e11b81523360048201526024016105eb565b6000611e74600485613154565b905061012e548314611ea85761012e5460405163542fced960e11b81526105eb918591600401918252602082015260400190565b6000611eb78686868686610c12565b90506000611ee57f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612efb565b61013554604051638a283fc360e01b815263ffffffff861660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5e9190612f0f565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991611f9a918d9190600401612f2c565b600060405180830381600087803b158015611fb457600080fd5b505af1925050508015611fc5575060015b611fd157610938612f67565b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120825760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120b4612392565b6001600160a01b0316146120da5760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166120fd57604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121585760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661218a612392565b6001600160a01b0316146121b05760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166121d357604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361222c5760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661225e612392565b6001600160a01b0316146122845760405162461bcd60e51b81526004016105eb90612e99565b60fb5460ff166122a757604051630103019560e11b815260040160405180910390fd5b61012e548114610f0f57600081815261012f60205260408120546001600160801b0316908190036122eb5760405163ddae3b7160e01b815260040160405180910390fd5b610130546123026001600160801b038316426130e2565b111561151757604051631d739acf60e11b815260040160405180910390fd5b6123296123ae565b606580546001600160a01b0383166001600160a01b0319909116811790915561235a6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000805160206131e9833981519152546001600160a01b031690565b6033546001600160a01b031633146124085760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105eb565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036124525760405162461bcd60e51b81526004016105eb90612e4d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612484612392565b6001600160a01b0316146124aa5760405162461bcd60e51b81526004016105eb90612e99565b610f0f6123ae565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156124ea576124e5836126c7565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612544575060408051601f3d908101601f1916820190925261254191810190613168565b60015b6125a75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105eb565b6000805160206131e983398151915281146126165760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105eb565b506124e5838383612763565b600054610100900460ff166126495760405162461bcd60e51b81526004016105eb90613181565b61240861278e565b60006010602060ff8416821180159061267057508060ff168460ff1611155b949350505050565b600054610100900460ff1661269f5760405162461bcd60e51b81526004016105eb90613181565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610f0f816127c5565b6001600160a01b0381163b6127345760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105eb565b6000805160206131e983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61276c83612817565b6000825111806127795750805b156124e5576127888383612857565b50505050565b600054610100900460ff166127b55760405162461bcd60e51b81526004016105eb90613181565b6127bd61294d565b61240861297c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612820816126c7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6128bf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105eb565b600080846001600160a01b0316846040516128da91906131cc565b600060405180830381855af49150503d8060008114612915576040519150601f19603f3d011682016040523d82523d6000602084013e61291a565b606091505b50915091506129428282604051806060016040528060278152602001613209602791396129a3565b925050505b92915050565b600054610100900460ff166129745760405162461bcd60e51b81526004016105eb90613181565b6124086129bc565b600054610100900460ff166124085760405162461bcd60e51b81526004016105eb90613181565b606083156129b2575081611347565b61134783836129ec565b600054610100900460ff166129e35760405162461bcd60e51b81526004016105eb90613181565b612408336126ae565b8151156109575781518083602001fd5b6001600160a01b0381168114610f0f57600080fd5b600060208284031215612a2357600080fd5b8135611347816129fc565b80610100810183101561294757600080fd5b803563ffffffff8116811461139057600080fd5b60008083601f840112612a6657600080fd5b50813567ffffffffffffffff811115612a7e57600080fd5b6020830191508360208260051b8501011115612a9957600080fd5b9250929050565b6000806000806000806101808789031215612aba57600080fd5b612ac48888612a2e565b95506101008701359450612adb6101208801612a40565b935061014087013567ffffffffffffffff811115612af857600080fd5b612b0489828a01612a54565b979a969950949794969561016090950135949350505050565b60008083601f840112612b2f57600080fd5b50813567ffffffffffffffff811115612b4757600080fd5b602083019150836020828501011115612a9957600080fd5b600080600080600060808688031215612b7757600080fd5b853567ffffffffffffffff811115612b8e57600080fd5b612b9a88828901612b1d565b9096509450506020860135925060408601359150612bba60608701612a40565b90509295509295909350565b60008060008060006101808688031215612bdf57600080fd5b85359450602086013593506040860135925060608601359150612bba8760808801612a2e565b600080600080600060a08688031215612c1d57600080fd5b853560ff81168114612c2e57600080fd5b9450602086013593506040860135612c45816129fc565b92506060860135612c55816129fc565b91506080860135612c65816129fc565b809150509295509295909350565b600060208284031215612c8557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612cc857612cc8612c8c565b6040525050565b60008060408385031215612ce257600080fd5b8235612ced816129fc565b915060208381013567ffffffffffffffff80821115612d0b57600080fd5b818601915086601f830112612d1f57600080fd5b813581811115612d3157612d31612c8c565b6040519150612d49601f8201601f1916850183612ca2565b8082528784828501011115612d5d57600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600080600060808688031215612d9357600080fd5b612d9c86612a40565b94506020860135935060408601359250606086013567ffffffffffffffff811115612dc657600080fd5b612dd288828901612a54565b969995985093965092949392505050565b60008060008060006101608688031215612dfc57600080fd5b612e068787612a2e565b945061010086013567ffffffffffffffff811115612e2357600080fd5b612e2f88828901612b1d565b96999098509596610120810135966101409091013595509350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082612f0a57612f0a612ee5565b500690565b600060208284031215612f2157600080fd5b8151611347816129fc565b61012081016101008085843782018360005b6001811015612f5d578151835260209283019290910190600101612f3e565b5050509392505050565b600060033d11156111e15760046000803e5060005160e01c90565b600060443d1015612f905790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612fc057505050505090565b8285019150815181811115612fd85750505050505090565b843d8701016020828501011115612ff25750505050505090565b61300160208286010187612ca2565b509095945050505050565b60005b8381101561302757818101518382015260200161300f565b50506000910152565b602081526000825180602084015261304f81604085016020870161300c565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b61018081016101008085843782018360005b6004811015612f5d5781518352602092830192909101906001016130c3565b8181038181111561294757634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561313857600080fd5b8260051b80856044850137919091016044019695505050505050565b60008261316357613163612ee5565b500490565b60006020828403121561317a57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516131de81846020870161300c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220988abd93bd0eacc32fed88af248acf0831a9aa2879d35aff2e53ffa3126eef5164736f6c63430008150033", - "sourceMap": "442:11347:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27081:492:43;;;;;;;;;;-1:-1:-1;27081:492:43;;;;;:::i;:::-;;:::i;:::-;;19019:2122;;;;;;;;;;-1:-1:-1;19019:2122:43;;;;;:::i;:::-;;:::i;4039:327:44:-;;;;;;;;;;-1:-1:-1;4039:327:44;;;;;:::i;:::-;;:::i;25868:522:43:-;;;;;;;;;;-1:-1:-1;25868:522:43;;;;;:::i;:::-;;:::i;11102:685:44:-;;;;;;;;;;-1:-1:-1;11102:685:44;;;;;:::i;:::-;;:::i;:::-;;;3375:25:77;;;3363:2;3348:18;11102:685:44;;;;;;;;30701:499:43;;;;;;;;;;-1:-1:-1;30701:499:43;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;15045:1346:43:-;;;;;;;;;;-1:-1:-1;15045:1346:43;;;;;:::i;:::-;;:::i;8798:228:44:-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;5274:32:77;;;5256:51;;5244:2;5229:18;8798:228:44;5110:203:77;23429:567:43;;;;;;;;;;-1:-1:-1;23429:567:43;;;;;:::i;:::-;;:::i;:::-;;;;5721:13:77;;5703:32;;5795:4;5783:17;;;5777:24;-1:-1:-1;;;;;5773:65:77;5751:20;;;5744:95;5897:17;;;5891:24;5884:32;5877:40;5855:20;;;5848:70;5691:2;5676:18;23429:567:43;5503:421:77;27749:189:43;;;;;;;;;;;;;:::i;3763:222:23:-;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;7325:120:43:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;7325:120;;4649:109:45;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;22271:413:43:-;;;;;;;;;;-1:-1:-1;22271:413:43;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;28716:119:43;;;;;;;;;;;;;:::i;:::-;;;8278:4:77;8266:17;;;8248:36;;8236:2;8221:18;28716:119:43;8106:184:77;25309:231:43;;;;;;;;;;;;;:::i;29482:384::-;;;;;;;;;;-1:-1:-1;29482:384:43;;;;;:::i;:::-;;:::i;9346:517:44:-;;;;;;;;;;-1:-1:-1;9346:517:44;;;;;:::i;:::-;;:::i;28170:402:43:-;;;;;;;;;;-1:-1:-1;28170:402:43;;;;;:::i;:::-;;:::i;22812:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;6347:2113:44;;;;;;;;;;-1:-1:-1;6347:2113:44;;;;;:::i;:::-;;:::i;29056:133:43:-;;;;;;;;;;;;;:::i;26573:205::-;;;;;;;;;;;;;:::i;24439:638::-;;;;;;;;;;-1:-1:-1;24439:638:43;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;27081:492:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;27252:34:43;::::3;27248:89;;27309:17;;-1:-1:-1::0;;;27309:17:43::3;;;;;;;;;;;27248:89;27380:17;::::0;;-1:-1:-1;;;;;27407:31:43;;::::3;-1:-1:-1::0;;;;;;27407:31:43;::::3;::::0;::::3;::::0;;;27380:17:::3;::::0;;27484:28:::3;27453:113;;::::0;::::3;::::0;;;::::3;27238:335;27081:492:::0;:::o;19019:2122::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;31743:17:43::2;::::0;-1:-1:-1;;;;;31743:17:43::2;31729:10;:31;31725:93;;31783:24;::::0;-1:-1:-1;;;31783:24:43;;31796:10:::2;31783:24;::::0;::::2;5256:51:77::0;5229:18;;31783:24:43::2;5110:203:77::0;31725:93:43::2;19310:11:::3;;19299:7;:22;19295:95;;19367:11;::::0;19344:35:::3;::::0;-1:-1:-1;;;19344:35:43;;::::3;::::0;19358:7;;19344:35:::3;;10104:25:77::0;;;10160:2;10145:18;;10138:34;10092:2;10077:18;;9930:248;19295:95:43::3;19480:17;19500:112;19552:10;19564:7;19573:8;19583:19;;19500:38;:112::i;:::-;19480:132:::0;-1:-1:-1;19911:22:43::3;19936:39;4362:77;19480:132:::0;19936:39:::3;:::i;:::-;20105:23;::::0;:66:::3;::::0;-1:-1:-1;;;20105:66:43;;::::3;::::0;::::3;3375:25:77::0;;;19911:64:43;;-1:-1:-1;20059:31:43::3;::::0;-1:-1:-1;;;;;20105:23:43;;::::3;::::0;:38:::3;::::0;3348:18:77;;20105:66:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20240:63;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;20240:63:43;;20059:112;;-1:-1:-1;;;;;;20240:29:43;::::3;::::0;::::3;::::0;:63:::3;::::0;20270:14;;20240:63;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;20236:899;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;20887:9;20880:17;;-1:-1:-1::0;;;20880:17:43::3;;;;;;;;:::i;20236:899::-;;;21100:24;;-1:-1:-1::0;;;21100:24:43::3;;;;;;;;;;;20236:899;20472:11;:22:::0;;;20640:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;20640:47:43::3;20671:15;-1:-1:-1::0;;;;;20640:47:43::3;;::::0;;20472:22;;20707:52:::3;::::0;20719:7;;20707:52:::3;::::0;;;::::3;20236:899;19285:1856;;;19019:2122:::0;;;;;;:::o;4039:327:44:-;4871:13:22;;4127:1:44;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;4144:46:44;::::1;4140:104;;4213:20;;-1:-1:-1::0;;;4213:20:44::1;;;;;;;;;;;4140:104;4254:22;:48:::0;;-1:-1:-1;;;;;;4254:48:44::1;-1:-1:-1::0;;;;;4254:48:44;::::1;;::::0;;4318:41:::1;::::0;::::1;::::0;-1:-1:-1;;4318:41:44::1;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;8278:4:77;8266:17;;8248:36;;5080:20:22;;8236:2:77;8221:18;5080:20:22;;;;;;;4039:327:44;;:::o;25868:522:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;26057:31:43;::::3;26053:89;;26111:20;;-1:-1:-1::0;;;26111:20:43::3;;;;;;;;;;;26053:89;26183:23;::::0;;-1:-1:-1;;;;;26216:34:43;;::::3;-1:-1:-1::0;;;;;;26216:34:43;::::3;::::0;::::3;::::0;;;26183:23:::3;::::0;;;26265:118:::3;::::0;11102:685:44;11330:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;11402:4:44::2;11396:11;11458:1;11447:9;11443:17;11529:15;11499:28;11486:11;11473:72;11577:33:::0;;::::2;11623:28:::0;;;11688:2:::2;11671:20:::0;;::::2;11664:38:::0;;;;-1:-1:-1;;11750:2:44::2;11746:24:::0;;::::2;11723:48:::0;;;11102:685;-1:-1:-1;;11102:685:44:o;30701:499:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;30989:22:43::2;31006:4;30989:16;:22::i;:::-;31077:17;::::0;:116:::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;31077:116:43;;-1:-1:-1;;;;;31077:17:43;;::::2;::::0;:29:::2;::::0;:116:::2;::::0;31120:5;;31077:116;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;15045:1346:43:-;4871:13:22;;15299:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;15316:47:43;::::1;15312:105;;15386:20;;-1:-1:-1::0;;;15386:20:43::1;;;;;;;;;;;15312:105;-1:-1:-1::0;;;;;15431:44:43;::::1;15427:102;;15498:20;;-1:-1:-1::0;;;15498:20:43::1;;;;;;;;;;;15427:102;-1:-1:-1::0;;;;;15543:41:43;::::1;15539:96;;15607:17;;-1:-1:-1::0;;;15607:17:43::1;;;;;;;;;;;15539:96;15719:16;:14;:16::i;:::-;15751:48;15788:10;15751:36;:48::i;:::-;15746:119;;15822:32;::::0;-1:-1:-1;;;15822:32:43;;8278:4:77;8266:17;;15822:32:43::1;::::0;::::1;8248:36:77::0;8221:18;;15822:32:43::1;8106:184:77::0;15746:119:43::1;15932:9;:22:::0;;-1:-1:-1;;;;15932:22:43::1;-1:-1:-1::0;;;15932:22:43::1;::::0;::::1;;;::::0;;15984:7:::1;15964:17;:27:::0;16001:11:::1;:25:::0;;;16036:23:::1;:50:::0;;-1:-1:-1;;;;;;16036:50:43;;::::1;-1:-1:-1::0;;;;;16036:50:43;;::::1;::::0;;;::::1;::::0;;;16096:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;16153:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;16201:17:43::1;:27:::0;;1513:6:18;;;;16201:27:43;::::1;;::::0;;16288:18:::1;:16;:18::i;:::-;16322:62;::::0;;14161:4:77;14149:17;;14131:36;;14198:2;14183:18;;14176:34;;;16322:62:43::1;::::0;14104:18:77;16322:62:43::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;8278:4:77;8266:17;;8248:36;;5080:20:22;;8236:2:77;8221:18;5080:20:22;;;;;;;15045:1346:43;;;;;;:::o;8798:228:44:-;8958:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;8996:22:44::2;::::0;-1:-1:-1;;;;;8996:22:44::2;1144:1:74;8798:228:44::0;:::o;23429:567:43:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;23608:11:43::2;;23600:4;:19:::0;23596:394:::2;;-1:-1:-1::0;;23642:30:43::2;::::0;;::::2;::::0;::::2;::::0;;23651:11:::2;::::0;23642:30;;-1:-1:-1;23642:30:43::2;::::0;::::2;::::0;23667:4:::2;23642:30:::0;;;;;;;;23429:567::o;23596:394::-:2;23703:21;23727:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;23727:17:43::2;::::0;23763:18;;;23759:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;23808:14:::2;23801:21:::0;23429:567;-1:-1:-1;;;23429:567:43:o;23759:78::-:2;23902:17;::::0;23851:12:::2;::::0;23868:31:::2;-1:-1:-1::0;;;;;23868:31:43;::::2;:15;:31;:::i;:::-;23941:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;23941:38:43;;::::2;;::::0;::::2;::::0;23868:51;-1:-1:-1;23866:54:43::2;23941:38:::0;;;;-1:-1:-1;23941:38:43;-1:-1:-1;23596:394:43::2;23429:567:::0;;;:::o;27749:189::-;27884:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;27914:17:43::2;::::0;27749:189;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;14653:2:77;2308:92:23;;;14635:21:77;14692:2;14672:18;;;14665:30;14731:34;14711:18;;;14704:62;14802:26;14782:18;;;14775:54;14846:19;;2308:92:23;14451:420:77;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;4649:109:45:-;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;15078:2:77;2095:78:17;;;15060:21:77;15117:2;15097:18;;;15090:30;15156:34;15136:18;;;15129:62;-1:-1:-1;;;15207:18:77;;;15200:39;15256:19;;2095:78:17;14876:405:77;2095:78:17;2183:26;2202:6;2183:18;:26::i;22271:413:43:-;22506:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;22530:24:43::2;22586:10;22598:7;22607:8;22617:19;;22569:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22569:68:43;;::::2;::::0;;;;;;22655:22;;22569:68:::2;22655:22:::0;;::::2;::::0;;22271:413;-1:-1:-1;;;;;;;22271:413:43:o;28716:119::-;28795:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;28819:9:43::2;::::0;-1:-1:-1;;;28819:9:43;::::2;;;::::0;28716:119::o;25309:231::-;25471:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;25509:23:43::2;::::0;-1:-1:-1;;;;;25509:23:43::2;25309:231:::0;:::o;29482:384::-;29648:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;29693:17:43::3;::::0;;-1:-1:-1;;;;;29720:39:43;;::::3;-1:-1:-1::0;;;;;;29720:39:43;::::3;::::0;::::3;::::0;;;29774:57:::3;::::0;29693:17;::::3;::::0;29720:39;29693:17;;29774:57:::3;::::0;29671:19:::3;::::0;29774:57:::3;29848:11:::0;29482:384;-1:-1:-1;;29482:384:43:o;9346:517:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;9533:31:44;::::3;9529:89;;9587:20;;-1:-1:-1::0;;;9587:20:44::3;;;;;;;;;;;9529:89;9659:22;::::0;;-1:-1:-1;;;;;9691:33:44;;::::3;-1:-1:-1::0;;;;;;9691:33:44;::::3;::::0;::::3;::::0;;;9659:22:::3;::::0;;9770:38:::3;9739:117;::::0;28170:402:43;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;28332::43::3;28349:1;28332:18:::0;28328:86:::3;;28366:37;::::0;-1:-1:-1;;;28366:37:43;;16088:2:77;28366:37:43::3;::::0;::::3;16070:21:77::0;16127:2;16107:18;;;16100:30;16166:29;16146:18;;;16139:57;16213:18;;28366:37:43::3;15886:351:77::0;28328:86:43::3;28443:17;::::0;;28470:33;;;;28519:46:::3;::::0;28490:13;;28443:17;;28519:46:::3;::::0;28423:17:::3;::::0;28519:46:::3;28318:254;28170:402:::0;:::o;22812:121::-;22889:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;22915:11:43::2;::::0;22812:121;:::o;6347:2113:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;31743:17:43::2;::::0;-1:-1:-1;;;;;31743:17:43::2;31729:10;:31;31725:93;;31783:24;::::0;-1:-1:-1;;;31783:24:43;;31796:10:::2;31783:24;::::0;::::2;5256:51:77::0;5229:18;;31783:24:43::2;5110:203:77::0;31725:93:43::2;6591:16:44::3;6617:32;6648:1;6617:21:::0;:32:::3;:::i;:::-;6591:59;;6676:11;;6665:7;:22;6661:95;;6733:11;::::0;6710:35:::3;::::0;-1:-1:-1;;;6710:35:44;;::::3;::::0;6724:7;;6710:35:::3;;10104:25:77::0;;;10160:2;10145:18;;10138:34;10092:2;10077:18;;9930:248;6661:95:44::3;6847:17;6879:87;6914:21;;6937:7;6946:8;6956:9;6879:34;:87::i;:::-;6847:119:::0;-1:-1:-1;7265:22:44::3;7290:39;4362:77:43;6847:119:44::0;7290:39:::3;:::i;:::-;7446:22;::::0;:48:::3;::::0;-1:-1:-1;;;7446:48:44;;16542:10:77;16530:23;;7446:48:44::3;::::0;::::3;16512:42:77::0;7265:64:44;;-1:-1:-1;7413:30:44::3;::::0;-1:-1:-1;;;;;7446:22:44;;::::3;::::0;:37:::3;::::0;16485:18:77;;7446:48:44::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7563:61;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;7563:61:44;;7413:81;;-1:-1:-1;;;;;;7563:28:44;::::3;::::0;::::3;::::0;:61:::3;::::0;7592:13;;7563:61;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;7559:895;;;;:::i;:::-;7792:11;:22:::0;;;7960:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;7960:47:44::3;7991:15;-1:-1:-1::0;;;;;7960:47:44::3;;::::0;;7792:22;-1:-1:-1;8027:51:44::3;::::0;8039:7;;8027:51:::3;::::0;;;::::3;6581:1879;;;;6347:2113:::0;;;;;:::o;29056:133:43:-;29139:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29165:17:43::2;::::0;-1:-1:-1;;;;;29165:17:43::2;29056:133:::0;:::o;26573:205::-;26715:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;26753:17:43::2;::::0;-1:-1:-1;;;;;26753:17:43::2;26573:205:::0;:::o;24439:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;24591:11:43::2;::::0;24579:56;;24618:7:::2;24579:56;24710:21;24734:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;24734:17:43::2;::::0;24834:18;;;24830:73:::2;;24875:17;;-1:-1:-1::0;;;24875:17:43::2;;;;;;;;;;;24830:73;25007:17;::::0;24973:31:::2;-1:-1:-1::0;;;;;24973:31:43;::::2;:15;:31;:::i;:::-;:51;24969:102;;;25047:13;;-1:-1:-1::0;;;25047:13:43::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;16767:2:77;1654:68:18;;;16749:21:77;;;16786:18;;;16779:30;16845:34;16825:18;;;16818:62;16897:18;;1654:68:18;16565:356:77;1654:68:18;1599:130::o;4067:204:45:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;17317:2:77;3758:56:20;;;17299:21:77;17356:2;17336:18;;;17329:30;17395:34;17375:18;;;17368:62;-1:-1:-1;;;17446:18:77;;;17439:44;17500:19;;3758:56:20;17115:410:77;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;17732:2:77;3636:82:20;;;17714:21:77;17771:2;17751:18;;;17744:30;17810:34;17790:18;;;17783:62;-1:-1:-1;;;17861:18:77;;;17854:39;17910:19;;3636:82:20;17530:405:77;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;16725:97:43:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;16795:20:43::1;:18;:20::i;434:207:75:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:75;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:75:o;794:90:74:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:74::1;:19:::0;;-1:-1:-1;;858:19:74::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;18554:2:77;1878:106:20;;;18536:21:77;18593:2;18573:18;;;18566:30;18632:34;18612:18;;;18605:62;-1:-1:-1;;;18683:18:77;;;18676:43;18736:19;;1878:106:20;18352:409:77;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;18968:2:77;7195:88:20;;;18950:21:77;19007:2;18987:18;;;18980:30;19046:34;19026:18;;;19019:62;-1:-1:-1;;;19097:18:77;;;19090:36;19143:19;;7195:88:20;18766:402:77;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:77;-1:-1:-1;;;;;109:31:77;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:77;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:77;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:77;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:77:o;2254:347::-;2305:8;2315:6;2369:3;2362:4;2354:6;2350:17;2346:27;2336:55;;2387:1;2384;2377:12;2336:55;-1:-1:-1;2410:20:77;;2453:18;2442:30;;2439:50;;;2485:1;2482;2475:12;2439:50;2522:4;2514:6;2510:17;2498:29;;2574:3;2567:4;2558:6;2550;2546:19;2542:30;2539:39;2536:59;;;2591:1;2588;2581:12;2606:618;2702:6;2710;2718;2726;2734;2787:3;2775:9;2766:7;2762:23;2758:33;2755:53;;;2804:1;2801;2794:12;2755:53;2844:9;2831:23;2877:18;2869:6;2866:30;2863:50;;;2909:1;2906;2899:12;2863:50;2948:58;2998:7;2989:6;2978:9;2974:22;2948:58;:::i;:::-;3025:8;;-1:-1:-1;2922:84:77;-1:-1:-1;;3107:2:77;3092:18;;3079:32;;-1:-1:-1;3158:2:77;3143:18;;3130:32;;-1:-1:-1;3181:37:77;3214:2;3199:18;;3181:37;:::i;:::-;3171:47;;2606:618;;;;;;;;:::o;3411:509::-;3531:6;3539;3547;3555;3563;3616:3;3604:9;3595:7;3591:23;3587:33;3584:53;;;3633:1;3630;3623:12;3584:53;3669:9;3656:23;3646:33;;3726:2;3715:9;3711:18;3698:32;3688:42;;3777:2;3766:9;3762:18;3749:32;3739:42;;3828:2;3817:9;3813:18;3800:32;3790:42;;3851:63;3906:7;3900:3;3889:9;3885:19;3851:63;:::i;4197:908::-;4376:6;4384;4392;4400;4408;4461:3;4449:9;4440:7;4436:23;4432:33;4429:53;;;4478:1;4475;4468:12;4429:53;4517:9;4504:23;4567:4;4560:5;4556:16;4549:5;4546:27;4536:55;;4587:1;4584;4577:12;4536:55;4610:5;-1:-1:-1;4662:2:77;4647:18;;4634:32;;-1:-1:-1;4718:2:77;4703:18;;4690:32;4731:53;4690:32;4731:53;:::i;:::-;4803:7;-1:-1:-1;4862:2:77;4847:18;;4834:32;4875:53;4834:32;4875:53;:::i;:::-;4947:7;-1:-1:-1;5006:3:77;4991:19;;4978:33;5020:53;4978:33;5020:53;:::i;:::-;5092:7;5082:17;;;4197:908;;;;;;;;:::o;5318:180::-;5377:6;5430:2;5418:9;5409:7;5405:23;5401:32;5398:52;;;5446:1;5443;5436:12;5398:52;-1:-1:-1;5469:23:77;;5318:180;-1:-1:-1;5318:180:77:o;6111:127::-;6172:10;6167:3;6163:20;6160:1;6153:31;6203:4;6200:1;6193:15;6227:4;6224:1;6217:15;6243:249;6353:2;6334:13;;-1:-1:-1;;6330:27:77;6318:40;;6388:18;6373:34;;6409:22;;;6370:62;6367:88;;;6435:18;;:::i;:::-;6471:2;6464:22;-1:-1:-1;;6243:249:77:o;6497:953::-;6574:6;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6690:9;6677:23;6709:51;6754:5;6709:51;:::i;:::-;6779:5;-1:-1:-1;6803:2:77;6841:18;;;6828:32;6879:18;6909:14;;;6906:34;;;6936:1;6933;6926:12;6906:34;6974:6;6963:9;6959:22;6949:32;;7019:7;7012:4;7008:2;7004:13;7000:27;6990:55;;7041:1;7038;7031:12;6990:55;7077:2;7064:16;7099:2;7095;7092:10;7089:36;;;7105:18;;:::i;:::-;7154:2;7148:9;;-1:-1:-1;7166:65:77;7221:2;7202:13;;-1:-1:-1;;7198:27:77;7194:36;;7148:9;7166:65;:::i;:::-;7255:2;7247:6;7240:18;7295:7;7290:2;7285;7281;7277:11;7273:20;7270:33;7267:53;;;7316:1;7313;7306:12;7267:53;7372:2;7367;7363;7359:11;7354:2;7346:6;7342:15;7329:46;7417:1;7412:2;7407;7399:6;7395:15;7391:24;7384:35;;7438:6;7428:16;;;;;6497:953;;;;;:::o;7455:646::-;7567:6;7575;7583;7591;7599;7652:3;7640:9;7631:7;7627:23;7623:33;7620:53;;;7669:1;7666;7659:12;7620:53;7692:28;7710:9;7692:28;:::i;:::-;7682:38;;7767:2;7756:9;7752:18;7739:32;7729:42;;7818:2;7807:9;7803:18;7790:32;7780:42;;7873:2;7862:9;7858:18;7845:32;7900:18;7892:6;7889:30;7886:50;;;7932:1;7929;7922:12;7886:50;7971:70;8033:7;8024:6;8013:9;8009:22;7971:70;:::i;:::-;7455:646;;;;-1:-1:-1;7455:646:77;;-1:-1:-1;8060:8:77;;7945:96;7455:646;-1:-1:-1;;;7455:646:77:o;8295:672::-;8417:6;8425;8433;8441;8449;8502:3;8490:9;8481:7;8477:23;8473:33;8470:53;;;8519:1;8516;8509:12;8470:53;8542;8587:7;8576:9;8542:53;:::i;:::-;8532:63;;8646:3;8635:9;8631:19;8618:33;8674:18;8666:6;8663:30;8660:50;;;8706:1;8703;8696:12;8660:50;8745:58;8795:7;8786:6;8775:9;8771:22;8745:58;:::i;:::-;8295:672;;8822:8;;-1:-1:-1;8719:84:77;;8904:3;8889:19;;8876:33;;8956:3;8941:19;;;8928:33;;-1:-1:-1;8295:672:77;-1:-1:-1;;;;8295:672:77:o;8972:408::-;9174:2;9156:21;;;9213:2;9193:18;;;9186:30;9252:34;9247:2;9232:18;;9225:62;-1:-1:-1;;;9318:2:77;9303:18;;9296:42;9370:3;9355:19;;8972:408::o;9385:::-;9587:2;9569:21;;;9626:2;9606:18;;;9599:30;9665:34;9660:2;9645:18;;9638:62;-1:-1:-1;;;9731:2:77;9716:18;;9709:42;9783:3;9768:19;;9385:408::o;10183:127::-;10244:10;10239:3;10235:20;10232:1;10225:31;10275:4;10272:1;10265:15;10299:4;10296:1;10289:15;10315:112;10347:1;10373;10363:35;;10378:18;;:::i;:::-;-1:-1:-1;10412:9:77;;10315:112::o;10432:294::-;10525:6;10578:2;10566:9;10557:7;10553:23;10549:32;10546:52;;;10594:1;10591;10584:12;10546:52;10626:9;10620:16;10645:51;10690:5;10645:51;:::i;10731:646::-;10987:3;10972:19;;11010:6;;11049;10976:9;11025:35;11080:18;;11140:6;11164:1;11174:197;11188:4;11185:1;11182:11;11174:197;;;11250:13;;11238:26;;11287:4;11311:12;;;;11346:15;;;;11208:4;11201:12;11174:197;;;11178:3;;;10731:646;;;;;:::o;11382:179::-;11417:3;11459:1;11441:16;11438:23;11435:120;;;11505:1;11502;11499;11484:23;-1:-1:-1;11542:1:77;11536:8;11531:3;11527:18;11382:179;:::o;11566:671::-;11605:3;11647:4;11629:16;11626:26;11623:39;;;11566:671;:::o;11623:39::-;11689:2;11683:9;-1:-1:-1;;11754:16:77;11750:25;;11747:1;11683:9;11726:50;11805:4;11799:11;11829:16;11864:18;11935:2;11928:4;11920:6;11916:17;11913:25;11908:2;11900:6;11897:14;11894:45;11891:58;;;11942:5;;;;;11566:671;:::o;11891:58::-;11979:6;11973:4;11969:17;11958:28;;12015:3;12009:10;12042:2;12034:6;12031:14;12028:27;;;12048:5;;;;;;11566:671;:::o;12028:27::-;12132:2;12113:16;12107:4;12103:27;12099:36;12092:4;12083:6;12078:3;12074:16;12070:27;12067:69;12064:82;;;12139:5;;;;;;11566:671;:::o;12064:82::-;12155:57;12206:4;12197:6;12189;12185:19;12181:30;12175:4;12155:57;:::i;:::-;-1:-1:-1;12228:3:77;;11566:671;-1:-1:-1;;;;;11566:671:77:o;12242:250::-;12327:1;12337:113;12351:6;12348:1;12345:13;12337:113;;;12427:11;;;12421:18;12408:11;;;12401:39;12373:2;12366:10;12337:113;;;-1:-1:-1;;12484:1:77;12466:16;;12459:27;12242:250::o;12497:396::-;12646:2;12635:9;12628:21;12609:4;12678:6;12672:13;12721:6;12716:2;12705:9;12701:18;12694:34;12737:79;12809:6;12804:2;12793:9;12789:18;12784:2;12776:6;12772:15;12737:79;:::i;:::-;12877:2;12856:15;-1:-1:-1;;12852:29:77;12837:45;;;;12884:2;12833:54;;12497:396;-1:-1:-1;;12497:396:77:o;12898:410::-;13100:2;13082:21;;;13139:2;13119:18;;;13112:30;13178:34;13173:2;13158:18;;13151:62;-1:-1:-1;;;13244:2:77;13229:18;;13222:44;13298:3;13283:19;;12898:410::o;13313:643::-;13569:3;13554:19;;13592:6;;13631;13558:9;13607:35;13662:18;;13722:6;13746:1;13756:194;13770:4;13767:1;13764:11;13756:194;;;13829:13;;13817:26;;13866:4;13890:12;;;;13925:15;;;;13790:1;13783:9;13756:194;;14221:225;14288:9;;;14309:11;;;14306:134;;;14362:10;14357:3;14353:20;14350:1;14343:31;14397:4;14394:1;14387:15;14425:4;14422:1;14415:15;15286:595;15595:3;15573:16;;;-1:-1:-1;;;;;;15569:43:77;15557:56;;15638:1;15629:11;;15622:27;;;15674:2;15665:12;;15658:28;;;-1:-1:-1;;;;;;15698:31:77;;15695:51;;;15742:1;15739;15732:12;15695:51;15776:6;15773:1;15769:14;15827:6;15819;15814:2;15809:3;15805:12;15792:42;15854:16;;;;15872:2;15850:25;;15286:595;-1:-1:-1;;;;;;15286:595:77:o;16242:120::-;16282:1;16308;16298:35;;16313:18;;:::i;:::-;-1:-1:-1;16347:9:77;;16242:120::o;16926:184::-;16996:6;17049:2;17037:9;17028:7;17024:23;17020:32;17017:52;;;17065:1;17062;17055:12;17017:52;-1:-1:-1;17088:16:77;;16926:184;-1:-1:-1;16926:184:77:o;17940:407::-;18142:2;18124:21;;;18181:2;18161:18;;;18154:30;18220:34;18215:2;18200:18;;18193:62;-1:-1:-1;;;18286:2:77;18271:18;;18264:41;18337:3;18322:19;;17940:407::o;19173:287::-;19302:3;19340:6;19334:13;19356:66;19415:6;19410:3;19403:4;19395:6;19391:17;19356:66;:::i;:::-;19438:16;;;;;19173:287;-1:-1:-1;;19173:287:77:o", + "object": "0x6080604052600436106101cd5760003560e01c806379ba5097116100f7578063c70aa72711610095578063f134b6ca11610064578063f134b6ca14610539578063f2038f951461054e578063f2358e1d14610563578063f2fde38b1461058357600080fd5b8063c70aa727146104c6578063d7b0fef1146104e6578063e30c3978146104fb578063ea10fbbe1461051957600080fd5b80638e5cdd50116100d15780638e5cdd501461044a5780638fc22e9f14610471578063a7bba58214610486578063aa4a729e146104a657600080fd5b806379ba5097146103f75780638c76a9091461040c5780638da5cb5b1461042c57600080fd5b806338c870651161016f5780634f1ef2861161013e5780634f1ef2861461037657806352d1902d14610389578063561f204b1461039e578063715018a6146103e257600080fd5b806338c87065146102c75780633e8919b6146102e75780633f7c178d1461031457806343f974cb1461036157600080fd5b80632f059fca116101ab5780632f059fca1461023457806331e4e99214610254578063354ca120146102875780633659cfe6146102a757600080fd5b80630e3a12f3146101d25780632217b211146101f457806329b6eca914610214575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612a3a565b6105a3565b005b34801561020057600080fd5b506101f261020f366004612ac9565b6106f1565b34801561022057600080fd5b506101f261022f366004612a3a565b6109f3565b34801561024057600080fd5b506101f261024f366004612a3a565b610af6565b34801561026057600080fd5b5061027461026f366004612b88565b610c12565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506101f26102a2366004612bef565b610d00565b3480156102b357600080fd5b506101f26102c2366004612a3a565b610e4a565b3480156102d357600080fd5b506101f26102e2366004612c2e565b610f12565b3480156102f357600080fd5b506102fc61110d565b6040516001600160a01b03909116815260200161027e565b34801561032057600080fd5b5061033461032f366004612c9c565b6111e4565b60408051825181526020808401516001600160801b0316908201529181015115159082015260600161027e565b34801561036d57600080fd5b50610274611395565b6101f2610384366004612cf8565b611462565b34801561039557600080fd5b5061027461151b565b3480156103aa57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610334565b3480156103ee57600080fd5b506101f26115ce565b34801561040357600080fd5b506101f26115ef565b34801561041857600080fd5b50610274610427366004612da4565b611666565b34801561043857600080fd5b506033546001600160a01b03166102fc565b34801561045657600080fd5b5061045f611769565b60405160ff909116815260200161027e565b34801561047d57600080fd5b506102fc611840565b34801561049257600080fd5b506102fc6104a1366004612a3a565b611916565b3480156104b257600080fd5b506101f26104c1366004612a3a565b611a38565b3480156104d257600080fd5b506101f26104e1366004612c9c565b611b54565b3480156104f257600080fd5b50610274611ca9565b34801561050757600080fd5b506065546001600160a01b03166102fc565b34801561052557600080fd5b506101f2610534366004612e0c565b611d76565b34801561054557600080fd5b506102fc612061565b34801561055a57600080fd5b506102fc612137565b34801561056f57600080fd5b506101f261057e366004612c9c565b61220d565b34801561058f57600080fd5b506101f261059e366004612a3a565b61234a565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f45760405162461bcd60e51b81526004016105eb90612e76565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106266123bb565b6001600160a01b03161461064c5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661066f57604051630103019560e11b815260040160405180910390fd5b6106776123d7565b6001600160a01b03811661069e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107395760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661076b6123bb565b6001600160a01b0316146107915760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166107b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146107e25760405163472511eb60e11b81523360048201526024016105eb565b61012e5485146108145761012e5460405163542fced960e11b81526105eb918791600401918252602082015260400190565b60006108238587848787611666565b905060006108517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610901918d9190600401612f55565b600060405180830381600087803b15801561091b57600080fd5b505af192505050801561092c575060015b61098c57610938612f90565b806308c379a003610971575061094c612fab565b806109575750610973565b8060405162461bcd60e51b81526004016105eb9190613059565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546001600160801b031916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b600054600290610100900460ff16158015610a15575060005460ff8083169116105b610a315760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038216610a6c57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b0384161790556040517fe416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a90600090a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b706123bb565b6001600160a01b031614610b965760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610bb957604051630103019560e11b815260040160405180910390fd5b610bc16123d7565b6001600160a01b038116610be857604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106c4565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c5c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c8e6123bb565b6001600160a01b031614610cb45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610cd757604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d485760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7a6123bb565b6001600160a01b031614610da05760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610dc357604051630103019560e11b815260040160405180910390fd5b610dcc8561220d565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610e1e918591906004016130da565b60006040518083038186803b158015610e3657600080fd5b505afa1580156109e8573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e925760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ec46123bb565b6001600160a01b031614610eea5760405162461bcd60e51b81526004016105eb90612ec2565b610ef381612433565b60408051600080825260208201909252610f0f918391906124db565b50565b600054600190610100900460ff16158015610f34575060005460ff8083169116105b610f505760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038416610f8b57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610fb257604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610fd95760405163baa3de5f60e01b815260040160405180910390fd5b610fe161264b565b610fea8661267a565b61100c57604051630220cee360e61b815260ff871660048201526024016105eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d80549190931691161790556110886126a1565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111575760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111896123bb565b6001600160a01b0316146111af5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166111d257604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112495760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127b6123bb565b6001600160a01b0316146112a15760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166112c457604051630103019560e11b815260040160405180910390fd5b61012e5482036112f35750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b03169081900361134e5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906113686001600160801b0384164261310b565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113df5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114116123bb565b6001600160a01b0316146114375760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661145a57604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114aa5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114dc6123bb565b6001600160a01b0316146115025760405162461bcd60e51b81526004016105eb90612ec2565b61150b82612433565b611517828260016124db565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115bb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105eb565b5060008051602061321283398151915290565b6115d66123d7565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b0316811461165d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105eb565b610f0f816126d7565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116b05760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e26123bb565b6001600160a01b0316146117085760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661172b57604051630103019560e11b815260040160405180910390fd5b6000868686868660405160200161174695949392919061312c565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117b35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117e56123bb565b6001600160a01b03161461180b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661182e57604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361188a5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118bc6123bb565b6001600160a01b0316146118e25760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661190557604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119605760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119926123bb565b6001600160a01b0316146119b85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166119db57604051630103019560e11b815260040160405180910390fd5b6119e36123d7565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a805760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab26123bb565b6001600160a01b031614611ad85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611afb57604051630103019560e11b815260040160405180910390fd5b611b036123d7565b6001600160a01b038116611b2a57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b038381166001600160a01b03198316811790935516908160026106c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b9c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bce6123bb565b6001600160a01b031614611bf45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611c1757604051630103019560e11b815260040160405180910390fd5b611c1f6123d7565b80600003611c6f5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016105eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cf35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d256123bb565b6001600160a01b031614611d4b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611d6e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dbe5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611df06123bb565b6001600160a01b031614611e165760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611e3957604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e675760405163472511eb60e11b81523360048201526024016105eb565b611e72600484612f24565b15611e90576040516308f3ed5160e41b815260040160405180910390fd5b6000611e9d60048561317d565b905061012e548314611ed15761012e5460405163542fced960e11b81526105eb918591600401918252602082015260400190565b6000611ee08686868686610c12565b90506000611f0e7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013554604051638a283fc360e01b815263ffffffff861660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991611fc3918d9190600401612f55565b600060405180830381600087803b158015611fdd57600080fd5b505af1925050508015611fee575060015b611ffa57610938612f90565b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120ab5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120dd6123bb565b6001600160a01b0316146121035760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661212657604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121815760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121b36123bb565b6001600160a01b0316146121d95760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166121fc57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122555760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122876123bb565b6001600160a01b0316146122ad5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166122d057604051630103019560e11b815260040160405180910390fd5b61012e548114610f0f57600081815261012f60205260408120546001600160801b0316908190036123145760405163ddae3b7160e01b815260040160405180910390fd5b6101305461232b6001600160801b0383164261310b565b111561151757604051631d739acf60e11b815260040160405180910390fd5b6123526123d7565b606580546001600160a01b0383166001600160a01b031990911681179091556123836033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020613212833981519152546001600160a01b031690565b6033546001600160a01b031633146124315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105eb565b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361247b5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124ad6123bb565b6001600160a01b0316146124d35760405162461bcd60e51b81526004016105eb90612ec2565b610f0f6123d7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125135761250e836126f0565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561256d575060408051601f3d908101601f1916820190925261256a91810190613191565b60015b6125d05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105eb565b600080516020613212833981519152811461263f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105eb565b5061250e83838361278c565b600054610100900460ff166126725760405162461bcd60e51b81526004016105eb906131aa565b6124316127b7565b60006010602060ff8416821180159061269957508060ff168460ff1611155b949350505050565b600054610100900460ff166126c85760405162461bcd60e51b81526004016105eb906131aa565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610f0f816127ee565b6001600160a01b0381163b61275d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105eb565b60008051602061321283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61279583612840565b6000825111806127a25750805b1561250e576127b18383612880565b50505050565b600054610100900460ff166127de5760405162461bcd60e51b81526004016105eb906131aa565b6127e6612976565b6124316129a5565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612849816126f0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6128e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105eb565b600080846001600160a01b03168460405161290391906131f5565b600060405180830381855af49150503d806000811461293e576040519150601f19603f3d011682016040523d82523d6000602084013e612943565b606091505b509150915061296b8282604051806060016040528060278152602001613232602791396129cc565b925050505b92915050565b600054610100900460ff1661299d5760405162461bcd60e51b81526004016105eb906131aa565b6124316129e5565b600054610100900460ff166124315760405162461bcd60e51b81526004016105eb906131aa565b606083156129db575081611347565b6113478383612a15565b600054610100900460ff16612a0c5760405162461bcd60e51b81526004016105eb906131aa565b612431336126d7565b8151156109575781518083602001fd5b6001600160a01b0381168114610f0f57600080fd5b600060208284031215612a4c57600080fd5b813561134781612a25565b80610100810183101561297057600080fd5b803563ffffffff8116811461139057600080fd5b60008083601f840112612a8f57600080fd5b50813567ffffffffffffffff811115612aa757600080fd5b6020830191508360208260051b8501011115612ac257600080fd5b9250929050565b6000806000806000806101808789031215612ae357600080fd5b612aed8888612a57565b95506101008701359450612b046101208801612a69565b935061014087013567ffffffffffffffff811115612b2157600080fd5b612b2d89828a01612a7d565b979a969950949794969561016090950135949350505050565b60008083601f840112612b5857600080fd5b50813567ffffffffffffffff811115612b7057600080fd5b602083019150836020828501011115612ac257600080fd5b600080600080600060808688031215612ba057600080fd5b853567ffffffffffffffff811115612bb757600080fd5b612bc388828901612b46565b9096509450506020860135925060408601359150612be360608701612a69565b90509295509295909350565b60008060008060006101808688031215612c0857600080fd5b85359450602086013593506040860135925060608601359150612be38760808801612a57565b600080600080600060a08688031215612c4657600080fd5b853560ff81168114612c5757600080fd5b9450602086013593506040860135612c6e81612a25565b92506060860135612c7e81612a25565b91506080860135612c8e81612a25565b809150509295509295909350565b600060208284031215612cae57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612cf157612cf1612cb5565b6040525050565b60008060408385031215612d0b57600080fd5b8235612d1681612a25565b915060208381013567ffffffffffffffff80821115612d3457600080fd5b818601915086601f830112612d4857600080fd5b813581811115612d5a57612d5a612cb5565b6040519150612d72601f8201601f1916850183612ccb565b8082528784828501011115612d8657600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600080600060808688031215612dbc57600080fd5b612dc586612a69565b94506020860135935060408601359250606086013567ffffffffffffffff811115612def57600080fd5b612dfb88828901612a7d565b969995985093965092949392505050565b60008060008060006101608688031215612e2557600080fd5b612e2f8787612a57565b945061010086013567ffffffffffffffff811115612e4c57600080fd5b612e5888828901612b46565b96999098509596610120810135966101409091013595509350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082612f3357612f33612f0e565b500690565b600060208284031215612f4a57600080fd5b815161134781612a25565b61012081016101008085843782018360005b6001811015612f86578151835260209283019290910190600101612f67565b5050509392505050565b600060033d11156111e15760046000803e5060005160e01c90565b600060443d1015612fb95790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612fe957505050505090565b82850191508151818111156130015750505050505090565b843d870101602082850101111561301b5750505050505090565b61302a60208286010187612ccb565b509095945050505050565b60005b83811015613050578181015183820152602001613038565b50506000910152565b6020815260008251806020840152613078816040850160208701613035565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b61018081016101008085843782018360005b6004811015612f865781518352602092830192909101906001016130ec565b8181038181111561297057634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561316157600080fd5b8260051b80856044850137919091016044019695505050505050565b60008261318c5761318c612f0e565b500490565b6000602082840312156131a357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613207818460208701613035565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200c1f878bc397d9918c135c7b89e86999234f14244cede0aad31ed2828432cd2564736f6c63430008150033", + "sourceMap": "442:11955:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27467:492:43;;;;;;;;;;-1:-1:-1;27467:492:43;;;;;:::i;:::-;;:::i;:::-;;19237:2122;;;;;;;;;;-1:-1:-1;19237:2122:43;;;;;:::i;:::-;;:::i;4309:327:44:-;;;;;;;;;;-1:-1:-1;4309:327:44;;;;;:::i;:::-;;:::i;26170:522:43:-;;;;;;;;;;-1:-1:-1;26170:522:43;;;;;:::i;:::-;;:::i;11710:685:44:-;;;;;;;;;;-1:-1:-1;11710:685:44;;;;;:::i;:::-;;:::i;:::-;;;3375:25:77;;;3363:2;3348:18;11710:685:44;;;;;;;;31087:499:43;;;;;;;;;;-1:-1:-1;31087:499:43;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;15263:1346:43:-;;;;;;;;;;-1:-1:-1;15263:1346:43;;;;;:::i;:::-;;:::i;9322:228:44:-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;5274:32:77;;;5256:51;;5244:2;5229:18;9322:228:44;5110:203:77;23647:567:43;;;;;;;;;;-1:-1:-1;23647:567:43;;;;;:::i;:::-;;:::i;:::-;;;;5721:13:77;;5703:32;;5795:4;5783:17;;;5777:24;-1:-1:-1;;;;;5773:65:77;5751:20;;;5744:95;5897:17;;;5891:24;5884:32;5877:40;5855:20;;;5848:70;5691:2;5676:18;23647:567:43;5503:421:77;28135:189:43;;;;;;;;;;;;;:::i;3763:222:23:-;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;7325:120:43:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;7325:120;;4649:109:45;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;22489:413:43:-;;;;;;;;;;-1:-1:-1;22489:413:43;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;29102:119:43;;;;;;;;;;;;;:::i;:::-;;;8278:4:77;8266:17;;;8248:36;;8236:2;8221:18;29102:119:43;8106:184:77;25527:231:43;;;;;;;;;;;;;:::i;29868:384::-;;;;;;;;;;-1:-1:-1;29868:384:43;;;;;:::i;:::-;;:::i;9954:517:44:-;;;;;;;;;;-1:-1:-1;9954:517:44;;;;;:::i;:::-;;:::i;28556:402:43:-;;;;;;;;;;-1:-1:-1;28556:402:43;;;;;:::i;:::-;;:::i;23030:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;6762:2222:44;;;;;;;;;;-1:-1:-1;6762:2222:44;;;;;:::i;:::-;;:::i;29442:133:43:-;;;;;;;;;;;;;:::i;26875:205::-;;;;;;;;;;;;;:::i;24657:638::-;;;;;;;;;;-1:-1:-1;24657:638:43;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;27467:492:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;27638:34:43;::::3;27634:89;;27695:17;;-1:-1:-1::0;;;27695:17:43::3;;;;;;;;;;;27634:89;27766:17;::::0;;-1:-1:-1;;;;;27793:31:43;;::::3;-1:-1:-1::0;;;;;;27793:31:43;::::3;::::0;::::3;::::0;;;27766:17:::3;::::0;;27870:28:::3;27839:113;;::::0;::::3;::::0;;;::::3;27624:335;27467:492:::0;:::o;19237:2122::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;32129:17:43::2;::::0;-1:-1:-1;;;;;32129:17:43::2;32115:10;:31;32111:93;;32169:24;::::0;-1:-1:-1;;;32169:24:43;;32182:10:::2;32169:24;::::0;::::2;5256:51:77::0;5229:18;;32169:24:43::2;5110:203:77::0;32111:93:43::2;19528:11:::3;;19517:7;:22;19513:95;;19585:11;::::0;19562:35:::3;::::0;-1:-1:-1;;;19562:35:43;;::::3;::::0;19576:7;;19562:35:::3;;10104:25:77::0;;;10160:2;10145:18;;10138:34;10092:2;10077:18;;9930:248;19513:95:43::3;19698:17;19718:112;19770:10;19782:7;19791:8;19801:19;;19718:38;:112::i;:::-;19698:132:::0;-1:-1:-1;20129:22:43::3;20154:39;4362:77;19698:132:::0;20154:39:::3;:::i;:::-;20323:23;::::0;:66:::3;::::0;-1:-1:-1;;;20323:66:43;;::::3;::::0;::::3;3375:25:77::0;;;20129:64:43;;-1:-1:-1;20277:31:43::3;::::0;-1:-1:-1;;;;;20323:23:43;;::::3;::::0;:38:::3;::::0;3348:18:77;;20323:66:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20458:63;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;20458:63:43;;20277:112;;-1:-1:-1;;;;;;20458:29:43;::::3;::::0;::::3;::::0;:63:::3;::::0;20488:14;;20458:63;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;20454:899;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;21105:9;21098:17;;-1:-1:-1::0;;;21098:17:43::3;;;;;;;;:::i;20454:899::-;;;21318:24;;-1:-1:-1::0;;;21318:24:43::3;;;;;;;;;;;20454:899;20690:11;:22:::0;;;20858:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;20858:47:43::3;20889:15;-1:-1:-1::0;;;;;20858:47:43::3;;::::0;;20690:22;;20925:52:::3;::::0;20937:7;;20925:52:::3;::::0;;;::::3;20454:899;19503:1856;;;19237:2122:::0;;;;;;:::o;4309:327:44:-;4871:13:22;;4397:1:44;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;4414:46:44;::::1;4410:104;;4483:20;;-1:-1:-1::0;;;4483:20:44::1;;;;;;;;;;;4410:104;4524:22;:48:::0;;-1:-1:-1;;;;;;4524:48:44::1;-1:-1:-1::0;;;;;4524:48:44;::::1;;::::0;;4588:41:::1;::::0;::::1;::::0;-1:-1:-1;;4588:41:44::1;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;8278:4:77;8266:17;;8248:36;;5080:20:22;;8236:2:77;8221:18;5080:20:22;;;;;;;4309:327:44;;:::o;26170:522:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;26359:31:43;::::3;26355:89;;26413:20;;-1:-1:-1::0;;;26413:20:43::3;;;;;;;;;;;26355:89;26485:23;::::0;;-1:-1:-1;;;;;26518:34:43;;::::3;-1:-1:-1::0;;;;;;26518:34:43;::::3;::::0;::::3;::::0;;;26485:23:::3;::::0;;;26567:118:::3;::::0;11710:685:44;11938:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;12010:4:44::2;12004:11;12066:1;12055:9;12051:17;12137:15;12107:28;12094:11;12081:72;12185:33:::0;;::::2;12231:28:::0;;;12296:2:::2;12279:20:::0;;::::2;12272:38:::0;;;;-1:-1:-1;;12358:2:44::2;12354:24:::0;;::::2;12331:48:::0;;;11710:685;-1:-1:-1;;11710:685:44:o;31087:499:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;31375:22:43::2;31392:4;31375:16;:22::i;:::-;31463:17;::::0;:116:::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;31463:116:43;;-1:-1:-1;;;;;31463:17:43;;::::2;::::0;:29:::2;::::0;:116:::2;::::0;31506:5;;31463:116;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;15263:1346:43:-;4871:13:22;;15517:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;15534:47:43;::::1;15530:105;;15604:20;;-1:-1:-1::0;;;15604:20:43::1;;;;;;;;;;;15530:105;-1:-1:-1::0;;;;;15649:44:43;::::1;15645:102;;15716:20;;-1:-1:-1::0;;;15716:20:43::1;;;;;;;;;;;15645:102;-1:-1:-1::0;;;;;15761:41:43;::::1;15757:96;;15825:17;;-1:-1:-1::0;;;15825:17:43::1;;;;;;;;;;;15757:96;15937:16;:14;:16::i;:::-;15969:48;16006:10;15969:36;:48::i;:::-;15964:119;;16040:32;::::0;-1:-1:-1;;;16040:32:43;;8278:4:77;8266:17;;16040:32:43::1;::::0;::::1;8248:36:77::0;8221:18;;16040:32:43::1;8106:184:77::0;15964:119:43::1;16150:9;:22:::0;;-1:-1:-1;;;;16150:22:43::1;-1:-1:-1::0;;;16150:22:43::1;::::0;::::1;;;::::0;;16202:7:::1;16182:17;:27:::0;16219:11:::1;:25:::0;;;16254:23:::1;:50:::0;;-1:-1:-1;;;;;;16254:50:43;;::::1;-1:-1:-1::0;;;;;16254:50:43;;::::1;::::0;;;::::1;::::0;;;16314:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;16371:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;16419:17:43::1;:27:::0;;1513:6:18;;;;16419:27:43;::::1;;::::0;;16506:18:::1;:16;:18::i;:::-;16540:62;::::0;;14161:4:77;14149:17;;14131:36;;14198:2;14183:18;;14176:34;;;16540:62:43::1;::::0;14104:18:77;16540:62:43::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;8278:4:77;8266:17;;8248:36;;5080:20:22;;8236:2:77;8221:18;5080:20:22;;;;;;;15263:1346:43;;;;;;:::o;9322:228:44:-;9482:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;9520:22:44::2;::::0;-1:-1:-1;;;;;9520:22:44::2;1144:1:74;9322:228:44::0;:::o;23647:567:43:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;23826:11:43::2;;23818:4;:19:::0;23814:394:::2;;-1:-1:-1::0;;23860:30:43::2;::::0;;::::2;::::0;::::2;::::0;;23869:11:::2;::::0;23860:30;;-1:-1:-1;23860:30:43::2;::::0;::::2;::::0;23885:4:::2;23860:30:::0;;;;;;;;23647:567::o;23814:394::-:2;23921:21;23945:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;23945:17:43::2;::::0;23981:18;;;23977:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;24026:14:::2;24019:21:::0;23647:567;-1:-1:-1;;;23647:567:43:o;23977:78::-:2;24120:17;::::0;24069:12:::2;::::0;24086:31:::2;-1:-1:-1::0;;;;;24086:31:43;::::2;:15;:31;:::i;:::-;24159:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;24159:38:43;;::::2;;::::0;::::2;::::0;24086:51;-1:-1:-1;24084:54:43::2;24159:38:::0;;;;-1:-1:-1;24159:38:43;-1:-1:-1;23814:394:43::2;23647:567:::0;;;:::o;28135:189::-;28270:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;28300:17:43::2;::::0;28135:189;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;14653:2:77;2308:92:23;;;14635:21:77;14692:2;14672:18;;;14665:30;14731:34;14711:18;;;14704:62;14802:26;14782:18;;;14775:54;14846:19;;2308:92:23;14451:420:77;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;4649:109:45:-;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;15078:2:77;2095:78:17;;;15060:21:77;15117:2;15097:18;;;15090:30;15156:34;15136:18;;;15129:62;-1:-1:-1;;;15207:18:77;;;15200:39;15256:19;;2095:78:17;14876:405:77;2095:78:17;2183:26;2202:6;2183:18;:26::i;22489:413:43:-;22724:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;22748:24:43::2;22804:10;22816:7;22825:8;22835:19;;22787:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22787:68:43;;::::2;::::0;;;;;;22873:22;;22787:68:::2;22873:22:::0;;::::2;::::0;;22489:413;-1:-1:-1;;;;;;;22489:413:43:o;29102:119::-;29181:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29205:9:43::2;::::0;-1:-1:-1;;;29205:9:43;::::2;;;::::0;29102:119::o;25527:231::-;25689:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;25727:23:43::2;::::0;-1:-1:-1;;;;;25727:23:43::2;25527:231:::0;:::o;29868:384::-;30034:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;30079:17:43::3;::::0;;-1:-1:-1;;;;;30106:39:43;;::::3;-1:-1:-1::0;;;;;;30106:39:43;::::3;::::0;::::3;::::0;;;30160:57:::3;::::0;30079:17;::::3;::::0;30106:39;30079:17;;30160:57:::3;::::0;30057:19:::3;::::0;30160:57:::3;30234:11:::0;29868:384;-1:-1:-1;;29868:384:43:o;9954:517:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;10141:31:44;::::3;10137:89;;10195:20;;-1:-1:-1::0;;;10195:20:44::3;;;;;;;;;;;10137:89;10267:22;::::0;;-1:-1:-1;;;;;10299:33:44;;::::3;-1:-1:-1::0;;;;;;10299:33:44;::::3;::::0;::::3;::::0;;;10267:22:::3;::::0;;10378:38:::3;10347:117;::::0;28556:402:43;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;28718::43::3;28735:1;28718:18:::0;28714:86:::3;;28752:37;::::0;-1:-1:-1;;;28752:37:43;;16088:2:77;28752:37:43::3;::::0;::::3;16070:21:77::0;16127:2;16107:18;;;16100:30;16166:29;16146:18;;;16139:57;16213:18;;28752:37:43::3;15886:351:77::0;28714:86:43::3;28829:17;::::0;;28856:33;;;;28905:46:::3;::::0;28876:13;;28829:17;;28905:46:::3;::::0;28809:17:::3;::::0;28905:46:::3;28704:254;28556:402:::0;:::o;23030:121::-;23107:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;23133:11:43::2;::::0;23030:121;:::o;6762:2222:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;32129:17:43::2;::::0;-1:-1:-1;;;;;32129:17:43::2;32115:10;:31;32111:93;;32169:24;::::0;-1:-1:-1;;;32169:24:43;;32182:10:::2;32169:24;::::0;::::2;5256:51:77::0;5229:18;;32169:24:43::2;5110:203:77::0;32111:93:43::2;7010:32:44::3;7041:1;7010:21:::0;:32:::3;:::i;:::-;:37:::0;7006:99:::3;;7070:24;;-1:-1:-1::0;;;7070:24:44::3;;;;;;;;;;;7006:99;7115:16;7141:32;7172:1;7141:21:::0;:32:::3;:::i;:::-;7115:59;;7200:11;;7189:7;:22;7185:95;;7257:11;::::0;7234:35:::3;::::0;-1:-1:-1;;;7234:35:44;;::::3;::::0;7248:7;;7234:35:::3;;10104:25:77::0;;;10160:2;10145:18;;10138:34;10092:2;10077:18;;9930:248;7185:95:44::3;7371:17;7403:87;7438:21;;7461:7;7470:8;7480:9;7403:34;:87::i;:::-;7371:119:::0;-1:-1:-1;7789:22:44::3;7814:39;4362:77:43;7371:119:44::0;7814:39:::3;:::i;:::-;7970:22;::::0;:48:::3;::::0;-1:-1:-1;;;7970:48:44;;16542:10:77;16530:23;;7970:48:44::3;::::0;::::3;16512:42:77::0;7789:64:44;;-1:-1:-1;7937:30:44::3;::::0;-1:-1:-1;;;;;7970:22:44;;::::3;::::0;:37:::3;::::0;16485:18:77;;7970:48:44::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8087:61;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;8087:61:44;;7937:81;;-1:-1:-1;;;;;;8087:28:44;::::3;::::0;::::3;::::0;:61:::3;::::0;8116:13;;8087:61;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;8083:895;;;;:::i;:::-;8316:11;:22:::0;;;8484:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;8484:47:44::3;8515:15;-1:-1:-1::0;;;;;8484:47:44::3;;::::0;;8316:22;-1:-1:-1;8551:51:44::3;::::0;8563:7;;8551:51:::3;::::0;;;::::3;6996:1988;;;;6762:2222:::0;;;;;:::o;29442:133:43:-;29525:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29551:17:43::2;::::0;-1:-1:-1;;;;;29551:17:43::2;29442:133:::0;:::o;26875:205::-;27017:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;27055:17:43::2;::::0;-1:-1:-1;;;;;27055:17:43::2;26875:205:::0;:::o;24657:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;24809:11:43::2;::::0;24797:56;;24836:7:::2;24797:56;24928:21;24952:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;24952:17:43::2;::::0;25052:18;;;25048:73:::2;;25093:17;;-1:-1:-1::0;;;25093:17:43::2;;;;;;;;;;;25048:73;25225:17;::::0;25191:31:::2;-1:-1:-1::0;;;;;25191:31:43;::::2;:15;:31;:::i;:::-;:51;25187:102;;;25265:13;;-1:-1:-1::0;;;25265:13:43::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;16767:2:77;1654:68:18;;;16749:21:77;;;16786:18;;;16779:30;16845:34;16825:18;;;16818:62;16897:18;;1654:68:18;16565:356:77;1654:68:18;1599:130::o;4067:204:45:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;17317:2:77;3758:56:20;;;17299:21:77;17356:2;17336:18;;;17329:30;17395:34;17375:18;;;17368:62;-1:-1:-1;;;17446:18:77;;;17439:44;17500:19;;3758:56:20;17115:410:77;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;17732:2:77;3636:82:20;;;17714:21:77;17771:2;17751:18;;;17744:30;17810:34;17790:18;;;17783:62;-1:-1:-1;;;17861:18:77;;;17854:39;17910:19;;3636:82:20;17530:405:77;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;16943:97:43:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;17013:20:43::1;:18;:20::i;434:207:75:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:75;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:75:o;794:90:74:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:74::1;:19:::0;;-1:-1:-1;;858:19:74::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;18554:2:77;1878:106:20;;;18536:21:77;18593:2;18573:18;;;18566:30;18632:34;18612:18;;;18605:62;-1:-1:-1;;;18683:18:77;;;18676:43;18736:19;;1878:106:20;18352:409:77;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;18968:2:77;7195:88:20;;;18950:21:77;19007:2;18987:18;;;18980:30;19046:34;19026:18;;;19019:62;-1:-1:-1;;;19097:18:77;;;19090:36;19143:19;;7195:88:20;18766:402:77;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:77;-1:-1:-1;;;;;109:31:77;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:77;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:77;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:77;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:77:o;2254:347::-;2305:8;2315:6;2369:3;2362:4;2354:6;2350:17;2346:27;2336:55;;2387:1;2384;2377:12;2336:55;-1:-1:-1;2410:20:77;;2453:18;2442:30;;2439:50;;;2485:1;2482;2475:12;2439:50;2522:4;2514:6;2510:17;2498:29;;2574:3;2567:4;2558:6;2550;2546:19;2542:30;2539:39;2536:59;;;2591:1;2588;2581:12;2606:618;2702:6;2710;2718;2726;2734;2787:3;2775:9;2766:7;2762:23;2758:33;2755:53;;;2804:1;2801;2794:12;2755:53;2844:9;2831:23;2877:18;2869:6;2866:30;2863:50;;;2909:1;2906;2899:12;2863:50;2948:58;2998:7;2989:6;2978:9;2974:22;2948:58;:::i;:::-;3025:8;;-1:-1:-1;2922:84:77;-1:-1:-1;;3107:2:77;3092:18;;3079:32;;-1:-1:-1;3158:2:77;3143:18;;3130:32;;-1:-1:-1;3181:37:77;3214:2;3199:18;;3181:37;:::i;:::-;3171:47;;2606:618;;;;;;;;:::o;3411:509::-;3531:6;3539;3547;3555;3563;3616:3;3604:9;3595:7;3591:23;3587:33;3584:53;;;3633:1;3630;3623:12;3584:53;3669:9;3656:23;3646:33;;3726:2;3715:9;3711:18;3698:32;3688:42;;3777:2;3766:9;3762:18;3749:32;3739:42;;3828:2;3817:9;3813:18;3800:32;3790:42;;3851:63;3906:7;3900:3;3889:9;3885:19;3851:63;:::i;4197:908::-;4376:6;4384;4392;4400;4408;4461:3;4449:9;4440:7;4436:23;4432:33;4429:53;;;4478:1;4475;4468:12;4429:53;4517:9;4504:23;4567:4;4560:5;4556:16;4549:5;4546:27;4536:55;;4587:1;4584;4577:12;4536:55;4610:5;-1:-1:-1;4662:2:77;4647:18;;4634:32;;-1:-1:-1;4718:2:77;4703:18;;4690:32;4731:53;4690:32;4731:53;:::i;:::-;4803:7;-1:-1:-1;4862:2:77;4847:18;;4834:32;4875:53;4834:32;4875:53;:::i;:::-;4947:7;-1:-1:-1;5006:3:77;4991:19;;4978:33;5020:53;4978:33;5020:53;:::i;:::-;5092:7;5082:17;;;4197:908;;;;;;;;:::o;5318:180::-;5377:6;5430:2;5418:9;5409:7;5405:23;5401:32;5398:52;;;5446:1;5443;5436:12;5398:52;-1:-1:-1;5469:23:77;;5318:180;-1:-1:-1;5318:180:77:o;6111:127::-;6172:10;6167:3;6163:20;6160:1;6153:31;6203:4;6200:1;6193:15;6227:4;6224:1;6217:15;6243:249;6353:2;6334:13;;-1:-1:-1;;6330:27:77;6318:40;;6388:18;6373:34;;6409:22;;;6370:62;6367:88;;;6435:18;;:::i;:::-;6471:2;6464:22;-1:-1:-1;;6243:249:77:o;6497:953::-;6574:6;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6690:9;6677:23;6709:51;6754:5;6709:51;:::i;:::-;6779:5;-1:-1:-1;6803:2:77;6841:18;;;6828:32;6879:18;6909:14;;;6906:34;;;6936:1;6933;6926:12;6906:34;6974:6;6963:9;6959:22;6949:32;;7019:7;7012:4;7008:2;7004:13;7000:27;6990:55;;7041:1;7038;7031:12;6990:55;7077:2;7064:16;7099:2;7095;7092:10;7089:36;;;7105:18;;:::i;:::-;7154:2;7148:9;;-1:-1:-1;7166:65:77;7221:2;7202:13;;-1:-1:-1;;7198:27:77;7194:36;;7148:9;7166:65;:::i;:::-;7255:2;7247:6;7240:18;7295:7;7290:2;7285;7281;7277:11;7273:20;7270:33;7267:53;;;7316:1;7313;7306:12;7267:53;7372:2;7367;7363;7359:11;7354:2;7346:6;7342:15;7329:46;7417:1;7412:2;7407;7399:6;7395:15;7391:24;7384:35;;7438:6;7428:16;;;;;6497:953;;;;;:::o;7455:646::-;7567:6;7575;7583;7591;7599;7652:3;7640:9;7631:7;7627:23;7623:33;7620:53;;;7669:1;7666;7659:12;7620:53;7692:28;7710:9;7692:28;:::i;:::-;7682:38;;7767:2;7756:9;7752:18;7739:32;7729:42;;7818:2;7807:9;7803:18;7790:32;7780:42;;7873:2;7862:9;7858:18;7845:32;7900:18;7892:6;7889:30;7886:50;;;7932:1;7929;7922:12;7886:50;7971:70;8033:7;8024:6;8013:9;8009:22;7971:70;:::i;:::-;7455:646;;;;-1:-1:-1;7455:646:77;;-1:-1:-1;8060:8:77;;7945:96;7455:646;-1:-1:-1;;;7455:646:77:o;8295:672::-;8417:6;8425;8433;8441;8449;8502:3;8490:9;8481:7;8477:23;8473:33;8470:53;;;8519:1;8516;8509:12;8470:53;8542;8587:7;8576:9;8542:53;:::i;:::-;8532:63;;8646:3;8635:9;8631:19;8618:33;8674:18;8666:6;8663:30;8660:50;;;8706:1;8703;8696:12;8660:50;8745:58;8795:7;8786:6;8775:9;8771:22;8745:58;:::i;:::-;8295:672;;8822:8;;-1:-1:-1;8719:84:77;;8904:3;8889:19;;8876:33;;8956:3;8941:19;;;8928:33;;-1:-1:-1;8295:672:77;-1:-1:-1;;;;8295:672:77:o;8972:408::-;9174:2;9156:21;;;9213:2;9193:18;;;9186:30;9252:34;9247:2;9232:18;;9225:62;-1:-1:-1;;;9318:2:77;9303:18;;9296:42;9370:3;9355:19;;8972:408::o;9385:::-;9587:2;9569:21;;;9626:2;9606:18;;;9599:30;9665:34;9660:2;9645:18;;9638:62;-1:-1:-1;;;9731:2:77;9716:18;;9709:42;9783:3;9768:19;;9385:408::o;10183:127::-;10244:10;10239:3;10235:20;10232:1;10225:31;10275:4;10272:1;10265:15;10299:4;10296:1;10289:15;10315:112;10347:1;10373;10363:35;;10378:18;;:::i;:::-;-1:-1:-1;10412:9:77;;10315:112::o;10432:294::-;10525:6;10578:2;10566:9;10557:7;10553:23;10549:32;10546:52;;;10594:1;10591;10584:12;10546:52;10626:9;10620:16;10645:51;10690:5;10645:51;:::i;10731:646::-;10987:3;10972:19;;11010:6;;11049;10976:9;11025:35;11080:18;;11140:6;11164:1;11174:197;11188:4;11185:1;11182:11;11174:197;;;11250:13;;11238:26;;11287:4;11311:12;;;;11346:15;;;;11208:4;11201:12;11174:197;;;11178:3;;;10731:646;;;;;:::o;11382:179::-;11417:3;11459:1;11441:16;11438:23;11435:120;;;11505:1;11502;11499;11484:23;-1:-1:-1;11542:1:77;11536:8;11531:3;11527:18;11382:179;:::o;11566:671::-;11605:3;11647:4;11629:16;11626:26;11623:39;;;11566:671;:::o;11623:39::-;11689:2;11683:9;-1:-1:-1;;11754:16:77;11750:25;;11747:1;11683:9;11726:50;11805:4;11799:11;11829:16;11864:18;11935:2;11928:4;11920:6;11916:17;11913:25;11908:2;11900:6;11897:14;11894:45;11891:58;;;11942:5;;;;;11566:671;:::o;11891:58::-;11979:6;11973:4;11969:17;11958:28;;12015:3;12009:10;12042:2;12034:6;12031:14;12028:27;;;12048:5;;;;;;11566:671;:::o;12028:27::-;12132:2;12113:16;12107:4;12103:27;12099:36;12092:4;12083:6;12078:3;12074:16;12070:27;12067:69;12064:82;;;12139:5;;;;;;11566:671;:::o;12064:82::-;12155:57;12206:4;12197:6;12189;12185:19;12181:30;12175:4;12155:57;:::i;:::-;-1:-1:-1;12228:3:77;;11566:671;-1:-1:-1;;;;;11566:671:77:o;12242:250::-;12327:1;12337:113;12351:6;12348:1;12345:13;12337:113;;;12427:11;;;12421:18;12408:11;;;12401:39;12373:2;12366:10;12337:113;;;-1:-1:-1;;12484:1:77;12466:16;;12459:27;12242:250::o;12497:396::-;12646:2;12635:9;12628:21;12609:4;12678:6;12672:13;12721:6;12716:2;12705:9;12701:18;12694:34;12737:79;12809:6;12804:2;12793:9;12789:18;12784:2;12776:6;12772:15;12737:79;:::i;:::-;12877:2;12856:15;-1:-1:-1;;12852:29:77;12837:45;;;;12884:2;12833:54;;12497:396;-1:-1:-1;;12497:396:77:o;12898:410::-;13100:2;13082:21;;;13139:2;13119:18;;;13112:30;13178:34;13173:2;13158:18;;13151:62;-1:-1:-1;;;13244:2:77;13229:18;;13222:44;13298:3;13283:19;;12898:410::o;13313:643::-;13569:3;13554:19;;13592:6;;13631;13558:9;13607:35;13662:18;;13722:6;13746:1;13756:194;13770:4;13767:1;13764:11;13756:194;;;13829:13;;13817:26;;13866:4;13890:12;;;;13925:15;;;;13790:1;13783:9;13756:194;;14221:225;14288:9;;;14309:11;;;14306:134;;;14362:10;14357:3;14353:20;14350:1;14343:31;14397:4;14394:1;14387:15;14425:4;14422:1;14415:15;15286:595;15595:3;15573:16;;;-1:-1:-1;;;;;;15569:43:77;15557:56;;15638:1;15629:11;;15622:27;;;15674:2;15665:12;;15658:28;;;-1:-1:-1;;;;;;15698:31:77;;15695:51;;;15742:1;15739;15732:12;15695:51;15776:6;15773:1;15769:14;15827:6;15819;15814:2;15809:3;15805:12;15792:42;15854:16;;;;15872:2;15850:25;;15286:595;-1:-1:-1;;;;;;15286:595:77:o;16242:120::-;16282:1;16308;16298:35;;16313:18;;:::i;:::-;-1:-1:-1;16347:9:77;;16242:120::o;16926:184::-;16996:6;17049:2;17037:9;17028:7;17024:23;17020:32;17017:52;;;17065:1;17062;17055:12;17017:52;-1:-1:-1;17088:16:77;;16926:184;-1:-1:-1;16926:184:77:o;17940:407::-;18142:2;18124:21;;;18181:2;18161:18;;;18154:30;18220:34;18215:2;18200:18;;18193:62;-1:-1:-1;;;18286:2:77;18271:18;;18264:41;18337:3;18322:19;;17940:407::o;19173:287::-;19302:3;19340:6;19334:13;19356:66;19415:6;19410:3;19403:4;19395:6;19391:17;19356:66;:::i;:::-;19438:16;;;;;19173:287;-1:-1:-1;;19173:287:77:o", "linkReferences": {}, "immutableReferences": { "29832": [ @@ -1049,35 +1054,35 @@ "length": 32 }, { - "start": 8260, + "start": 8301, "length": 32 }, { - "start": 8324, + "start": 8365, "length": 32 }, { - "start": 8474, + "start": 8515, "length": 32 }, { - "start": 8538, + "start": 8579, "length": 32 }, { - "start": 8686, + "start": 8727, "length": 32 }, { - "start": 8750, + "start": 8791, "length": 32 }, { - "start": 9236, + "start": 9277, "length": 32 }, { - "start": 9300, + "start": 9341, "length": 32 } ] @@ -1115,7 +1120,7 @@ "upgradeToAndCall(address,bytes)": "4f1ef286", "verifyProof(uint256,uint256,uint256,uint256,uint256[8])": "354ca120" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierLUT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"WorldIDIdentityManagerImplV2Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"batchSize\",\"type\":\"uint32\"}],\"name\":\"calculateIdentityDeletionInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"deletionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"deleteIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeleteIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchDeletionVerifiers\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setDeleteIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the deletions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"details\":\"This error is no longer in use as we now verify the commitments off-chain within the circuit no need to check for reduced elements or invalid commitments.preserved for ABI backwards compatibility with V1, no longer used, all elements are validated by the circuit\",\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"InvalidStateBridgeAddress()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"MismatchedInputLengths()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"StateBridgeAlreadyDisabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"StateBridgeAlreadyEnabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.preserved for ABI backwards compatibility with V1, no longer used, all elements come out reduced from the circuit\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\",\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"details\":\"Implements the computation described below.the deletion indices are packed into bytes calldata where each deletion index is 32 bits wide. The indices are encoded using abi.encodePacked for testing. We keccak hash all input to save verification gas. Inputs for the hash are arranged as follows: packedDeletionIndices || PreRoot || PostRoot 32 bits * batchSize || 256 || 256\",\"params\":{\"batchSize\":\"The number of identities that were deleted in this batch\",\"packedDeletionIndices\":\"The indices of the identities that were deleted from the tree.\",\"postRoot\":\"The root value of the tree after these deletions were made.\",\"preRoot\":\"The root value of the tree before these deletions were made.\"},\"returns\":{\"hash\":\"The input hash calculated as described below.\"}},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"deleteIdentities(uint256[8],bytes,uint256,uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `deletionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"postRoot\":\"The root obtained after deleting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`.\",\"preRoot\":\"The value for the root of the tree before the corresponding identity commitments have been deleted. Must be an element of the field `Kr`.\"}},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"details\":\"The deletion verifier supports batch deletions of size 10, 100 and 1000 members per batch.\",\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"initializeV2(address)\":{\"details\":\"Must be called exactly onceThis is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchDeletionVerifiers\":\"The table of verifiers for verifying batch identity deletions.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity deletions.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"title\":\"WorldID Identity Manager Implementation Version 2\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"InvalidVerifier()\":[{\"notice\":\"Thrown when a verifier is initialized to be the zero address\"}],\"InvalidVerifierLUT()\":[{\"notice\":\"Thrown when a verifier lookup table is initialized to be the zero address\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"},\"WorldIDIdentityManagerImplV2Initialized()\":{\"notice\":\"Thrown when the WorldIDIdentityManagerImplV2 contract is initalized\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"notice\":\"Calculates the input hash for the identity deletion verifier.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for batch identity deletions.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"initializeV2(address)\":{\"notice\":\"Initializes the V2 implementation contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity deletions.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV2.sol\":\"WorldIDIdentityManagerImplV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x5d05b909d5ea55446c4b3009ed6283924992fdb7bd9f93179b92f84b60d583ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27eae247b4e8ce77ae921a4ba0a947d82a19eb303451a28ccc2771b99f348123\",\"dweb:/ipfs/QmUKTYz3UTNBEF3zBrS82mmrDzcZ992LEBSUAiS4cmMBtX\"]},\"src/WorldIDIdentityManagerImplV2.sol\":{\"keccak256\":\"0x4c1ffc1d6343e9a042dd6e4529bc79e6963bcc77751d2cde91fd5f52bea5729e\",\"urls\":[\"bzz-raw://31536585c39fe12bd08df0e8deef3d5af0de294271ad26ed061d28c92c6639ce\",\"dweb:/ipfs/QmUbsD3cuNnFygtEyiLBzGyHFgn9aXknnhhCjposVzQhru\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b\",\"dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDeletionIndices\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierLUT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"WorldIDIdentityManagerImplV2Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"batchSize\",\"type\":\"uint32\"}],\"name\":\"calculateIdentityDeletionInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"deletionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"deleteIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeleteIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchDeletionVerifiers\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setDeleteIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the deletions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"details\":\"This error is no longer in use as we now verify the commitments off-chain within the circuit no need to check for reduced elements or invalid commitments.preserved for ABI backwards compatibility with V1, no longer used, all elements are validated by the circuit\",\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"InvalidStateBridgeAddress()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"MismatchedInputLengths()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"StateBridgeAlreadyDisabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"StateBridgeAlreadyEnabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.preserved for ABI backwards compatibility with V1, no longer used, all elements come out reduced from the circuit\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\",\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"details\":\"Implements the computation described below.the deletion indices are packed into bytes calldata where each deletion index is 32 bits wide. The indices are encoded using abi.encodePacked for testing. We keccak hash all input to save verification gas. Inputs for the hash are arranged as follows: packedDeletionIndices || PreRoot || PostRoot 32 bits * batchSize || 256 || 256\",\"params\":{\"batchSize\":\"The number of identities that were deleted in this batch\",\"packedDeletionIndices\":\"The indices of the identities that were deleted from the tree.\",\"postRoot\":\"The root value of the tree after these deletions were made.\",\"preRoot\":\"The root value of the tree before these deletions were made.\"},\"returns\":{\"hash\":\"The input hash calculated as described below.\"}},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"deleteIdentities(uint256[8],bytes,uint256,uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `deletionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.InvalidDeletionIndices if the length of `packedDeletionIndices` is not a multiple of 4 (8*4 = 32 bits per index)\",\"params\":{\"postRoot\":\"The root obtained after deleting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`.\",\"preRoot\":\"The value for the root of the tree before the corresponding identity commitments have been deleted. Must be an element of the field `Kr`.\"}},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"details\":\"The deletion verifier supports batch deletions of size 10, 100 and 1000 members per batch.\",\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.InvalidVerifierLUT if `_batchInsertionVerifiers` or `_batchUpdateVerifiers` is set to the zero addressInvalidVerifier if `_semaphoreVerifier` is set to the zero address\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"initializeV2(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `_batchDeletionVerifiers` is set to the zero address\",\"details\":\"Must be called exactly onceThis is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchDeletionVerifiers\":\"The table of verifiers for verifying batch identity deletions.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `newTable` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity deletions.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `newTable` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"custom:reverts\":\"InvalidVerifier if `newVerifier` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"title\":\"WorldID Identity Manager Implementation Version 2\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidDeletionIndices()\":[{\"notice\":\"Thrown when the bytes calldata packedDeletionIndices array is not a multiple of 4 (to make up 32 bit indices)\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"InvalidVerifier()\":[{\"notice\":\"Thrown when a verifier is initialized to be the zero address\"}],\"InvalidVerifierLUT()\":[{\"notice\":\"Thrown when a verifier lookup table is initialized to be the zero address\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"},\"WorldIDIdentityManagerImplV2Initialized()\":{\"notice\":\"Thrown when the WorldIDIdentityManagerImplV2 contract is initalized\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"notice\":\"Calculates the input hash for the identity deletion verifier.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for batch identity deletions.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"initializeV2(address)\":{\"notice\":\"Initializes the V2 implementation contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity deletions.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV2.sol\":\"WorldIDIdentityManagerImplV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x75e9235f2cda58708d4a8b00c101fa7da4ae1627435569a933ca6cc0d4a0783e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67a1a9a738074036270f02e42fcc4548413e3c821da3f59bc8b42ad0e49e4dcc\",\"dweb:/ipfs/QmcCroTkesx2yMbmCFJ7NiNL8xY4zqLStQzSETetCGVsCK\"]},\"src/WorldIDIdentityManagerImplV2.sol\":{\"keccak256\":\"0x473d13831a459d27dacb6547d8cc7efe806743b6dadcc6ee16261fab3115d8a5\",\"urls\":[\"bzz-raw://eb85eaa5eac5005d7eaf304d75253df79b8e9bff5433b0052dc45252f69436c9\",\"dweb:/ipfs/QmW24krKMLtY3rKCbKtTvVk2gzw7GzTWvDDKGvd878SH77\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b\",\"dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.21+commit.d9974bed" @@ -1149,6 +1154,11 @@ "type": "error", "name": "InvalidCommitment" }, + { + "inputs": [], + "type": "error", + "name": "InvalidDeletionIndices" + }, { "inputs": [], "type": "error", @@ -2031,7 +2041,7 @@ } }, "deleteIdentities(uint256[8],bytes,uint256,uint256)": { - "custom:reverts": "Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `deletionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.", + "custom:reverts": "Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `deletionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.InvalidDeletionIndices if the length of `packedDeletionIndices` is not a multiple of 4 (8*4 = 32 bits per index)", "params": { "postRoot": "The root obtained after deleting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`.", "preRoot": "The value for the root of the tree before the corresponding identity commitments have been deleted. Must be an element of the field `Kr`." @@ -2069,7 +2079,7 @@ } }, "initialize(uint8,uint256,address,address,address)": { - "custom:reverts": "string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.", + "custom:reverts": "string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.InvalidVerifierLUT if `_batchInsertionVerifiers` or `_batchUpdateVerifiers` is set to the zero addressInvalidVerifier if `_semaphoreVerifier` is set to the zero address", "details": "Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.", "params": { "_batchInsertionVerifiers": "The verifier lookup table for batch insertions.", @@ -2080,6 +2090,7 @@ } }, "initializeV2(address)": { + "custom:reverts": "InvalidVerifierLUT if `_batchDeletionVerifiers` is set to the zero address", "details": "Must be called exactly onceThis is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.", "params": { "_batchDeletionVerifiers": "The table of verifiers for verifying batch identity deletions." @@ -2127,6 +2138,7 @@ } }, "setDeleteIdentitiesVerifierLookupTable(address)": { + "custom:reverts": "InvalidVerifierLUT if `newTable` is set to the zero address", "details": "Only the owner of the contract can call this function.", "params": { "newTable": "The new verifier lookup table to be used for verifying identity deletions." @@ -2141,6 +2153,7 @@ } }, "setRegisterIdentitiesVerifierLookupTable(address)": { + "custom:reverts": "InvalidVerifierLUT if `newTable` is set to the zero address", "details": "Only the owner of the contract can call this function.", "params": { "newTable": "The new verifier lookup table to be used for verifying identity registrations." @@ -2153,6 +2166,7 @@ } }, "setSemaphoreVerifier(address)": { + "custom:reverts": "InvalidVerifier if `newVerifier` is set to the zero address", "details": "Only the owner of the contract can call this function.", "params": { "newVerifier": "The new verifier instance to be used for verifying semaphore proofs." @@ -2382,18 +2396,18 @@ "license": "MIT" }, "src/WorldIDIdentityManagerImplV1.sol": { - "keccak256": "0x5d05b909d5ea55446c4b3009ed6283924992fdb7bd9f93179b92f84b60d583ad", + "keccak256": "0x75e9235f2cda58708d4a8b00c101fa7da4ae1627435569a933ca6cc0d4a0783e", "urls": [ - "bzz-raw://27eae247b4e8ce77ae921a4ba0a947d82a19eb303451a28ccc2771b99f348123", - "dweb:/ipfs/QmUKTYz3UTNBEF3zBrS82mmrDzcZ992LEBSUAiS4cmMBtX" + "bzz-raw://67a1a9a738074036270f02e42fcc4548413e3c821da3f59bc8b42ad0e49e4dcc", + "dweb:/ipfs/QmcCroTkesx2yMbmCFJ7NiNL8xY4zqLStQzSETetCGVsCK" ], "license": "MIT" }, "src/WorldIDIdentityManagerImplV2.sol": { - "keccak256": "0x4c1ffc1d6343e9a042dd6e4529bc79e6963bcc77751d2cde91fd5f52bea5729e", + "keccak256": "0x473d13831a459d27dacb6547d8cc7efe806743b6dadcc6ee16261fab3115d8a5", "urls": [ - "bzz-raw://31536585c39fe12bd08df0e8deef3d5af0de294271ad26ed061d28c92c6639ce", - "dweb:/ipfs/QmUbsD3cuNnFygtEyiLBzGyHFgn9aXknnhhCjposVzQhru" + "bzz-raw://eb85eaa5eac5005d7eaf304d75253df79b8e9bff5433b0052dc45252f69436c9", + "dweb:/ipfs/QmW24krKMLtY3rKCbKtTvVk2gzw7GzTWvDDKGvd878SH77" ], "license": null }, @@ -2474,38 +2488,38 @@ }, "ast": { "absolutePath": "src/WorldIDIdentityManagerImplV2.sol", - "id": 35113, + "id": 35127, "exportedSymbols": { "IBridge": [ - 35427 + 35441 ], "ISemaphoreVerifier": [ - 35443 + 35457 ], "ITreeVerifier": [ - 35459 + 35473 ], "IWorldID": [ - 35483 + 35497 ], "SemaphoreTreeDepthValidator": [ - 48493 + 48535 ], "VerifierLookupTable": [ - 35402 + 35416 ], "WorldIDIdentityManagerImplV1": [ 34869 ], "WorldIDIdentityManagerImplV2": [ - 35112 + 35126 ], "WorldIDImpl": [ - 35167 + 35181 ] }, "nodeType": "SourceUnit", - "src": "0:11790:44", + "src": "0:12398:44", "nodes": [ { "id": 34871, @@ -2527,15 +2541,15 @@ "absolutePath": "src/WorldIDIdentityManagerImplV1.sol", "file": "./WorldIDIdentityManagerImplV1.sol", "nameLocation": "-1:-1:-1", - "scope": 35113, + "scope": 35127, "sourceUnit": 34870, "symbolAliases": [], "unitAlias": "" }, { - "id": 35112, + "id": 35126, "nodeType": "ContractDefinition", - "src": "442:11347:44", + "src": "442:11955:44", "nodes": [ { "id": 34879, @@ -2552,11 +2566,11 @@ "mutability": "mutable", "name": "batchDeletionVerifiers", "nameLocation": "3136:22:44", - "scope": 35112, + "scope": 35126, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" }, "typeName": { @@ -2569,13 +2583,13 @@ "3107:19:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35402, + "referencedDeclaration": 35416, "src": "3107:19:44" }, - "referencedDeclaration": 35402, + "referencedDeclaration": 35416, "src": "3107:19:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, @@ -2604,14 +2618,35 @@ } }, { - "id": 34914, + "id": 34885, + "nodeType": "ErrorDefinition", + "src": "3437:31:44", + "nodes": [], + "documentation": { + "id": 34883, + "nodeType": "StructuredDocumentation", + "src": "3303:129:44", + "text": "@notice Thrown when the bytes calldata packedDeletionIndices array\n is not a multiple of 4 (to make up 32 bit indices)" + }, + "errorSelector": "8f3ed510", + "name": "InvalidDeletionIndices", + "nameLocation": "3443:22:44", + "parameters": { + "id": 34884, + "nodeType": "ParameterList", + "parameters": [], + "src": "3465:2:44" + } + }, + { + "id": 34917, "nodeType": "FunctionDefinition", - "src": "4039:327:44", + "src": "4309:327:44", "nodes": [], "body": { - "id": 34913, + "id": 34916, "nodeType": "Block", - "src": "4130:236:44", + "src": "4400:236:44", "nodes": [], "statements": [ { @@ -2620,7 +2655,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 34900, + "id": 34903, "isConstant": false, "isLValue": false, "isPure": false, @@ -2628,14 +2663,14 @@ "leftExpression": { "arguments": [ { - "id": 34894, + "id": 34897, "name": "_batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34886, - "src": "4152:23:44", + "referencedDeclaration": 34889, + "src": "4422:23:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -2643,30 +2678,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], - "id": 34893, + "id": 34896, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4144:7:44", + "src": "4414:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34892, + "id": 34895, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4144:7:44", + "src": "4414:7:44", "typeDescriptions": {} } }, - "id": 34895, + "id": 34898, "isConstant": false, "isLValue": false, "isPure": false, @@ -2675,7 +2710,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4144:32:44", + "src": "4414:32:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2688,14 +2723,14 @@ "arguments": [ { "hexValue": "30", - "id": 34898, + "id": 34901, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4188:1:44", + "src": "4458:1:44", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2710,26 +2745,26 @@ "typeString": "int_const 0" } ], - "id": 34897, + "id": 34900, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4180:7:44", + "src": "4450:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 34896, + "id": 34899, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4180:7:44", + "src": "4450:7:44", "typeDescriptions": {} } }, - "id": 34899, + "id": 34902, "isConstant": false, "isLValue": false, "isPure": true, @@ -2738,44 +2773,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4180:10:44", + "src": "4450:10:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4144:46:44", + "src": "4414:46:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 34905, + "id": 34908, "nodeType": "IfStatement", - "src": "4140:104:44", + "src": "4410:104:44", "trueBody": { - "id": 34904, + "id": 34907, "nodeType": "Block", - "src": "4192:52:44", + "src": "4462:52:44", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 34901, + "id": 34904, "name": "InvalidVerifierLUT", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34149, - "src": "4213:18:44", + "src": "4483:18:44", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 34902, + "id": 34905, "isConstant": false, "isLValue": false, "isPure": false, @@ -2784,80 +2819,80 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4213:20:44", + "src": "4483:20:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34903, + "id": 34906, "nodeType": "RevertStatement", - "src": "4206:27:44" + "src": "4476:27:44" } ] } }, { "expression": { - "id": 34908, + "id": 34911, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 34906, + "id": 34909, "name": "batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34879, - "src": "4254:22:44", + "src": "4524:22:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 34907, + "id": 34910, "name": "_batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34886, - "src": "4279:23:44", + "referencedDeclaration": 34889, + "src": "4549:23:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, - "src": "4254:48:44", + "src": "4524:48:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, - "id": 34909, + "id": 34912, "nodeType": "ExpressionStatement", - "src": "4254:48:44" + "src": "4524:48:44" }, { "eventCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 34910, + "id": 34913, "name": "WorldIDIdentityManagerImplV2Initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34882, - "src": "4318:39:44", + "src": "4588:39:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 34911, + "id": 34914, "isConstant": false, "isLValue": false, "isPure": false, @@ -2866,24 +2901,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4318:41:44", + "src": "4588:41:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34912, + "id": 34915, "nodeType": "EmitStatement", - "src": "4313:46:44" + "src": "4583:46:44" } ] }, "documentation": { - "id": 34883, + "id": 34886, "nodeType": "StructuredDocumentation", - "src": "3303:731:44", - "text": "@notice Initializes the V2 implementation contract.\n @param _batchDeletionVerifiers The table of verifiers for verifying batch identity deletions.\n @dev Must be called exactly once\n @dev This is marked `reinitializer()` to allow for updated initialisation steps when working\n with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed)\n initialisations allowed, so decide carefully when to use them. Many cases can safely be\n replaced by use of setters.\n @dev This function is explicitly not virtual as it does not make sense to override even when\n upgrading. Create a separate initializer function instead." + "src": "3474:830:44", + "text": "@notice Initializes the V2 implementation contract.\n @param _batchDeletionVerifiers The table of verifiers for verifying batch identity deletions.\n @dev Must be called exactly once\n @dev This is marked `reinitializer()` to allow for updated initialisation steps when working\n with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed)\n initialisations allowed, so decide carefully when to use them. Many cases can safely be\n replaced by use of setters.\n @dev This function is explicitly not virtual as it does not make sense to override even when\n upgrading. Create a separate initializer function instead.\n @custom:reverts InvalidVerifierLUT if `_batchDeletionVerifiers` is set to the zero address" }, "functionSelector": "29b6eca9", "implemented": true, @@ -2893,14 +2928,14 @@ "arguments": [ { "hexValue": "32", - "id": 34889, + "id": 34892, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4127:1:44", + "src": "4397:1:44", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -2908,104 +2943,247 @@ "value": "2" } ], - "id": 34890, + "id": 34893, "kind": "modifierInvocation", "modifierName": { - "id": 34888, + "id": 34891, "name": "reinitializer", "nameLocations": [ - "4113:13:44" + "4383:13:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29736, - "src": "4113:13:44" + "src": "4383:13:44" }, "nodeType": "ModifierInvocation", - "src": "4113:16:44" + "src": "4383:16:44" } ], "name": "initializeV2", - "nameLocation": "4048:12:44", + "nameLocation": "4318:12:44", "parameters": { - "id": 34887, + "id": 34890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34886, + "id": 34889, "mutability": "mutable", "name": "_batchDeletionVerifiers", - "nameLocation": "4081:23:44", + "nameLocation": "4351:23:44", "nodeType": "VariableDeclaration", - "scope": 34914, - "src": "4061:43:44", + "scope": 34917, + "src": "4331:43:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 34885, + "id": 34888, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 34884, + "id": 34887, "name": "VerifierLookupTable", "nameLocations": [ - "4061:19:44" + "4331:19:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35402, - "src": "4061:19:44" + "referencedDeclaration": 35416, + "src": "4331:19:44" }, - "referencedDeclaration": 35402, - "src": "4061:19:44", + "referencedDeclaration": 35416, + "src": "4331:19:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" } ], - "src": "4060:45:44" + "src": "4330:45:44" }, "returnParameters": { - "id": 34891, + "id": 34894, "nodeType": "ParameterList", "parameters": [], - "src": "4130:0:44" + "src": "4400:0:44" }, - "scope": 35112, + "scope": 35126, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 35025, + "id": 35039, "nodeType": "FunctionDefinition", - "src": "6347:2113:44", + "src": "6762:2222:44", "nodes": [], "body": { - "id": 35024, + "id": 35038, "nodeType": "Block", - "src": "6581:1879:44", + "src": "6996:1988:44", "nodes": [], "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 34937, + "name": "packedDeletionIndices", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34924, + "src": "7010:21:44", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 34938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7032:6:44", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7010:28:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "34", + "id": 34939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7041:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "7010:32:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 34941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7046:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7010:37:44", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 34947, + "nodeType": "IfStatement", + "src": "7006:99:44", + "trueBody": { + "id": 34946, + "nodeType": "Block", + "src": "7049:56:44", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 34943, + "name": "InvalidDeletionIndices", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34885, + "src": "7070:22:44", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 34944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7070:24:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 34945, + "nodeType": "RevertStatement", + "src": "7063:31:44" + } + ] + } + }, { "assignments": [ - 34935 + 34949 ], "declarations": [ { "constant": false, - "id": 34935, + "id": 34949, "mutability": "mutable", "name": "batchSize", - "nameLocation": "6598:9:44", + "nameLocation": "7122:9:44", "nodeType": "VariableDeclaration", - "scope": 35024, - "src": "6591:16:44", + "scope": 35038, + "src": "7115:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3013,10 +3191,10 @@ "typeString": "uint32" }, "typeName": { - "id": 34934, + "id": 34948, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6591:6:44", + "src": "7115:6:44", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3025,7 +3203,7 @@ "visibility": "internal" } ], - "id": 34943, + "id": 34957, "initialValue": { "arguments": [ { @@ -3033,33 +3211,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 34941, + "id": 34955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 34938, + "id": 34952, "name": "packedDeletionIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34921, - "src": "6617:21:44", + "referencedDeclaration": 34924, + "src": "7141:21:44", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 34939, + "id": 34953, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6639:6:44", + "memberLocation": "7163:6:44", "memberName": "length", "nodeType": "MemberAccess", - "src": "6617:28:44", + "src": "7141:28:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3069,21 +3247,21 @@ "operator": "/", "rightExpression": { "hexValue": "34", - "id": 34940, + "id": 34954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6648:1:44", + "src": "7172:1:44", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "6617:32:44", + "src": "7141:32:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3097,26 +3275,26 @@ "typeString": "uint256" } ], - "id": 34937, + "id": 34951, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6610:6:44", + "src": "7134:6:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 34936, + "id": 34950, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6610:6:44", + "src": "7134:6:44", "typeDescriptions": {} } }, - "id": 34942, + "id": 34956, "isConstant": false, "isLValue": false, "isPure": false, @@ -3125,7 +3303,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6610:40:44", + "src": "7134:40:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -3133,7 +3311,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6591:59:44" + "src": "7115:59:44" }, { "condition": { @@ -3141,18 +3319,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 34946, + "id": 34960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 34944, + "id": 34958, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34923, - "src": "6665:7:44", + "referencedDeclaration": 34926, + "src": "7189:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3161,53 +3339,53 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 34945, + "id": 34959, "name": "_latestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "6676:11:44", + "src": "7200:11:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6665:22:44", + "src": "7189:22:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 34953, + "id": 34967, "nodeType": "IfStatement", - "src": "6661:95:44", + "src": "7185:95:44", "trueBody": { - "id": 34952, + "id": 34966, "nodeType": "Block", - "src": "6689:67:44", + "src": "7213:67:44", "statements": [ { "errorCall": { "arguments": [ { - "id": 34948, + "id": 34962, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34923, - "src": "6724:7:44", + "referencedDeclaration": 34926, + "src": "7248:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 34949, + "id": 34963, "name": "_latestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "6733:11:44", + "src": "7257:11:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3225,18 +3403,18 @@ "typeString": "uint256" } ], - "id": 34947, + "id": 34961, "name": "NotLatestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34126, - "src": "6710:13:44", + "src": "7234:13:44", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256) pure" } }, - "id": 34950, + "id": 34964, "isConstant": false, "isLValue": false, "isPure": false, @@ -3245,34 +3423,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6710:35:44", + "src": "7234:35:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 34951, + "id": 34965, "nodeType": "RevertStatement", - "src": "6703:42:44" + "src": "7227:42:44" } ] } }, { "assignments": [ - 34955 + 34969 ], "declarations": [ { "constant": false, - "id": 34955, + "id": 34969, "mutability": "mutable", "name": "inputHash", - "nameLocation": "6855:9:44", + "nameLocation": "7379:9:44", "nodeType": "VariableDeclaration", - "scope": 35024, - "src": "6847:17:44", + "scope": 35038, + "src": "7371:17:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3280,10 +3458,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 34954, + "id": 34968, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6847:7:44", + "src": "7371:7:44", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3292,52 +3470,52 @@ "visibility": "internal" } ], - "id": 34962, + "id": 34976, "initialValue": { "arguments": [ { - "id": 34957, + "id": 34971, "name": "packedDeletionIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34921, - "src": "6914:21:44", + "referencedDeclaration": 34924, + "src": "7438:21:44", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 34958, + "id": 34972, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34923, - "src": "6937:7:44", + "referencedDeclaration": 34926, + "src": "7461:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 34959, + "id": 34973, "name": "postRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34925, - "src": "6946:8:44", + "referencedDeclaration": 34928, + "src": "7470:8:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 34960, + "id": 34974, "name": "batchSize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34935, - "src": "6956:9:44", + "referencedDeclaration": 34949, + "src": "7480:9:44", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3363,18 +3541,18 @@ "typeString": "uint32" } ], - "id": 34956, + "id": 34970, "name": "calculateIdentityDeletionInputHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35111, - "src": "6879:34:44", + "referencedDeclaration": 35125, + "src": "7403:34:44", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes_calldata_ptr_$_t_uint256_$_t_uint256_$_t_uint32_$returns$_t_bytes32_$", "typeString": "function (bytes calldata,uint256,uint256,uint32) view returns (bytes32)" } }, - "id": 34961, + "id": 34975, "isConstant": false, "isLValue": false, "isPure": false, @@ -3383,7 +3561,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6879:87:44", + "src": "7403:87:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3391,22 +3569,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6847:119:44" + "src": "7371:119:44" }, { "assignments": [ - 34964 + 34978 ], "declarations": [ { "constant": false, - "id": 34964, + "id": 34978, "mutability": "mutable", "name": "reducedElement", - "nameLocation": "7273:14:44", + "nameLocation": "7797:14:44", "nodeType": "VariableDeclaration", - "scope": 35024, - "src": "7265:22:44", + "scope": 35038, + "src": "7789:22:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3414,10 +3592,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34963, + "id": 34977, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7265:7:44", + "src": "7789:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3426,13 +3604,13 @@ "visibility": "internal" } ], - "id": 34971, + "id": 34985, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 34970, + "id": 34984, "isConstant": false, "isLValue": false, "isPure": false, @@ -3440,12 +3618,12 @@ "leftExpression": { "arguments": [ { - "id": 34967, + "id": 34981, "name": "inputHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34955, - "src": "7298:9:44", + "referencedDeclaration": 34969, + "src": "7822:9:44", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3459,26 +3637,26 @@ "typeString": "bytes32" } ], - "id": 34966, + "id": 34980, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7290:7:44", + "src": "7814:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 34965, + "id": 34979, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7290:7:44", + "src": "7814:7:44", "typeDescriptions": {} } }, - "id": 34968, + "id": 34982, "isConstant": false, "isLValue": false, "isPure": false, @@ -3487,7 +3665,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7290:18:44", + "src": "7814:18:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3497,79 +3675,79 @@ "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { - "id": 34969, + "id": 34983, "name": "SNARK_SCALAR_FIELD", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34036, - "src": "7311:18:44", + "src": "7835:18:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7290:39:44", + "src": "7814:39:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7265:64:44" + "src": "7789:64:44" }, { "assignments": [ - 34974 + 34988 ], "declarations": [ { "constant": false, - "id": 34974, + "id": 34988, "mutability": "mutable", "name": "deletionVerifier", - "nameLocation": "7427:16:44", + "nameLocation": "7951:16:44", "nodeType": "VariableDeclaration", - "scope": 35024, - "src": "7413:30:44", + "scope": 35038, + "src": "7937:30:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35459", + "typeIdentifier": "t_contract$_ITreeVerifier_$35473", "typeString": "contract ITreeVerifier" }, "typeName": { - "id": 34973, + "id": 34987, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 34972, + "id": 34986, "name": "ITreeVerifier", "nameLocations": [ - "7413:13:44" + "7937:13:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35459, - "src": "7413:13:44" + "referencedDeclaration": 35473, + "src": "7937:13:44" }, - "referencedDeclaration": 35459, - "src": "7413:13:44", + "referencedDeclaration": 35473, + "src": "7937:13:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35459", + "typeIdentifier": "t_contract$_ITreeVerifier_$35473", "typeString": "contract ITreeVerifier" } }, "visibility": "internal" } ], - "id": 34979, + "id": 34993, "initialValue": { "arguments": [ { - "id": 34977, + "id": 34991, "name": "batchSize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34935, - "src": "7484:9:44", + "referencedDeclaration": 34949, + "src": "8008:9:44", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3584,33 +3762,33 @@ } ], "expression": { - "id": 34975, + "id": 34989, "name": "batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34879, - "src": "7446:22:44", + "src": "7970:22:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, - "id": 34976, + "id": 34990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7469:14:44", + "memberLocation": "7993:14:44", "memberName": "getVerifierFor", "nodeType": "MemberAccess", - "referencedDeclaration": 35274, - "src": "7446:37:44", + "referencedDeclaration": 35288, + "src": "7970:37:44", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_ITreeVerifier_$35459_$", + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_contract$_ITreeVerifier_$35473_$", "typeString": "function (uint256) view external returns (contract ITreeVerifier)" } }, - "id": 34978, + "id": 34992, "isConstant": false, "isLValue": false, "isPure": false, @@ -3619,38 +3797,38 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7446:48:44", + "src": "7970:48:44", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35459", + "typeIdentifier": "t_contract$_ITreeVerifier_$35473", "typeString": "contract ITreeVerifier" } }, "nodeType": "VariableDeclarationStatement", - "src": "7413:81:44" + "src": "7937:81:44" }, { "clauses": [ { "block": { - "id": 35007, + "id": 35021, "nodeType": "Block", - "src": "7625:464:44", + "src": "8149:464:44", "statements": [ { "expression": { - "id": 34988, + "id": 35002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 34986, + "id": 35000, "name": "_latestRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34024, - "src": "7792:11:44", + "src": "8316:11:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3659,55 +3837,55 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 34987, + "id": 35001, "name": "postRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34925, - "src": "7806:8:44", + "referencedDeclaration": 34928, + "src": "8330:8:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7792:22:44", + "src": "8316:22:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 34989, + "id": 35003, "nodeType": "ExpressionStatement", - "src": "7792:22:44" + "src": "8316:22:44" }, { "expression": { - "id": 34998, + "id": 35012, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 34990, + "id": 35004, "name": "rootHistory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34029, - "src": "7960:11:44", + "src": "8484:11:44", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint128_$", "typeString": "mapping(uint256 => uint128)" } }, - "id": 34992, + "id": 35006, "indexExpression": { - "id": 34991, + "id": 35005, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34923, - "src": "7972:7:44", + "referencedDeclaration": 34926, + "src": "8496:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3718,7 +3896,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7960:20:44", + "src": "8484:20:44", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -3730,26 +3908,26 @@ "arguments": [ { "expression": { - "id": 34995, + "id": 35009, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "7991:5:44", + "src": "8515:5:44", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 34996, + "id": 35010, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7997:9:44", + "memberLocation": "8521:9:44", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "7991:15:44", + "src": "8515:15:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3763,26 +3941,26 @@ "typeString": "uint256" } ], - "id": 34994, + "id": 35008, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7983:7:44", + "src": "8507:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }, "typeName": { - "id": 34993, + "id": 35007, "name": "uint128", "nodeType": "ElementaryTypeName", - "src": "7983:7:44", + "src": "8507:7:44", "typeDescriptions": {} } }, - "id": 34997, + "id": 35011, "isConstant": false, "isLValue": false, "isPure": false, @@ -3791,33 +3969,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7983:24:44", + "src": "8507:24:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "src": "7960:47:44", + "src": "8484:47:44", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, - "id": 34999, + "id": 35013, "nodeType": "ExpressionStatement", - "src": "7960:47:44" + "src": "8484:47:44" }, { "eventCall": { "arguments": [ { - "id": 35001, + "id": 35015, "name": "preRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34923, - "src": "8039:7:44", + "referencedDeclaration": 34926, + "src": "8563:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3825,39 +4003,39 @@ }, { "expression": { - "id": 35002, + "id": 35016, "name": "TreeChange", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34078, - "src": "8048:10:44", + "src": "8572:10:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_TreeChange_$34078_$", "typeString": "type(enum WorldIDIdentityManagerImplV1.TreeChange)" } }, - "id": 35003, + "id": 35017, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "8059:8:44", + "memberLocation": "8583:8:44", "memberName": "Deletion", "nodeType": "MemberAccess", "referencedDeclaration": 34077, - "src": "8048:19:44", + "src": "8572:19:44", "typeDescriptions": { "typeIdentifier": "t_enum$_TreeChange_$34078", "typeString": "enum WorldIDIdentityManagerImplV1.TreeChange" } }, { - "id": 35004, + "id": 35018, "name": "postRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34925, - "src": "8069:8:44", + "referencedDeclaration": 34928, + "src": "8593:8:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3879,18 +4057,18 @@ "typeString": "uint256" } ], - "id": 35000, + "id": 35014, "name": "TreeChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34159, - "src": "8027:11:44", + "src": "8551:11:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_enum$_TreeChange_$34078_$_t_uint256_$returns$__$", "typeString": "function (uint256,enum WorldIDIdentityManagerImplV1.TreeChange,uint256)" } }, - "id": 35005, + "id": 35019, "isConstant": false, "isLValue": false, "isPure": false, @@ -3899,41 +4077,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8027:51:44", + "src": "8551:51:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 35006, + "id": 35020, "nodeType": "EmitStatement", - "src": "8022:56:44" + "src": "8546:56:44" } ] }, "errorName": "", - "id": 35008, + "id": 35022, "nodeType": "TryCatchClause", - "src": "7625:464:44" + "src": "8149:464:44" }, { "block": { - "id": 35016, + "id": 35030, "nodeType": "Block", - "src": "8127:100:44", + "src": "8651:100:44", "statements": [ { "documentation": "This is not the revert we're looking for.", "expression": { "arguments": [ { - "id": 35013, + "id": 35027, "name": "errString", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35010, - "src": "8206:9:44", + "referencedDeclaration": 35024, + "src": "8730:9:44", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3947,7 +4125,7 @@ "typeString": "string memory" } ], - "id": 35012, + "id": 35026, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3955,13 +4133,13 @@ -19 ], "referencedDeclaration": -19, - "src": "8199:6:44", + "src": "8723:6:44", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 35014, + "id": 35028, "isConstant": false, "isLValue": false, "isPure": false, @@ -3970,35 +4148,35 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8199:17:44", + "src": "8723:17:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 35015, + "id": 35029, "nodeType": "ExpressionStatement", - "src": "8199:17:44" + "src": "8723:17:44" } ] }, "errorName": "Error", - "id": 35017, + "id": 35031, "nodeType": "TryCatchClause", "parameters": { - "id": 35011, + "id": 35025, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 35010, + "id": 35024, "mutability": "mutable", "name": "errString", - "nameLocation": "8116:9:44", + "nameLocation": "8640:9:44", "nodeType": "VariableDeclaration", - "scope": 35017, - "src": "8102:23:44", + "scope": 35031, + "src": "8626:23:44", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4006,10 +4184,10 @@ "typeString": "string" }, "typeName": { - "id": 35009, + "id": 35023, "name": "string", "nodeType": "ElementaryTypeName", - "src": "8102:6:44", + "src": "8626:6:44", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4018,33 +4196,33 @@ "visibility": "internal" } ], - "src": "8101:25:44" + "src": "8625:25:44" }, - "src": "8090:137:44" + "src": "8614:137:44" }, { "block": { - "id": 35021, + "id": 35035, "nodeType": "Block", - "src": "8234:220:44", + "src": "8758:220:44", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 35018, + "id": 35032, "name": "ProofValidationFailure", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34119, - "src": "8419:22:44", + "src": "8943:22:44", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 35019, + "id": 35033, "isConstant": false, "isLValue": false, "isPure": false, @@ -4053,34 +4231,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8419:24:44", + "src": "8943:24:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 35020, + "id": 35034, "nodeType": "RevertStatement", - "src": "8412:31:44" + "src": "8936:31:44" } ] }, "errorName": "", - "id": 35022, + "id": 35036, "nodeType": "TryCatchClause", - "src": "8228:226:44" + "src": "8752:226:44" } ], "externalCall": { "arguments": [ { - "id": 34982, + "id": 34996, "name": "deletionProof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34919, - "src": "7592:13:44", + "referencedDeclaration": 34922, + "src": "8116:13:44", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", "typeString": "uint256[8] calldata" @@ -4089,26 +4267,26 @@ { "components": [ { - "id": 34983, + "id": 34997, "name": "reducedElement", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34964, - "src": "7608:14:44", + "referencedDeclaration": 34978, + "src": "8132:14:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 34984, + "id": 34998, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7607:16:44", + "src": "8131:16:44", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", "typeString": "uint256[1] memory" @@ -4127,33 +4305,33 @@ } ], "expression": { - "id": 34980, + "id": 34994, "name": "deletionVerifier", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 34974, - "src": "7563:16:44", + "referencedDeclaration": 34988, + "src": "8087:16:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITreeVerifier_$35459", + "typeIdentifier": "t_contract$_ITreeVerifier_$35473", "typeString": "contract ITreeVerifier" } }, - "id": 34981, + "id": 34995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7580:11:44", + "memberLocation": "8104:11:44", "memberName": "verifyProof", "nodeType": "MemberAccess", - "referencedDeclaration": 35458, - "src": "7563:28:44", + "referencedDeclaration": 35472, + "src": "8087:28:44", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_uint256_$1_memory_ptr_$returns$__$", "typeString": "function (uint256[8] memory,uint256[1] memory) external" } }, - "id": 34985, + "id": 34999, "isConstant": false, "isLValue": false, "isPure": false, @@ -4162,93 +4340,93 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7563:61:44", + "src": "8087:61:44", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 35023, + "id": 35037, "nodeType": "TryStatement", - "src": "7559:895:44" + "src": "8083:895:44" } ] }, "documentation": { - "id": 34915, + "id": 34918, "nodeType": "StructuredDocumentation", - "src": "5539:803:44", - "text": "@param preRoot The value for the root of the tree before the corresponding identity commitments have\n been deleted. Must be an element of the field `Kr`.\n @param postRoot The root obtained after deleting all of `identityCommitments` into the tree\n described by `preRoot`. Must be an element of the field `Kr`.\n @custom:reverts Unauthorized If the message sender is not authorised to add identities.\n @custom:reverts NotLatestRoot If the provided `preRoot` is not the latest root.\n @custom:reverts ProofValidationFailure If `deletionProof` cannot be verified using the\n provided inputs.\n @custom:reverts VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known\n verifier." + "src": "5809:948:44", + "text": "@param preRoot The value for the root of the tree before the corresponding identity commitments have\n been deleted. Must be an element of the field `Kr`.\n @param postRoot The root obtained after deleting all of `identityCommitments` into the tree\n described by `preRoot`. Must be an element of the field `Kr`.\n @custom:reverts Unauthorized If the message sender is not authorised to add identities.\n @custom:reverts NotLatestRoot If the provided `preRoot` is not the latest root.\n @custom:reverts ProofValidationFailure If `deletionProof` cannot be verified using the\n provided inputs.\n @custom:reverts VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known\n verifier.\n @custom:reverts InvalidDeletionIndices if the length of `packedDeletionIndices`\n is not a multiple of 4 (8*4 = 32 bits per index)" }, "functionSelector": "ea10fbbe", "implemented": true, "kind": "function", "modifiers": [ { - "id": 34928, + "id": 34931, "kind": "modifierInvocation", "modifierName": { - "id": 34927, + "id": 34930, "name": "onlyProxy", "nameLocations": [ - "6534:9:44" + "6949:9:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "6534:9:44" + "src": "6949:9:44" }, "nodeType": "ModifierInvocation", - "src": "6534:9:44" + "src": "6949:9:44" }, { - "id": 34930, + "id": 34933, "kind": "modifierInvocation", "modifierName": { - "id": 34929, + "id": 34932, "name": "onlyInitialized", "nameLocations": [ - "6544:15:44" + "6959:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48458, - "src": "6544:15:44" + "referencedDeclaration": 48500, + "src": "6959:15:44" }, "nodeType": "ModifierInvocation", - "src": "6544:15:44" + "src": "6959:15:44" }, { - "id": 34932, + "id": 34935, "kind": "modifierInvocation", "modifierName": { - "id": 34931, + "id": 34934, "name": "onlyIdentityOperator", "nameLocations": [ - "6560:20:44" + "6975:20:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 34868, - "src": "6560:20:44" + "src": "6975:20:44" }, "nodeType": "ModifierInvocation", - "src": "6560:20:44" + "src": "6975:20:44" } ], "name": "deleteIdentities", - "nameLocation": "6356:16:44", + "nameLocation": "6771:16:44", "parameters": { - "id": 34926, + "id": 34929, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34919, + "id": 34922, "mutability": "mutable", "name": "deletionProof", - "nameLocation": "6402:13:44", + "nameLocation": "6817:13:44", "nodeType": "VariableDeclaration", - "scope": 35025, - "src": "6382:33:44", + "scope": 35039, + "src": "6797:33:44", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -4257,26 +4435,26 @@ }, "typeName": { "baseType": { - "id": 34916, + "id": 34919, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6382:7:44", + "src": "6797:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 34918, + "id": 34921, "length": { "hexValue": "38", - "id": 34917, + "id": 34920, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6390:1:44", + "src": "6805:1:44", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" @@ -4284,7 +4462,7 @@ "value": "8" }, "nodeType": "ArrayTypeName", - "src": "6382:10:44", + "src": "6797:10:44", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", "typeString": "uint256[8]" @@ -4294,13 +4472,13 @@ }, { "constant": false, - "id": 34921, + "id": 34924, "mutability": "mutable", "name": "packedDeletionIndices", - "nameLocation": "6440:21:44", + "nameLocation": "6855:21:44", "nodeType": "VariableDeclaration", - "scope": 35025, - "src": "6425:36:44", + "scope": 35039, + "src": "6840:36:44", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -4308,10 +4486,10 @@ "typeString": "bytes" }, "typeName": { - "id": 34920, + "id": 34923, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6425:5:44", + "src": "6840:5:44", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4321,13 +4499,13 @@ }, { "constant": false, - "id": 34923, + "id": 34926, "mutability": "mutable", "name": "preRoot", - "nameLocation": "6479:7:44", + "nameLocation": "6894:7:44", "nodeType": "VariableDeclaration", - "scope": 35025, - "src": "6471:15:44", + "scope": 35039, + "src": "6886:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4335,10 +4513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34922, + "id": 34925, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6471:7:44", + "src": "6886:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4348,13 +4526,13 @@ }, { "constant": false, - "id": 34925, + "id": 34928, "mutability": "mutable", "name": "postRoot", - "nameLocation": "6504:8:44", + "nameLocation": "6919:8:44", "nodeType": "VariableDeclaration", - "scope": 35025, - "src": "6496:16:44", + "scope": 35039, + "src": "6911:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4362,10 +4540,10 @@ "typeString": "uint256" }, "typeName": { - "id": 34924, + "id": 34927, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6496:7:44", + "src": "6911:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4374,42 +4552,42 @@ "visibility": "internal" } ], - "src": "6372:146:44" + "src": "6787:146:44" }, "returnParameters": { - "id": 34933, + "id": 34936, "nodeType": "ParameterList", "parameters": [], - "src": "6581:0:44" + "src": "6996:0:44" }, - "scope": 35112, + "scope": 35126, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 35041, + "id": 35055, "nodeType": "FunctionDefinition", - "src": "8798:228:44", + "src": "9322:228:44", "nodes": [], "body": { - "id": 35040, + "id": 35054, "nodeType": "Block", - "src": "8971:55:44", + "src": "9495:55:44", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 35037, + "id": 35051, "name": "batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34879, - "src": "8996:22:44", + "src": "9520:22:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -4417,30 +4595,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], - "id": 35036, + "id": 35050, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8988:7:44", + "src": "9512:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 35035, + "id": 35049, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8988:7:44", + "src": "9512:7:44", "typeDescriptions": {} } }, - "id": 35038, + "id": 35052, "isConstant": false, "isLValue": false, "isPure": false, @@ -4449,24 +4627,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8988:31:44", + "src": "9512:31:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 35034, - "id": 35039, + "functionReturnParameters": 35048, + "id": 35053, "nodeType": "Return", - "src": "8981:38:44" + "src": "9505:38:44" } ] }, "documentation": { - "id": 35026, + "id": 35040, "nodeType": "StructuredDocumentation", - "src": "8466:327:44", + "src": "8990:327:44", "text": "@notice Gets the address for the lookup table of merkle tree verifiers used for batch identity\n deletions.\n @dev The deletion verifier supports batch deletions of size 10, 100 and 1000 members per batch.\n @return addr The address of the contract being used as the verifier lookup table." }, "functionSelector": "3e8919b6", @@ -4474,59 +4652,59 @@ "kind": "function", "modifiers": [ { - "id": 35029, + "id": 35043, "kind": "modifierInvocation", "modifierName": { - "id": 35028, + "id": 35042, "name": "onlyProxy", "nameLocations": [ - "8907:9:44" + "9431:9:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "8907:9:44" + "src": "9431:9:44" }, "nodeType": "ModifierInvocation", - "src": "8907:9:44" + "src": "9431:9:44" }, { - "id": 35031, + "id": 35045, "kind": "modifierInvocation", "modifierName": { - "id": 35030, + "id": 35044, "name": "onlyInitialized", "nameLocations": [ - "8925:15:44" + "9449:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48458, - "src": "8925:15:44" + "referencedDeclaration": 48500, + "src": "9449:15:44" }, "nodeType": "ModifierInvocation", - "src": "8925:15:44" + "src": "9449:15:44" } ], "name": "getDeleteIdentitiesVerifierLookupTableAddress", - "nameLocation": "8807:45:44", + "nameLocation": "9331:45:44", "parameters": { - "id": 35027, + "id": 35041, "nodeType": "ParameterList", "parameters": [], - "src": "8852:2:44" + "src": "9376:2:44" }, "returnParameters": { - "id": 35034, + "id": 35048, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 35033, + "id": 35047, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 35041, - "src": "8958:7:44", + "scope": 35055, + "src": "9482:7:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4534,10 +4712,10 @@ "typeString": "address" }, "typeName": { - "id": 35032, + "id": 35046, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8958:7:44", + "src": "9482:7:44", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4547,22 +4725,22 @@ "visibility": "internal" } ], - "src": "8957:9:44" + "src": "9481:9:44" }, - "scope": 35112, + "scope": 35126, "stateMutability": "view", "virtual": true, "visibility": "public" }, { - "id": 35091, + "id": 35105, "nodeType": "FunctionDefinition", - "src": "9346:517:44", + "src": "9954:517:44", "nodes": [], "body": { - "id": 35090, + "id": 35104, "nodeType": "Block", - "src": "9519:344:44", + "src": "10127:344:44", "nodes": [], "statements": [ { @@ -4571,7 +4749,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 35062, + "id": 35076, "isConstant": false, "isLValue": false, "isPure": false, @@ -4579,14 +4757,14 @@ "leftExpression": { "arguments": [ { - "id": 35056, + "id": 35070, "name": "newTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35045, - "src": "9541:8:44", + "referencedDeclaration": 35059, + "src": "10149:8:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -4594,30 +4772,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], - "id": 35055, + "id": 35069, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9533:7:44", + "src": "10141:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 35054, + "id": 35068, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9533:7:44", + "src": "10141:7:44", "typeDescriptions": {} } }, - "id": 35057, + "id": 35071, "isConstant": false, "isLValue": false, "isPure": false, @@ -4626,7 +4804,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9533:17:44", + "src": "10141:17:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4639,14 +4817,14 @@ "arguments": [ { "hexValue": "30", - "id": 35060, + "id": 35074, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9562:1:44", + "src": "10170:1:44", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4661,26 +4839,26 @@ "typeString": "int_const 0" } ], - "id": 35059, + "id": 35073, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9554:7:44", + "src": "10162:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 35058, + "id": 35072, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9554:7:44", + "src": "10162:7:44", "typeDescriptions": {} } }, - "id": 35061, + "id": 35075, "isConstant": false, "isLValue": false, "isPure": true, @@ -4689,44 +4867,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9554:10:44", + "src": "10162:10:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "9533:31:44", + "src": "10141:31:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 35067, + "id": 35081, "nodeType": "IfStatement", - "src": "9529:89:44", + "src": "10137:89:44", "trueBody": { - "id": 35066, + "id": 35080, "nodeType": "Block", - "src": "9566:52:44", + "src": "10174:52:44", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 35063, + "id": 35077, "name": "InvalidVerifierLUT", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34149, - "src": "9587:18:44", + "src": "10195:18:44", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 35064, + "id": 35078, "isConstant": false, "isLValue": false, "isPure": false, @@ -4735,148 +4913,148 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9587:20:44", + "src": "10195:20:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 35065, + "id": 35079, "nodeType": "RevertStatement", - "src": "9580:27:44" + "src": "10188:27:44" } ] } }, { "assignments": [ - 35070 + 35084 ], "declarations": [ { "constant": false, - "id": 35070, + "id": 35084, "mutability": "mutable", "name": "oldTable", - "nameLocation": "9648:8:44", + "nameLocation": "10256:8:44", "nodeType": "VariableDeclaration", - "scope": 35090, - "src": "9628:28:44", + "scope": 35104, + "src": "10236:28:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 35069, + "id": 35083, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 35068, + "id": 35082, "name": "VerifierLookupTable", "nameLocations": [ - "9628:19:44" + "10236:19:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35402, - "src": "9628:19:44" + "referencedDeclaration": 35416, + "src": "10236:19:44" }, - "referencedDeclaration": 35402, - "src": "9628:19:44", + "referencedDeclaration": 35416, + "src": "10236:19:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" } ], - "id": 35072, + "id": 35086, "initialValue": { - "id": 35071, + "id": 35085, "name": "batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34879, - "src": "9659:22:44", + "src": "10267:22:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "nodeType": "VariableDeclarationStatement", - "src": "9628:53:44" + "src": "10236:53:44" }, { "expression": { - "id": 35075, + "id": 35089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 35073, + "id": 35087, "name": "batchDeletionVerifiers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34879, - "src": "9691:22:44", + "src": "10299:22:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 35074, + "id": 35088, "name": "newTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35045, - "src": "9716:8:44", + "referencedDeclaration": 35059, + "src": "10324:8:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, - "src": "9691:33:44", + "src": "10299:33:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, - "id": 35076, + "id": 35090, "nodeType": "ExpressionStatement", - "src": "9691:33:44" + "src": "10299:33:44" }, { "eventCall": { "arguments": [ { "expression": { - "id": 35078, + "id": 35092, "name": "Dependency", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34084, - "src": "9770:10:44", + "src": "10378:10:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Dependency_$34084_$", "typeString": "type(enum WorldIDIdentityManagerImplV1.Dependency)" } }, - "id": 35079, + "id": 35093, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "9781:27:44", + "memberLocation": "10389:27:44", "memberName": "DeletionVerifierLookupTable", "nodeType": "MemberAccess", "referencedDeclaration": 34082, - "src": "9770:38:44", + "src": "10378:38:44", "typeDescriptions": { "typeIdentifier": "t_enum$_Dependency_$34084", "typeString": "enum WorldIDIdentityManagerImplV1.Dependency" @@ -4885,14 +5063,14 @@ { "arguments": [ { - "id": 35082, + "id": 35096, "name": "oldTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35070, - "src": "9818:8:44", + "referencedDeclaration": 35084, + "src": "10426:8:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -4900,30 +5078,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], - "id": 35081, + "id": 35095, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9810:7:44", + "src": "10418:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 35080, + "id": 35094, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9810:7:44", + "src": "10418:7:44", "typeDescriptions": {} } }, - "id": 35083, + "id": 35097, "isConstant": false, "isLValue": false, "isPure": false, @@ -4932,7 +5110,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9810:17:44", + "src": "10418:17:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4942,14 +5120,14 @@ { "arguments": [ { - "id": 35086, + "id": 35100, "name": "newTable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35045, - "src": "9837:8:44", + "referencedDeclaration": 35059, + "src": "10445:8:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } } @@ -4957,30 +5135,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } ], - "id": 35085, + "id": 35099, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9829:7:44", + "src": "10437:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 35084, + "id": 35098, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9829:7:44", + "src": "10437:7:44", "typeDescriptions": {} } }, - "id": 35087, + "id": 35101, "isConstant": false, "isLValue": false, "isPure": false, @@ -4989,7 +5167,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9829:17:44", + "src": "10437:17:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5012,18 +5190,18 @@ "typeString": "address" } ], - "id": 35077, + "id": 35091, "name": "DependencyUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34169, - "src": "9739:17:44", + "src": "10347:17:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Dependency_$34084_$_t_address_$_t_address_$returns$__$", "typeString": "function (enum WorldIDIdentityManagerImplV1.Dependency,address,address)" } }, - "id": 35088, + "id": 35102, "isConstant": false, "isLValue": false, "isPure": false, @@ -5032,224 +5210,224 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9739:117:44", + "src": "10347:117:44", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 35089, + "id": 35103, "nodeType": "EmitStatement", - "src": "9734:122:44" + "src": "10342:122:44" } ] }, "documentation": { - "id": 35042, + "id": 35056, "nodeType": "StructuredDocumentation", - "src": "9032:309:44", - "text": "@notice Sets the address for the lookup table of merkle tree verifiers used for identity\n deletions.\n @dev Only the owner of the contract can call this function.\n @param newTable The new verifier lookup table to be used for verifying identity\n deletions." + "src": "9556:393:44", + "text": "@notice Sets the address for the lookup table of merkle tree verifiers used for identity\n deletions.\n @dev Only the owner of the contract can call this function.\n @param newTable The new verifier lookup table to be used for verifying identity\n deletions.\n @custom:reverts InvalidVerifierLUT if `newTable` is set to the zero address" }, "functionSelector": "aa4a729e", "implemented": true, "kind": "function", "modifiers": [ { - "id": 35048, + "id": 35062, "kind": "modifierInvocation", "modifierName": { - "id": 35047, + "id": 35061, "name": "onlyProxy", "nameLocations": [ - "9463:9:44" + "10071:9:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "9463:9:44" + "src": "10071:9:44" }, "nodeType": "ModifierInvocation", - "src": "9463:9:44" + "src": "10071:9:44" }, { - "id": 35050, + "id": 35064, "kind": "modifierInvocation", "modifierName": { - "id": 35049, + "id": 35063, "name": "onlyInitialized", "nameLocations": [ - "9481:15:44" + "10089:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48458, - "src": "9481:15:44" + "referencedDeclaration": 48500, + "src": "10089:15:44" }, "nodeType": "ModifierInvocation", - "src": "9481:15:44" + "src": "10089:15:44" }, { - "id": 35052, + "id": 35066, "kind": "modifierInvocation", "modifierName": { - "id": 35051, + "id": 35065, "name": "onlyOwner", "nameLocations": [ - "9505:9:44" + "10113:9:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29157, - "src": "9505:9:44" + "src": "10113:9:44" }, "nodeType": "ModifierInvocation", - "src": "9505:9:44" + "src": "10113:9:44" } ], "name": "setDeleteIdentitiesVerifierLookupTable", - "nameLocation": "9355:38:44", + "nameLocation": "9963:38:44", "parameters": { - "id": 35046, + "id": 35060, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 35045, + "id": 35059, "mutability": "mutable", "name": "newTable", - "nameLocation": "9414:8:44", + "nameLocation": "10022:8:44", "nodeType": "VariableDeclaration", - "scope": 35091, - "src": "9394:28:44", + "scope": 35105, + "src": "10002:28:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" }, "typeName": { - "id": 35044, + "id": 35058, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 35043, + "id": 35057, "name": "VerifierLookupTable", "nameLocations": [ - "9394:19:44" + "10002:19:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35402, - "src": "9394:19:44" + "referencedDeclaration": 35416, + "src": "10002:19:44" }, - "referencedDeclaration": 35402, - "src": "9394:19:44", + "referencedDeclaration": 35416, + "src": "10002:19:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_VerifierLookupTable_$35402", + "typeIdentifier": "t_contract$_VerifierLookupTable_$35416", "typeString": "contract VerifierLookupTable" } }, "visibility": "internal" } ], - "src": "9393:30:44" + "src": "10001:30:44" }, "returnParameters": { - "id": 35053, + "id": 35067, "nodeType": "ParameterList", "parameters": [], - "src": "9519:0:44" + "src": "10127:0:44" }, - "scope": 35112, + "scope": 35126, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { - "id": 35111, + "id": 35125, "nodeType": "FunctionDefinition", - "src": "11102:685:44", + "src": "11710:685:44", "nodes": [], "body": { - "id": 35110, + "id": 35124, "nodeType": "Block", - "src": "11344:443:44", + "src": "11952:443:44", "nodes": [], "statements": [ { "AST": { - "nativeSrc": "11363:418:44", + "nativeSrc": "11971:418:44", "nodeType": "YulBlock", - "src": "11363:418:44", + "src": "11971:418:44", "statements": [ { - "nativeSrc": "11377:30:44", + "nativeSrc": "11985:30:44", "nodeType": "YulVariableDeclaration", - "src": "11377:30:44", + "src": "11985:30:44", "value": { "arguments": [ { "kind": "number", - "nativeSrc": "11402:4:44", + "nativeSrc": "12010:4:44", "nodeType": "YulLiteral", - "src": "11402:4:44", + "src": "12010:4:44", "type": "", "value": "0x40" } ], "functionName": { "name": "mload", - "nativeSrc": "11396:5:44", + "nativeSrc": "12004:5:44", "nodeType": "YulIdentifier", - "src": "11396:5:44" + "src": "12004:5:44" }, - "nativeSrc": "11396:11:44", + "nativeSrc": "12004:11:44", "nodeType": "YulFunctionCall", - "src": "11396:11:44" + "src": "12004:11:44" }, "variables": [ { "name": "startOffset", - "nativeSrc": "11381:11:44", + "nativeSrc": "11989:11:44", "nodeType": "YulTypedName", - "src": "11381:11:44", + "src": "11989:11:44", "type": "" } ] }, { - "nativeSrc": "11420:40:44", + "nativeSrc": "12028:40:44", "nodeType": "YulVariableDeclaration", - "src": "11420:40:44", + "src": "12028:40:44", "value": { "arguments": [ { "name": "batchSize", - "nativeSrc": "11447:9:44", + "nativeSrc": "12055:9:44", "nodeType": "YulIdentifier", - "src": "11447:9:44" + "src": "12055:9:44" }, { "kind": "number", - "nativeSrc": "11458:1:44", + "nativeSrc": "12066:1:44", "nodeType": "YulLiteral", - "src": "11458:1:44", + "src": "12066:1:44", "type": "", "value": "4" } ], "functionName": { "name": "mul", - "nativeSrc": "11443:3:44", + "nativeSrc": "12051:3:44", "nodeType": "YulIdentifier", - "src": "11443:3:44" + "src": "12051:3:44" }, - "nativeSrc": "11443:17:44", + "nativeSrc": "12051:17:44", "nodeType": "YulFunctionCall", - "src": "11443:17:44" + "src": "12051:17:44" }, "variables": [ { "name": "indicesByteSize", - "nativeSrc": "11424:15:44", + "nativeSrc": "12032:15:44", "nodeType": "YulTypedName", - "src": "11424:15:44", + "src": "12032:15:44", "type": "" } ] @@ -5259,72 +5437,72 @@ "arguments": [ { "name": "startOffset", - "nativeSrc": "11486:11:44", + "nativeSrc": "12094:11:44", "nodeType": "YulIdentifier", - "src": "11486:11:44" + "src": "12094:11:44" }, { "name": "packedDeletionIndices.offset", - "nativeSrc": "11499:28:44", + "nativeSrc": "12107:28:44", "nodeType": "YulIdentifier", - "src": "11499:28:44" + "src": "12107:28:44" }, { "name": "indicesByteSize", - "nativeSrc": "11529:15:44", + "nativeSrc": "12137:15:44", "nodeType": "YulIdentifier", - "src": "11529:15:44" + "src": "12137:15:44" } ], "functionName": { "name": "calldatacopy", - "nativeSrc": "11473:12:44", + "nativeSrc": "12081:12:44", "nodeType": "YulIdentifier", - "src": "11473:12:44" + "src": "12081:12:44" }, - "nativeSrc": "11473:72:44", + "nativeSrc": "12081:72:44", "nodeType": "YulFunctionCall", - "src": "11473:72:44" + "src": "12081:72:44" }, - "nativeSrc": "11473:72:44", + "nativeSrc": "12081:72:44", "nodeType": "YulExpressionStatement", - "src": "11473:72:44" + "src": "12081:72:44" }, { - "nativeSrc": "11558:52:44", + "nativeSrc": "12166:52:44", "nodeType": "YulVariableDeclaration", - "src": "11558:52:44", + "src": "12166:52:44", "value": { "arguments": [ { "name": "startOffset", - "nativeSrc": "11581:11:44", + "nativeSrc": "12189:11:44", "nodeType": "YulIdentifier", - "src": "11581:11:44" + "src": "12189:11:44" }, { "name": "indicesByteSize", - "nativeSrc": "11594:15:44", + "nativeSrc": "12202:15:44", "nodeType": "YulIdentifier", - "src": "11594:15:44" + "src": "12202:15:44" } ], "functionName": { "name": "add", - "nativeSrc": "11577:3:44", + "nativeSrc": "12185:3:44", "nodeType": "YulIdentifier", - "src": "11577:3:44" + "src": "12185:3:44" }, - "nativeSrc": "11577:33:44", + "nativeSrc": "12185:33:44", "nodeType": "YulFunctionCall", - "src": "11577:33:44" + "src": "12185:33:44" }, "variables": [ { "name": "rootsOffset", - "nativeSrc": "11562:11:44", + "nativeSrc": "12170:11:44", "nodeType": "YulTypedName", - "src": "11562:11:44", + "src": "12170:11:44", "type": "" } ] @@ -5334,30 +5512,30 @@ "arguments": [ { "name": "rootsOffset", - "nativeSrc": "11630:11:44", + "nativeSrc": "12238:11:44", "nodeType": "YulIdentifier", - "src": "11630:11:44" + "src": "12238:11:44" }, { "name": "preRoot", - "nativeSrc": "11643:7:44", + "nativeSrc": "12251:7:44", "nodeType": "YulIdentifier", - "src": "11643:7:44" + "src": "12251:7:44" } ], "functionName": { "name": "mstore", - "nativeSrc": "11623:6:44", + "nativeSrc": "12231:6:44", "nodeType": "YulIdentifier", - "src": "11623:6:44" + "src": "12231:6:44" }, - "nativeSrc": "11623:28:44", + "nativeSrc": "12231:28:44", "nodeType": "YulFunctionCall", - "src": "11623:28:44" + "src": "12231:28:44" }, - "nativeSrc": "11623:28:44", + "nativeSrc": "12231:28:44", "nodeType": "YulExpressionStatement", - "src": "11623:28:44" + "src": "12231:28:44" }, { "expression": { @@ -5366,106 +5544,106 @@ "arguments": [ { "name": "rootsOffset", - "nativeSrc": "11675:11:44", + "nativeSrc": "12283:11:44", "nodeType": "YulIdentifier", - "src": "11675:11:44" + "src": "12283:11:44" }, { "kind": "number", - "nativeSrc": "11688:2:44", + "nativeSrc": "12296:2:44", "nodeType": "YulLiteral", - "src": "11688:2:44", + "src": "12296:2:44", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "11671:3:44", + "nativeSrc": "12279:3:44", "nodeType": "YulIdentifier", - "src": "11671:3:44" + "src": "12279:3:44" }, - "nativeSrc": "11671:20:44", + "nativeSrc": "12279:20:44", "nodeType": "YulFunctionCall", - "src": "11671:20:44" + "src": "12279:20:44" }, { "name": "postRoot", - "nativeSrc": "11693:8:44", + "nativeSrc": "12301:8:44", "nodeType": "YulIdentifier", - "src": "11693:8:44" + "src": "12301:8:44" } ], "functionName": { "name": "mstore", - "nativeSrc": "11664:6:44", + "nativeSrc": "12272:6:44", "nodeType": "YulIdentifier", - "src": "11664:6:44" + "src": "12272:6:44" }, - "nativeSrc": "11664:38:44", + "nativeSrc": "12272:38:44", "nodeType": "YulFunctionCall", - "src": "11664:38:44" + "src": "12272:38:44" }, - "nativeSrc": "11664:38:44", + "nativeSrc": "12272:38:44", "nodeType": "YulExpressionStatement", - "src": "11664:38:44" + "src": "12272:38:44" }, { - "nativeSrc": "11715:56:44", + "nativeSrc": "12323:56:44", "nodeType": "YulAssignment", - "src": "11715:56:44", + "src": "12323:56:44", "value": { "arguments": [ { "name": "startOffset", - "nativeSrc": "11733:11:44", + "nativeSrc": "12341:11:44", "nodeType": "YulIdentifier", - "src": "11733:11:44" + "src": "12341:11:44" }, { "arguments": [ { "kind": "number", - "nativeSrc": "11750:2:44", + "nativeSrc": "12358:2:44", "nodeType": "YulLiteral", - "src": "11750:2:44", + "src": "12358:2:44", "type": "", "value": "64" }, { "name": "indicesByteSize", - "nativeSrc": "11754:15:44", + "nativeSrc": "12362:15:44", "nodeType": "YulIdentifier", - "src": "11754:15:44" + "src": "12362:15:44" } ], "functionName": { "name": "add", - "nativeSrc": "11746:3:44", + "nativeSrc": "12354:3:44", "nodeType": "YulIdentifier", - "src": "11746:3:44" + "src": "12354:3:44" }, - "nativeSrc": "11746:24:44", + "nativeSrc": "12354:24:44", "nodeType": "YulFunctionCall", - "src": "11746:24:44" + "src": "12354:24:44" } ], "functionName": { "name": "keccak256", - "nativeSrc": "11723:9:44", + "nativeSrc": "12331:9:44", "nodeType": "YulIdentifier", - "src": "11723:9:44" + "src": "12331:9:44" }, - "nativeSrc": "11723:48:44", + "nativeSrc": "12331:48:44", "nodeType": "YulFunctionCall", - "src": "11723:48:44" + "src": "12331:48:44" }, "variableNames": [ { "name": "hash", - "nativeSrc": "11715:4:44", + "nativeSrc": "12323:4:44", "nodeType": "YulIdentifier", - "src": "11715:4:44" + "src": "12323:4:44" } ] } @@ -5474,52 +5652,52 @@ "evmVersion": "paris", "externalReferences": [ { - "declaration": 35100, + "declaration": 35114, "isOffset": false, "isSlot": false, - "src": "11447:9:44", + "src": "12055:9:44", "valueSize": 1 }, { - "declaration": 35107, + "declaration": 35121, "isOffset": false, "isSlot": false, - "src": "11715:4:44", + "src": "12323:4:44", "valueSize": 1 }, { - "declaration": 35094, + "declaration": 35108, "isOffset": true, "isSlot": false, - "src": "11499:28:44", + "src": "12107:28:44", "suffix": "offset", "valueSize": 1 }, { - "declaration": 35098, + "declaration": 35112, "isOffset": false, "isSlot": false, - "src": "11693:8:44", + "src": "12301:8:44", "valueSize": 1 }, { - "declaration": 35096, + "declaration": 35110, "isOffset": false, "isSlot": false, - "src": "11643:7:44", + "src": "12251:7:44", "valueSize": 1 } ], - "id": 35109, + "id": 35123, "nodeType": "InlineAssembly", - "src": "11354:427:44" + "src": "11962:427:44" } ] }, "documentation": { - "id": 35092, + "id": 35106, "nodeType": "StructuredDocumentation", - "src": "10122:975:44", + "src": "10730:975:44", "text": "@notice Calculates the input hash for the identity deletion verifier.\n @dev Implements the computation described below.\n @param packedDeletionIndices The indices of the identities that were deleted from the tree.\n @param preRoot The root value of the tree before these deletions were made.\n @param postRoot The root value of the tree after these deletions were made.\n @param batchSize The number of identities that were deleted in this batch\n @return hash The input hash calculated as described below.\n @dev the deletion indices are packed into bytes calldata where each deletion index is 32 bits\n wide. The indices are encoded using abi.encodePacked for testing.\n We keccak hash all input to save verification gas. Inputs for the hash are arranged as follows:\n packedDeletionIndices || PreRoot || PostRoot\n 32 bits * batchSize || 256 || 256" }, "functionSelector": "31e4e992", @@ -5527,53 +5705,53 @@ "kind": "function", "modifiers": [ { - "id": 35103, + "id": 35117, "kind": "modifierInvocation", "modifierName": { - "id": 35102, + "id": 35116, "name": "onlyProxy", "nameLocations": [ - "11295:9:44" + "11903:9:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29855, - "src": "11295:9:44" + "src": "11903:9:44" }, "nodeType": "ModifierInvocation", - "src": "11295:9:44" + "src": "11903:9:44" }, { - "id": 35105, + "id": 35119, "kind": "modifierInvocation", "modifierName": { - "id": 35104, + "id": 35118, "name": "onlyInitialized", "nameLocations": [ - "11305:15:44" + "11913:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48458, - "src": "11305:15:44" + "referencedDeclaration": 48500, + "src": "11913:15:44" }, "nodeType": "ModifierInvocation", - "src": "11305:15:44" + "src": "11913:15:44" } ], "name": "calculateIdentityDeletionInputHash", - "nameLocation": "11111:34:44", + "nameLocation": "11719:34:44", "parameters": { - "id": 35101, + "id": 35115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 35094, + "id": 35108, "mutability": "mutable", "name": "packedDeletionIndices", - "nameLocation": "11170:21:44", + "nameLocation": "11778:21:44", "nodeType": "VariableDeclaration", - "scope": 35111, - "src": "11155:36:44", + "scope": 35125, + "src": "11763:36:44", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -5581,10 +5759,10 @@ "typeString": "bytes" }, "typeName": { - "id": 35093, + "id": 35107, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11155:5:44", + "src": "11763:5:44", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5594,13 +5772,13 @@ }, { "constant": false, - "id": 35096, + "id": 35110, "mutability": "mutable", "name": "preRoot", - "nameLocation": "11209:7:44", + "nameLocation": "11817:7:44", "nodeType": "VariableDeclaration", - "scope": 35111, - "src": "11201:15:44", + "scope": 35125, + "src": "11809:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5608,10 +5786,10 @@ "typeString": "uint256" }, "typeName": { - "id": 35095, + "id": 35109, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11201:7:44", + "src": "11809:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5621,13 +5799,13 @@ }, { "constant": false, - "id": 35098, + "id": 35112, "mutability": "mutable", "name": "postRoot", - "nameLocation": "11234:8:44", + "nameLocation": "11842:8:44", "nodeType": "VariableDeclaration", - "scope": 35111, - "src": "11226:16:44", + "scope": 35125, + "src": "11834:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5635,10 +5813,10 @@ "typeString": "uint256" }, "typeName": { - "id": 35097, + "id": 35111, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11226:7:44", + "src": "11834:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5648,13 +5826,13 @@ }, { "constant": false, - "id": 35100, + "id": 35114, "mutability": "mutable", "name": "batchSize", - "nameLocation": "11259:9:44", + "nameLocation": "11867:9:44", "nodeType": "VariableDeclaration", - "scope": 35111, - "src": "11252:16:44", + "scope": 35125, + "src": "11860:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5662,10 +5840,10 @@ "typeString": "uint32" }, "typeName": { - "id": 35099, + "id": 35113, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "11252:6:44", + "src": "11860:6:44", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5674,21 +5852,21 @@ "visibility": "internal" } ], - "src": "11145:129:44" + "src": "11753:129:44" }, "returnParameters": { - "id": 35108, + "id": 35122, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 35107, + "id": 35121, "mutability": "mutable", "name": "hash", - "nameLocation": "11338:4:44", + "nameLocation": "11946:4:44", "nodeType": "VariableDeclaration", - "scope": 35111, - "src": "11330:12:44", + "scope": 35125, + "src": "11938:12:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5696,10 +5874,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 35106, + "id": 35120, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "11330:7:44", + "src": "11938:7:44", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5708,9 +5886,9 @@ "visibility": "internal" } ], - "src": "11329:14:44" + "src": "11937:14:44" }, - "scope": 35112, + "scope": 35126, "stateMutability": "view", "virtual": true, "visibility": "public" @@ -5745,12 +5923,12 @@ }, "fullyImplemented": true, "linearizedBaseContracts": [ - 35112, + 35126, 34869, - 35483, - 35412, - 35167, - 48464, + 35497, + 35426, + 35181, + 48506, 29937, 29622, 29253, @@ -5761,7 +5939,7 @@ ], "name": "WorldIDIdentityManagerImplV2", "nameLocation": "451:28:44", - "scope": 35113, + "scope": 35127, "usedErrors": [ 34106, 34111, @@ -5775,10 +5953,11 @@ 34143, 34146, 34149, - 35143, - 35408, - 35411, - 48435 + 34885, + 35157, + 35422, + 35425, + 48477 ], "usedEvents": [ 29037, From db59e74d4d13864bbe8ac0692ac80967d2c068d1 Mon Sep 17 00:00:00 2001 From: Dzejkop Date: Fri, 13 Oct 2023 13:53:39 +0200 Subject: [PATCH 4/4] Fix tests --- crates/micro-oz/src/lib.rs | 10 +- sol/SemaphoreVerifier.json | 12646 -------------- sol/SemaphoreVerifier20.json | 21272 ++++++++++++++++++++++++ sol/SequencerVerifier.json | 1522 +- sol/WorldIDIdentityManagerImplV1.json | 59 +- sol/WorldIDIdentityManagerImplV2.json | 25 +- tests/common/abi.rs | 37 +- tests/common/chain_mock.rs | 2 +- tests/common/mod.rs | 79 +- tests/dynamic_batch_sizes.rs | 35 +- tests/validate_proofs.rs | 23 +- 11 files changed, 22062 insertions(+), 13648 deletions(-) delete mode 100644 sol/SemaphoreVerifier.json create mode 100644 sol/SemaphoreVerifier20.json diff --git a/crates/micro-oz/src/lib.rs b/crates/micro-oz/src/lib.rs index c83f7c6d..da6755cd 100644 --- a/crates/micro-oz/src/lib.rs +++ b/crates/micro-oz/src/lib.rs @@ -9,7 +9,7 @@ use ethers::prelude::SignerMiddleware; use ethers::providers::{Http, Middleware, Provider}; use ethers::signers::{LocalWallet, Signer}; use ethers::types::transaction::eip2718::TypedTransaction; -use ethers::types::Eip1559TransactionRequest; +use ethers::types::{Eip1559TransactionRequest, U64}; use oz_api::data::transactions::{RelayerTransactionBase, SendBaseTransactionRequestOwned, Status}; use tokio::sync::{mpsc, Mutex}; @@ -101,9 +101,15 @@ async fn runner_inner(inner: &Arc, tx_id: String) -> Result<(), an let mut tx_guard = tx.lock().await; - if let Some(_receipt) = receipt { + if let Some(receipt) = receipt { + if let Some(U64([0])) = receipt.status { + tracing::error!("Receipt: {:?}", receipt); + } else { + tracing::info!("Receipt: {:?}", receipt); + } tx_guard.status = Status::Mined; } else { + tracing::error!("Receipt not found"); tx_guard.status = Status::Failed; } diff --git a/sol/SemaphoreVerifier.json b/sol/SemaphoreVerifier.json deleted file mode 100644 index 6bdfc7f6..00000000 --- a/sol/SemaphoreVerifier.json +++ /dev/null @@ -1,12646 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "merkleTreeRoot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nullifierHash", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "signal", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "externalNullifier", - "type": "uint256" - }, - { - "internalType": "uint256[8]", - "name": "proof", - "type": "uint256[8]" - }, - { - "internalType": "uint256", - "name": "merkleTreeDepth", - "type": "uint256" - } - ], - "name": "verifyProof", - "outputs": [], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x7f1da3fc88726dcb210b80123bb09b40a86a57eb1cec7f3bfc89f91fe20622d8546103809081527f23e9c269ed42423dbc44ce369cb78b342abe93731dc033216dadcb06c724aef06103a0526102a09081527f1a0c25b74f55683ebd0f8be53e188563362403cde2dad828ed917a8497ec367e6103c09081527f22af2404c15a320d0d67ee7c997eb497cea0208f443a620b9921f4a19402cfbe6103e0526102c0527f0457d05481ef2e919c3babe640b224438ac736c190b616070505bc66eb0a33486104009081527f04b9e760240ab0439ff305c89eede1c06e7e4a3a250d3fce09eaa12e43c2a610610420526102e0527f2b4399f1079da135eff8211a2684b3fc5bbd79204198a7a537ed0c20a58c3e166104409081527f19bbb4d125a0c826783c15728d6cf28f267ffbf330c197d39bd6c664b9ba283661046052610300527f0bc177b0557e29966e89a33ca900b78647df9e344b65a6a12055eaef2b6753616104809081527f012aefa5250fc5e72896094908c0f111ece72eda1b36ddbc8185fa1c2eaa63106104a052610320527f20ddcfb90110e0e1ea7af6934ee1c67408af27964f44780c982426a9d988856b6104c09081527f0711dfbe9c6fab32ebbba6a258c2e97b91becc667aac1a357cb9a275264fe0f86104e052610340527f0f2c85fbd7696d73949bc294dd362953ff7eccf67a075b84193d082839c3614b6105009081527f21384f8b567278eaff9c8240269e5f739e530540be8312ec617183c572ab7e91610520526103605260809081527f228dd06c5de709e7b53f38a850876a16f1b1437acd5f2dfda9ce83fb59189be36106209081527f1e0b7dd795bbd17d04ca4b8aadd5a4a86f146e9f16ddff7519a72fea86796558610640526105409081527f1958ea13532b11ab4e211c7aa631c5eb6ed2a34d97fdc39fc39cd73bd35f11a56106609081527f23621187ade6b9c56f2962955e72b4843b51481cbdec3cfb5ab4b948c56fd4aa61068052610560527f2754771b51f24b62a15d2c53a6a1cc408fcc7a623b3e7f9823d52d629f5a765e6106a09081527f0917ae814c9db420f2ca2c678dcdc58adbd41c938041719c1b50c64ec72c8b106106c052610580527f0758371f3dff3ee4c7c68d8c36f2e04254b9a4f7446521c75a30bdee9dc6fd736106e09081527ed7a7adc8c0c2a3fb09602aa14d3fa1764d15bdb150fd0f03ee69b3b60cb61c610700526105a0527f1367f89c851a9003e69384b623a614d3afa8d2fc51f5cb5abafc67e442baa9606107209081527f1a5c8221479bd8a8d50a74dd46d9e6f6cbe2cb6768a2429223f747a2f00685b6610740526105c0527f2240e05d565c404d5abb2f425a8fb849793bf671dae88e4f2567a617119bbe8d6107609081527f0df676ebd848824af90c8f9bae101c3e0c687ee8facb7f2279f506a5881d929c610780526105e0527f07b289755dcdc3a38163bce0f2b12f0e3c046735d27a534c9941cf6683e7db156107a09081527f2c69a3fee54303f17d8994afdac6e460545928a676307d5124c489b516e518dc6107c0526106005260a0527f1461627fb9791e5a96fce79d89fca07b82d7556c84a3d4414367740957c7da446108c09081527f2b97d05ca1d20d9abdec2e593937665b71c126735a9b7e601940c3f2758bda2b6108e0526107e09081527f24f5d230612998286ea5e1f999d5bc8c4a635ee9864099913b6657633c7c4b446109009081527f28491d3fa0c8200cd31c9e3be4e423939a16a865d455bc00e411cff8787f753961092052610800527f0a5f594ba7d550aca92b125cbc6c6b564139e3fd5c5937f3bd5220df88554a0f6109409081527f145a4c9d47805092bcebcd7e8c39b0f32b10f534475fd3a448cd6177f56de78461096052610820527f23b4e079081aa0ab98aaf8a230318cf6e9c97bba977f6b3065a58a82483f66306109809081527f2cc2af3f384010f2ac7435166856fb959625d567c92ce9ac20073d063e0e94e36109a052610840527f0d67d70ad74db3b2eafec2ca2c819816e487d1fa29a15ca213f38a46a77c7d806109c09081527f285e1aa325995fa12936d0eea843c4b0dd0ac6db5510826f9b585c16806325636109e052610860527f165a04ef5bee8a96c8119c31502842aa34d60394793b8f937def7459b04d7135610a009081527f093ac34388aa5f6d55d8270e5a66328a04990230698de2326ab6e0495464816d610a2052610880527f27e79d515fe3439ddf81a8549902b5e9042e201c6769b8910a18dafed11d5748610a409081527f014ee84f3f0eeefd5ab1f81da564af7864d6204e9ccbfff66916a85d13e6fa4a610a60526108a05260c0527f08d529aaca586b844314f80edfb1784260646108b75c158ce3f088c188bc802e610b609081527f234536b6213200b2b44aebffcf0b574a2d0f4f2b47ef98db4b4431cfefc3bf22610b8052610a809081527f2e556c221fa59c978e78e9bba38e8947b59ef785b5e31ec8cf90e613787fb793610ba09081527f059469a2c10792ee9f1573148667562f175586470cea1dbb54bed106ef361b34610bc052610aa0527f15d64dac8e74c233b7859722356fc14c262242ae306c20f060880dbd9baa452e610be09081527f2c28232f85d16cdd157a841cd7795ae537f6769d6b30fd18e9e03060246cc03c610c0052610ac0527f0dfb95a3e8c20cf8a70021ad12080f778abc60508bfe088803fdd53c46b4202c610c209081527f224c92fd97d25de5d97901b9046ee6a5788dddf425cdba5d6e8ecf6ea83248c8610c4052610ae0527f1923f2f39f07d16e03562b8f1efed58073a457af74aa02179ced725e015b682c610c609081527f19fe61c672e47a96a72333d6a66b7d8447ed8838fda18031d49370f0b7667607610c8052610b00527f1d5da06c3e0fcfbe6c9e08f3f0eb1aa56b2927d65f2517bd5adbdab0609bc7d7610ca09081527f03dc485cb2654fa526804696fae41fed451342bbfbcee7cc006f4f2271514d73610cc052610b20527f11ac6ab06bbe07af99a7b46a2e5b3b9b80f5a57b64298f686c8660e36ea8bf36610ce09081527f0b66b9cf601565d1ea0341acb52c80d0114f7cf805b0d2a94848782bcd9c285b610d0052610b405260e0527f29f41c6e0e30802e2749bfb0729810876f3423e6f24829ad3e30adb1934f1c8a610e009081527f030e7a5f70bb5daa6e18d80d6d447e772efb0bb7fb9d0ffcd54fc5a48af1286d610e2052610d209081527f0ea726b117e48cda8bce2349405f006a84cdd3dcfba12efc990df25970a27b6d610e409081527f30364cd4f8a293b1a04f0153548d3e01baad091c69097ca4e9f26be63e4095b5610e6052610d40527f2c097b31a897227a6f64c9fc31d9a8fc421b0d8b8207f92532b464e431e61db8610e809081527f0fcf6d89d77d5123a43dfb23efb9c929c28c148ca82c794057864b8e66903c54610ea052610d60527f0186dae5999acfe2cda6fa7a157ae726afda7c6f57b00ea0aa6c2c23bf838388610ec09081527f2f078608f710c45b60d23716c58e106d8c7a1c6db28119defffc413e074f8716610ee052610d80527f2464c1784bda2cbfb51e5ab87cf7eb2764ad81f7038152bdbbb07d404b49aa37610f009081527f0638b273e4ee33e03e42ca6c7de1ea7043dbdcaa48661864de644d91c6b4821f610f2052610da0527f098ce8b5289ef791db34b68b9e0043ab7bf25306d83a9f0ce74396b8a69c57bb610f409081527f1ec6f7a81748f3d2c2b87610d747ca72045ac1530e226f00710630d41aad7e26610f6052610dc0527f07dbf682cc528d3ff763fa576d05db50e023921728119ef66f880b6adae01cbe610f809081527f0d287dcd9318207576eaa871e7b3308f613d9df7865059cdbc9f66fdef342dc6610fa052610de052610100527f086d48f63f5c71cf5d49053014fd136b4f528a67c3d2500dc0359017376ef9e96110a09081527f13f83d45b3aa4ec86d3b9871cf43ccd7633306b29af07e7c70b13a212501b9c86110c052610fc09081527f240e3efc96e362bb9412aad60ae0ec25d4fced28aac3aa803e7287d3b6d425eb6110e09081527f1b7b1edff9f984c2ea43d3aab2487e863a4dee1c266fa2fc05f2a53bba124cb561110052610fe0527f14fdea340c7d5e62f830e244237c704e516d90f29a5e71f45928e97bb16037686111209081527f1a0d3b9393c5595d11f31f2cb0b38834d26debc568a0b36e26fa93b6b05f70d361114052611000527f10b7fcb32afd1649ac4560aff9047bc52972befd38a21b870c0519719afee22a6111609081527f27b1c713b71efa1eae72c81675ac78c578fa7ac8718cbd58d84fbe432f3d678361118052611020527f2ac10655edcd4c74305d2d323239400baf8541470936b2e1ac77167e31e8a9e26111a09081527e15b63038e94a1d4d5a85c7a666875e7f693a922ea2723a3e39f256b240f6076111c052611040527f2ed2a0a894b904559562fb1643c8b69a743e39a15455d6c6a0d668b3214793416111e09081527f15a2ed81d1ac5a1383524fd4daf70220034a6f40d643da7b79f9a20cab1895b061120052611060527f190cd68f815b152eb0c8474be622c18a56d2e518bf6ddbb929af7d50a2cedab96112209081527f034b50d36d6b6dc03d6e6eb0f731eb1dd5df2f6300a760eab888e859f45f38756112405261108052610120527f14f8ae76e209b3857222b80044dfc5baaafcf6e30497fac6910d74db4f99cbc46113409081527f26f83f4984eb300f438c191ac9c7cefa55e22cb19fc1c29cc690eb0b03c70116611360526112609081527f1b658d7292b467a21e49116237813440d88a76fa6ef89db931e09b17ed0be4496113809081527f29e759b830c254718fea4dfbbe6b17edc38e4b5a43d343eeb473f9894496b79f6113a052611280527f302dad4ea4d062effd18ec15d4a252b5881e1423a26ec6c859ec09ddc44496b56113c09081527f188664ee38c3f83423eb8c75ebc54d7ba95d5a728a3f7186fb4eb96e0702f7df6113e0526112a0527f14d2ec2fcb446a46ea217305921bbaed7b89d6059a3a044dba8dd6943b0379f46114009081527f239ff36e4d70fee9088c5e61e7b5974d9726f6c554266bb26608973532913e60611420526112c0527f2c56b0e10ffbd7514c0c3e402662681881f06cf50ff9338a73b6f1e5f74ccf056114409081527f20e451924e71fb82d8f77683821fb35996645442b49e4a801b99256e51e66c79611460526112e0527f0951b7de5b62bfa1727fc51f791f0e8c9f5a89012fdcf10426bbb9f422ea6eb06114809081527f0b8dc77891aa39b647a3e3044c7c2fdd27e06c4aa55c4e54b9a3cf4c4096edd96114a052611300527f0dd1830feaf2cd658f56300da9a0a5a8cf324a1ed720c283c86bd37f7484090b6114c09081527f034140e7667ae5210cf863a7c8975117172af40f2d45e635e5b9f5042be9ba196114e05261132052610140527f15bc113f408c7e7a786363979ae9279915708775076e86a44495064804663e156115e09081527f19393ee4d81d952e8bf375888005c8314c87c632eebabd7a8d55940b0f7a66f5611600526115009081527f1a1f001347928a9a21ea414ccc67c3d1590dc29d437d68fc3ab020efb6ada72a6116209081527f2c265c6b30a34bd323024f87bf2cd5a269e77c50c75e5ea317280785f91eb67c61164052611520527f06bcd0efa27998d5f0daffaad7d6a98e3d0fe589e261f9b30c09169ef48847926116609081527f2cc0792f40378327989245d05e386fcff9a2a9aa285746043cb3f621ae2f04fb61168052611540527f0d306d920f3cc9d08dbd4549ebb3dd8d5fa10bd2c0a6663cd08e6291573486516116a09081527f2d3df68c9b28bf980dfea7683eba674a0415a26017ac2bef27176b88ca57f9366116c052611560527f24b61ef328570152ff83827a0f379f6c542398f3d1bc542c2bc34edd031e294f6116e09081527f1b03be64a67b3976e58415dcd6b353b32be9b0bad35d2d18b296453a28d985a461170052611580527f036cb3be4f36d6f5b34d8808b1e3e2ccb3fb1e3fd249eea06b1cc6761320b08c6117209081527f16fa67f812376a8ac79a40970332c6ec7ced15f9539334fe642164284775e1f4611740526115a0527f23c611b7426b5dbce2f272a6046db21be35abadd4293876ecf50d58c5f17b2ae6117609081527f1b1f0f9654e7d10b58ddaea64e20abee44f52bdd0cb58123b69c9011b497e0dd611780526115c052610160527f213db2bdfb128fec0e98d364b9109caf26d66cacbbc808535af07af00200acc66118809081527f164ec2e66021720a0d70b0cc70597ed748f0af9b080f5e789a821de5b0a91a1a6118a0526117a09081527f2f2f2c0cc9d9b911a348466a4749c3a49d2629c9dde430ec9474f2bb06fc7f2f6118c09081527f173b3259b29d0e0c0176e2424bee65405bdd1e611bb933c19f5bfed931aab21e6118e0526117c0527f2b501c6317c16d185d7797db4b8735388ab31aa4d5d022502dce7c0fa5f30e3b6119009081527f05e94a656be4a2f9128583762dc9e007d450315e71ef4d6cf82e64ee74325562611920526117e0527f1da680138dd3bdd851d6edcb441a137301ca1902c6c50036b27153520aee7fb46119409081527f25fc89274231e8228cba90e52607039681d60f5d6b3a07fb429d116f53a4443d61196052611800527f2a5036a81225c106605e7233124414ca2359360b60f19da736e6b4ebcfc9ce546119809081527f1f939f972ad716e18a465e4c5ec3669976b77364106a0cd73418ba058b7884cd6119a052611820527f2c9f9c6dfd0aa6e591235ad81a9923fe056846ca742e53af6a571ec00519d9b56119c09081527f0b8c60480c49dcfad4a82226600a9569494567e627301779e35b9bf8e0fe43d36119e052611840527f1b447eb43a748829489de9e667c53a3053498f9adaa59b0bedcc7c8b463f5154611a009081527f085fb2aea389c48f2e7d17242f64b5bc3506cdf55b20bf9395da0e2f749bb09e611a205261186052610180527f22c048af0497a1f7d9822f8b3edb498f614b85ce744ffe3e6ff58119d1618542611b209081527e18987c19177ca3ef0a85089090a97d608e3a9648b25d4ae1f673c134c591e0611b4052611a409081527f18d7d7154f3e946f1d5930f5c95f3b76bf39cfd3cc0266d8e9565df8e1ce6083611b609081527f097ba0c470041aaa08b64e9bf5a1bfe568d9a7689a7c597bc5c87fd9acc1c0ae611b8052611a60527f29141df1097c02a70ac3504a99ee5e8bfbea03aae01a3c2ab86ebe0cb9265f5f611ba09081527f2d5bbfef49b2e4745d3a349dd67a035cfd4ce9313d3a20911376b21ec05e8b37611bc052611a80527f2c4ef818e2918b7c272380c498e5c402928e4598adf31db243b591362011587e611be09081527f0dfcbeee8258030ee712429f77d640767a137fd809bd80027218d6719c14fe7f611c0052611aa0527f1d55f8c7220cc6989034a2259e5764a0687c9410421fa5408174906d1511d83e611c209081527f1471dd2d031a794968eaaf6a8e5551fbc8163c20617876438d535b2b383172e1611c4052611ac0527f0ddb36c33249944ac8bf7f0222f37712681d705bce9e0ef786fb6283306a255d611c609081527f040d0656b2bba0b1b3c21822ea3fd5671359a1a04d76473b68217b4616f9559d611c8052611ae0527f24cff40932a3db30de20c16b20e68497cb42c750483824c3ef371f4e9045c6bd611ca09081527f1f431dccba254912b6a795ee36dcd115094cb44367768abdc27bbc5669eb8a32611cc052611b00526101a0527f03cf7157aba9c6be40a06864fa2c0e06f7178133d9c3768ff3982814946b0f7d611dc09081527f08e4f2655701b165858a2fc04d15297c282aec942c4a521cbe687772a2a775ad611de052611ce09081527f10eab11af7f34e5cdb73b010a98d7f18c7410eec5d8eb1b4526359f5ab246b2d611e009081527f2727dfb72de41bcd49e47c8940bfe75b600bd39467763baecc6f8087130866d9611e2052611d00527f096440bcf7534fd07ca2a941ad8fb743c49c0a5684920ee13e992f3ab8342af9611e409081527f200eecd036971149677fdd19a7f2dc2e2a33a460211994adce7f967da2920b9d611e6052611d20527f2ee692deea7671684657a2ee16ffb165dd3bfd3cb8af86620b7d0feeaad66248611e809081527f0328fec7c2ec04f0a7375c917f31ee23af341252c71051e8cd9a80ce9080121b611ea052611d40527f1b8f18e1106fa4188030c6c00b7a9b76bc309ffadb11f47d5ff38bd616f06e60611ec09081527f09adb161ecc2264110216d13cd5dad70d58dcc398f9431844f9faef1baabeece611ee052611d60527f18f1f7aa58cecca54d15b583367484da5dfc809734621c5699e4f812131b2859611f009081527f2f73d9c341a4bb3a5737672b5e6191848505c5ba127370425286901bf628b438611f2052611d80527f2b869cfd2665da2a22c29622642595edd5bcded7e84209a1a0cd0a07c2d0c743611f409081527f09d3dfe76c7b340c97705915c61f06591d27c5e3ec9e9a91582188298aab2598611f6052611da0526101c0527f01a62dac147fd2d28c728dd7692a3505c43fa3ac0d580acde5208af76827a4146120609081527f1d088b6d1f7c61f16092a5e2ef4a1f9743db839996d5e3e055b020d21c807a4361208052611f809081527f04b3b6ae3a5a0590cf6c632dd5b19fad64b35508945e76465baab77eab5a75446120a09081527f2e3a6b4c59e33e5d9f5f309887f89b55e69614d8ae0fdc337f658a880e4bb2e76120c052611fa0527f077df97d4ad49afc58e0990d3f4c43fb5a66de4fdb6c149212dadd1120da9dd16120e09081527f2e7590fddece695cf2e40c353691bbaf6e48a631b799dc51ea400db7168fc6ee61210052611fc0527f1742dab9e730eafb41b052f0f9452b449d3424442df19e5e9ca46b1eb37ede186121209081527f1d3005df367bee452065f076925df17570f53f8c90f66780d986343035cdbd9761214052611fe0527f23c00b1148eb39bf17c89e79bf445d07d112d956d3e1a07048fe1d937d0004106121609081527f0d46b3410227aa67c7130da647213a8c964536737735218df087db3c101ce34961218052612000527f16b7cad8bbcc92747ea1b6d25279e35222f5f5887691feee05fe82e04f3665dc6121a09081527f0d2abb809fb2ad694b1688bc906ec63b5f6155f0d45939c0d2ab96a70bda16656121c052612020527f2a230ebd4006758badc83062c05a841f6467045ee5d4b5952ef2c6e786ed4bff6121e09081527f2a742766ba7e97cf0d388821cbb1ca01d0102c3b7880e9c976b19c5e2a698f0b61220052612040526101e0527f0a1142b39cac59d311fda518c2d4eaadaf36319a0b1cb5624b52b11768062a196123009081527f2538a481cee0a6745650435dd283ebe8a0186824a30756d83b6afdd7fa6186e8612320526122209081527f073c0d6ef96d93468e746fe7a9688f3053d5c9a96c3a2b039b7096ca0a3a9cae6123409081527f01ee855a906702a4d58af8e0a49c4db6d58da5f166ad7283223b079b96e9773461236052612240527f115ee58656b27d353eaf5e01de11f58159d35750e4df5753c25ad967a58834096123809081527f19e20d0d752f4a8feb8aa3184b57129077b63d6c7023f816f54d470bd51751be6123a052612260527f066a9e5fbc3e8612b3401e42befc4b9f5e3428bf08ec91ef104cde862e53c54a6123c09081527f090c13b76bc68d4307215f8025bbfa13e003accc57b6055b629f13f2e87383d96123e052612280527f28a2fb7c5e7425e4b49b1865ad6b43c8ba34c642f58aee8db5d352f93201a7ac6124009081527f2010477774686ef83e8f2af52b3b04795e145b0228cd6af3e60c0ea87c87b1d0612420526122a0527f06260e7c05ca5ad151092a548392246cb2d3ca6fbeaa07ba5aa629977702698d6124409081527f07bcf63a827724040c9944cc4314d740cd02a1d7fddd54ad6aa8da63e83ca524612460526122c0527f13a1f861a361a435d3c15ad8be0f73afe724f09a86f2f0bc8731889232a258ed6124809081527f2a2eeaf8fb3ea2c877e411b9b541abc46be4b2782bff6ec46157fe8d1f546b286124a0526122e052610200527f1008ad7b2099ae56dc0478b9b79dc31c9d9973352ee80a724ec1be777d49e5ef6125a09081527f10ce43af4007cb53217273748eff14ea3894d61d16b4d25c7e4ae5c28edc85cc6125c0526124c09081527ef71c6a739cf1c46d111ea159ecfe61278f110bc41f61b4d87d10c8643ad3dc6125e09081527f28e6b34e8d433462f6fd110ddb1b39bab64bfc4cd5aa802fb96a2d73970c336c612600526124e0527f28bdb5a19bbac721cd1599254ae6278ebf250f1c5d569dc3128e21f11a5d34276126209081527f0bb76843462a16985e13a6dc0592851549070ea3293c187d63f0df32f0dd693661264052612500527f0942698159a2ef1d9a9420193d83bf956081197e10ac7ab550ebd932aaf19e906126609081527f060403214a5dd63e1f8ad5821a89eb3fd389856b2d9e6d3915f6a26dfde8999361268052612520527f1d4ee42feb438c818d15badde8d1ba7c615d85e6c9e93df8605470d5760f71926126a09081527f17b47a9569d5ec3bddafda249ac91e97070d549979262cf3692242caa17c459b6126c052612540527f15b8453b386c5563cce2a22af5430b941bb1709202f58ef9c4a48413d9e499c16126e09081527f22d52ab21357018eb24ce7508c0d04130c1ddea4a5136cb73ee58063bd8584af61270052612560527f2ecf342deb9fe786ca4772c3a0b3cacae3ab5d1942e0a08eb4696041d57630716127209081527f1eb6d6da821f70eb0b7b9372cfdde917839d8977b90b5ad48f472b33ac6485096127405261258052610220527f168e4fddac50a40d5bcff39c7fa9207cd368444c0c01a86690a6645b52f3aa1f6128409081527f2139a256456825daa623957c4f2ea1a0d26f135769e450759142a7159b0a4476612860526127609081527f28deba4ed0a3b79dbc6a7dac67c07051f421904de49dcd7ae91aaf1223bc6d636128809081527f1c3976c9a490dad50e601586279bb60f12416a8cc141710167fcdc0dc931bffd6128a052612780527f0335f514c2acb9b255aae85514122267cd7d16e374c6231a2c34417d344912546128c09081527f07fa1580c1cc3ed4f6d660c6f60f86afedd8a12fb90b2e8ed4f7e310c88b97f76128e0526127a0527f20b781dd0db3b7980a4b3814128c86e597e1442d0fc9eb7f932a5229494d6b796129009081527f17d1cef436eb2f665670c7b34854e62c227043a7b111a539c0295518bbab3ca9612920526127c0527f260945445b4205f874ab7e203a18240e51c9d3c896ea300d40132b1c2f50299a6129409081527f11087a8b76b0f957e1c482c909302916795f811a06866059e403689c01c903fb612960526127e0527f11d20fd81c0e5cf48ba1469ccb8ac99dcdc7cf746a6e70762a939d63dcc52dbf6129809081527f2d447c5f134eff527d7bcaace88b3842c42b800d8dc049e0a6e72f5efc14293d6129a052612800527f107cd54a1606a6a873bed4c1b76af48975e66dcf6c127b4c799ad4fdd230b87c6129c09081527f1a51b81f6c07725ebcc56ebb1c482b99340eaa9bcb86cc09aed6f58a28e530b66129e05261282052610240527f21026f2492115bc10ad0a5d50cf101474fb0c5e53b25612d8156989bb8cbbed6612ae09081527f1e4048744f2e211ffa8cfac1d2efbae21234bfaa15c8d640171182c9b386e8e2612b0052612a009081527f295aed6c2486154603e450f3d49b39fee1bf9ffc4bc4194f403a02d66e7954f6612b209081527f2f2045b5a78523c7892e775d7f8fe805563acebd5ab053745ea735ab7930afa5612b4052612a20527f1beb6fbfbc70fb2711bc7c187cf0ec4b63ef6651b02742c9fe71de1aef7ffdb1612b609081527f215e8105a1a572b106c2bb0d1f0170bbf8ffda20957ea14b709a7f6cc778f966612b8052612a40527f0e9404f55d91e9964e7b921158995a81097cf27b017273cc2c133107c6534837612ba09081527f2902b31b20c04311298f9b90026980b7963a001834fa663eb83636ec5fdb7b6b612bc052612a60527f0ddd515b58aa44c26b377e2c82c83c7d75722131ee7139ddb18082e2da8ddda0612be09081527ec958a799e9a65df6bd806e7bb76140d415ca61d1ffc2b2351b12e85553268a612c0052612a80527f04adb15295c975c172a9a508c71dee5517223306cd091fb9881d0dca5d57d1d2612c209081527f08da6902b366d39b8a7ef07c831486aabbf834bbd07813bdcdb92be7850b2ca6612c4052612aa0527f094ce0ba5287bd96c37794306fe6b0c5541fc77f05aab2b4b8a80564d086bfcc612c609081527f2ad90cdefdb6c12edc35cf483e270516b0ad3ed872dad6031ec705fba888258b612c8052612ac052610260527f1b3a2deb5f90e41493bd6eca49124ffd998376cc19df2a131f619a9297e76ab2612d809081527f29fead8cbc4c7d473dd6a1f39e066c1a3b065c3d02407b8d977a6f4dc528e544612da052612ca09081527f27d69ef118055fceb37561e935fa4927952116ac0c00fbb8d2131ab68e12d9b0612dc09081527f1c17e9a456e1a74448a960dcfe32f84bc0fa84f1ea428f907f0ae9e3db1e4f4d612de052612cc0527f05bb401ea4577a1cf48cb24f6668ae5a9621b808d302044b53016f7f29fce06b612e009081527f1a31802b5590506650d4bdb3b20c9ae4aec7a5e1430202ec52fbaa35c78b08a3612e2052612ce0527f07664b2723c11dccc1e71f59742b84568e6a5d1b7df21cd86f02f976047a2df6612e409081527f22d6d128fb4f49c32dae5f249410aaf0b2e039a9fb0f8aea8929da4bbe0cf357612e6052612d00527f2d62d32c2ab7039c0294535b501330cc326affb6ac0c4d34a1971857fc5a5b15612e809081527f27da035244e64180b7abfd1eb92e132275274b72b09a52fc42aebfb66e0068eb612ea052612d20527f15aa7fb602df2aef2504640ebe99a0eb203f1891304b2b9635618cbfc9b56b34612ec09081527f0b0d0c477afc716d17d46acfa3dda4638919ec8092570b87178955f2cad9fdfb612ee052612d4052612f406040527f23c3983ac2b053ff6cab78d798397f954174f60664bc127a0babe5cb4e85a9dc612f009081527f305e217ed6d494f993fa931a22615957da6fd13bc9cae958ad4d3a48c7cbbf87612f2052612d605261028052620025a4906000906011620025b9565b50348015620025b257600080fd5b5062002700565b60ee83019183908215620025f9579160200282015b82811115620025f9578251620025e890839060076200260b565b50916020019190600e0190620025ce565b506200260792915062002659565b5090565b600e830191839082156200264b579160200282015b828111156200264b5782516200263a90839060026200267a565b509160200191906002019062002620565b5062002607929150620026b9565b8082111562002607576000620026708282620026d5565b50600e0162002659565b8260028101928215620026ab579160200282015b82811115620026ab5782518255916020019190600101906200268e565b5062002607929150620026e9565b80821115620026075760008082556001820155600201620026b9565b50620026e690600e810190620026b9565b50565b5b80821115620026075760008155600101620026ea565b61107380620027106000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80639aca8f2a14610030575b600080fd5b61004361003e366004610e5f565b610045565b005b61004d610d7f565b6040805180820182528435815260208086013581830152908352815160808082018452868401358285019081526060808901359084015282528351808501855290870135815260a08701358184015281830152838201528151808301835260c0860135815260e0860135918101919091529082015260006100d76100d2601085610ecf565b61086d565b9050600081608001516000815181106100f2576100f2610eb9565b6020026020010151905073__$a0b3f842b95cabff7722bd983061aec5b3$__6318c77c958273__$a0b3f842b95cabff7722bd983061aec5b3$__636e1b6990866080015160018151811061014857610148610eb9565b6020908102919091018101516040516001600160e01b031960e085901b168152815160048201529101516024820152604481018f90526064016040805180830381865af415801561019d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c19190610ef6565b6040516001600160e01b031960e085901b1681528251600482015260209283015160248201528151604482015291015160648201526084016040805180830381865af4158015610215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102399190610ef6565b905073__$a0b3f842b95cabff7722bd983061aec5b3$__6318c77c958273__$a0b3f842b95cabff7722bd983061aec5b3$__636e1b6990866080015160028151811061028757610287610eb9565b6020908102919091018101516040516001600160e01b031960e085901b168152815160048201529101516024820152604481018e90526064016040805180830381865af41580156102dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103009190610ef6565b6040516001600160e01b031960e085901b1681528251600482015260209283015160248201528151604482015291015160648201526084016040805180830381865af4158015610354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103789190610ef6565b905073__$a0b3f842b95cabff7722bd983061aec5b3$__6318c77c958273__$a0b3f842b95cabff7722bd983061aec5b3$__636e1b699086608001516003815181106103c6576103c6610eb9565b6020908102919091018101516040516001600160e01b031960e085901b168152815160048201529101516024820152604481018d90526064016040805180830381865af415801561041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043f9190610ef6565b6040516001600160e01b031960e085901b1681528251600482015260209283015160248201528151604482015291015160648201526084016040805180830381865af4158015610493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b79190610ef6565b905073__$a0b3f842b95cabff7722bd983061aec5b3$__6318c77c958273__$a0b3f842b95cabff7722bd983061aec5b3$__636e1b6990866080015160048151811061050557610505610eb9565b6020908102919091018101516040516001600160e01b031960e085901b168152815160048201529101516024820152604481018c90526064016040805180830381865af415801561055a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057e9190610ef6565b6040516001600160e01b031960e085901b1681528251600482015260209283015160248201528151604482015291015160648201526084016040805180830381865af41580156105d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f69190610ef6565b60408051600480825260a0820190925291925060009190816020015b604080518082019091526000808252602082015281526020019060019003908161061257505060408051600480825260a0820190925291925060009190602082015b61065c610dd0565b815260200190600190039081610654575050855160405163a680077560e01b815291925073__$a0b3f842b95cabff7722bd983061aec5b3$__9163a6800775916106a891600401610f53565b6040805180830381865af41580156106c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e89190610ef6565b826000815181106106fb576106fb610eb9565b602002602001018190525084602001518160008151811061071e5761071e610eb9565b602002602001018190525083600001518260018151811061074157610741610eb9565b602002602001018190525083602001518160018151811061076457610764610eb9565b6020026020010181905250828260028151811061078357610783610eb9565b60200260200101819052508360400151816002815181106107a6576107a6610eb9565b60200260200101819052508460400151826003815181106107c9576107c9610eb9565b60200260200101819052508360600151816003815181106107ec576107ec610eb9565b6020908102919091010152604051632f3ed53960e01b815273__$a0b3f842b95cabff7722bd983061aec5b3$__90632f3ed539906108309085908590600401610f93565b60006040518083038186803b15801561084857600080fd5b505af415801561085c573d6000803e3d6000fd5b505050505050505050505050505050565b610875610df0565b61087d610df0565b6040805180820182527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e281527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266020808301919091529083528151608080820184527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c8285019081527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab606080850191909152908352845180860186527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a781527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8818601528385015285840192909252835190810184527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28185019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed92820192909252908152825180840184527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b81527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81840152918101919091528282015280518082019091528060008560118110610a5c57610a5c610eb9565b600e02016000604080518082019182905292600292830201919082845b815481526020019060010190808311610a79575050505050815260200160008560118110610aa957610aa9610eb9565b600e02016001604080518082019182905292600292830201919082845b815481526020019060010190808311610ac657505050919092525050606082015260408051600580825260c0820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081610afd5750506080820152604080518082019091528060008560118110610b4657610b46610eb9565b600e0201600280020160000154815260200160008560118110610b6b57610b6b610eb9565b600e02016002800201600101548152508160800151600081518110610b9257610b92610eb9565b6020026020010181905250604051806040016040528060008560118110610bbb57610bbb610eb9565b600e020160036002020160000154815260200160008560118110610be157610be1610eb9565b600e0201600360020201600101548152508160800151600181518110610c0957610c09610eb9565b6020026020010181905250604051806040016040528060008560118110610c3257610c32610eb9565b600e020160046002020160000154815260200160008560118110610c5857610c58610eb9565b600e0201600460020201600101548152508160800151600281518110610c8057610c80610eb9565b6020026020010181905250604051806040016040528060008560118110610ca957610ca9610eb9565b600e020160056002020160000154815260200160008560118110610ccf57610ccf610eb9565b600e0201600560020201600101548152508160800151600381518110610cf757610cf7610eb9565b6020026020010181905250604051806040016040528060008560118110610d2057610d20610eb9565b600e020160066002020160000154815260200160008560118110610d4657610d46610eb9565b600e0201600660020201600101548152508160800151600481518110610d6e57610d6e610eb9565b602090810291909101015292915050565b6040805160a081019091526000606082018181526080830191909152815260208101610da9610dd0565b8152602001610dcb604051806040016040528060008152602001600081525090565b905290565b6040518060400160405280610de3610e41565b8152602001610dcb610e41565b6040805160e08101909152600060a0820181815260c0830191909152815260208101610e1a610dd0565b8152602001610e27610dd0565b8152602001610e34610dd0565b8152602001606081525090565b60405180604001604052806002906020820280368337509192915050565b6000806000806000806101a08789031215610e7957600080fd5b86359550602087013594506040870135935060608701359250610180870188811115610ea457600080fd5b60808801925080359150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b81810381811115610ef057634e487b7160e01b600052601160045260246000fd5b92915050565b600060408284031215610f0857600080fd5b6040516040810181811067ffffffffffffffff82111715610f3957634e487b7160e01b600052604160045260246000fd5b604052825181526020928301519281019290925250919050565b815181526020808301519082015260408101610ef0565b8060005b6002811015610f8d578151845260209384019390910190600101610f6e565b50505050565b60408082528351828201819052600091906020906060850190828801855b82811015610fde57610fce84835180518252602090810151910152565b9285019290840190600101610fb1565b5050508481038286015285518082528683019183019060005b8181101561102f57835161100c848251610f6a565b85015161101b84880182610f6a565b509284019260809290920191600101610ff7565b50909897505050505050505056fea2646970667358221220f0675c24c442d1d7280cdbfcbba60d3bf88585e58c8ba40728c4419bb7f8a23164736f6c63430008130033", - "sourceMap": "642:77:25:-:0;608:18754;;;;720:77;608:18754;;;;;;800:77;608:18754;;;;878:77;608:18754;;;;958:76;608:18754;;;;1035:76;608:18754;;;;1114:77;608:18754;;;;1192:77;608:18754;;;;1272:76;608:18754;;;;1349:75;608:18754;;;;1427:77;608:18754;;;;1505:76;608:18754;;-1:-1:-1;608:18754:25;1584:76;608:18754;;;;1661:77;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;;;1743:77;608:18754;;;;1821:77;608:18754;;;;;;1901:77;608:18754;;;;1979:77;608:18754;;;;2059:77;608:18754;;;;2137:76;608:18754;;;;2216:76;608:18754;;;;2293:75;608:18754;;;;2371:76;608:18754;;;;2448:77;608:18754;;;;2528:77;608:18754;;;;2606:76;608:18754;;-1:-1:-1;608:18754:25;2685:76;608:18754;;;;2762:77;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;2844:76;608:18754;;;;2921:77;608:18754;;;;;;3001:77;608:18754;;;;3079:77;608:18754;;;;3159:76;608:18754;;;;3236:76;608:18754;;;;3315:77;608:18754;;;;3393:77;608:18754;;;;3473:76;608:18754;;;;3550:77;608:18754;;;;3630:77;608:18754;;;;3708:76;608:18754;;-1:-1:-1;608:18754:25;3787:77;608:18754;;;;3865:75;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;3945:76;608:18754;;;;4022:77;608:18754;;;;;;4102:77;608:18754;;;;4180:76;608:18754;;;;4259:76;608:18754;;;;4336:77;608:18754;;;;4416:76;608:18754;;;;4493:77;608:18754;;;;4573:77;608:18754;;;;4651:77;608:18754;;;;4731:77;608:18754;;;;4809:76;608:18754;;-1:-1:-1;608:18754:25;4888:76;608:18754;;;;4965:76;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;5046:77;608:18754;;;;5124:76;608:18754;;;;;;5203:76;608:18754;;;;5280:77;608:18754;;;;5360:77;608:18754;;;;5438:76;608:18754;;;;5517:75;608:18754;;;;5593:77;608:18754;;;;5673:77;608:18754;;;;5751:76;608:18754;;;;5830:76;608:18754;;;;5907:77;608:18754;;-1:-1:-1;608:18754:25;5987:76;608:18754;;;;6064:76;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;6145:76;608:18754;;;;6222:76;608:18754;;;;;;6301:77;608:18754;;;;6379:77;608:18754;;;;6459:76;608:18754;;;;6536:77;608:18754;;;;6616:76;608:18754;;;;6693:77;608:18754;;;;6773:77;608:18754;;;;6851:74;608:18754;;;;6928:77;608:18754;;;;7006:76;608:18754;;-1:-1:-1;608:18754:25;7085:77;608:18754;;;;7163:76;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;7244:76;608:18754;;;;7321:77;608:18754;;;;;;7401:77;608:18754;;;;7479:77;608:18754;;;;7559:77;608:18754;;;;7637:77;608:18754;;;;7717:76;608:18754;;;;7794:77;608:18754;;;;7874:77;608:18754;;;;7952:77;608:18754;;;;8032:76;608:18754;;;;8109:76;608:18754;;-1:-1:-1;608:18754:25;8188:76;608:18754;;;;8265:76;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;8346:76;608:18754;;;;8423:77;608:18754;;;;;;8503:77;608:18754;;;;8581:77;608:18754;;;;8661:76;608:18754;;;;8738:77;608:18754;;;;8818:76;608:18754;;;;8895:77;608:18754;;;;8975:77;608:18754;;;;9053:77;608:18754;;;;9133:76;608:18754;;;;9210:77;608:18754;;-1:-1:-1;608:18754:25;9290:77;608:18754;;;;9368:77;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;9450:77;608:18754;;;;9528:77;608:18754;;;;;;9608:77;608:18754;;;;9686:77;608:18754;;;;9766:77;608:18754;;;;9844:76;608:18754;;;;9923:77;608:18754;;;;10001:77;608:18754;;;;10081:77;608:18754;;;;10159:77;608:18754;;;;10239:77;608:18754;;;;10317:76;608:18754;;-1:-1:-1;608:18754:25;10396:77;608:18754;;;;10474:76;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;10555:77;608:18754;;;;10633:74;608:18754;;;;;;10710:77;608:18754;;;;10788:76;608:18754;;;;10867:77;608:18754;;;;10945:77;608:18754;;;;11025:77;608:18754;;;;11103:76;608:18754;;;;11182:77;608:18754;;;;11260:76;608:18754;;;;11339:76;608:18754;;;;11416:76;608:18754;;-1:-1:-1;608:18754:25;11495:77;608:18754;;;;11573:77;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;11655:76;608:18754;;;;11732:76;608:18754;;;;;;11811:76;608:18754;;;;11888:77;608:18754;;;;11968:76;608:18754;;;;12045:77;608:18754;;;;12125:77;608:18754;;;;12203:76;608:18754;;;;12282:77;608:18754;;;;12360:76;608:18754;;;;12439:77;608:18754;;;;12517:77;608:18754;;-1:-1:-1;608:18754:25;12597:77;608:18754;;;;12675:76;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;12756:75;608:18754;;;;12832:77;608:18754;;;;;;12912:76;608:18754;;;;12989:77;608:18754;;;;13069:76;608:18754;;;;13146:77;608:18754;;;;13226:77;608:18754;;;;13304:77;608:18754;;;;13384:77;608:18754;;;;13462:76;608:18754;;;;13541:77;608:18754;;;;13619:76;608:18754;;-1:-1:-1;608:18754:25;13698:77;608:18754;;;;13776:77;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;13858:76;608:18754;;;;13935:77;608:18754;;;;;;14015:76;608:18754;;;;14092:75;608:18754;;;;14170:76;608:18754;;;;14247:77;608:18754;;;;14327:76;608:18754;;;;14404:76;608:18754;;;;14483:77;608:18754;;;;14561:77;608:18754;;;;14641:76;608:18754;;;;14718:76;608:18754;;-1:-1:-1;608:18754:25;14797:76;608:18754;;;;14874:77;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;14956:76;608:18754;;;;15033:76;608:18754;;;;;;15112:75;608:18754;;;;15188:77;608:18754;;;;15268:77;608:18754;;;;15346:76;608:18754;;;;15425:76;608:18754;;;;15502:76;608:18754;;;;15581:77;608:18754;;;;15659:77;608:18754;;;;15739:76;608:18754;;;;15816:77;608:18754;;-1:-1:-1;608:18754:25;15896:77;608:18754;;;;15974:77;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;16056:77;608:18754;;;;16134:77;608:18754;;;;;;16214:77;608:18754;;;;16292:77;608:18754;;;;16372:76;608:18754;;;;16449:76;608:18754;;;;16528:77;608:18754;;;;16606:77;608:18754;;;;16686:77;608:18754;;;;16764:76;608:18754;;;;16843:76;608:18754;;;;16920:77;608:18754;;-1:-1:-1;608:18754:25;17000:76;608:18754;;;;17077:77;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;17159:77;608:18754;;;;17237:77;608:18754;;;;;;17317:77;608:18754;;;;17395:77;608:18754;;;;17475:77;608:18754;;;;17553:77;608:18754;;;;17633:76;608:18754;;;;17710:77;608:18754;;;;17790:76;608:18754;;;;17867:75;608:18754;;;;17945:76;608:18754;;;;18022:76;608:18754;;-1:-1:-1;608:18754:25;18101:76;608:18754;;;;18178:77;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;18260:77;608:18754;;;;18338:77;608:18754;;;;;;18418:77;608:18754;;;;18496:77;608:18754;;;;18576:76;608:18754;;;;18653:77;608:18754;;;;18733:76;608:18754;;;;18810:77;608:18754;;;;18890:77;608:18754;;;;18968:77;608:18754;;;;19048:76;608:18754;;;;19125:76;608:18754;;-1:-1:-1;608:18754:25;;-1:-1:-1;608:18754:25;19204:77;608:18754;;;;19282:77;608:18754;;-1:-1:-1;608:18754:25;-1:-1:-1;608:18754:25;;;-1:-1:-1;;608:18754:25;;:::i;:::-;;471:22729;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;471:22729:25;;;-1:-1:-1;471:22729:25;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;471:22729:25;;;-1:-1:-1;471:22729:25;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;471:22729:25;;;-1:-1:-1;471:22729:25;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;471:22729:25;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;", - "linkReferences": { - "lib/semaphore/packages/contracts/contracts/base/Pairing.sol": { - "Pairing": [ - { - "start": 10254, - "length": 20 - }, - { - "start": 10281, - "length": 20 - }, - { - "start": 10573, - "length": 20 - }, - { - "start": 10600, - "length": 20 - }, - { - "start": 10892, - "length": 20 - }, - { - "start": 10919, - "length": 20 - }, - { - "start": 11211, - "length": 20 - }, - { - "start": 11238, - "length": 20 - }, - { - "start": 11666, - "length": 20 - }, - { - "start": 12054, - "length": 20 - } - ] - } - } - }, - "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639aca8f2a14610030575b600080fd5b61004361003e366004610e5f565b610045565b005b61004d610d7f565b6040805180820182528435815260208086013581830152908352815160808082018452868401358285019081526060808901359084015282528351808501855290870135815260a08701358184015281830152838201528151808301835260c0860135815260e0860135918101919091529082015260006100d76100d2601085610ecf565b61086d565b9050600081608001516000815181106100f2576100f2610eb9565b6020026020010151905073__$a0b3f842b95cabff7722bd983061aec5b3$__6318c77c958273__$a0b3f842b95cabff7722bd983061aec5b3$__636e1b6990866080015160018151811061014857610148610eb9565b6020908102919091018101516040516001600160e01b031960e085901b168152815160048201529101516024820152604481018f90526064016040805180830381865af415801561019d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c19190610ef6565b6040516001600160e01b031960e085901b1681528251600482015260209283015160248201528151604482015291015160648201526084016040805180830381865af4158015610215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102399190610ef6565b905073__$a0b3f842b95cabff7722bd983061aec5b3$__6318c77c958273__$a0b3f842b95cabff7722bd983061aec5b3$__636e1b6990866080015160028151811061028757610287610eb9565b6020908102919091018101516040516001600160e01b031960e085901b168152815160048201529101516024820152604481018e90526064016040805180830381865af41580156102dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103009190610ef6565b6040516001600160e01b031960e085901b1681528251600482015260209283015160248201528151604482015291015160648201526084016040805180830381865af4158015610354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103789190610ef6565b905073__$a0b3f842b95cabff7722bd983061aec5b3$__6318c77c958273__$a0b3f842b95cabff7722bd983061aec5b3$__636e1b699086608001516003815181106103c6576103c6610eb9565b6020908102919091018101516040516001600160e01b031960e085901b168152815160048201529101516024820152604481018d90526064016040805180830381865af415801561041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043f9190610ef6565b6040516001600160e01b031960e085901b1681528251600482015260209283015160248201528151604482015291015160648201526084016040805180830381865af4158015610493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b79190610ef6565b905073__$a0b3f842b95cabff7722bd983061aec5b3$__6318c77c958273__$a0b3f842b95cabff7722bd983061aec5b3$__636e1b6990866080015160048151811061050557610505610eb9565b6020908102919091018101516040516001600160e01b031960e085901b168152815160048201529101516024820152604481018c90526064016040805180830381865af415801561055a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057e9190610ef6565b6040516001600160e01b031960e085901b1681528251600482015260209283015160248201528151604482015291015160648201526084016040805180830381865af41580156105d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f69190610ef6565b60408051600480825260a0820190925291925060009190816020015b604080518082019091526000808252602082015281526020019060019003908161061257505060408051600480825260a0820190925291925060009190602082015b61065c610dd0565b815260200190600190039081610654575050855160405163a680077560e01b815291925073__$a0b3f842b95cabff7722bd983061aec5b3$__9163a6800775916106a891600401610f53565b6040805180830381865af41580156106c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e89190610ef6565b826000815181106106fb576106fb610eb9565b602002602001018190525084602001518160008151811061071e5761071e610eb9565b602002602001018190525083600001518260018151811061074157610741610eb9565b602002602001018190525083602001518160018151811061076457610764610eb9565b6020026020010181905250828260028151811061078357610783610eb9565b60200260200101819052508360400151816002815181106107a6576107a6610eb9565b60200260200101819052508460400151826003815181106107c9576107c9610eb9565b60200260200101819052508360600151816003815181106107ec576107ec610eb9565b6020908102919091010152604051632f3ed53960e01b815273__$a0b3f842b95cabff7722bd983061aec5b3$__90632f3ed539906108309085908590600401610f93565b60006040518083038186803b15801561084857600080fd5b505af415801561085c573d6000803e3d6000fd5b505050505050505050505050505050565b610875610df0565b61087d610df0565b6040805180820182527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e281527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266020808301919091529083528151608080820184527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c8285019081527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab606080850191909152908352845180860186527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a781527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8818601528385015285840192909252835190810184527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28185019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed92820192909252908152825180840184527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b81527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81840152918101919091528282015280518082019091528060008560118110610a5c57610a5c610eb9565b600e02016000604080518082019182905292600292830201919082845b815481526020019060010190808311610a79575050505050815260200160008560118110610aa957610aa9610eb9565b600e02016001604080518082019182905292600292830201919082845b815481526020019060010190808311610ac657505050919092525050606082015260408051600580825260c0820190925290816020015b6040805180820190915260008082526020820152815260200190600190039081610afd5750506080820152604080518082019091528060008560118110610b4657610b46610eb9565b600e0201600280020160000154815260200160008560118110610b6b57610b6b610eb9565b600e02016002800201600101548152508160800151600081518110610b9257610b92610eb9565b6020026020010181905250604051806040016040528060008560118110610bbb57610bbb610eb9565b600e020160036002020160000154815260200160008560118110610be157610be1610eb9565b600e0201600360020201600101548152508160800151600181518110610c0957610c09610eb9565b6020026020010181905250604051806040016040528060008560118110610c3257610c32610eb9565b600e020160046002020160000154815260200160008560118110610c5857610c58610eb9565b600e0201600460020201600101548152508160800151600281518110610c8057610c80610eb9565b6020026020010181905250604051806040016040528060008560118110610ca957610ca9610eb9565b600e020160056002020160000154815260200160008560118110610ccf57610ccf610eb9565b600e0201600560020201600101548152508160800151600381518110610cf757610cf7610eb9565b6020026020010181905250604051806040016040528060008560118110610d2057610d20610eb9565b600e020160066002020160000154815260200160008560118110610d4657610d46610eb9565b600e0201600660020201600101548152508160800151600481518110610d6e57610d6e610eb9565b602090810291909101015292915050565b6040805160a081019091526000606082018181526080830191909152815260208101610da9610dd0565b8152602001610dcb604051806040016040528060008152602001600081525090565b905290565b6040518060400160405280610de3610e41565b8152602001610dcb610e41565b6040805160e08101909152600060a0820181815260c0830191909152815260208101610e1a610dd0565b8152602001610e27610dd0565b8152602001610e34610dd0565b8152602001606081525090565b60405180604001604052806002906020820280368337509192915050565b6000806000806000806101a08789031215610e7957600080fd5b86359550602087013594506040870135935060608701359250610180870188811115610ea457600080fd5b60808801925080359150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b81810381811115610ef057634e487b7160e01b600052601160045260246000fd5b92915050565b600060408284031215610f0857600080fd5b6040516040810181811067ffffffffffffffff82111715610f3957634e487b7160e01b600052604160045260246000fd5b604052825181526020928301519281019290925250919050565b815181526020808301519082015260408101610ef0565b8060005b6002811015610f8d578151845260209384019390910190600101610f6e565b50505050565b60408082528351828201819052600091906020906060850190828801855b82811015610fde57610fce84835180518252602090810151910152565b9285019290840190600101610fb1565b5050508481038286015285518082528683019183019060005b8181101561102f57835161100c848251610f6a565b85015161101b84880182610f6a565b509284019260809290920191600101610ff7565b50909897505050505050505056fea2646970667358221220f0675c24c442d1d7280cdbfcbba60d3bf88585e58c8ba40728c4419bb7f8a23164736f6c63430008130033", - "sourceMap": "471:22729:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19420:1289;;;;;;:::i;:::-;;:::i;:::-;;;19670:14;;:::i;:::-;19701:35;;;;;;;;19717:8;;19701:35;;19717:8;19727;;;;19701:35;;;;19695:41;;;19752:59;;;;;;;;19769:8;;;;19752:59;;;;;;;19779:8;;;;19752:59;;;;;;;;;;;;;19791:8;;;;19752:59;;19801:8;;;;19752:59;;;;-1:-1:-1;;;19752:59:25;19746:3;;;:65;19827:35;;;;;;;19843:8;;;;19827:35;;19853:8;;;;19827:35;;;;;;;19821:3;;;:41;-1:-1:-1;19901:41:25;19921:20;19939:2;19921:15;:20;:::i;:::-;19901:19;:41::i;:::-;19873:69;;19953:27;19983:2;:5;;;19989:1;19983:8;;;;;;;;:::i;:::-;;;;;;;19953:38;;20009:7;:16;20026:4;20032:7;:18;20051:2;:5;;;20057:1;20051:8;;;;;;;;:::i;:::-;;;;;;;;;;;;20032:44;;-1:-1:-1;;;;;;20032:44:25;;;;;;;1053:12:78;;20032:44:25;;;1041:25:78;1104:16;;1098:23;1082:14;;;1075:47;1427:18;;;1420:34;;;1340:18;;20032:44:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20009:68;;-1:-1:-1;;;;;;20009:68:25;;;;;;;1053:12:78;;20009:68:25;;;1041:25:78;1115:4;1104:16;;;1098:23;1082:14;;;1075:47;1053:12;;2575:18;;;1041:25;1104:16;;1098:23;1082:14;;;1075:47;2460:19;;20009:68:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20002:75;;20094:7;:16;20111:4;20117:7;:18;20136:2;:5;;;20142:1;20136:8;;;;;;;;:::i;:::-;;;;;;;;;;;;20117:43;;-1:-1:-1;;;;;;20117:43:25;;;;;;;1053:12:78;;20117:43:25;;;1041:25:78;1104:16;;1098:23;1082:14;;;1075:47;1427:18;;;1420:34;;;1340:18;;20117:43:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20094:67;;-1:-1:-1;;;;;;20094:67:25;;;;;;;1053:12:78;;20094:67:25;;;1041:25:78;1115:4;1104:16;;;1098:23;1082:14;;;1075:47;1053:12;;2575:18;;;1041:25;1104:16;;1098:23;1082:14;;;1075:47;2460:19;;20094:67:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20087:74;;20178:7;:16;20195:4;20201:7;:18;20220:2;:5;;;20226:1;20220:8;;;;;;;;:::i;:::-;;;;;;;;;;;;20201:36;;-1:-1:-1;;;;;;20201:36:25;;;;;;;1053:12:78;;20201:36:25;;;1041:25:78;1104:16;;1098:23;1082:14;;;1075:47;1427:18;;;1420:34;;;1340:18;;20201:36:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20178:60;;-1:-1:-1;;;;;;20178:60:25;;;;;;;1053:12:78;;20178:60:25;;;1041:25:78;1115:4;1104:16;;;1098:23;1082:14;;;1075:47;1053:12;;2575:18;;;1041:25;1104:16;;1098:23;1082:14;;;1075:47;2460:19;;20178:60:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20171:67;;20255:7;:16;20272:4;20278:7;:18;20297:2;:5;;;20303:1;20297:8;;;;;;;;:::i;:::-;;;;;;;;;;;;20278:47;;-1:-1:-1;;;;;;20278:47:25;;;;;;;1053:12:78;;20278:47:25;;;1041:25:78;1104:16;;1098:23;1082:14;;;1075:47;1427:18;;;1420:34;;;1340:18;;20278:47:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20255:71;;-1:-1:-1;;;;;;20255:71:25;;;;;;;1053:12:78;;20255:71:25;;;1041:25:78;1115:4;1104:16;;;1098:23;1082:14;;;1075:47;1053:12;;2575:18;;;1041:25;1104:16;;1098:23;1082:14;;;1075:47;2460:19;;20255:71:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20367:24;;;20389:1;20367:24;;;;;;;;;20248:78;;-1:-1:-1;20337:27:25;;20367:24;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;20367:24:25;;;;;;;;;;;;-1:-1:-1;;20431:24:25;;;20453:1;20431:24;;;;;;;;;20337:54;;-1:-1:-1;20401:27:25;;20431:24;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;20489:3:25;;20474:19;;-1:-1:-1;;;20474:19:25;;20401:54;;-1:-1:-1;20474:7:25;;:14;;:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20466:2;20469:1;20466:5;;;;;;;;:::i;:::-;;;;;;:27;;;;20511:1;:3;;;20503:2;20506:1;20503:5;;;;;;;;:::i;:::-;;;;;;:11;;;;20532:2;:8;;;20524:2;20527:1;20524:5;;;;;;;;:::i;:::-;;;;;;:16;;;;20558:2;:8;;;20550:2;20553:1;20550:5;;;;;;;;:::i;:::-;;;;;;:16;;;;20584:4;20576:2;20579:1;20576:5;;;;;;;;:::i;:::-;;;;;;:12;;;;20606:2;:9;;;20598:2;20601:1;20598:5;;;;;;;;:::i;:::-;;;;;;:17;;;;20633:1;:3;;;20625:2;20628:1;20625:5;;;;;;;;:::i;:::-;;;;;;:11;;;;20654:2;:9;;;20646:2;20649:1;20646:5;;;;;;;;:::i;:::-;;;;;;;;;;:17;20674:28;;-1:-1:-1;;;20674:28:25;;:7;;:20;;:28;;20695:2;;20699;;20674:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19660:1049;;;;;19420:1289;;;;;;:::o;20893:1991::-;20967:22;;:::i;:::-;21001:25;;:::i;:::-;21048:206;;;;;;;;21077:77;21048:206;;21168:76;21048:206;;;;;;;;21037:217;;;21276:459;;;;;;;;21323:76;21276:459;;;;;;21417:76;21276:459;;;;;;;;;;;;;;;;;;21539:77;21276:459;;21634:77;21276:459;;;;;;;;21265:8;;;:470;;;;21758:459;;;;;;;21805:77;21758:459;;;;;;21900:77;21758:459;;;;;;;;;;;;;;;;;22023:76;21758:459;;22117:76;21758:459;;;;;;;;;;;21746:9;;;:471;22240:73;;;;;;;;;-1:-1:-1;22266:13:25;22256:24;;;;;;;:::i;:::-;;;;22281:1;22240:73;;;;;;;;;;;22256:27;;;;;;;;22240:73;;;;;;;;;;;;;;;;;;;;;;;;;;22285:9;22295:13;22285:24;;;;;;;:::i;:::-;;;;22310:1;22240:73;;;;;;;;;;;22285:27;;;;;;;;22240:73;;;;;;;;;;;;;;;;;-1:-1:-1;;;22240:73:25;;;;-1:-1:-1;;22228:9:25;;;:85;22332:24;;;22354:1;22332:24;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;22332:24:25;;;;;;;;;;;;-1:-1:-1;;22324:5:25;;;:32;22378:79;;;;;;;;;;-1:-1:-1;22404:13:25;22394:24;;;;;;;:::i;:::-;;;;22419:1;22394:27;;;22422:1;22394:30;;22378:79;;;;22426:9;22436:13;22426:24;;;;;;;:::i;:::-;;;;22451:1;22426:27;;;22454:1;22426:30;;22378:79;;;22367:2;:5;;;22373:1;22367:8;;;;;;;;:::i;:::-;;;;;;:90;;;;22478:79;;;;;;;;22494:9;22504:13;22494:24;;;;;;;:::i;:::-;;;;22519:1;22494:27;;;22522:1;22494:30;;22478:79;;;;22526:9;22536:13;22526:24;;;;;;;:::i;:::-;;;;22551:1;22526:27;;;22554:1;22526:30;;22478:79;;;22467:2;:5;;;22473:1;22467:8;;;;;;;;:::i;:::-;;;;;;:90;;;;22578:79;;;;;;;;22594:9;22604:13;22594:24;;;;;;;:::i;:::-;;;;22619:1;22594:27;;;22622:1;22594:30;;22578:79;;;;22626:9;22636:13;22626:24;;;;;;;:::i;:::-;;;;22651:1;22626:27;;;22654:1;22626:30;;22578:79;;;22567:2;:5;;;22573:1;22567:8;;;;;;;;:::i;:::-;;;;;;:90;;;;22678:79;;;;;;;;22694:9;22704:13;22694:24;;;;;;;:::i;:::-;;;;22719:1;22694:27;;;22722:1;22694:30;;22678:79;;;;22726:9;22736:13;22726:24;;;;;;;:::i;:::-;;;;22751:1;22726:27;;;22754:1;22726:30;;22678:79;;;22667:2;:5;;;22673:1;22667:8;;;;;;;;:::i;:::-;;;;;;:90;;;;22778:79;;;;;;;;22794:9;22804:13;22794:24;;;;;;;:::i;:::-;;;;22819:1;22794:27;;;22822:1;22794:30;;22778:79;;;;22826:9;22836:13;22826:24;;;;;;;:::i;:::-;;;;22851:1;22826:27;;;22854:1;22826:30;;22778:79;;;22767:2;:5;;;22773:1;22767:8;;;;;;;;:::i;:::-;;;;;;;;;;:90;22875:2;20893:1991;-1:-1:-1;;20893:1991:25:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:599:78:-;143:6;151;159;167;175;183;236:3;224:9;215:7;211:23;207:33;204:53;;;253:1;250;243:12;204:53;289:9;276:23;266:33;;346:2;335:9;331:18;318:32;308:42;;397:2;386:9;382:18;369:32;359:42;;448:2;437:9;433:18;420:32;410:42;;486:3;475:9;471:19;509:7;505:2;502:15;499:35;;;530:1;527;520:12;499:35;568:3;557:9;553:19;543:29;;604:2;591:16;581:26;;;14:599;;;;;;;;:::o;618:127::-;679:10;674:3;670:20;667:1;660:31;710:4;707:1;700:15;734:4;731:1;724:15;750:225;817:9;;;838:11;;;835:134;;;891:10;886:3;882:20;879:1;872:31;926:4;923:1;916:15;954:4;951:1;944:15;835:134;750:225;;;;:::o;1597:599::-;1693:6;1746:2;1734:9;1725:7;1721:23;1717:32;1714:52;;;1762:1;1759;1752:12;1714:52;1795:2;1789:9;1837:2;1829:6;1825:15;1906:6;1894:10;1891:22;1870:18;1858:10;1855:34;1852:62;1849:185;;;1956:10;1951:3;1947:20;1944:1;1937:31;1991:4;1988:1;1981:15;2019:4;2016:1;2009:15;1849:185;2050:2;2043:22;2089:16;;2074:32;;2160:2;2145:18;;;2139:25;2122:15;;;2115:50;;;;-1:-1:-1;2081:6:78;1597:599;-1:-1:-1;1597:599:78:o;2605:256::-;1053:12;;1041:25;;1115:4;1104:16;;;1098:23;1082:14;;;1075:47;2799:2;2784:18;;2811:44;980:148;2866:326;2959:5;2982:1;2992:194;3006:4;3003:1;3000:11;2992:194;;;3065:13;;3053:26;;3102:4;3126:12;;;;3161:15;;;;3026:1;3019:9;2992:194;;;2996:3;;2866:326;;:::o;3197:1474::-;3558:2;3610:21;;;3680:13;;3583:18;;;3702:22;;;3529:4;;3558:2;3777:4;;3755:2;3740:18;;;3804:15;;;3529:4;3847:188;3861:6;3858:1;3855:13;3847:188;;;3910:45;3951:3;3942:6;3936:13;1053:12;;1041:25;;1115:4;1104:16;;;1098:23;1082:14;;1075:47;980:148;3910:45;3975:12;;;;4010:15;;;;3883:1;3876:9;3847:188;;;-1:-1:-1;;;4071:19:78;;;4051:18;;;4044:47;4141:13;;4163:21;;;4239:15;;;;4202:12;;;4274:1;4284:359;4300:8;4295:3;4292:17;4284:359;;;4371:8;4365:15;4393:42;4429:5;4424:2;4418:9;4393:42;:::i;:::-;4474:11;;4468:18;4499:54;4538:14;;;4468:18;4499:54;:::i;:::-;-1:-1:-1;4616:17:78;;;;4586:4;4575:16;;;;;4328:1;4319:11;4284:359;;;-1:-1:-1;4660:5:78;;3197:1474;-1:-1:-1;;;;;;;;3197:1474:78:o", - "linkReferences": { - "lib/semaphore/packages/contracts/contracts/base/Pairing.sol": { - "Pairing": [ - { - "start": 254, - "length": 20 - }, - { - "start": 281, - "length": 20 - }, - { - "start": 573, - "length": 20 - }, - { - "start": 600, - "length": 20 - }, - { - "start": 892, - "length": 20 - }, - { - "start": 919, - "length": 20 - }, - { - "start": 1211, - "length": 20 - }, - { - "start": 1238, - "length": 20 - }, - { - "start": 1666, - "length": 20 - }, - { - "start": 2054, - "length": 20 - } - ] - } - } - }, - "methodIdentifiers": { - "verifyProof(uint256,uint256,uint256,uint256,uint256[8],uint256)": "9aca8f2a" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"merkleTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifier\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"merkleTreeDepth\",\"type\":\"uint256\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract allows you to verify whether a Semaphore proof is correct. It is a modified version of the Groth16 verifier template of SnarkJS (https://github.com/iden3/snarkjs) adapted to Semaphore. The Pairing library is external.\",\"kind\":\"dev\",\"methods\":{\"verifyProof(uint256,uint256,uint256,uint256,uint256[8],uint256)\":{\"details\":\"See {ISemaphoreVerifier-verifyProof}.\"}},\"title\":\"Semaphore verifier contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal code to allow users to verify their Semaphore proofs.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/semaphore/packages/contracts/contracts/base/SemaphoreVerifier.sol\":\"SemaphoreVerifier\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/semaphore/packages/contracts/contracts/base/Pairing.sol\":{\"keccak256\":\"0x44390032d1247a0e3931eb39f1220f170db653c6b3b4321b2e2b0034f5e07334\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://725cc4bdf047d17bf9d47c9a0205d90897c0da334de8e556c1a3049b1beb9aed\",\"dweb:/ipfs/QmSo7SXpqyrqHFhYi7F8SGjcVxCdVr6FNdgiw7Qfre1NGt\"]},\"lib/semaphore/packages/contracts/contracts/base/SemaphoreVerifier.sol\":{\"keccak256\":\"0xdac8bac3900f22d05425a988424f715ab38cc0f248412d5ba5702c01df67b8ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cade6d58530ba724b5d21bb728b7fdb8713f7d2bf54f8f735240b8ae7538e38e\",\"dweb:/ipfs/QmeW8JcY7rGXjaZa25PsTkjrsPNCGXLr9NsTLbJKKNSoj9\"]},\"lib/semaphore/packages/contracts/contracts/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0x5b5b1118ed7936014d3e410419d6048cc9c0ae69fd700442593f2c2cc782e1af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://601cf2c7e3c98735ff38eaff225af090ec847d63ec599ecc2340323145430668\",\"dweb:/ipfs/QmUoZYgge8GmQokXrYiRXn24s4HgBZetiNWQssiSoTFrdi\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.19+commit.7dd6d404" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "merkleTreeRoot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nullifierHash", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "signal", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "externalNullifier", - "type": "uint256" - }, - { - "internalType": "uint256[8]", - "name": "proof", - "type": "uint256[8]" - }, - { - "internalType": "uint256", - "name": "merkleTreeDepth", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "verifyProof" - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "verifyProof(uint256,uint256,uint256,uint256,uint256[8],uint256)": { - "details": "See {ISemaphoreVerifier-verifyProof}." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [ - ":@zk-kit/=lib/zk-kit/packages/", - ":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", - ":ds-test/=lib/ds-test/src/", - ":forge-std/=lib/forge-std/src/", - ":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", - ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", - ":semaphore/=lib/semaphore/packages/contracts/contracts/", - ":solmate/=lib/solmate/src/", - ":zk-kit/=lib/zk-kit/" - ], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "lib/semaphore/packages/contracts/contracts/base/SemaphoreVerifier.sol": "SemaphoreVerifier" - }, - "libraries": {} - }, - "sources": { - "lib/semaphore/packages/contracts/contracts/base/Pairing.sol": { - "keccak256": "0x44390032d1247a0e3931eb39f1220f170db653c6b3b4321b2e2b0034f5e07334", - "urls": [ - "bzz-raw://725cc4bdf047d17bf9d47c9a0205d90897c0da334de8e556c1a3049b1beb9aed", - "dweb:/ipfs/QmSo7SXpqyrqHFhYi7F8SGjcVxCdVr6FNdgiw7Qfre1NGt" - ], - "license": "MIT" - }, - "lib/semaphore/packages/contracts/contracts/base/SemaphoreVerifier.sol": { - "keccak256": "0xdac8bac3900f22d05425a988424f715ab38cc0f248412d5ba5702c01df67b8ae", - "urls": [ - "bzz-raw://cade6d58530ba724b5d21bb728b7fdb8713f7d2bf54f8f735240b8ae7538e38e", - "dweb:/ipfs/QmeW8JcY7rGXjaZa25PsTkjrsPNCGXLr9NsTLbJKKNSoj9" - ], - "license": "MIT" - }, - "lib/semaphore/packages/contracts/contracts/interfaces/ISemaphoreVerifier.sol": { - "keccak256": "0x5b5b1118ed7936014d3e410419d6048cc9c0ae69fd700442593f2c2cc782e1af", - "urls": [ - "bzz-raw://601cf2c7e3c98735ff38eaff225af090ec847d63ec599ecc2340323145430668", - "dweb:/ipfs/QmUoZYgge8GmQokXrYiRXn24s4HgBZetiNWQssiSoTFrdi" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "lib/semaphore/packages/contracts/contracts/base/SemaphoreVerifier.sol", - "id": 24241, - "exportedSymbols": { - "ISemaphoreVerifier": [ - 24290 - ], - "Pairing": [ - 23380 - ], - "SemaphoreVerifier": [ - 24240 - ] - }, - "nodeType": "SourceUnit", - "src": "31:23170:25", - "nodes": [ - { - "id": 23382, - "nodeType": "PragmaDirective", - "src": "31:23:25", - "nodes": [], - "literals": [ - "solidity", - "^", - "0.8", - ".4" - ] - }, - { - "id": 23383, - "nodeType": "ImportDirective", - "src": "56:46:25", - "nodes": [], - "absolutePath": "lib/semaphore/packages/contracts/contracts/interfaces/ISemaphoreVerifier.sol", - "file": "../interfaces/ISemaphoreVerifier.sol", - "nameLocation": "-1:-1:-1", - "scope": 24241, - "sourceUnit": 24291, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 24240, - "nodeType": "ContractDefinition", - "src": "471:22729:25", - "nodes": [ - { - "id": 23388, - "nodeType": "UsingForDirective", - "src": "526:20:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 23387, - "name": "Pairing", - "nameLocations": [ - "532:7:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 23380, - "src": "532:7:25" - } - }, - { - "id": 23771, - "nodeType": "VariableDeclaration", - "src": "608:18754:25", - "nodes": [], - "constant": false, - "mutability": "mutable", - "name": "VK_POINTS", - "nameLocation": "627:9:25", - "scope": 24240, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2][7][17]" - }, - "typeName": { - "baseType": { - "baseType": { - "baseType": { - "id": 23389, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "608:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 23391, - "length": { - "hexValue": "32", - "id": 23390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "616:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "608:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "id": 23393, - "length": { - "hexValue": "37", - "id": 23392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7_by_1", - "typeString": "int_const 7" - }, - "value": "7" - }, - "nodeType": "ArrayTypeName", - "src": "608:13:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage_ptr", - "typeString": "uint256[2][7]" - } - }, - "id": 23395, - "length": { - "hexValue": "3137", - "id": 23394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "622:2:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_17_by_1", - "typeString": "int_const 17" - }, - "value": "17" - }, - "nodeType": "ArrayTypeName", - "src": "608:17:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage_ptr", - "typeString": "uint256[2][7][17]" - } - }, - "value": { - "components": [ - { - "components": [ - { - "components": [ - { - "hexValue": "3133343036383131353939313536353037353238333631373733373633363831333536333132363433353337393831303339393934363836333133333833323433383331393536333936313136", - "id": 23396, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "642:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13406811599156507528361773763681356312643537981039994686313383243831956396116_by_1", - "typeString": "int_const 1340...(69 digits omitted)...6116" - }, - "value": "13406811599156507528361773763681356312643537981039994686313383243831956396116" - }, - { - "hexValue": "3136323433393636383631303739363334393538313235353131363532353930373631383436393538343731333538363233303430343236353939303030393034303036343236323130303332", - "id": 23397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "720:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16243966861079634958125511652590761846958471358623040426599000904006426210032_by_1", - "typeString": "int_const 1624...(69 digits omitted)...0032" - }, - "value": "16243966861079634958125511652590761846958471358623040426599000904006426210032" - } - ], - "id": 23398, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "641:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3131373831353936353334353832313433353738313230343034373232373339323738353137353634303235343937353733303731373535323533393732323635383931383838313137333734", - "id": 23399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "800:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11781596534582143578120404722739278517564025497573071755253972265891888117374_by_1", - "typeString": "int_const 1178...(69 digits omitted)...7374" - }, - "value": "11781596534582143578120404722739278517564025497573071755253972265891888117374" - }, - { - "hexValue": "3135363838303833363739323337393232313634363733353138373538313831343631353832363031383533383733323136333139373131313536333937343337363031383333393936323232", - "id": 23400, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "878:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15688083679237922164673518758181461582601853873216319711156397437601833996222_by_1", - "typeString": "int_const 1568...(69 digits omitted)...6222" - }, - "value": "15688083679237922164673518758181461582601853873216319711156397437601833996222" - } - ], - "id": 23401, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "799:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "31393634343034393330353238313136383233373933303033363536373634313736313038363639363135373530343232323032333737333538393933303730393335303639333037373230", - "id": 23402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "958:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1964404930528116823793003656764176108669615750422202377358993070935069307720_by_1", - "typeString": "int_const 1964...(68 digits omitted)...7720" - }, - "value": "1964404930528116823793003656764176108669615750422202377358993070935069307720" - }, - { - "hexValue": "32313337373134393936363733363934383238323037343337353830333831383336343930383738303730373331373638383035393734353036333931303234353935393838383137343234", - "id": 23403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1035:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2137714996673694828207437580381836490878070731768805974506391024595988817424_by_1", - "typeString": "int_const 2137...(68 digits omitted)...7424" - }, - "value": "2137714996673694828207437580381836490878070731768805974506391024595988817424" - } - ], - "id": 23404, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "957:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3139353638383933373037373630383433333430383438393932313834323333313934343333313737333732393235343135313136303533333638323131313232373139333436363731313236", - "id": 23405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1114:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19568893707760843340848992184233194433177372925415116053368211122719346671126_by_1", - "typeString": "int_const 1956...(69 digits omitted)...1126" - }, - "value": "19568893707760843340848992184233194433177372925415116053368211122719346671126" - }, - { - "hexValue": "3131363339343639353638363239313839393138303436393634313932333035323530343732313932363937363132323031353234313335353630313738363332383234323832383138363134", - "id": 23406, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1192:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11639469568629189918046964192305250472192697612201524135560178632824282818614_by_1", - "typeString": "int_const 1163...(69 digits omitted)...8614" - }, - "value": "11639469568629189918046964192305250472192697612201524135560178632824282818614" - } - ], - "id": 23407, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1113:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "35333137323638383739363837343834393537343337383739373832353139393138353439313237393339383932323130323437353733313933363133393030323631343934333133383235", - "id": 23408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1272:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5317268879687484957437879782519918549127939892210247573193613900261494313825_by_1", - "typeString": "int_const 5317...(68 digits omitted)...3825" - }, - "value": "5317268879687484957437879782519918549127939892210247573193613900261494313825" - }, - { - "hexValue": "353238313734333934393735303835303036343433353433373733373037373032383338373236373335393333313136313336313032353930343438333537323738373137393933373434", - "id": 23409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1349:75:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_528174394975085006443543773707702838726735933116136102590448357278717993744_by_1", - "typeString": "int_const 5281...(67 digits omitted)...3744" - }, - "value": "528174394975085006443543773707702838726735933116136102590448357278717993744" - } - ], - "id": 23410, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1271:154:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3134383635393138303035313736373232313136343733373330323036363232303636383435383636353339313433353534373331303934333734333534393531363735323439373232373331", - "id": 23411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1427:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_14865918005176722116473730206622066845866539143554731094374354951675249722731_by_1", - "typeString": "int_const 1486...(69 digits omitted)...2731" - }, - "value": "14865918005176722116473730206622066845866539143554731094374354951675249722731" - }, - { - "hexValue": "33313937373730353638343833393533363634333633373430333835383833343537383033303431363835393032393635363638323839333038363635393534353130333733333830333434", - "id": 23412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1505:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3197770568483953664363740385883457803041685902965668289308665954510373380344_by_1", - "typeString": "int_const 3197...(68 digits omitted)...0344" - }, - "value": "3197770568483953664363740385883457803041685902965668289308665954510373380344" - } - ], - "id": 23413, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1426:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "36383633333538373231343935343934343231303232373133363637383038323437363532343235313738393730343533333030373132343335383330363532363739303338393138393837", - "id": 23414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1584:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6863358721495494421022713667808247652425178970453300712435830652679038918987_by_1", - "typeString": "int_const 6863...(68 digits omitted)...8987" - }, - "value": "6863358721495494421022713667808247652425178970453300712435830652679038918987" - }, - { - "hexValue": "3135303235383136343333333733333131373938333038373632373039303732303634343137303031333930383533313033383732303634363134313734353934393237333539313331323831", - "id": 23415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1661:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15025816433373311798308762709072064417001390853103872064614174594927359131281_by_1", - "typeString": "int_const 1502...(69 digits omitted)...1281" - }, - "value": "15025816433373311798308762709072064417001390853103872064614174594927359131281" - } - ], - "id": 23416, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1583:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23417, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "640:1100:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "3135363239323030373732373638323638383134393539333330333530303233393230313833303837353231323735343737303437363236343035313133383533313930313837303331353233", - "id": 23418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1743:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15629200772768268814959330350023920183087521275477047626405113853190187031523_by_1", - "typeString": "int_const 1562...(69 digits omitted)...1523" - }, - "value": "15629200772768268814959330350023920183087521275477047626405113853190187031523" - }, - { - "hexValue": "3133353839363839333035363631323331353638313632333336323633313937393630353730393135383930323939383134343836383835383531393132343532303736393239313135343830", - "id": 23419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1821:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13589689305661231568162336263197960570915890299814486885851912452076929115480_by_1", - "typeString": "int_const 1358...(69 digits omitted)...5480" - }, - "value": "13589689305661231568162336263197960570915890299814486885851912452076929115480" - } - ], - "id": 23420, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1742:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3131343634393139323835393234393330393733383533313734343933353531393735363332373339363034323534343938353930333534323030323732313135383434393833343933303239", - "id": 23421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1901:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11464919285924930973853174493551975632739604254498590354200272115844983493029_by_1", - "typeString": "int_const 1146...(69 digits omitted)...3029" - }, - "value": "11464919285924930973853174493551975632739604254498590354200272115844983493029" - }, - { - "hexValue": "3136303034323231373030333537323432323535383435353335383438303234313738353434363136333838303137393635343638363934373736313831323437393833383331393935353632", - "id": 23422, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1979:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16004221700357242255845535848024178544616388017965468694776181247983831995562_by_1", - "typeString": "int_const 1600...(69 digits omitted)...5562" - }, - "value": "16004221700357242255845535848024178544616388017965468694776181247983831995562" - } - ], - "id": 23423, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1900:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3137373839343338323932353532353731333130373339363035373337383936303330343636353831323737383837363630393937353331373037393131323536303538363530383530393130", - "id": 23424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2059:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_17789438292552571310739605737896030466581277887660997531707911256058650850910_by_1", - "typeString": "int_const 1778...(69 digits omitted)...0910" - }, - "value": "17789438292552571310739605737896030466581277887660997531707911256058650850910" - }, - { - "hexValue": "34313132363537353039353035333731363331383235343933323234373438333130303631313834393732383937343035353839313135323038313538323038323934353831343732303136", - "id": 23425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2137:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4112657509505371631825493224748310061184972897405589115208158208294581472016_by_1", - "typeString": "int_const 4112...(68 digits omitted)...2016" - }, - "value": "4112657509505371631825493224748310061184972897405589115208158208294581472016" - } - ], - "id": 23426, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2058:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "33333232303532393230313139383334343735383432333830323430363839343934313133393834383837373835373333333136353137363830383931323038353439313138393637313535", - "id": 23427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2216:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3322052920119834475842380240689494113984887785733316517680891208549118967155_by_1", - "typeString": "int_const 3322...(68 digits omitted)...7155" - }, - "value": "3322052920119834475842380240689494113984887785733316517680891208549118967155" - }, - { - "hexValue": "333831303239333935373739373935333939383430303139343837303539313236323436323433363431383836303837333230383735353731303637373336353034303331353537313438", - "id": 23428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2293:75:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_381029395779795399840019487059126246243641886087320875571067736504031557148_by_1", - "typeString": "int_const 3810...(67 digits omitted)...7148" - }, - "value": "381029395779795399840019487059126246243641886087320875571067736504031557148" - } - ], - "id": 23429, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2215:154:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "38373737363435323233363137333831303935343633343135363930393833343231333038383534333638353833383931363930333838383530333837333137303439333230343530343030", - "id": 23430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2371:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_8777645223617381095463415690983421308854368583891690388850387317049320450400_by_1", - "typeString": "int_const 8777...(68 digits omitted)...0400" - }, - "value": "8777645223617381095463415690983421308854368583891690388850387317049320450400" - }, - { - "hexValue": "3131393233353832313137333639313434343133373439373236303930393637333431363133323636303730393039313639393437303539343937393532363932303532303230333331393538", - "id": 23431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2448:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11923582117369144413749726090967341613266070909169947059497952692052020331958_by_1", - "typeString": "int_const 1192...(69 digits omitted)...1958" - }, - "value": "11923582117369144413749726090967341613266070909169947059497952692052020331958" - } - ], - "id": 23432, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2370:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3135343933323633353731353238343031393530393934393333303733323436363033353537313538303437303931393633343837323233363638323430333334383739313733383835353831", - "id": 23433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2528:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15493263571528401950994933073246603557158047091963487223668240334879173885581_by_1", - "typeString": "int_const 1549...(69 digits omitted)...5581" - }, - "value": "15493263571528401950994933073246603557158047091963487223668240334879173885581" - }, - { - "hexValue": "36333135353332313733393531363137313135383536303535373735303938353332383038363935323238323934343337323739383434333434343636313633383733313637303230373030", - "id": 23434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2606:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6315532173951617115856055775098532808695228294437279844344466163873167020700_by_1", - "typeString": "int_const 6315...(68 digits omitted)...0700" - }, - "value": "6315532173951617115856055775098532808695228294437279844344466163873167020700" - } - ], - "id": 23435, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2527:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "33343831363337343231303535333737313036313430313937393338313735393538313535333334333133393030383234363937313933393332393836373731303137363235343932323435", - "id": 23436, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2685:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3481637421055377106140197938175958155334313900824697193932986771017625492245_by_1", - "typeString": "int_const 3481...(68 digits omitted)...2245" - }, - "value": "3481637421055377106140197938175958155334313900824697193932986771017625492245" - }, - { - "hexValue": "3230303838343136313336303930353135303931333030393134363631393530303937363934343530393834353230323335363437393930353732343431313334323135323430393437393332", - "id": 23437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2762:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20088416136090515091300914661950097694450984520235647990572441134215240947932_by_1", - "typeString": "int_const 2008...(69 digits omitted)...7932" - }, - "value": "20088416136090515091300914661950097694450984520235647990572441134215240947932" - } - ], - "id": 23438, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2684:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23439, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1741:1100:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "39323138333230393531353336363432343939313433323238333237303131393031383134353837383236393438353034383731383136323733313834363838313838303139393536323932", - "id": 23440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2844:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9218320951536642499143228327011901814587826948504871816273184688188019956292_by_1", - "typeString": "int_const 9218...(68 digits omitted)...6292" - }, - "value": "9218320951536642499143228327011901814587826948504871816273184688188019956292" - }, - { - "hexValue": "3139373137363834343536343538393036333538333638383635353037323235313231393931353835343932333633313333313037313039383635393230373339303139323838343638303131", - "id": 23441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2921:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19717684456458906358368865507225121991585492363133107109865920739019288468011_by_1", - "typeString": "int_const 1971...(69 digits omitted)...8011" - }, - "value": "19717684456458906358368865507225121991585492363133107109865920739019288468011" - } - ], - "id": 23442, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2843:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3136373137353930373530393130393633343035373536313135393130333731343038333738313134383936303038383234323430383633303630333932333632393031313736363031343132", - "id": 23443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3001:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16717590750910963405756115910371408378114896008824240863060392362901176601412_by_1", - "typeString": "int_const 1671...(69 digits omitted)...1412" - }, - "value": "16717590750910963405756115910371408378114896008824240863060392362901176601412" - }, - { - "hexValue": "3138323231363935363435313132343637393435313836393833303938373230363131353836303439313038363839333437303036313336343233343839303939323032343731383834303839", - "id": 23444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3079:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18221695645112467945186983098720611586049108689347006136423489099202471884089_by_1", - "typeString": "int_const 1822...(69 digits omitted)...4089" - }, - "value": "18221695645112467945186983098720611586049108689347006136423489099202471884089" - } - ], - "id": 23445, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3000:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "34363931353935323532303832333830323536363938313538313538313939333634343130343430323733333836363539383334303030393933323130363539353038373437333233393139", - "id": 23446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3159:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4691595252082380256698158158199364410440273386659834000993210659508747323919_by_1", - "typeString": "int_const 4691...(68 digits omitted)...3919" - }, - "value": "4691595252082380256698158158199364410440273386659834000993210659508747323919" - }, - { - "hexValue": "39323035383031393830343539333233353133303631383337373137333532383231313632373830343731303237323431373030363436313435393337333531373430303936333734363630", - "id": 23447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3236:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9205801980459323513061837717352821162780471027241700646145937351740096374660_by_1", - "typeString": "int_const 9205...(68 digits omitted)...4660" - }, - "value": "9205801980459323513061837717352821162780471027241700646145937351740096374660" - } - ], - "id": 23448, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3158:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3136313530353331343236323633313132383834303933303638313634353937393934313236363233343337393239393239363039353332303535323231363436343936383133323436303030", - "id": 23449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3315:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16150531426263112884093068164597994126623437929929609532055221646496813246000_by_1", - "typeString": "int_const 1615...(69 digits omitted)...6000" - }, - "value": "16150531426263112884093068164597994126623437929929609532055221646496813246000" - }, - { - "hexValue": "3230323435373433313738323431383939363638313730373538393532353236333831383732363337333034313139303236383638353230353739323037313537313138353136373631383237", - "id": 23450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3393:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20245743178241899668170758952526381872637304119026868520579207157118516761827_by_1", - "typeString": "int_const 2024...(69 digits omitted)...1827" - }, - "value": "20245743178241899668170758952526381872637304119026868520579207157118516761827" - } - ], - "id": 23451, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3314:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "36303633353336343436393932373730373133393835333134333039383839373137353934323430343130373834373137323330383836353736303732393839373039373633393032383438", - "id": 23452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3473:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6063536446992770713985314309889717594240410784717230886576072989709763902848_by_1", - "typeString": "int_const 6063...(68 digits omitted)...2848" - }, - "value": "6063536446992770713985314309889717594240410784717230886576072989709763902848" - }, - { - "hexValue": "3138323538373831343131323535373935393733393138383539363635343136303133383639313834303535353733303537353132363033373838363335343730313435333238393831333437", - "id": 23453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3550:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18258781411255795973918859665416013869184055573057512603788635470145328981347_by_1", - "typeString": "int_const 1825...(69 digits omitted)...1347" - }, - "value": "18258781411255795973918859665416013869184055573057512603788635470145328981347" - } - ], - "id": 23454, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3472:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3130313039393332393634373536313034353132303534303435323037323533353335333333363836353835383633373435323936303830393036393235373635343830323936353735323835", - "id": 23455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3630:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10109932964756104512054045207253535333686585863745296080906925765480296575285_by_1", - "typeString": "int_const 1010...(69 digits omitted)...5285" - }, - "value": "10109932964756104512054045207253535333686585863745296080906925765480296575285" - }, - { - "hexValue": "34313734363430343238323533313533363031353430323834333633373539353032373133363837303231393230313530393430373233323532383432313532353536313531323130333439", - "id": 23456, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3708:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4174640428253153601540284363759502713687021920150940723252842152556151210349_by_1", - "typeString": "int_const 4174...(68 digits omitted)...0349" - }, - "value": "4174640428253153601540284363759502713687021920150940723252842152556151210349" - } - ], - "id": 23457, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3629:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3138303439343238353334373431343830383332333835303436333937303439313735313230333535303038303635373831343833323236303538313737343231303235343933323130393532", - "id": 23458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3787:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18049428534741480832385046397049175120355008065781483226058177421025493210952_by_1", - "typeString": "int_const 1804...(69 digits omitted)...0952" - }, - "value": "18049428534741480832385046397049175120355008065781483226058177421025493210952" - }, - { - "hexValue": "353931373330323631323635303430313634343334383839333234383436303031333338323031303638343832353433313038333438333137343137333931333435363132383134393232", - "id": 23459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3865:75:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_591730261265040164434889324846001338201068482543108348317417391345612814922_by_1", - "typeString": "int_const 5917...(67 digits omitted)...4922" - }, - "value": "591730261265040164434889324846001338201068482543108348317417391345612814922" - } - ], - "id": 23460, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3786:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23461, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2842:1100:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "33393935313238373839353634353335353837383134353132323435323539323033333030313337363138343736383135343536343534393331323836363333393437393533313335363632", - "id": 23462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3945:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3995128789564535587814512245259203300137618476815456454931286633947953135662_by_1", - "typeString": "int_const 3995...(68 digits omitted)...5662" - }, - "value": "3995128789564535587814512245259203300137618476815456454931286633947953135662" - }, - { - "hexValue": "3135393533323339373532333932393237373737343432333331363233313832323236303633373736333130313938303132313733353034323038353537343334333139373533343238373730", - "id": 23463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4022:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15953239752392927777442331623182226063776310198012173504208557434319753428770_by_1", - "typeString": "int_const 1595...(69 digits omitted)...8770" - }, - "value": "15953239752392927777442331623182226063776310198012173504208557434319753428770" - } - ], - "id": 23464, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3944:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3230393537333139333433393132383636333335353833373337363436363537353334313233333632303532363930303530363734303638313432353830323231393635393336363035303735", - "id": 23465, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4102:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20957319343912866335583737646657534123362052690050674068142580221965936605075_by_1", - "typeString": "int_const 2095...(69 digits omitted)...5075" - }, - "value": "20957319343912866335583737646657534123362052690050674068142580221965936605075" - }, - { - "hexValue": "32353233373836363739373039363933393436303538353233333037333330383235303334373732343738313232323935383530353037353231323538393833313330343235333334353830", - "id": 23466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4180:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2523786679709693946058523307330825034772478122295850507521258983130425334580_by_1", - "typeString": "int_const 2523...(68 digits omitted)...4580" - }, - "value": "2523786679709693946058523307330825034772478122295850507521258983130425334580" - } - ], - "id": 23467, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4101:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "39383737323131313738363933303735313435343032343632373831383834313230323738363534373731373237333438303837343333363332323234373934383934343836303935313530", - "id": 23468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4259:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9877211178693075145402462781884120278654771727348087433632224794894486095150_by_1", - "typeString": "int_const 9877...(68 digits omitted)...5150" - }, - "value": "9877211178693075145402462781884120278654771727348087433632224794894486095150" - }, - { - "hexValue": "3139393732363832303632353837313734383239353335323831303631353830323936373634313530353931333339363430313830383638313034373131333935353438303636353239333430", - "id": 23469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4336:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19972682062587174829535281061580296764150591339640180868104711395548066529340_by_1", - "typeString": "int_const 1997...(69 digits omitted)...9340" - }, - "value": "19972682062587174829535281061580296764150591339640180868104711395548066529340" - } - ], - "id": 23470, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4258:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "36333234353738343234303331303935353337333435313834303430313439363930323338333731353137333837353836393538393231333737343831393034353431333136343233373234", - "id": 23471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4416:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6324578424031095537345184040149690238371517387586958921377481904541316423724_by_1", - "typeString": "int_const 6324...(68 digits omitted)...3724" - }, - "value": "6324578424031095537345184040149690238371517387586958921377481904541316423724" - }, - { - "hexValue": "3135353133393331373230353736303438353434343034353132323339383339353038303134363634323234303835303632373239373739353230393932393039353035363633373438323936", - "id": 23472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4493:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15513931720576048544404512239839508014664224085062729779520992909505663748296_by_1", - "typeString": "int_const 1551...(69 digits omitted)...8296" - }, - "value": "15513931720576048544404512239839508014664224085062729779520992909505663748296" - } - ], - "id": 23473, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4415:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3131333731333337363532343739373337313433383030373037373936323034363535313330383132303336323837383539323936333732363935383332353538313237343330373233363238", - "id": 23474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4573:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11371337652479737143800707796204655130812036287859296372695832558127430723628_by_1", - "typeString": "int_const 1137...(69 digits omitted)...3628" - }, - "value": "11371337652479737143800707796204655130812036287859296372695832558127430723628" - }, - { - "hexValue": "3131373537323735313838363030303430313131363439303039383332333738333433313233393934323235363233343938373733343036323333323631333232313635393033383438393637", - "id": 23475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4651:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11757275188600040111649009832378343123994225623498773406233261322165903848967_by_1", - "typeString": "int_const 1175...(69 digits omitted)...8967" - }, - "value": "11757275188600040111649009832378343123994225623498773406233261322165903848967" - } - ], - "id": 23476, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4572:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3133323832343936353833353634373038313034393831303135313638323033343531383737353838393033323633343836333938313332393534373431353638383335353833343631333335", - "id": 23477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4731:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13282496583564708104981015168203451877588903263486398132954741568835583461335_by_1", - "typeString": "int_const 1328...(69 digits omitted)...1335" - }, - "value": "13282496583564708104981015168203451877588903263486398132954741568835583461335" - }, - { - "hexValue": "31373436313434333234383430333730393037393236373230343930323839373030333432373334393132353334383537333331373433363835333734353134343031313736303134313935", - "id": 23478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4809:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1746144324840370907926720490289700342734912534857331743685374514401176014195_by_1", - "typeString": "int_const 1746...(68 digits omitted)...4195" - }, - "value": "1746144324840370907926720490289700342734912534857331743685374514401176014195" - } - ], - "id": 23479, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4730:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "37393933393532343632343637333732393531313434303131363135353834343236303530313932303436373132363734363632323534313338333930313937353038393633333532333734", - "id": 23480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4888:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7993952462467372951144011615584426050192046712674662254138390197508963352374_by_1", - "typeString": "int_const 7993...(68 digits omitted)...2374" - }, - "value": "7993952462467372951144011615584426050192046712674662254138390197508963352374" - }, - { - "hexValue": "35313536393432313438393235323234333435373039333039333631333435363830393438313235363030313938303130323835313739353438383431393137393233343339393435383139", - "id": 23481, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4965:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5156942148925224345709309361345680948125600198010285179548841917923439945819_by_1", - "typeString": "int_const 5156...(68 digits omitted)...5819" - }, - "value": "5156942148925224345709309361345680948125600198010285179548841917923439945819" - } - ], - "id": 23482, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4887:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23483, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3943:1100:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "3138393736313333363931373036303135333337393038333831373537323032313233313832383431393031363131303637393330363134353139333234303834313832393436303934323138", - "id": 23484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5046:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18976133691706015337908381757202123182841901611067930614519324084182946094218_by_1", - "typeString": "int_const 1897...(69 digits omitted)...4218" - }, - "value": "18976133691706015337908381757202123182841901611067930614519324084182946094218" - }, - { - "hexValue": "31333832353138393930373737393932383933383035313430333033363834363432333238303636373436353331323537373830323739323236363737323437353637303034323438313733", - "id": 23485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5124:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1382518990777992893805140303684642328066746531257780279226677247567004248173_by_1", - "typeString": "int_const 1382...(68 digits omitted)...8173" - }, - "value": "1382518990777992893805140303684642328066746531257780279226677247567004248173" - } - ], - "id": 23486, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5045:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "36363237373130333830373731363630353538363630363237383738353437323233373139373935333536393033323537303739313938333333363431363831333330333838343939333039", - "id": 23487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5203:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6627710380771660558660627878547223719795356903257079198333641681330388499309_by_1", - "typeString": "int_const 6627...(68 digits omitted)...9309" - }, - "value": "6627710380771660558660627878547223719795356903257079198333641681330388499309" - }, - { - "hexValue": "3231383036393536373437393130313937353137373434343939343233313037323339363939343238393739363532313133303831343639333835383736373638323132373036363934353831", - "id": 23488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5280:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21806956747910197517744499423107239699428979652113081469385876768212706694581_by_1", - "typeString": "int_const 2180...(69 digits omitted)...4581" - }, - "value": "21806956747910197517744499423107239699428979652113081469385876768212706694581" - } - ], - "id": 23489, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5202:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3139393138353137323134383339343036363738393037343832333035303335323038313733353130313732353637353436303731333830333032393635343539373337323738353533353238", - "id": 23490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5360:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19918517214839406678907482305035208173510172567546071380302965459737278553528_by_1", - "typeString": "int_const 1991...(69 digits omitted)...3528" - }, - "value": "19918517214839406678907482305035208173510172567546071380302965459737278553528" - }, - { - "hexValue": "37313531313836303737373136333130303634373737353230363930313434353131383835363936323937313237313635323738333632303832323139343431373332363633313331323230", - "id": 23491, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5438:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7151186077716310064777520690144511885696297127165278362082219441732663131220_by_1", - "typeString": "int_const 7151...(68 digits omitted)...1220" - }, - "value": "7151186077716310064777520690144511885696297127165278362082219441732663131220" - } - ], - "id": 23492, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5359:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "363930353831313235393731343233363139353238353038333136343032373031353230303730313533373734383638373332353334323739303935353033363131393935383439363038", - "id": 23493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5517:75:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_690581125971423619528508316402701520070153774868732534279095503611995849608_by_1", - "typeString": "int_const 6905...(67 digits omitted)...9608" - }, - "value": "690581125971423619528508316402701520070153774868732534279095503611995849608" - }, - { - "hexValue": "3231323731393936383838353736303435383130343135383433363132383639373839333134363830343038343737303638393733303234373836343538333035393530333730343635353538", - "id": 23494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5593:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21271996888576045810415843612869789314680408477068973024786458305950370465558_by_1", - "typeString": "int_const 2127...(69 digits omitted)...5558" - }, - "value": "21271996888576045810415843612869789314680408477068973024786458305950370465558" - } - ], - "id": 23495, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5516:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3136343631323832353335373032313332383333343432393337383239303237393133313130313532313335313439313531313939383630363731393433343435373230373735333731333139", - "id": 23496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5673:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16461282535702132833442937829027913110152135149151199860671943445720775371319_by_1", - "typeString": "int_const 1646...(69 digits omitted)...1319" - }, - "value": "16461282535702132833442937829027913110152135149151199860671943445720775371319" - }, - { - "hexValue": "32383134303532313632343739393736363738343033363738353132353635353633323735343238373931333230353537303630373737333233363433373935303137373239303831383837", - "id": 23497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5751:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2814052162479976678403678512565563275428791320557060777323643795017729081887_by_1", - "typeString": "int_const 2814...(68 digits omitted)...1887" - }, - "value": "2814052162479976678403678512565563275428791320557060777323643795017729081887" - } - ], - "id": 23498, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5672:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "34333139373830333135343939303630333932353734313338373832313931303133313239353932353433373636343634303436353932323038383834383636353639333737343337363237", - "id": 23499, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5830:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4319780315499060392574138782191013129592543766464046592208884866569377437627_by_1", - "typeString": "int_const 4319...(68 digits omitted)...7627" - }, - "value": "4319780315499060392574138782191013129592543766464046592208884866569377437627" - }, - { - "hexValue": "3133393230393330343339333935303032363938333339343439393939343832323437373238313239343834303730363432303739383531333132363832393933353535313035323138303836", - "id": 23500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5907:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13920930439395002698339449999482247728129484070642079851312682993555105218086_by_1", - "typeString": "int_const 1392...(69 digits omitted)...8086" - }, - "value": "13920930439395002698339449999482247728129484070642079851312682993555105218086" - } - ], - "id": 23501, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5829:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "33353534383330383033313831333735343138363635323932353435343136323237333334313338383338323834363836343036313739353938363837373535363236333235343832363836", - "id": 23502, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5987:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3554830803181375418665292545416227334138838284686406179598687755626325482686_by_1", - "typeString": "int_const 3554...(68 digits omitted)...2686" - }, - "value": "3554830803181375418665292545416227334138838284686406179598687755626325482686" - }, - { - "hexValue": "35393531363039313734373436383436303730333637313133353933363735323131363931333131303133333634343231343337393233343730373837333731373338313335323736393938", - "id": 23503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6064:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5951609174746846070367113593675211691311013364421437923470787371738135276998_by_1", - "typeString": "int_const 5951...(68 digits omitted)...6998" - }, - "value": "5951609174746846070367113593675211691311013364421437923470787371738135276998" - } - ], - "id": 23504, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5986:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23505, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5044:1098:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "33383131353932363833323833353237393034313435313535383038323030333636313932343839383530373131373432333633393533363638393938333731383031363936323338303537", - "id": 23506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6145:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3811592683283527904145155808200366192489850711742363953668998371801696238057_by_1", - "typeString": "int_const 3811...(68 digits omitted)...8057" - }, - "value": "3811592683283527904145155808200366192489850711742363953668998371801696238057" - }, - { - "hexValue": "39303332353435303830383331353335373032323339303633343637303837373230353937393730323636303436393338333935383630323037383339343333393337333234373138353336", - "id": 23507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6222:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9032545080831535702239063467087720597970266046938395860207839433937324718536_by_1", - "typeString": "int_const 9032...(68 digits omitted)...8536" - }, - "value": "9032545080831535702239063467087720597970266046938395860207839433937324718536" - } - ], - "id": 23508, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6144:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3136333038343333313235393734393333323930323538353430393034333733333137343236313233323134313037323736303535353339373639343634323035393832353030363630373135", - "id": 23509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6301:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16308433125974933290258540904373317426123214107276055539769464205982500660715_by_1", - "typeString": "int_const 1630...(69 digits omitted)...0715" - }, - "value": "16308433125974933290258540904373317426123214107276055539769464205982500660715" - }, - { - "hexValue": "3132343239393832313931343939383530383733363132353138343130383039363431313633323532383837353233303930343431313636353732353930383039363931323637393433363035", - "id": 23510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6379:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_12429982191499850873612518410809641163252887523090441166572590809691267943605_by_1", - "typeString": "int_const 1242...(69 digits omitted)...3605" - }, - "value": "12429982191499850873612518410809641163252887523090441166572590809691267943605" - } - ], - "id": 23511, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6300:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "39343934383835363930393331393535383737343637333135333138323233313038363138333932313133313031383433383930363738303930393032363134363630313336303536363830", - "id": 23512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6459:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9494885690931955877467315318223108618392113101843890678090902614660136056680_by_1", - "typeString": "int_const 9494...(68 digits omitted)...6680" - }, - "value": "9494885690931955877467315318223108618392113101843890678090902614660136056680" - }, - { - "hexValue": "3131373833353134323536373135373537333834383231303231303039333031383036373232393531393137373434323139303735393037393132363833393633313733373036383837333739", - "id": 23513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6536:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11783514256715757384821021009301806722951917744219075907912683963173706887379_by_1", - "typeString": "int_const 1178...(69 digits omitted)...7379" - }, - "value": "11783514256715757384821021009301806722951917744219075907912683963173706887379" - } - ], - "id": 23514, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6458:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "37353632303832363630363233373831343136373435333238313034353736313333393130373433303731383738383337373634343233363935313035393135373738313339383733383334", - "id": 23515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6616:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7562082660623781416745328104576133910743071878837764423695105915778139873834_by_1", - "typeString": "int_const 7562...(68 digits omitted)...3834" - }, - "value": "7562082660623781416745328104576133910743071878837764423695105915778139873834" - }, - { - "hexValue": "3137393534333037303034323630303533373537353739313934303138353531313134313333363634373231373631343833323430383737363538343938393733313532393530373038303939", - "id": 23516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6693:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_17954307004260053757579194018551114133664721761483240877658498973152950708099_by_1", - "typeString": "int_const 1795...(69 digits omitted)...8099" - }, - "value": "17954307004260053757579194018551114133664721761483240877658498973152950708099" - } - ], - "id": 23517, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6615:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3139333338313834383531313136343332303239313038313039343631363232353739353431313935303833363235333436363734323535313836313639333437393735343435373835303538", - "id": 23518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6773:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19338184851116432029108109461622579541195083625346674255186169347975445785058_by_1", - "typeString": "int_const 1933...(69 digits omitted)...5058" - }, - "value": "19338184851116432029108109461622579541195083625346674255186169347975445785058" - }, - { - "hexValue": "3338333631323036323636333630303438303132333635353632333933303236393532303438373330303532353330383838343339313935343534303836393837373935393835393237", - "id": 23519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6851:74:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_38361206266360048012365562393026952048730052530888439195454086987795985927_by_1", - "typeString": "int_const 3836...(66 digits omitted)...5927" - }, - "value": "38361206266360048012365562393026952048730052530888439195454086987795985927" - } - ], - "id": 23520, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6772:154:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3231313738353337373432373832353731383633353930323232373130383732393238313930383836303030363030323339303732353935363834333639333438373137323838333330303439", - "id": 23521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6928:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21178537742782571863590222710872928190886000600239072595684369348717288330049_by_1", - "typeString": "int_const 2117...(69 digits omitted)...0049" - }, - "value": "21178537742782571863590222710872928190886000600239072595684369348717288330049" - }, - { - "hexValue": "39373836343338323538353431313732323434383834363331383331323437323233303530343934343233393638343131343434333032383132373535343637353231393439373334333230", - "id": 23522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7006:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9786438258541172244884631831247223050494423968411444302812755467521949734320_by_1", - "typeString": "int_const 9786...(68 digits omitted)...4320" - }, - "value": "9786438258541172244884631831247223050494423968411444302812755467521949734320" - } - ], - "id": 23523, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6927:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3131333330353034323231393732333431373937313833333339333530343934323233343133303334323933363734323235363930343536333536343434353039363838383130313031343333", - "id": 23524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7085:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11330504221972341797183339350494223413034293674225690456356444509688810101433_by_1", - "typeString": "int_const 1133...(69 digits omitted)...1433" - }, - "value": "11330504221972341797183339350494223413034293674225690456356444509688810101433" - }, - { - "hexValue": "31343930303039393135333837393031343035343634343337323533343639303836383634303835383931373730333132303335323932333535373036323439343236383636343835333635", - "id": 23525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7163:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1490009915387901405464437253469086864085891770312035292355706249426866485365_by_1", - "typeString": "int_const 1490...(68 digits omitted)...5365" - }, - "value": "1490009915387901405464437253469086864085891770312035292355706249426866485365" - } - ], - "id": 23526, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7084:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23527, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6143:1098:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "39343835363339313532363732393834313434393838353937373337373538303337333931383037393933363135353532303531363036323035343830333437343432343239343134333430", - "id": 23528, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7244:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9485639152672984144988597737758037391807993615552051606205480347442429414340_by_1", - "typeString": "int_const 9485...(68 digits omitted)...4340" - }, - "value": "9485639152672984144988597737758037391807993615552051606205480347442429414340" - }, - { - "hexValue": "3137363236353033313130333233303839373031323639333633313737373130323935333739393637323235373635373133323530363235323739363731303131383733363139363430353938", - "id": 23529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7321:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_17626503110323089701269363177710295379967225765713250625279671011873619640598_by_1", - "typeString": "int_const 1762...(69 digits omitted)...0598" - }, - "value": "17626503110323089701269363177710295379967225765713250625279671011873619640598" - } - ], - "id": 23530, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7243:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3132333931383734373030343039343335363438393735303639393738323830303437393833373236313434383534313134393135313737333736303336313930343431393133393637363839", - "id": 23531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7401:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_12391874700409435648975069978280047983726144854114915177376036190441913967689_by_1", - "typeString": "int_const 1239...(69 digits omitted)...7689" - }, - "value": "12391874700409435648975069978280047983726144854114915177376036190441913967689" - }, - { - "hexValue": "3138393533353837363835303637373132343836303932363635323332373235303538363338353633343538343834383836343438353430353637313432353537383934303830363430393237", - "id": 23532, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7479:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18953587685067712486092665232725058638563458484886448540567142557894080640927_by_1", - "typeString": "int_const 1895...(69 digits omitted)...0927" - }, - "value": "18953587685067712486092665232725058638563458484886448540567142557894080640927" - } - ], - "id": 23533, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7400:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3231373931373230393732323632353839373939303231363030373637323932383833363434313036353735383937333037343834353438383838363936383134333333323335333336383835", - "id": 23534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7559:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21791720972262589799021600767292883644106575897307484548888696814333235336885_by_1", - "typeString": "int_const 2179...(69 digits omitted)...6885" - }, - "value": "21791720972262589799021600767292883644106575897307484548888696814333235336885" - }, - { - "hexValue": "3131303932393632343639373538373838313837383838353932363139303335383131313137383135303832333537343339303630373230363737353832303438383830313231353432363233", - "id": 23535, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7637:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11092962469758788187888592619035811117815082357439060720677582048880121542623_by_1", - "typeString": "int_const 1109...(69 digits omitted)...2623" - }, - "value": "11092962469758788187888592619035811117815082357439060720677582048880121542623" - } - ], - "id": 23536, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7558:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "39343138393234393535393330363633393732353735313330303734393238353833323135393232393237353632303539313934323331393736313933333530363538313731333034343336", - "id": 23537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7717:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9418924955930663972575130074928583215922927562059194231976193350658171304436_by_1", - "typeString": "int_const 9418...(68 digits omitted)...4436" - }, - "value": "9418924955930663972575130074928583215922927562059194231976193350658171304436" - }, - { - "hexValue": "3136313133353538343831383236303230343036313632323631333139373434373936303732363634373530303737303935353735353933313036393031313231313135303733313031343038", - "id": 23538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7794:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16113558481826020406162261319744796072664750077095575593106901121115073101408_by_1", - "typeString": "int_const 1611...(69 digits omitted)...1408" - }, - "value": "16113558481826020406162261319744796072664750077095575593106901121115073101408" - } - ], - "id": 23539, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7716:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3230303534393334393630323632393833313736383830363735393139343434343537353738353632323139363735383038343037353832313433353139363231383733393733313230373733", - "id": 23540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7874:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20054934960262983176880675919444457578562219675808407582143519621873973120773_by_1", - "typeString": "int_const 2005...(69 digits omitted)...0773" - }, - "value": "20054934960262983176880675919444457578562219675808407582143519621873973120773" - }, - { - "hexValue": "3134383737343135323731333031353437393131343335363833323633323036323435313939393539393433363830323235353535343936373836343730363639333330313736393631363537", - "id": 23541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7952:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_14877415271301547911435683263206245199959943680225555496786470669330176961657_by_1", - "typeString": "int_const 1487...(69 digits omitted)...1657" - }, - "value": "14877415271301547911435683263206245199959943680225555496786470669330176961657" - } - ], - "id": 23542, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7873:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "34323135313939323633383130313130373438373531373135373139393537313834383034333739373532333733303732373731303037353938353732313538303433393635353137343838", - "id": 23543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8032:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4215199263810110748751715719957184804379752373072771007598572158043965517488_by_1", - "typeString": "int_const 4215...(68 digits omitted)...7488" - }, - "value": "4215199263810110748751715719957184804379752373072771007598572158043965517488" - }, - { - "hexValue": "35323235393433343638363036363032383138313332383739363836373738353437363035313830313035383937363135323531313630353039303634353337343632313039383236353231", - "id": 23544, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8109:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5225943468606602818132879686778547605180105897615251160509064537462109826521_by_1", - "typeString": "int_const 5225...(68 digits omitted)...6521" - }, - "value": "5225943468606602818132879686778547605180105897615251160509064537462109826521" - } - ], - "id": 23545, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8031:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "36323530323432363236303334373334323830383133313432303933303038363735343037373233313936373036323438383239373431323437323034363231393133393934353631383033", - "id": 23546, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8188:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6250242626034734280813142093008675407723196706248829741247204621913994561803_by_1", - "typeString": "int_const 6250...(68 digits omitted)...1803" - }, - "value": "6250242626034734280813142093008675407723196706248829741247204621913994561803" - }, - { - "hexValue": "31343732323331353535323636363738363839383838373237373234383234353636313731393636343136343539373931373232343635323738323235373735393232343837333433363431", - "id": 23547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8265:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1472231555266678689888727724824566171966416459791722465278225775922487343641_by_1", - "typeString": "int_const 1472...(68 digits omitted)...3641" - }, - "value": "1472231555266678689888727724824566171966416459791722465278225775922487343641" - } - ], - "id": 23548, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8187:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23549, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7242:1101:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "39383330383536313033333839323438343439313231393632323735353837333939313330363035393032373033343533333834383536353433303731373632393834313136353637353733", - "id": 23550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8346:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9830856103389248449121962275587399130605902703453384856543071762984116567573_by_1", - "typeString": "int_const 9830...(68 digits omitted)...7573" - }, - "value": "9830856103389248449121962275587399130605902703453384856543071762984116567573" - }, - { - "hexValue": "3131343038393635353735313734393933333735383135383430343232343338393935353439363532383132343030343031313633333932353031393536383834393332313637363234343337", - "id": 23551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8423:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11408965575174993375815840422438995549652812400401163392501956884932167624437_by_1", - "typeString": "int_const 1140...(69 digits omitted)...4437" - }, - "value": "11408965575174993375815840422438995549652812400401163392501956884932167624437" - } - ], - "id": 23552, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8345:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3131383134393036383431393439343939303337353530383230353736393239353532323438313732313630363433393931383730363635303232373730303532363332333331323635383334", - "id": 23553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8503:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11814906841949499037550820576929552248172160643991870665022770052632331265834_by_1", - "typeString": "int_const 1181...(69 digits omitted)...5834" - }, - "value": "11814906841949499037550820576929552248172160643991870665022770052632331265834" - }, - { - "hexValue": "3139393639353433333736363235363633393636343139313138383939353135333533343939363738323034353733373039383336363135383436313135313832323234333430383538343932", - "id": 23554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8581:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19969543376625663966419118899515353499678204573709836615846115182224340858492_by_1", - "typeString": "int_const 1996...(69 digits omitted)...8492" - }, - "value": "19969543376625663966419118899515353499678204573709836615846115182224340858492" - } - ], - "id": 23555, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8502:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "33303437343836333633343535393333383331313438363838373632383233323338373233303234393532353139333236323037333536353439313231393239363637373435393537373738", - "id": 23556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8661:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3047486363455933831148688762823238723024952519326207356549121929667745957778_by_1", - "typeString": "int_const 3047...(68 digits omitted)...7778" - }, - "value": "3047486363455933831148688762823238723024952519326207356549121929667745957778" - }, - { - "hexValue": "3230323431383336333539323839343439303035383837323337353630353634333538353433363436353432353938333434333632393135353431303237353731353035323433383137323131", - "id": 23557, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8738:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20241836359289449005887237560564358543646542598344362915541027571505243817211_by_1", - "typeString": "int_const 2024...(69 digits omitted)...7211" - }, - "value": "20241836359289449005887237560564358543646542598344362915541027571505243817211" - } - ], - "id": 23558, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8660:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "35393635363331393138383030353330333139313637313234313438363237343530343534353639323634333331303538303038343037373332323030313638363331393839323038363537", - "id": 23559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8818:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5965631918800530319167124148627450454569264331058008407732200168631989208657_by_1", - "typeString": "int_const 5965...(68 digits omitted)...8657" - }, - "value": "5965631918800530319167124148627450454569264331058008407732200168631989208657" - }, - { - "hexValue": "3230343633353537343737353332343830393334353134303931383737363238353534393438383932303235383837303837373132373634363833363331313038333838393938383731333530", - "id": 23560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8895:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20463557477532480934514091877628554948892025887087712764683631108388998871350_by_1", - "typeString": "int_const 2046...(69 digits omitted)...1350" - }, - "value": "20463557477532480934514091877628554948892025887087712764683631108388998871350" - } - ], - "id": 23561, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8817:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3136363035303432333232363932393833323832373332353131323439393132343033393536303537393939383135363538303338313636373936383538363237303832323232393731323135", - "id": 23562, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8975:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16605042322692983282732511249912403956057999815658038166796858627082222971215_by_1", - "typeString": "int_const 1660...(69 digits omitted)...1215" - }, - "value": "16605042322692983282732511249912403956057999815658038166796858627082222971215" - }, - { - "hexValue": "3132323139303631343938323735363136353835313634343536383333343130393632383039353336303834383835343934333039303933373837363639383739323231393539333631393536", - "id": 23563, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9053:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_12219061498275616585164456833410962809536084885494309093787669879221959361956_by_1", - "typeString": "int_const 1221...(69 digits omitted)...1956" - }, - "value": "12219061498275616585164456833410962809536084885494309093787669879221959361956" - } - ], - "id": 23564, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8974:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "31353438393938353732303734303337373232363232323234333033323232323934373136323433303734383337303734323732353532363434383533393836303735323532363636353038", - "id": 23565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9133:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1548998572074037722622224303222294716243074837074272552644853986075252666508_by_1", - "typeString": "int_const 1548...(68 digits omitted)...6508" - }, - "value": "1548998572074037722622224303222294716243074837074272552644853986075252666508" - }, - { - "hexValue": "3130333933333132303032383835333637363532333031383937383734323632333637393136353036333634363730333634353834363032353534313736373432363032333334313334373732", - "id": 23566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9210:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10393312002885367652301897874262367916506364670364584602554176742602334134772_by_1", - "typeString": "int_const 1039...(69 digits omitted)...4772" - }, - "value": "10393312002885367652301897874262367916506364670364584602554176742602334134772" - } - ], - "id": 23567, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9132:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3136313830393037363839353933333538333436343036333932303135313233393030323630393235363232333537333933383236373436333835353131303436313431323536393035333930", - "id": 23568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9290:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16180907689593358346406392015123900260925622357393826746385511046141256905390_by_1", - "typeString": "int_const 1618...(69 digits omitted)...5390" - }, - "value": "16180907689593358346406392015123900260925622357393826746385511046141256905390" - }, - { - "hexValue": "3132323637333236373439383835313230363430393732303734343739323130353337343830303533303635353639333337383137343834343637323235353632383137343637323434373635", - "id": 23569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9368:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_12267326749885120640972074479210537480053065569337817484467225562817467244765_by_1", - "typeString": "int_const 1226...(69 digits omitted)...4765" - }, - "value": "12267326749885120640972074479210537480053065569337817484467225562817467244765" - } - ], - "id": 23570, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9289:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23571, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8344:1103:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "3135303335333335333036393139393432333235343539343137363838313335333430303835333737333135323734363235373638353937323333343734363431393233363139373238353832", - "id": 23572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9450:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15035335306919942325459417688135340085377315274625768597233474641923619728582_by_1", - "typeString": "int_const 1503...(69 digits omitted)...8582" - }, - "value": "15035335306919942325459417688135340085377315274625768597233474641923619728582" - }, - { - "hexValue": "3130303930303431383839353837333234303032373539353439323836333930363139353431353236333936343531393633343934363237393537303732303639313234303131313337353632", - "id": 23573, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9528:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10090041889587324002759549286390619541526396451963494627957072069124011137562_by_1", - "typeString": "int_const 1009...(69 digits omitted)...7562" - }, - "value": "10090041889587324002759549286390619541526396451963494627957072069124011137562" - } - ], - "id": 23574, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9449:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3231333432303439373137303734303539373439353138323333343931353236343435333838313538373732373031363432313832353332333730363431323330343738303237303330333139", - "id": 23575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9608:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21342049717074059749518233491526445388158772701642182532370641230478027030319_by_1", - "typeString": "int_const 2134...(69 digits omitted)...0319" - }, - "value": "21342049717074059749518233491526445388158772701642182532370641230478027030319" - }, - { - "hexValue": "3130353037373836393939373939383431303535393939393637343536373632363739353639323836333239333139303536393236343735333735373630363034323632373037313437323934", - "id": 23576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9686:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10507786999799841055999967456762679569286329319056926475375760604262707147294_by_1", - "typeString": "int_const 1050...(69 digits omitted)...7294" - }, - "value": "10507786999799841055999967456762679569286329319056926475375760604262707147294" - } - ], - "id": 23577, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9607:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3139353930393936313734363936393039323432353735363238303134393433353535363333393338313935393233353230343732373836393933333739323638333032343738373038323833", - "id": 23578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9766:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19590996174696909242575628014943555633938195923520472786993379268302478708283_by_1", - "typeString": "int_const 1959...(69 digits omitted)...8283" - }, - "value": "19590996174696909242575628014943555633938195923520472786993379268302478708283" - }, - { - "hexValue": "32363733373533303732353536343432323330333132393935313131333034393131313738363739353235383036333936313334353034353934343932343538353636393431383234333534", - "id": 23579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9844:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2673753072556442230312995111304911178679525806396134504594492458566941824354_by_1", - "typeString": "int_const 2673...(68 digits omitted)...4354" - }, - "value": "2673753072556442230312995111304911178679525806396134504594492458566941824354" - } - ], - "id": 23580, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9765:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3133343131323533313732333735343531343839333830343732383331393939383837323233353932343731303537343632363932363139303038343834393935363234323831373335303932", - "id": 23581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9923:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13411253172375451489380472831999887223592471057462692619008484995624281735092_by_1", - "typeString": "int_const 1341...(69 digits omitted)...5092" - }, - "value": "13411253172375451489380472831999887223592471057462692619008484995624281735092" - }, - { - "hexValue": "3137313831373637343535353633353831323534343332313631313139363630343038343832333332343233343831313238363030303338333532313437323538393531373732343233323239", - "id": 23582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10001:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_17181767455563581254432161119660408482332423481128600038352147258951772423229_by_1", - "typeString": "int_const 1718...(69 digits omitted)...3229" - }, - "value": "17181767455563581254432161119660408482332423481128600038352147258951772423229" - } - ], - "id": 23583, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9922:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3139313338383634363331313634333738313736303535363437373131393935333532393335303635313334393034313033323535373438313930323638323930393932313038353838363238", - "id": 23584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10081:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19138864631164378176055647711995352935065134904103255748190268290992108588628_by_1", - "typeString": "int_const 1913...(69 digits omitted)...8628" - }, - "value": "19138864631164378176055647711995352935065134904103255748190268290992108588628" - }, - { - "hexValue": "3134323832353236323737373336333635383633383231333735373438363837373039383339333932333037363938393335313433353935373332363332373130313736373738353139373537", - "id": 23585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10159:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_14282526277736365863821375748687709839392307698935143595732632710176778519757_by_1", - "typeString": "int_const 1428...(69 digits omitted)...9757" - }, - "value": "14282526277736365863821375748687709839392307698935143595732632710176778519757" - } - ], - "id": 23586, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10080:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3230313833373733363538363736313631393930343639323736343134383538323334313738363038373934373833313132383636383131333037353739393933393939313138323933343239", - "id": 23587, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10239:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20183773658676161990469276414858234178608794783112866811307579993999118293429_by_1", - "typeString": "int_const 2018...(69 digits omitted)...3429" - }, - "value": "20183773658676161990469276414858234178608794783112866811307579993999118293429" - }, - { - "hexValue": "35323233343634343333353434343839303636323731313834323934373530383836323237333632353830383735323535303434353538383331393237343330393730323336333535353339", - "id": 23588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10317:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5223464433544489066271184294750886227362580875255044558831927430970236355539_by_1", - "typeString": "int_const 5223...(68 digits omitted)...5539" - }, - "value": "5223464433544489066271184294750886227362580875255044558831927430970236355539" - } - ], - "id": 23589, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10238:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3132333333343636393931313339323639363730323938313738353339363739373733353039343837353435343731313236393230323333353037313332383436383238353838383437343434", - "id": 23590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10396:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_12333466991139269670298178539679773509487545471126920233507132846828588847444_by_1", - "typeString": "int_const 1233...(69 digits omitted)...7444" - }, - "value": "12333466991139269670298178539679773509487545471126920233507132846828588847444" - }, - { - "hexValue": "33373837353836343738393233313034333534353437363837383631343836353633343638323335383739363131393532373735323932323838343336303835343239373934323232323338", - "id": 23591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10474:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3787586478923104354547687861486563468235879611952775292288436085429794222238_by_1", - "typeString": "int_const 3787...(68 digits omitted)...2238" - }, - "value": "3787586478923104354547687861486563468235879611952775292288436085429794222238" - } - ], - "id": 23592, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10395:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23593, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9448:1104:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "3135373138333733313332343739373639393034343433333236333831303337343337353238333732323132313835313038323934313137363936313433343733393739333238333938363538", - "id": 23594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10555:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15718373132479769904443326381037437528372212185108294117696143473979328398658_by_1", - "typeString": "int_const 1571...(69 digits omitted)...8658" - }, - "value": "15718373132479769904443326381037437528372212185108294117696143473979328398658" - }, - { - "hexValue": "3433343536373430363735323439333438353439383931383738333431353232323735313833313836393332373435313632393732353238393332383038333933343135323939353532", - "id": 23595, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10633:74:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_43456740675249348549891878341522275183186932745162972528932808393415299552_by_1", - "typeString": "int_const 4345...(66 digits omitted)...9552" - }, - "value": "43456740675249348549891878341522275183186932745162972528932808393415299552" - } - ], - "id": 23596, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10554:154:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3131323336383634393334383934363030383139393630383833313234353730363836393336353534333736313039333434393938353237333334343331353934353635373734323337383237", - "id": 23597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10710:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11236864934894600819960883124570686936554376109344998527334431594565774237827_by_1", - "typeString": "int_const 1123...(69 digits omitted)...7827" - }, - "value": "11236864934894600819960883124570686936554376109344998527334431594565774237827" - }, - { - "hexValue": "34323839323437343031353738383337303338373735383435313932383735373933373735343138313232373833373338393336323938333535343033313033303734303230303831383338", - "id": 23598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10788:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4289247401578837038775845192875793775418122783738936298355403103074020081838_by_1", - "typeString": "int_const 4289...(68 digits omitted)...1838" - }, - "value": "4289247401578837038775845192875793775418122783738936298355403103074020081838" - } - ], - "id": 23599, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10709:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3138353830333730333832313939353138383438323631393339363532313533373638333934383833363938343631383432373932303032393232313634353333383832323632303139393335", - "id": 23600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10867:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18580370382199518848261939652153768394883698461842792002922164533882262019935_by_1", - "typeString": "int_const 1858...(69 digits omitted)...9935" - }, - "value": "18580370382199518848261939652153768394883698461842792002922164533882262019935" - }, - { - "hexValue": "3230353136313835393533383832373030323534333837323637323434373038313131363035373936363631383634383435343935363435363738303439323736333732303735383432333539", - "id": 23601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10945:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20516185953882700254387267244708111605796661864845495645678049276372075842359_by_1", - "typeString": "int_const 2051...(69 digits omitted)...2359" - }, - "value": "20516185953882700254387267244708111605796661864845495645678049276372075842359" - } - ], - "id": 23602, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10866:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3230303431323931373132373039363130373338353733363631393734353531353137383333313230373735353339353933303033343737303138363337323837343334323130303732373032", - "id": 23603, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11025:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20041291712709610738573661974551517833120775539593003477018637287434210072702_by_1", - "typeString": "int_const 2004...(69 digits omitted)...2702" - }, - "value": "20041291712709610738573661974551517833120775539593003477018637287434210072702" - }, - { - "hexValue": "36333236363330323533393036363136383230343132393939313636313832353533373733333630393837343132383839373735353637343432353433313831333539313034373230353131", - "id": 23604, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11103:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6326630253906616820412999166182553773360987412889775567442543181359104720511_by_1", - "typeString": "int_const 6326...(68 digits omitted)...0511" - }, - "value": "6326630253906616820412999166182553773360987412889775567442543181359104720511" - } - ], - "id": 23605, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11024:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3133323638393731363131313330313532333135343238363239393139303132333838393234323235363536323835353933393034323131353631333931383231393138393330333237363134", - "id": 23606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11182:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13268971611130152315428629919012388924225656285593904211561391821918930327614_by_1", - "typeString": "int_const 1326...(69 digits omitted)...7614" - }, - "value": "13268971611130152315428629919012388924225656285593904211561391821918930327614" - }, - { - "hexValue": "39323437343337313839343532333533343838303137383032303431313538383430353132393536313131353538363430393538373238313439353937363937353038393134353930343333", - "id": 23607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11260:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9247437189452353488017802041158840512956111558640958728149597697508914590433_by_1", - "typeString": "int_const 9247...(68 digits omitted)...0433" - }, - "value": "9247437189452353488017802041158840512956111558640958728149597697508914590433" - } - ], - "id": 23608, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11181:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "36323637333834343935353537313339333339373038363135313832313133373235343231373333333736343338393332353830343732313431353439323734303530313436373339353439", - "id": 23609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11339:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6267384495557139339708615182113725421733376438932580472141549274050146739549_by_1", - "typeString": "int_const 6267...(68 digits omitted)...9549" - }, - "value": "6267384495557139339708615182113725421733376438932580472141549274050146739549" - }, - { - "hexValue": "31383332323634313534303331343532313438373135333138343432373232393630363936393737353732333839323036383937323430303330393038343634353739313333313334323337", - "id": 23610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11416:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1832264154031452148715318442722960696977572389206897240030908464579133134237_by_1", - "typeString": "int_const 1832...(68 digits omitted)...4237" - }, - "value": "1832264154031452148715318442722960696977572389206897240030908464579133134237" - } - ], - "id": 23611, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11338:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3136363530363834313635343837383733353539393031313430353939313537353539313533303138343439303833393339323934343936323535353930383330383931393934353634323835", - "id": 23612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11495:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16650684165487873559901140599157559153018449083939294496255590830891994564285_by_1", - "typeString": "int_const 1665...(69 digits omitted)...4285" - }, - "value": "16650684165487873559901140599157559153018449083939294496255590830891994564285" - }, - { - "hexValue": "3134313430323832373239343938303131343036313836303832313736323638303235353738363937303831363738323433393535353338393335353031333036383638353030343938393934", - "id": 23613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11573:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_14140282729498011406186082176268025578697081678243955538935501306868500498994_by_1", - "typeString": "int_const 1414...(69 digits omitted)...8994" - }, - "value": "14140282729498011406186082176268025578697081678243955538935501306868500498994" - } - ], - "id": 23614, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11494:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23615, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10553:1099:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "31373233343538313439303839373135393037393934313839363538363839333433333034373039373039303630353335363235363637323130323532373533333337373532313632313733", - "id": 23616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11655:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1723458149089715907994189658689343304709709060535625667210252753337752162173_by_1", - "typeString": "int_const 1723...(68 digits omitted)...2173" - }, - "value": "1723458149089715907994189658689343304709709060535625667210252753337752162173" - }, - { - "hexValue": "34303233303136383734313639303035323439333832303634333934333739363731333330343437343936343534333731323631363932323035343131393730393939333530393439323933", - "id": 23617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11732:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4023016874169005249382064394379671330447496454371261692205411970999350949293_by_1", - "typeString": "int_const 4023...(68 digits omitted)...9293" - }, - "value": "4023016874169005249382064394379671330447496454371261692205411970999350949293" - } - ], - "id": 23618, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11654:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "37363531363730313236363634363235373930383335333334303930323733343633303632353338383635383935313833323035393634363639333732373139323335303033303833353635", - "id": 23619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11811:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7651670126664625790835334090273463062538865895183205964669372719235003083565_by_1", - "typeString": "int_const 7651...(68 digits omitted)...3565" - }, - "value": "7651670126664625790835334090273463062538865895183205964669372719235003083565" - }, - { - "hexValue": "3137373130363532313538323132323132303830353032333433353635303735353133353438383938353933333937313033363735383332363336383332333731353332303933373434383537", - "id": 23620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11888:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_17710652158212212080502343565075513548898593397103675832636832371532093744857_by_1", - "typeString": "int_const 1771...(69 digits omitted)...4857" - }, - "value": "17710652158212212080502343565075513548898593397103675832636832371532093744857" - } - ], - "id": 23621, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11810:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "34323437393437313530303039383132343637323137363732393730383036333238323437353133383330333038343030333837393533323434373634393037333533383439323131363431", - "id": 23622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11968:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4247947150009812467217672970806328247513830308400387953244764907353849211641_by_1", - "typeString": "int_const 4247...(68 digits omitted)...1641" - }, - "value": "4247947150009812467217672970806328247513830308400387953244764907353849211641" - }, - { - "hexValue": "3134353030333831343339313237313830343734383031333933343338313735393238313931313939363936313737363037373530313633323633373135343336303036353333363330383737", - "id": 23623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12045:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_14500381439127180474801393438175928191199696177607750163263715436006533630877_by_1", - "typeString": "int_const 1450...(69 digits omitted)...0877" - }, - "value": "14500381439127180474801393438175928191199696177607750163263715436006533630877" - } - ], - "id": 23624, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11967:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3231323133373739353234343935383734363634313537373937363035363632383934303139313132303336373238363533363232383036363037343637333534323333303132333830323332", - "id": 23625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12125:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21213779524495874664157797605662894019112036728653622806607467354233012380232_by_1", - "typeString": "int_const 2121...(69 digits omitted)...0232" - }, - "value": "21213779524495874664157797605662894019112036728653622806607467354233012380232" - }, - { - "hexValue": "31343239333730383537343730303833333935343231343031353234353138383631353435313637353530333437303930383733373330393334323536333938383634353835303639303833", - "id": 23626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12203:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1429370857470083395421401524518861545167550347090873730934256398864585069083_by_1", - "typeString": "int_const 1429...(68 digits omitted)...9083" - }, - "value": "1429370857470083395421401524518861545167550347090873730934256398864585069083" - } - ], - "id": 23627, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12124:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3132343635323737373531363432373437363337343330353137333936303637313733393835383231393539373733333939383332393639313035313837393233343237383732323339323030", - "id": 23628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12282:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_12465277751642747637430517396067173985821959773399832969105187923427872239200_by_1", - "typeString": "int_const 1246...(69 digits omitted)...9200" - }, - "value": "12465277751642747637430517396067173985821959773399832969105187923427872239200" - }, - { - "hexValue": "34333737373034343238363037383335393034363432363533353830353433353431323431313535363031323931343834363435353030363931393638363234333839353232313930303330", - "id": 23629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12360:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4377704428607835904642653580543541241155601291484645500691968624389522190030_by_1", - "typeString": "int_const 4377...(68 digits omitted)...0030" - }, - "value": "4377704428607835904642653580543541241155601291484645500691968624389522190030" - } - ], - "id": 23630, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12281:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3131323833303237383332353031313238363333373631363139353532333932303133323533333034393732383232303836373836383537313231363837303938303837333331303134373435", - "id": 23631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12439:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11283027832501128633761619552392013253304972822086786857121687098087331014745_by_1", - "typeString": "int_const 1128...(69 digits omitted)...4745" - }, - "value": "11283027832501128633761619552392013253304972822086786857121687098087331014745" - }, - { - "hexValue": "3231343633333934323338393232393533363037303936303532303536383831393331373931373937373430373337313634303532373938303434363233323738353537323033333133373230", - "id": 23632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12517:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21463394238922953607096052056881931791797740737164052798044623278557203313720_by_1", - "typeString": "int_const 2146...(69 digits omitted)...3720" - }, - "value": "21463394238922953607096052056881931791797740737164052798044623278557203313720" - } - ], - "id": 23633, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12438:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3139363837323933343933313031313330393637373431353738373733373432353937343730353538393538363532333531353133353832393632313038343634303535363536313731333331", - "id": 23634, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12597:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19687293493101130967741578773742597470558958652351513582962108464055656171331_by_1", - "typeString": "int_const 1968...(69 digits omitted)...1331" - }, - "value": "19687293493101130967741578773742597470558958652351513582962108464055656171331" - }, - { - "hexValue": "34343435313635363936353235303631343031353832393739333030353036303832363639353430323233373734313435383737373632363839373234363331393335333133373136363332", - "id": 23635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12675:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4445165696525061401582979300506082669540223774145877762689724631935313716632_by_1", - "typeString": "int_const 4445...(68 digits omitted)...6632" - }, - "value": "4445165696525061401582979300506082669540223774145877762689724631935313716632" - } - ], - "id": 23636, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12596:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23637, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11653:1100:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "373435393234363739313931373339383934303535313433373438343636313132393934333738343339363435363831303339313336303037373734373837303736313135333735313234", - "id": 23638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12756:75:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_745924679191739894055143748466112994378439645681039136007774787076115375124_by_1", - "typeString": "int_const 7459...(67 digits omitted)...5124" - }, - "value": "745924679191739894055143748466112994378439645681039136007774787076115375124" - }, - { - "hexValue": "3133313332313639363730313235313932303136333931323538383338353534393635313736363238333137343533343638383730393638383637373137323837343436363233333230363433", - "id": 23639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12832:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13132169670125192016391258838554965176628317453468870968867717287446623320643_by_1", - "typeString": "int_const 1313...(69 digits omitted)...0643" - }, - "value": "13132169670125192016391258838554965176628317453468870968867717287446623320643" - } - ], - "id": 23640, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12755:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "32313236373737383333393339333738303238333034323636313239363136313435363637393235383439333332343831373535353637323638373437313832363239373935323936353830", - "id": 23641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12912:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2126777833939378028304266129616145667925849332481755567268747182629795296580_by_1", - "typeString": "int_const 2126...(68 digits omitted)...6580" - }, - "value": "2126777833939378028304266129616145667925849332481755567268747182629795296580" - }, - { - "hexValue": "3230393039363038373039383638373330303130303239313832303734383230383430333132353530343433373532383239343830393533363637383836393032363633353437393537393931", - "id": 23642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12989:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20909608709868730010029182074820840312550443752829480953667886902663547957991_by_1", - "typeString": "int_const 2090...(69 digits omitted)...7991" - }, - "value": "20909608709868730010029182074820840312550443752829480953667886902663547957991" - } - ], - "id": 23643, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12911:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "33333838373637373335383934343137333831353033323031373536393035323134343331363235303831393133343035353034353830343634333435393836343033383234393939383839", - "id": 23644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13069:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3388767735894417381503201756905214431625081913405504580464345986403824999889_by_1", - "typeString": "int_const 3388...(68 digits omitted)...9889" - }, - "value": "3388767735894417381503201756905214431625081913405504580464345986403824999889" - }, - { - "hexValue": "3231303134313132383337323134303131303039303936383235363032373931303732373438313935333337313939393132373733383538343939353838343737373632373234313533303730", - "id": 23645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13146:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21014112837214011009096825602791072748195337199912773858499588477762724153070_by_1", - "typeString": "int_const 2101...(69 digits omitted)...3070" - }, - "value": "21014112837214011009096825602791072748195337199912773858499588477762724153070" - } - ], - "id": 23646, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13068:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3130353231333137303136333331343937303934393033313136373430353831323731313232383434313331343432383832383435373030353637353831373735343034383732393439323732", - "id": 23647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13226:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10521317016331497094903116740581271122844131442882845700567581775404872949272_by_1", - "typeString": "int_const 1052...(69 digits omitted)...9272" - }, - "value": "10521317016331497094903116740581271122844131442882845700567581775404872949272" - }, - { - "hexValue": "3133323031393231373934353631373734333338343636363830343231393033363032393230313834363838323930393436373133313934313837393538303037303838333531363537333637", - "id": 23648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13304:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13201921794561774338466680421903602920184688290946713194187958007088351657367_by_1", - "typeString": "int_const 1320...(69 digits omitted)...7367" - }, - "value": "13201921794561774338466680421903602920184688290946713194187958007088351657367" - } - ], - "id": 23649, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13225:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3136313730323630373232303539393332363039393635373433333833303332373033333830363530353537363039363933353430313231323632383831393032323438303733333634343936", - "id": 23650, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13384:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16170260722059932609965743383032703380650557609693540121262881902248073364496_by_1", - "typeString": "int_const 1617...(69 digits omitted)...4496" - }, - "value": "16170260722059932609965743383032703380650557609693540121262881902248073364496" - }, - { - "hexValue": "36303034393833343931333336353030393131323934383732303335313236313431373436303332303333323131383732343732343237323132323734313433393435343235373430363137", - "id": 23651, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13462:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6004983491336500911294872035126141746032033211872472427212274143945425740617_by_1", - "typeString": "int_const 6004...(68 digits omitted)...0617" - }, - "value": "6004983491336500911294872035126141746032033211872472427212274143945425740617" - } - ], - "id": 23652, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13383:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3130323735363135363737353734333931323933353936393731313232313131333633303033333133343334383431383036363330323030353332353436303338313833303831393630393234", - "id": 23653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13541:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10275615677574391293596971122111363003313434841806630200532546038183081960924_by_1", - "typeString": "int_const 1027...(69 digits omitted)...0924" - }, - "value": "10275615677574391293596971122111363003313434841806630200532546038183081960924" - }, - { - "hexValue": "35393535353638373032353631333336343130373235373334393538363237343539323132363830373536303233343230343532373931363830323133333836303635313539353235393839", - "id": 23654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13619:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5955568702561336410725734958627459212680756023420452791680213386065159525989_by_1", - "typeString": "int_const 5955...(68 digits omitted)...5989" - }, - "value": "5955568702561336410725734958627459212680756023420452791680213386065159525989" - } - ], - "id": 23655, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13540:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3139303539303831303134333835383530373334373332303538363532313337363634393139333634383035363530383732313534393434353930323639383734333935353131383638343135", - "id": 23656, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13698:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19059081014385850734732058652137664919364805650872154944590269874395511868415_by_1", - "typeString": "int_const 1905...(69 digits omitted)...8415" - }, - "value": "19059081014385850734732058652137664919364805650872154944590269874395511868415" - }, - { - "hexValue": "3139323032333635383337363733373239333636353030343137303338323239393530353332353630323530353636393136313839353739363231383833333830363233323738313832313535", - "id": 23657, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13776:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19202365837673729366500417038229950532560250566916189579621883380623278182155_by_1", - "typeString": "int_const 1920...(69 digits omitted)...2155" - }, - "value": "19202365837673729366500417038229950532560250566916189579621883380623278182155" - } - ], - "id": 23658, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13697:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23659, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12754:1101:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "34353533363235323433353232383536353533313635393232393432393832313038343734313837323832343032383930373536373936353135373437373738323832393232353834363031", - "id": 23660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13858:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4553625243522856553165922942982108474187282402890756796515747778282922584601_by_1", - "typeString": "int_const 4553...(68 digits omitted)...4601" - }, - "value": "4553625243522856553165922942982108474187282402890756796515747778282922584601" - }, - { - "hexValue": "3136383335363534323139323239313837343238303731363439323431313930373436313139303832323639363336333435383732363832313037393431343732323431303434323630353834", - "id": 23661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13935:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16835654219229187428071649241190746119082269636345872682107941472241044260584_by_1", - "typeString": "int_const 1683...(69 digits omitted)...0584" - }, - "value": "16835654219229187428071649241190746119082269636345872682107941472241044260584" - } - ], - "id": 23662, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13857:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "33323732323933343738353334303436373239373238323333323637373635333537313935323535313239343939363033363332343133313538393738383232303834313838383731383534", - "id": 23663, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14015:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3272293478534046729728233267765357195255129499603632413158978822084188871854_by_1", - "typeString": "int_const 3272...(68 digits omitted)...1854" - }, - "value": "3272293478534046729728233267765357195255129499603632413158978822084188871854" - }, - { - "hexValue": "383733373432383233383637313931303338353335353434303632383532393230353338353636343138383139353231373332373835353030363134323439323339323135313735343736", - "id": 23664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14092:75:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_873742823867191038535544062852920538566418819521732785500614249239215175476_by_1", - "typeString": "int_const 8737...(67 digits omitted)...5476" - }, - "value": "873742823867191038535544062852920538566418819521732785500614249239215175476" - } - ], - "id": 23665, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14014:154:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "37383536393836313731363831323438343034333936303634323235373732373439373834313831363032323138353632373733303633313835303033343039393538393439363330393835", - "id": 23666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14170:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7856986171681248404396064225772749784181602218562773063185003409958949630985_by_1", - "typeString": "int_const 7856...(68 digits omitted)...0985" - }, - "value": "7856986171681248404396064225772749784181602218562773063185003409958949630985" - }, - { - "hexValue": "3131373037323138373336373434333832313338363932343833353931333839363431363037353730353537363534343839333633313739303235323031303339363936323238343731323330", - "id": 23667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14247:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11707218736744382138692483591389641607570557654489363179025201039696228471230_by_1", - "typeString": "int_const 1170...(69 digits omitted)...1230" - }, - "value": "11707218736744382138692483591389641607570557654489363179025201039696228471230" - } - ], - "id": 23668, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14169:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "32393032323535393337333038323634393538393733313639393438363137303939343731353433323535373537383837393633363437323338303933313932383538323930303739303530", - "id": 23669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14327:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2902255937308264958973169948617099471543255757887963647238093192858290079050_by_1", - "typeString": "int_const 2902...(68 digits omitted)...9050" - }, - "value": "2902255937308264958973169948617099471543255757887963647238093192858290079050" - }, - { - "hexValue": "34303932313533383830323237363631383939373231383732313634303833353735353937363032393633363733343536313037353532313436353833363230313737363634313135363733", - "id": 23670, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14404:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4092153880227661899721872164083575597602963673456107552146583620177664115673_by_1", - "typeString": "int_const 4092...(68 digits omitted)...5673" - }, - "value": "4092153880227661899721872164083575597602963673456107552146583620177664115673" - } - ], - "id": 23671, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14326:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3138333830343738383539313338333230383935383337343037333737313033303039343730393638383633353333303430363631383734353331383631383831363338383534313734363336", - "id": 23672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14483:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18380478859138320895837407377103009470968863533040661874531861881638854174636_by_1", - "typeString": "int_const 1838...(69 digits omitted)...4636" - }, - "value": "18380478859138320895837407377103009470968863533040661874531861881638854174636" - }, - { - "hexValue": "3134353032373733393532313834343431333731363537373831353235383336333130373533313736333038383830323234383136383433303431333138373433383039373835383335393834", - "id": 23673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14561:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_14502773952184441371657781525836310753176308880224816843041318743809785835984_by_1", - "typeString": "int_const 1450...(69 digits omitted)...5984" - }, - "value": "14502773952184441371657781525836310753176308880224816843041318743809785835984" - } - ], - "id": 23674, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14482:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "32373831313137323438303533323234313036313439323133383232333037353938393236343935343631383733313335313533363338373734363338353031313131333533343639333235", - "id": 23675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14641:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2781117248053224106149213822307598926495461873135153638774638501111353469325_by_1", - "typeString": "int_const 2781...(68 digits omitted)...9325" - }, - "value": "2781117248053224106149213822307598926495461873135153638774638501111353469325" - }, - { - "hexValue": "33353030303536353935323739303237363938363833343035383830353835363534383937333931323839333137343836323034343833333434373135383535303439353938343737363034", - "id": 23676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14718:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3500056595279027698683405880585654897391289317486204483344715855049598477604_by_1", - "typeString": "int_const 3500...(68 digits omitted)...7604" - }, - "value": "3500056595279027698683405880585654897391289317486204483344715855049598477604" - } - ], - "id": 23677, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14640:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "38383830313230373635393236323832393332373935313439363334373631373035373338343938383039353639383734333137343037353439323033383038393331303932323537303035", - "id": 23678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14797:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_8880120765926282932795149634761705738498809569874317407549203808931092257005_by_1", - "typeString": "int_const 8880...(68 digits omitted)...7005" - }, - "value": "8880120765926282932795149634761705738498809569874317407549203808931092257005" - }, - { - "hexValue": "3139303830303336333236363438303638353437383934393431303135303338383737373838353236333234373230353837333439373834383532353934343935373035353738373631303030", - "id": 23679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14874:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19080036326648068547894941015038877788526324720587349784852594495705578761000_by_1", - "typeString": "int_const 1908...(69 digits omitted)...1000" - }, - "value": "19080036326648068547894941015038877788526324720587349784852594495705578761000" - } - ], - "id": 23680, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14796:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23681, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13856:1097:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "37323532333337363735343735313338313530383330343032393039333533373732313536303436383039373239363237303634393932313433373632333235373639353337383430363233", - "id": 23682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14956:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7252337675475138150830402909353772156046809729627064992143762325769537840623_by_1", - "typeString": "int_const 7252...(68 digits omitted)...0623" - }, - "value": "7252337675475138150830402909353772156046809729627064992143762325769537840623" - }, - { - "hexValue": "37363031343433323134343135373034313335303038353838353838313932303238353537363535343431373136363936373236353439353130363939373730303937393739363535363238", - "id": 23683, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15033:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7601443214415704135008588588192028557655441716696726549510699770097979655628_by_1", - "typeString": "int_const 7601...(68 digits omitted)...5628" - }, - "value": "7601443214415704135008588588192028557655441716696726549510699770097979655628" - } - ], - "id": 23684, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14955:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "343336363037333433383237373934353037383335343632393038383331363939393632313733323434363437373034353338393439393134363836373232363331383036393331393332", - "id": 23685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15112:75:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_436607343827794507835462908831699962173244647704538949914686722631806931932_by_1", - "typeString": "int_const 4366...(67 digits omitted)...1932" - }, - "value": "436607343827794507835462908831699962173244647704538949914686722631806931932" - }, - { - "hexValue": "3138353030313236323938353738323738393837393937303836313134343030303635343032323730383636323830353437343733393133343230353336353935363633383736323733303034", - "id": 23686, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15188:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18500126298578278987997086114400065402270866280547473913420536595663876273004_by_1", - "typeString": "int_const 1850...(69 digits omitted)...3004" - }, - "value": "18500126298578278987997086114400065402270866280547473913420536595663876273004" - } - ], - "id": 23687, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15111:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3138343237373031363131363134313933383339393038333631313636343437393838313935333038333532363635313332313832323139313634343337363439383636333737343735313131", - "id": 23688, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15268:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18427701611614193839908361166447988195308352665132182219164437649866377475111_by_1", - "typeString": "int_const 1842...(69 digits omitted)...5111" - }, - "value": "18427701611614193839908361166447988195308352665132182219164437649866377475111" - }, - { - "hexValue": "35323939343933393432353936303432303435383631313337343332333338393535313739303738313832353730373532373436343837353733373039363738393336363137343738343534", - "id": 23689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15346:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5299493942596042045861137432338955179078182570752746487573709678936617478454_by_1", - "typeString": "int_const 5299...(68 digits omitted)...8454" - }, - "value": "5299493942596042045861137432338955179078182570752746487573709678936617478454" - } - ], - "id": 23690, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15267:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "34313838313535373134313634313235303639383334353132353239383339343739363832353136343839333139343939343436333930323134323636383338393532373631373238363536", - "id": 23691, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15425:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4188155714164125069834512529839479682516489319499446390214266838952761728656_by_1", - "typeString": "int_const 4188...(68 digits omitted)...8656" - }, - "value": "4188155714164125069834512529839479682516489319499446390214266838952761728656" - }, - { - "hexValue": "32373230393636303832353037373034303934333436383937393938363539383431343839373731383337323239313433353733303833303033383437303130323538333936393434373837", - "id": 23692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15502:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2720966082507704094346897998659841489771837229143573083003847010258396944787_by_1", - "typeString": "int_const 2720...(68 digits omitted)...4787" - }, - "value": "2720966082507704094346897998659841489771837229143573083003847010258396944787" - } - ], - "id": 23693, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15424:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3133323536343631353730303238313737333733313335323833373738373730373239333038323136393030383034353035333739383937393531343535353438333735383430303237303236", - "id": 23694, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15581:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13256461570028177373135283778770729308216900804505379897951455548375840027026_by_1", - "typeString": "int_const 1325...(69 digits omitted)...7026" - }, - "value": "13256461570028177373135283778770729308216900804505379897951455548375840027026" - }, - { - "hexValue": "3130373232303734303330333037333931333232313737383939353334313134393231373634393331363233323731373233383832303534363932303132363633333035333232333832373437", - "id": 23695, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15659:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10722074030307391322177899534114921764931623271723882054692012663305322382747_by_1", - "typeString": "int_const 1072...(69 digits omitted)...2747" - }, - "value": "10722074030307391322177899534114921764931623271723882054692012663305322382747" - } - ], - "id": 23696, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15580:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "39383234313437343937323434363532393535393439363936343432333935353836353637393734343234383238323338363038393732303230353237393538313836373031313334323733", - "id": 23697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15739:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9824147497244652955949696442395586567974424828238608972020527958186701134273_by_1", - "typeString": "int_const 9824...(68 digits omitted)...4273" - }, - "value": "9824147497244652955949696442395586567974424828238608972020527958186701134273" - }, - { - "hexValue": "3135373535323639393530383832363530373931383639393436313836343631343332323432353133393939353736303536313939333638303538383538323135303638393230303232313931", - "id": 23698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15816:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15755269950882650791869946186461432242513999576056199368058858215068920022191_by_1", - "typeString": "int_const 1575...(69 digits omitted)...2191" - }, - "value": "15755269950882650791869946186461432242513999576056199368058858215068920022191" - } - ], - "id": 23699, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15738:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3231313732343838353036303631313831393439353336353733343736383933333735333133333339373135393331333330343736383337313536323433333436303737313733323937323635", - "id": 23700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15896:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21172488506061181949536573476893375313339715931330476837156243346077173297265_by_1", - "typeString": "int_const 2117...(69 digits omitted)...7265" - }, - "value": "21172488506061181949536573476893375313339715931330476837156243346077173297265" - }, - { - "hexValue": "3133383932343334343837393737373736323438333636393635313038303331383431393437373133353434393339393533383234373638323931333830313737333031383731353539393435", - "id": 23701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15974:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13892434487977776248366965108031841947713544939953824768291380177301871559945_by_1", - "typeString": "int_const 1389...(69 digits omitted)...9945" - }, - "value": "13892434487977776248366965108031841947713544939953824768291380177301871559945" - } - ], - "id": 23702, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15895:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23703, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14954:1099:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "3130323032333236313636323836383838383933363735363334333138313037373135313836383334353838363934373134373530373632393532303831303334313335353631353436323731", - "id": 23704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16056:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10202326166286888893675634318107715186834588694714750762952081034135561546271_by_1", - "typeString": "int_const 1020...(69 digits omitted)...6271" - }, - "value": "10202326166286888893675634318107715186834588694714750762952081034135561546271" - }, - { - "hexValue": "3135303238313534363934373133313434323432323034383631353731353532363335353230323930393933383535383236353534333235303032393931363932393037343231353136393138", - "id": 23705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16134:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15028154694713144242204861571552635520290993855826554325002991692907421516918_by_1", - "typeString": "int_const 1502...(69 digits omitted)...6918" - }, - "value": "15028154694713144242204861571552635520290993855826554325002991692907421516918" - } - ], - "id": 23706, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16055:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3138343836303339383431333830313035393736323732353737353231363039383636363636393030353736343938353037333532393337333238373236343930303532323936343639383539", - "id": 23707, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16214:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18486039841380105976272577521609866666900576498507352937328726490052296469859_by_1", - "typeString": "int_const 1848...(69 digits omitted)...9859" - }, - "value": "18486039841380105976272577521609866666900576498507352937328726490052296469859" - }, - { - "hexValue": "3132373636323839383835333732383333383132363230353832363332383437383732393738303835393630373737303735363632393838393332323030393130363935383438353931333537", - "id": 23708, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16292:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_12766289885372833812620582632847872978085960777075662988932200910695848591357_by_1", - "typeString": "int_const 1276...(69 digits omitted)...1357" - }, - "value": "12766289885372833812620582632847872978085960777075662988932200910695848591357" - } - ], - "id": 23709, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16213:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "31343532323732393237373338353930323438333536333731313734343232313834363536393332373331313130393336303632393930313135363130383332343632313831363334363434", - "id": 23710, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16372:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1452272927738590248356371174422184656932731110936062990115610832462181634644_by_1", - "typeString": "int_const 1452...(68 digits omitted)...4644" - }, - "value": "1452272927738590248356371174422184656932731110936062990115610832462181634644" - }, - { - "hexValue": "33363038303530313134323333323130373839353432313839363239333433313037383930393433323636373539383237333837393931373838373138343534313739383333323838363935", - "id": 23711, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16449:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3608050114233210789542189629343107890943266759827387991788718454179833288695_by_1", - "typeString": "int_const 3608...(68 digits omitted)...8695" - }, - "value": "3608050114233210789542189629343107890943266759827387991788718454179833288695" - } - ], - "id": 23712, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16371:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3134373938323430343532333838393039333237393435343234363835393033353332333333373635363337383833323732373531333832303337373136363336333237323336393535303031", - "id": 23713, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16528:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_14798240452388909327945424685903532333765637883272751382037716636327236955001_by_1", - "typeString": "int_const 1479...(69 digits omitted)...5001" - }, - "value": "14798240452388909327945424685903532333765637883272751382037716636327236955001" - }, - { - "hexValue": "3130373733383934383937373131383438323039363832333638343838393136313231303136363935303036383938363831393835363931343637363035323139303938383335353030323031", - "id": 23714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16606:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10773894897711848209682368488916121016695006898681985691467605219098835500201_by_1", - "typeString": "int_const 1077...(69 digits omitted)...0201" - }, - "value": "10773894897711848209682368488916121016695006898681985691467605219098835500201" - } - ], - "id": 23715, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16527:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3137323034323637393333313332303039303933363034303939383139353336323435313434353033343839333232363339313231383235333831313331303936343637353730363938363530", - "id": 23716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16686:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_17204267933132009093604099819536245144503489322639121825381131096467570698650_by_1", - "typeString": "int_const 1720...(69 digits omitted)...8650" - }, - "value": "17204267933132009093604099819536245144503489322639121825381131096467570698650" - }, - { - "hexValue": "37373034323938393735343230333034313536333332373334313135363739393833333731333435373534383636323738383131333638383639303734393930343836373137353331313331", - "id": 23717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16764:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7704298975420304156332734115679983371345754866278811368869074990486717531131_by_1", - "typeString": "int_const 7704...(68 digits omitted)...1131" - }, - "value": "7704298975420304156332734115679983371345754866278811368869074990486717531131" - } - ], - "id": 23718, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16685:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "38303630343635363632303137333234303830353630383438333136343738343037303338313633313435313439393833363339393037353936313830353030303935353938363639323437", - "id": 23719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16843:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_8060465662017324080560848316478407038163145149983639907596180500095598669247_by_1", - "typeString": "int_const 8060...(68 digits omitted)...9247" - }, - "value": "8060465662017324080560848316478407038163145149983639907596180500095598669247" - }, - { - "hexValue": "3230343735303832313636343237323834313838303032353030323232303933353731373136363531323438393830323435363337363032363637353632333336373531303239383536353733", - "id": 23720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16920:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20475082166427284188002500222093571716651248980245637602667562336751029856573_by_1", - "typeString": "int_const 2047...(69 digits omitted)...6573" - }, - "value": "20475082166427284188002500222093571716651248980245637602667562336751029856573" - } - ], - "id": 23721, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16842:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "37343537353636363832363932333038313132373236333332303936373333323630353835303235333339373431303833343437373835333237373036323530313233313635303837383638", - "id": 23722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17000:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7457566682692308112726332096733260585025339741083447785327706250123165087868_by_1", - "typeString": "int_const 7457...(68 digits omitted)...7868" - }, - "value": "7457566682692308112726332096733260585025339741083447785327706250123165087868" - }, - { - "hexValue": "3131393034353139343433383734393232323932363032313530363835303639333730303336333833363937383737363537373233393736323434393037343030333932373738303032363134", - "id": 23723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17077:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11904519443874922292602150685069370036383697877657723976244907400392778002614_by_1", - "typeString": "int_const 1190...(69 digits omitted)...2614" - }, - "value": "11904519443874922292602150685069370036383697877657723976244907400392778002614" - } - ], - "id": 23724, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16999:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23725, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16054:1102:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "3134393330363234373737313632363536373736303638313132343032323833323630363032353132323532313739373637373437333038343333313934383835333232363631313530343232", - "id": 23726, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17159:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_14930624777162656776068112402283260602512252179767747308433194885322661150422_by_1", - "typeString": "int_const 1493...(69 digits omitted)...0422" - }, - "value": "14930624777162656776068112402283260602512252179767747308433194885322661150422" - }, - { - "hexValue": "3133363832393633373331303733323338313332323734323738363130363630343639323836333239333638323136353236363539353930393434303739323131393439363836343530343032", - "id": 23727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17237:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_13682963731073238132274278610660469286329368216526659590944079211949686450402_by_1", - "typeString": "int_const 1368...(69 digits omitted)...0402" - }, - "value": "13682963731073238132274278610660469286329368216526659590944079211949686450402" - } - ], - "id": 23728, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "17158:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3138373035343831363537313438383037303136373835333035333738373733333034343736343235353931363336333333303938333330333234303439393630323538363832353734303730", - "id": 23729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17317:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18705481657148807016785305378773304476425591636333098330324049960258682574070_by_1", - "typeString": "int_const 1870...(69 digits omitted)...4070" - }, - "value": "18705481657148807016785305378773304476425591636333098330324049960258682574070" - }, - { - "hexValue": "3231333135373234313037333736363237303835373738343932333738303031363736393335343534353930393834323239313436333931373436333031343034323932303136323837363533", - "id": 23730, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17395:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21315724107376627085778492378001676935454590984229146391746301404292016287653_by_1", - "typeString": "int_const 2131...(69 digits omitted)...7653" - }, - "value": "21315724107376627085778492378001676935454590984229146391746301404292016287653" - } - ], - "id": 23731, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "17316:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3132363238343237323335303130363038353239383639313436383731353536383730343737313832373034333130323335333733393436383737323430353039363830373432303338393631", - "id": 23732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17475:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_12628427235010608529869146871556870477182704310235373946877240509680742038961_by_1", - "typeString": "int_const 1262...(69 digits omitted)...8961" - }, - "value": "12628427235010608529869146871556870477182704310235373946877240509680742038961" - }, - { - "hexValue": "3135303933323938313034343338373638353835353539333335383638363633393539373130333231333438313036313137373335313830303531353139383337383435333139313231323534", - "id": 23733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17553:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15093298104438768585559335868663959710321348106117735180051519837845319121254_by_1", - "typeString": "int_const 1509...(69 digits omitted)...1254" - }, - "value": "15093298104438768585559335868663959710321348106117735180051519837845319121254" - } - ], - "id": 23734, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "17474:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "36353933393037343637373739333138393537353939343430353834373933303939303035313039373839323234373734363434303037363034343334393234373036323439303031303135", - "id": 23735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17633:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6593907467779318957599440584793099005109789224774644007604434924706249001015_by_1", - "typeString": "int_const 6593...(68 digits omitted)...1015" - }, - "value": "6593907467779318957599440584793099005109789224774644007604434924706249001015" - }, - { - "hexValue": "3138353439353936363330303037313939353430363734363937313134393436323531303330383135363735363737373133323536333237383130373732373939313034373131363231343833", - "id": 23736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17710:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18549596630007199540674697114946251030815675677713256327810772799104711621483_by_1", - "typeString": "int_const 1854...(69 digits omitted)...1483" - }, - "value": "18549596630007199540674697114946251030815675677713256327810772799104711621483" - } - ], - "id": 23737, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "17632:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "36323731313031373337303435323438383334373539303033383439323536363631303539383036363137313434323239343237393837373137343736393932363130393734313632333336", - "id": 23738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17790:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6271101737045248834759003849256661059806617144229427987717476992610974162336_by_1", - "typeString": "int_const 6271...(68 digits omitted)...2336" - }, - "value": "6271101737045248834759003849256661059806617144229427987717476992610974162336" - }, - { - "hexValue": "333535373438313332323138393634383431333035343534303730303232353037313232333139303835353432343834343737313130353633333232373533353635363531353736343538", - "id": 23739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17867:75:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_355748132218964841305454070022507122319085542484477110563322753565651576458_by_1", - "typeString": "int_const 3557...(67 digits omitted)...6458" - }, - "value": "355748132218964841305454070022507122319085542484477110563322753565651576458" - } - ], - "id": 23740, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "17789:154:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "32313136313339373732313333313431393637333137373931343733333139353430363230313034383838363837343132303738343132333336323438303033393739353934313538353436", - "id": 23741, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17945:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2116139772133141967317791473319540620104888687412078412336248003979594158546_by_1", - "typeString": "int_const 2116...(68 digits omitted)...8546" - }, - "value": "2116139772133141967317791473319540620104888687412078412336248003979594158546" - }, - { - "hexValue": "34303034343030323034393637333235383439343932313535373133353230323936363837343036303335333536393031313032323534383830353232353334303835383930363136343836", - "id": 23742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18022:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4004400204967325849492155713520296687406035356901102254880522534085890616486_by_1", - "typeString": "int_const 4004...(68 digits omitted)...6486" - }, - "value": "4004400204967325849492155713520296687406035356901102254880522534085890616486" - } - ], - "id": 23743, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "17944:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "34323036363437303238353935373634323333393935333739393832373134303232343130363630323834353738363230373233353130393037303036333530353935323037393035323238", - "id": 23744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18101:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4206647028595764233995379982714022410660284578620723510907006350595207905228_by_1", - "typeString": "int_const 4206...(68 digits omitted)...5228" - }, - "value": "4206647028595764233995379982714022410660284578620723510907006350595207905228" - }, - { - "hexValue": "3139333830363334323836333337363039393838303938353137303930303033333334363435313133363735323237373432373435303635333831353139313539333232373935383435303033", - "id": 23745, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18178:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_19380634286337609988098517090003334645113675227742745065381519159322795845003_by_1", - "typeString": "int_const 1938...(69 digits omitted)...5003" - }, - "value": "19380634286337609988098517090003334645113675227742745065381519159322795845003" - } - ], - "id": 23746, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18100:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23747, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "17157:1100:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - }, - { - "components": [ - { - "components": [ - { - "hexValue": "3132333135323430393635373432363833353136353831353635333639343936333731393239353836323831333338383632373631373432313039363531353235313931383335353434323432", - "id": 23748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18260:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_12315240965742683516581565369496371929586281338862761742109651525191835544242_by_1", - "typeString": "int_const 1231...(69 digits omitted)...4242" - }, - "value": "12315240965742683516581565369496371929586281338862761742109651525191835544242" - }, - { - "hexValue": "3138393934383033373432373038333336343436333639313238353638343233373035343034333534363535373432363034363839333532363330323733313830343639343331393532373038", - "id": 23749, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18338:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18994803742708336446369128568423705404354655742604689352630273180469431952708_by_1", - "typeString": "int_const 1899...(69 digits omitted)...2708" - }, - "value": "18994803742708336446369128568423705404354655742604689352630273180469431952708" - } - ], - "id": 23750, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18259:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3138303139343033333432343039363038393232383132353639343336333137343834323530313334393435333836383639363537323835323239333738303935323531343235373738303936", - "id": 23751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18418:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18019403342409608922812569436317484250134945386869657285229378095251425778096_by_1", - "typeString": "int_const 1801...(69 digits omitted)...8096" - }, - "value": "18019403342409608922812569436317484250134945386869657285229378095251425778096" - }, - { - "hexValue": "3132373037303039373830333031313032383330323234303934313932393834393036323036393230363636363931303135323535363932373431303038353934383038363934373837393137", - "id": 23752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18496:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_12707009780301102830224094192984906206920666691015255692741008594808694787917_by_1", - "typeString": "int_const 1270...(69 digits omitted)...7917" - }, - "value": "12707009780301102830224094192984906206920666691015255692741008594808694787917" - } - ], - "id": 23753, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18417:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "32353932343037313831393031363836323038303631393838373736373634353031383238333131323731353139353935373937313533323634373538323037343730303831323034333331", - "id": 23754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18576:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2592407181901686208061988776764501828311271519595797153264758207470081204331_by_1", - "typeString": "int_const 2592...(68 digits omitted)...4331" - }, - "value": "2592407181901686208061988776764501828311271519595797153264758207470081204331" - }, - { - "hexValue": "3131383437353934313631313630303734393632363739313235343131353632363837323837353935333832333335343130323133363431313135303031383636353837393838343934343939", - "id": 23755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18653:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11847594161160074962679125411562687287595382335410213641115001866587988494499_by_1", - "typeString": "int_const 1184...(69 digits omitted)...4499" - }, - "value": "11847594161160074962679125411562687287595382335410213641115001866587988494499" - } - ], - "id": 23756, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18575:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "33333436393237303236383639353632393231313636353435363834343531323930363436323733383336333632383935363435333637363635353134323033363632383939363231333636", - "id": 23757, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18733:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3346927026869562921166545684451290646273836362895645367665514203662899621366_by_1", - "typeString": "int_const 3346...(68 digits omitted)...1366" - }, - "value": "3346927026869562921166545684451290646273836362895645367665514203662899621366" - }, - { - "hexValue": "3135373538313835363933353433393739383230353238313238303235303933353533343932323436313335393134303239353735373332383336323231363138383832383336343933313433", - "id": 23758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18810:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_15758185693543979820528128025093553492246135914029575732836221618882836493143_by_1", - "typeString": "int_const 1575...(69 digits omitted)...3143" - }, - "value": "15758185693543979820528128025093553492246135914029575732836221618882836493143" - } - ], - "id": 23759, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18732:156:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3230353238363836363537383130343939313838333638313437323036303032333038353331343437313835383737393934343339333937353239373035373037333732313730333337303435", - "id": 23760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18890:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20528686657810499188368147206002308531447185877994439397529705707372170337045_by_1", - "typeString": "int_const 2052...(69 digits omitted)...7045" - }, - "value": "20528686657810499188368147206002308531447185877994439397529705707372170337045" - }, - { - "hexValue": "3138303235333936363738303739373031363132393036303033373639343736303736363030313936323837303031383434313638333930393336313832393732323438383532383138313535", - "id": 23761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18968:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_18025396678079701612906003769476076600196287001844168390936182972248852818155_by_1", - "typeString": "int_const 1802...(69 digits omitted)...8155" - }, - "value": "18025396678079701612906003769476076600196287001844168390936182972248852818155" - } - ], - "id": 23762, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18889:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "39373939383135323530303539363835373639383237303137393437383334363237353633353937383834303233343930313836303733383036313834383832393633393439363434353936", - "id": 23763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19048:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9799815250059685769827017947834627563597884023490186073806184882963949644596_by_1", - "typeString": "int_const 9799...(68 digits omitted)...4596" - }, - "value": "9799815250059685769827017947834627563597884023490186073806184882963949644596" - }, - { - "hexValue": "34393938343935303934333232333732373632333134363330333336363131313334383636343437343036303232363837313138373033393533333132313537383139333439383932363033", - "id": 23764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19125:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4998495094322372762314630336611134866447406022687118703953312157819349892603_by_1", - "typeString": "int_const 4998...(68 digits omitted)...2603" - }, - "value": "4998495094322372762314630336611134866447406022687118703953312157819349892603" - } - ], - "id": 23765, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19047:155:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3136313736353335353237363730383439313631313733333036313531303538323030373632363432313537333433383233353533303733343339393537353037353633383536343339373732", - "id": 23766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19204:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16176535527670849161173306151058200762642157343823553073439957507563856439772_by_1", - "typeString": "int_const 1617...(69 digits omitted)...9772" - }, - "value": "16176535527670849161173306151058200762642157343823553073439957507563856439772" - }, - { - "hexValue": "3231383737333331353333323932393630343730353532353633323336393836363730323232353634393535353839313337333033363232313032373037383031333531333430363730383535", - "id": 23767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19282:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21877331533292960470552563236986670222564955589137303622102707801351340670855_by_1", - "typeString": "int_const 2187...(69 digits omitted)...0855" - }, - "value": "21877331533292960470552563236986670222564955589137303622102707801351340670855" - } - ], - "id": 23768, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19203:157:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "id": 23769, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18258:1103:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr", - "typeString": "uint256[2] memory[7] memory" - } - } - ], - "id": 23770, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "639:18723:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_memory_ptr_$7_memory_ptr_$17_memory_ptr", - "typeString": "uint256[2] memory[7] memory[17] memory" - } - }, - "visibility": "internal" - }, - { - "id": 24015, - "nodeType": "FunctionDefinition", - "src": "19420:1289:25", - "nodes": [], - "body": { - "id": 24014, - "nodeType": "Block", - "src": "19660:1049:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 23792 - ], - "declarations": [ - { - "constant": false, - "id": 23792, - "mutability": "mutable", - "name": "p", - "nameLocation": "19683:1:25", - "nodeType": "VariableDeclaration", - "scope": 24014, - "src": "19670:14:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$24271_memory_ptr", - "typeString": "struct ISemaphoreVerifier.Proof" - }, - "typeName": { - "id": 23791, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 23790, - "name": "Proof", - "nameLocations": [ - "19670:5:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 24271, - "src": "19670:5:25" - }, - "referencedDeclaration": 24271, - "src": "19670:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$24271_storage_ptr", - "typeString": "struct ISemaphoreVerifier.Proof" - } - }, - "visibility": "internal" - } - ], - "id": 23793, - "nodeType": "VariableDeclarationStatement", - "src": "19670:14:25" - }, - { - "expression": { - "id": 23806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 23794, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23792, - "src": "19695:1:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$24271_memory_ptr", - "typeString": "struct ISemaphoreVerifier.Proof memory" - } - }, - "id": 23796, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "19697:1:25", - "memberName": "A", - "nodeType": "MemberAccess", - "referencedDeclaration": 24264, - "src": "19695:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 23799, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23784, - "src": "19717:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 23801, - "indexExpression": { - "hexValue": "30", - "id": 23800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19723:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19717:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 23802, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23784, - "src": "19727:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 23804, - "indexExpression": { - "hexValue": "31", - "id": 23803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19733:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19727:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 23797, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "19701:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19709:7:25", - "memberName": "G1Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23004, - "src": "19701:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$23004_storage_ptr_$", - "typeString": "type(struct Pairing.G1Point storage pointer)" - } - }, - "id": 23805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19701:35:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "19695:41:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 23807, - "nodeType": "ExpressionStatement", - "src": "19695:41:25" - }, - { - "expression": { - "id": 23828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 23808, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23792, - "src": "19746:1:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$24271_memory_ptr", - "typeString": "struct ISemaphoreVerifier.Proof memory" - } - }, - "id": 23810, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "19748:1:25", - "memberName": "B", - "nodeType": "MemberAccess", - "referencedDeclaration": 24267, - "src": "19746:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "components": [ - { - "baseExpression": { - "id": 23813, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23784, - "src": "19769:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 23815, - "indexExpression": { - "hexValue": "32", - "id": 23814, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19775:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19769:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 23816, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23784, - "src": "19779:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 23818, - "indexExpression": { - "hexValue": "33", - "id": 23817, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19785:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19779:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 23819, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19768:20:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "baseExpression": { - "id": 23820, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23784, - "src": "19791:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 23822, - "indexExpression": { - "hexValue": "34", - "id": 23821, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19797:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19791:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 23823, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23784, - "src": "19801:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 23825, - "indexExpression": { - "hexValue": "35", - "id": 23824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19807:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19801:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 23826, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19790:20:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - ], - "expression": { - "id": 23811, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "19752:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19760:7:25", - "memberName": "G2Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23013, - "src": "19752:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$23013_storage_ptr_$", - "typeString": "type(struct Pairing.G2Point storage pointer)" - } - }, - "id": 23827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19752:59:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "src": "19746:65:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "id": 23829, - "nodeType": "ExpressionStatement", - "src": "19746:65:25" - }, - { - "expression": { - "id": 23842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 23830, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23792, - "src": "19821:1:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$24271_memory_ptr", - "typeString": "struct ISemaphoreVerifier.Proof memory" - } - }, - "id": 23832, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "19823:1:25", - "memberName": "C", - "nodeType": "MemberAccess", - "referencedDeclaration": 24270, - "src": "19821:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 23835, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23784, - "src": "19843:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 23837, - "indexExpression": { - "hexValue": "36", - "id": 23836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19849:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19843:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 23838, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23784, - "src": "19853:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8] calldata" - } - }, - "id": 23840, - "indexExpression": { - "hexValue": "37", - "id": 23839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19859:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_7_by_1", - "typeString": "int_const 7" - }, - "value": "7" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19853:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 23833, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "19827:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19835:7:25", - "memberName": "G1Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23004, - "src": "19827:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$23004_storage_ptr_$", - "typeString": "type(struct Pairing.G1Point storage pointer)" - } - }, - "id": 23841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19827:35:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "19821:41:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 23843, - "nodeType": "ExpressionStatement", - "src": "19821:41:25" - }, - { - "assignments": [ - 23846 - ], - "declarations": [ - { - "constant": false, - "id": 23846, - "mutability": "mutable", - "name": "vk", - "nameLocation": "19896:2:25", - "nodeType": "VariableDeclaration", - "scope": 24014, - "src": "19873:25:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey" - }, - "typeName": { - "id": 23845, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 23844, - "name": "VerificationKey", - "nameLocations": [ - "19873:15:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 24261, - "src": "19873:15:25" - }, - "referencedDeclaration": 24261, - "src": "19873:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_storage_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey" - } - }, - "visibility": "internal" - } - ], - "id": 23852, - "initialValue": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 23850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 23848, - "name": "merkleTreeDepth", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23786, - "src": "19921:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "3136", - "id": 23849, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19939:2:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "19921:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 23847, - "name": "_getVerificationKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24218, - "src": "19901:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_VerificationKey_$24261_memory_ptr_$", - "typeString": "function (uint256) view returns (struct ISemaphoreVerifier.VerificationKey memory)" - } - }, - "id": 23851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19901:41:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19873:69:25" - }, - { - "assignments": [ - 23857 - ], - "declarations": [ - { - "constant": false, - "id": 23857, - "mutability": "mutable", - "name": "vk_x", - "nameLocation": "19976:4:25", - "nodeType": "VariableDeclaration", - "scope": 24014, - "src": "19953:27:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point" - }, - "typeName": { - "id": 23856, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 23855, - "name": "Pairing.G1Point", - "nameLocations": [ - "19953:7:25", - "19961:7:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 23004, - "src": "19953:15:25" - }, - "referencedDeclaration": 23004, - "src": "19953:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_storage_ptr", - "typeString": "struct Pairing.G1Point" - } - }, - "visibility": "internal" - } - ], - "id": 23862, - "initialValue": { - "baseExpression": { - "expression": { - "id": 23858, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23846, - "src": "19983:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 23859, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19986:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "19983:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 23861, - "indexExpression": { - "hexValue": "30", - "id": 23860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19989:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19983:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19953:38:25" - }, - { - "expression": { - "id": 23876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 23863, - "name": "vk_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23857, - "src": "20002:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 23866, - "name": "vk_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23857, - "src": "20026:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - { - "arguments": [ - { - "baseExpression": { - "expression": { - "id": 23869, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23846, - "src": "20051:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 23870, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20054:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "20051:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 23872, - "indexExpression": { - "hexValue": "31", - "id": 23871, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20057:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20051:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - { - "id": 23873, - "name": "merkleTreeRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23774, - "src": "20061:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 23867, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "20032:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20040:10:25", - "memberName": "scalar_mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 23212, - "src": "20032:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_G1Point_$23004_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$23004_memory_ptr_$", - "typeString": "function (struct Pairing.G1Point memory,uint256) view returns (struct Pairing.G1Point memory)" - } - }, - "id": 23874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20032:44:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - }, - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - ], - "expression": { - "id": 23864, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "20009:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20017:8:25", - "memberName": "addition", - "nodeType": "MemberAccess", - "referencedDeclaration": 23153, - "src": "20009:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_G1Point_$23004_memory_ptr_$_t_struct$_G1Point_$23004_memory_ptr_$returns$_t_struct$_G1Point_$23004_memory_ptr_$", - "typeString": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" - } - }, - "id": 23875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20009:68:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "20002:75:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 23877, - "nodeType": "ExpressionStatement", - "src": "20002:75:25" - }, - { - "expression": { - "id": 23891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 23878, - "name": "vk_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23857, - "src": "20087:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 23881, - "name": "vk_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23857, - "src": "20111:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - { - "arguments": [ - { - "baseExpression": { - "expression": { - "id": 23884, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23846, - "src": "20136:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 23885, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20139:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "20136:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 23887, - "indexExpression": { - "hexValue": "32", - "id": 23886, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20142:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20136:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - { - "id": 23888, - "name": "nullifierHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23776, - "src": "20146:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 23882, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "20117:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20125:10:25", - "memberName": "scalar_mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 23212, - "src": "20117:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_G1Point_$23004_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$23004_memory_ptr_$", - "typeString": "function (struct Pairing.G1Point memory,uint256) view returns (struct Pairing.G1Point memory)" - } - }, - "id": 23889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20117:43:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - }, - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - ], - "expression": { - "id": 23879, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "20094:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20102:8:25", - "memberName": "addition", - "nodeType": "MemberAccess", - "referencedDeclaration": 23153, - "src": "20094:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_G1Point_$23004_memory_ptr_$_t_struct$_G1Point_$23004_memory_ptr_$returns$_t_struct$_G1Point_$23004_memory_ptr_$", - "typeString": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" - } - }, - "id": 23890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20094:67:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "20087:74:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 23892, - "nodeType": "ExpressionStatement", - "src": "20087:74:25" - }, - { - "expression": { - "id": 23906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 23893, - "name": "vk_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23857, - "src": "20171:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 23896, - "name": "vk_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23857, - "src": "20195:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - { - "arguments": [ - { - "baseExpression": { - "expression": { - "id": 23899, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23846, - "src": "20220:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 23900, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20223:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "20220:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 23902, - "indexExpression": { - "hexValue": "33", - "id": 23901, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20226:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20220:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - { - "id": 23903, - "name": "signal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23778, - "src": "20230:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 23897, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "20201:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20209:10:25", - "memberName": "scalar_mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 23212, - "src": "20201:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_G1Point_$23004_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$23004_memory_ptr_$", - "typeString": "function (struct Pairing.G1Point memory,uint256) view returns (struct Pairing.G1Point memory)" - } - }, - "id": 23904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20201:36:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - }, - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - ], - "expression": { - "id": 23894, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "20178:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20186:8:25", - "memberName": "addition", - "nodeType": "MemberAccess", - "referencedDeclaration": 23153, - "src": "20178:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_G1Point_$23004_memory_ptr_$_t_struct$_G1Point_$23004_memory_ptr_$returns$_t_struct$_G1Point_$23004_memory_ptr_$", - "typeString": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" - } - }, - "id": 23905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20178:60:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "20171:67:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 23907, - "nodeType": "ExpressionStatement", - "src": "20171:67:25" - }, - { - "expression": { - "id": 23921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 23908, - "name": "vk_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23857, - "src": "20248:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 23911, - "name": "vk_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23857, - "src": "20272:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - { - "arguments": [ - { - "baseExpression": { - "expression": { - "id": 23914, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23846, - "src": "20297:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 23915, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20300:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "20297:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 23917, - "indexExpression": { - "hexValue": "34", - "id": 23916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20303:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20297:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - { - "id": 23918, - "name": "externalNullifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23780, - "src": "20307:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 23912, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "20278:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20286:10:25", - "memberName": "scalar_mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 23212, - "src": "20278:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_G1Point_$23004_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$23004_memory_ptr_$", - "typeString": "function (struct Pairing.G1Point memory,uint256) view returns (struct Pairing.G1Point memory)" - } - }, - "id": 23919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20278:47:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - }, - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - ], - "expression": { - "id": 23909, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "20255:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20263:8:25", - "memberName": "addition", - "nodeType": "MemberAccess", - "referencedDeclaration": 23153, - "src": "20255:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_G1Point_$23004_memory_ptr_$_t_struct$_G1Point_$23004_memory_ptr_$returns$_t_struct$_G1Point_$23004_memory_ptr_$", - "typeString": "function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)" - } - }, - "id": 23920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20255:71:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "20248:78:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 23922, - "nodeType": "ExpressionStatement", - "src": "20248:78:25" - }, - { - "assignments": [ - 23928 - ], - "declarations": [ - { - "constant": false, - "id": 23928, - "mutability": "mutable", - "name": "p1", - "nameLocation": "20362:2:25", - "nodeType": "VariableDeclaration", - "scope": 24014, - "src": "20337:27:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point[]" - }, - "typeName": { - "baseType": { - "id": 23926, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 23925, - "name": "Pairing.G1Point", - "nameLocations": [ - "20337:7:25", - "20345:7:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 23004, - "src": "20337:15:25" - }, - "referencedDeclaration": 23004, - "src": "20337:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_storage_ptr", - "typeString": "struct Pairing.G1Point" - } - }, - "id": 23927, - "nodeType": "ArrayTypeName", - "src": "20337:17:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_storage_$dyn_storage_ptr", - "typeString": "struct Pairing.G1Point[]" - } - }, - "visibility": "internal" - } - ], - "id": 23935, - "initialValue": { - "arguments": [ - { - "hexValue": "34", - "id": 23933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20389:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - } - ], - "id": 23932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "20367:21:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct Pairing.G1Point memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 23930, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 23929, - "name": "Pairing.G1Point", - "nameLocations": [ - "20371:7:25", - "20379:7:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 23004, - "src": "20371:15:25" - }, - "referencedDeclaration": 23004, - "src": "20371:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_storage_ptr", - "typeString": "struct Pairing.G1Point" - } - }, - "id": 23931, - "nodeType": "ArrayTypeName", - "src": "20371:17:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_storage_$dyn_storage_ptr", - "typeString": "struct Pairing.G1Point[]" - } - } - }, - "id": 23934, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20367:24:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20337:54:25" - }, - { - "assignments": [ - 23941 - ], - "declarations": [ - { - "constant": false, - "id": 23941, - "mutability": "mutable", - "name": "p2", - "nameLocation": "20426:2:25", - "nodeType": "VariableDeclaration", - "scope": 24014, - "src": "20401:27:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$23013_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G2Point[]" - }, - "typeName": { - "baseType": { - "id": 23939, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 23938, - "name": "Pairing.G2Point", - "nameLocations": [ - "20401:7:25", - "20409:7:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 23013, - "src": "20401:15:25" - }, - "referencedDeclaration": 23013, - "src": "20401:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_storage_ptr", - "typeString": "struct Pairing.G2Point" - } - }, - "id": 23940, - "nodeType": "ArrayTypeName", - "src": "20401:17:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$23013_storage_$dyn_storage_ptr", - "typeString": "struct Pairing.G2Point[]" - } - }, - "visibility": "internal" - } - ], - "id": 23948, - "initialValue": { - "arguments": [ - { - "hexValue": "34", - "id": 23946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20453:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - } - ], - "id": 23945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "20431:21:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$23013_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct Pairing.G2Point memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 23943, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 23942, - "name": "Pairing.G2Point", - "nameLocations": [ - "20435:7:25", - "20443:7:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 23013, - "src": "20435:15:25" - }, - "referencedDeclaration": 23013, - "src": "20435:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_storage_ptr", - "typeString": "struct Pairing.G2Point" - } - }, - "id": 23944, - "nodeType": "ArrayTypeName", - "src": "20435:17:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$23013_storage_$dyn_storage_ptr", - "typeString": "struct Pairing.G2Point[]" - } - } - }, - "id": 23947, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20431:24:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$23013_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G2Point memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20401:54:25" - }, - { - "expression": { - "id": 23957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 23949, - "name": "p1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23928, - "src": "20466:2:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 23951, - "indexExpression": { - "hexValue": "30", - "id": 23950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20469:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20466:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 23954, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23792, - "src": "20489:1:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$24271_memory_ptr", - "typeString": "struct ISemaphoreVerifier.Proof memory" - } - }, - "id": 23955, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20491:1:25", - "memberName": "A", - "nodeType": "MemberAccess", - "referencedDeclaration": 24264, - "src": "20489:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - ], - "expression": { - "id": 23952, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "20474:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 23953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20482:6:25", - "memberName": "negate", - "nodeType": "MemberAccess", - "referencedDeclaration": 23093, - "src": "20474:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_G1Point_$23004_memory_ptr_$returns$_t_struct$_G1Point_$23004_memory_ptr_$", - "typeString": "function (struct Pairing.G1Point memory) pure returns (struct Pairing.G1Point memory)" - } - }, - "id": 23956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20474:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "20466:27:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 23958, - "nodeType": "ExpressionStatement", - "src": "20466:27:25" - }, - { - "expression": { - "id": 23964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 23959, - "name": "p2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23941, - "src": "20503:2:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$23013_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G2Point memory[] memory" - } - }, - "id": 23961, - "indexExpression": { - "hexValue": "30", - "id": 23960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20506:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20503:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 23962, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23792, - "src": "20511:1:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$24271_memory_ptr", - "typeString": "struct ISemaphoreVerifier.Proof memory" - } - }, - "id": 23963, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20513:1:25", - "memberName": "B", - "nodeType": "MemberAccess", - "referencedDeclaration": 24267, - "src": "20511:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "src": "20503:11:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "id": 23965, - "nodeType": "ExpressionStatement", - "src": "20503:11:25" - }, - { - "expression": { - "id": 23971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 23966, - "name": "p1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23928, - "src": "20524:2:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 23968, - "indexExpression": { - "hexValue": "31", - "id": 23967, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20527:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20524:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 23969, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23846, - "src": "20532:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 23970, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20535:5:25", - "memberName": "alfa1", - "nodeType": "MemberAccess", - "referencedDeclaration": 24247, - "src": "20532:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "20524:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 23972, - "nodeType": "ExpressionStatement", - "src": "20524:16:25" - }, - { - "expression": { - "id": 23978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 23973, - "name": "p2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23941, - "src": "20550:2:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$23013_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G2Point memory[] memory" - } - }, - "id": 23975, - "indexExpression": { - "hexValue": "31", - "id": 23974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20553:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20550:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 23976, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23846, - "src": "20558:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 23977, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20561:5:25", - "memberName": "beta2", - "nodeType": "MemberAccess", - "referencedDeclaration": 24250, - "src": "20558:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "src": "20550:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "id": 23979, - "nodeType": "ExpressionStatement", - "src": "20550:16:25" - }, - { - "expression": { - "id": 23984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 23980, - "name": "p1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23928, - "src": "20576:2:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 23982, - "indexExpression": { - "hexValue": "32", - "id": 23981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20579:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20576:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 23983, - "name": "vk_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23857, - "src": "20584:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "20576:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 23985, - "nodeType": "ExpressionStatement", - "src": "20576:12:25" - }, - { - "expression": { - "id": 23991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 23986, - "name": "p2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23941, - "src": "20598:2:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$23013_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G2Point memory[] memory" - } - }, - "id": 23988, - "indexExpression": { - "hexValue": "32", - "id": 23987, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20601:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20598:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 23989, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23846, - "src": "20606:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 23990, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20609:6:25", - "memberName": "gamma2", - "nodeType": "MemberAccess", - "referencedDeclaration": 24253, - "src": "20606:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "src": "20598:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "id": 23992, - "nodeType": "ExpressionStatement", - "src": "20598:17:25" - }, - { - "expression": { - "id": 23998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 23993, - "name": "p1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23928, - "src": "20625:2:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 23995, - "indexExpression": { - "hexValue": "33", - "id": 23994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20628:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20625:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 23996, - "name": "p", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23792, - "src": "20633:1:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$24271_memory_ptr", - "typeString": "struct ISemaphoreVerifier.Proof memory" - } - }, - "id": 23997, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20635:1:25", - "memberName": "C", - "nodeType": "MemberAccess", - "referencedDeclaration": 24270, - "src": "20633:3:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "20625:11:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 23999, - "nodeType": "ExpressionStatement", - "src": "20625:11:25" - }, - { - "expression": { - "id": 24005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 24000, - "name": "p2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23941, - "src": "20646:2:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$23013_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G2Point memory[] memory" - } - }, - "id": 24002, - "indexExpression": { - "hexValue": "33", - "id": 24001, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20649:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 24003, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23846, - "src": "20654:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24004, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20657:6:25", - "memberName": "delta2", - "nodeType": "MemberAccess", - "referencedDeclaration": 24256, - "src": "20654:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "src": "20646:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "id": 24006, - "nodeType": "ExpressionStatement", - "src": "20646:17:25" - }, - { - "expression": { - "arguments": [ - { - "id": 24010, - "name": "p1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23928, - "src": "20695:2:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - { - "id": 24011, - "name": "p2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23941, - "src": "20699:2:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G2Point_$23013_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G2Point memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - }, - { - "typeIdentifier": "t_array$_t_struct$_G2Point_$23013_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G2Point memory[] memory" - } - ], - "expression": { - "id": 24007, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "20674:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 24009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20682:12:25", - "memberName": "pairingCheck", - "nodeType": "MemberAccess", - "referencedDeclaration": 23379, - "src": "20674:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$23013_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view" - } - }, - "id": 24012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20674:28:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 24013, - "nodeType": "ExpressionStatement", - "src": "20674:28:25" - } - ] - }, - "baseFunctions": [ - 24289 - ], - "documentation": { - "id": 23772, - "nodeType": "StructuredDocumentation", - "src": "19369:46:25", - "text": "@dev See {ISemaphoreVerifier-verifyProof}." - }, - "functionSelector": "9aca8f2a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifyProof", - "nameLocation": "19429:11:25", - "overrides": { - "id": 23788, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "19651:8:25" - }, - "parameters": { - "id": 23787, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 23774, - "mutability": "mutable", - "name": "merkleTreeRoot", - "nameLocation": "19458:14:25", - "nodeType": "VariableDeclaration", - "scope": 24015, - "src": "19450:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23773, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19450:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 23776, - "mutability": "mutable", - "name": "nullifierHash", - "nameLocation": "19490:13:25", - "nodeType": "VariableDeclaration", - "scope": 24015, - "src": "19482:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19482:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 23778, - "mutability": "mutable", - "name": "signal", - "nameLocation": "19521:6:25", - "nodeType": "VariableDeclaration", - "scope": 24015, - "src": "19513:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23777, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19513:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 23780, - "mutability": "mutable", - "name": "externalNullifier", - "nameLocation": "19545:17:25", - "nodeType": "VariableDeclaration", - "scope": 24015, - "src": "19537:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23779, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19537:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 23784, - "mutability": "mutable", - "name": "proof", - "nameLocation": "19592:5:25", - "nodeType": "VariableDeclaration", - "scope": 24015, - "src": "19572:25:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", - "typeString": "uint256[8]" - }, - "typeName": { - "baseType": { - "id": 23781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19572:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 23783, - "length": { - "hexValue": "38", - "id": 23782, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19580:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "nodeType": "ArrayTypeName", - "src": "19572:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", - "typeString": "uint256[8]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 23786, - "mutability": "mutable", - "name": "merkleTreeDepth", - "nameLocation": "19615:15:25", - "nodeType": "VariableDeclaration", - "scope": 24015, - "src": "19607:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23785, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19607:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "19440:196:25" - }, - "returnParameters": { - "id": 23789, - "nodeType": "ParameterList", - "parameters": [], - "src": "19660:0:25" - }, - "scope": 24240, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 24218, - "nodeType": "FunctionDefinition", - "src": "20893:1991:25", - "nodes": [], - "body": { - "id": 24217, - "nodeType": "Block", - "src": "20991:1893:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 24026 - ], - "declarations": [ - { - "constant": false, - "id": 24026, - "mutability": "mutable", - "name": "vk", - "nameLocation": "21024:2:25", - "nodeType": "VariableDeclaration", - "scope": 24217, - "src": "21001:25:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey" - }, - "typeName": { - "id": 24025, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 24024, - "name": "VerificationKey", - "nameLocations": [ - "21001:15:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 24261, - "src": "21001:15:25" - }, - "referencedDeclaration": 24261, - "src": "21001:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_storage_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey" - } - }, - "visibility": "internal" - } - ], - "id": 24027, - "nodeType": "VariableDeclarationStatement", - "src": "21001:25:25" - }, - { - "expression": { - "id": 24036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 24028, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "21037:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24030, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "21040:5:25", - "memberName": "alfa1", - "nodeType": "MemberAccess", - "referencedDeclaration": 24247, - "src": "21037:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432", - "id": 24033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21077:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1", - "typeString": "int_const 2049...(69 digits omitted)...3042" - }, - "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042" - }, - { - "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538", - "id": 24034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21168:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1", - "typeString": "int_const 9383...(68 digits omitted)...5958" - }, - "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1", - "typeString": "int_const 2049...(69 digits omitted)...3042" - }, - { - "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1", - "typeString": "int_const 9383...(68 digits omitted)...5958" - } - ], - "expression": { - "id": 24031, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "21048:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 24032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21056:7:25", - "memberName": "G1Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23004, - "src": "21048:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$23004_storage_ptr_$", - "typeString": "type(struct Pairing.G1Point storage pointer)" - } - }, - "id": 24035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21048:206:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "21037:217:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 24037, - "nodeType": "ExpressionStatement", - "src": "21037:217:25" - }, - { - "expression": { - "id": 24050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 24038, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "21265:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24040, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "21268:5:25", - "memberName": "beta2", - "nodeType": "MemberAccess", - "referencedDeclaration": 24250, - "src": "21265:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "components": [ - { - "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332", - "id": 24043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21323:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1", - "typeString": "int_const 4252...(68 digits omitted)...7132" - }, - "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132" - }, - { - "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331", - "id": 24044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21417:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1", - "typeString": "int_const 6375...(68 digits omitted)...8731" - }, - "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731" - } - ], - "id": 24045, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "21305:202:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739", - "id": 24046, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21539:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1", - "typeString": "int_const 2184...(69 digits omitted)...6679" - }, - "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679" - }, - { - "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536", - "id": 24047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21634:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1", - "typeString": "int_const 1050...(69 digits omitted)...6856" - }, - "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856" - } - ], - "id": 24048, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "21521:204:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - ], - "expression": { - "id": 24041, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "21276:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 24042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21284:7:25", - "memberName": "G2Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23013, - "src": "21276:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$23013_storage_ptr_$", - "typeString": "type(struct Pairing.G2Point storage pointer)" - } - }, - "id": 24049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21276:459:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "src": "21265:470:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "id": 24051, - "nodeType": "ExpressionStatement", - "src": "21265:470:25" - }, - { - "expression": { - "id": 24064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 24052, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "21746:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24054, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "21749:6:25", - "memberName": "gamma2", - "nodeType": "MemberAccess", - "referencedDeclaration": 24253, - "src": "21746:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "components": [ - { - "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334", - "id": 24057, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21805:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1", - "typeString": "int_const 1155...(69 digits omitted)...5634" - }, - "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634" - }, - { - "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831", - "id": 24058, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21900:77:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1", - "typeString": "int_const 1085...(69 digits omitted)...2781" - }, - "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" - } - ], - "id": 24059, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "21787:204:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - { - "components": [ - { - "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331", - "id": 24060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22023:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1", - "typeString": "int_const 4082...(68 digits omitted)...3531" - }, - "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531" - }, - { - "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330", - "id": 24061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22117:76:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1", - "typeString": "int_const 8495...(68 digits omitted)...1930" - }, - "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930" - } - ], - "id": 24062, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22005:202:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - ], - "expression": { - "id": 24055, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "21758:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 24056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21766:7:25", - "memberName": "G2Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23013, - "src": "21758:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$23013_storage_ptr_$", - "typeString": "type(struct Pairing.G2Point storage pointer)" - } - }, - "id": 24063, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21758:459:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "src": "21746:471:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "id": 24065, - "nodeType": "ExpressionStatement", - "src": "21746:471:25" - }, - { - "expression": { - "id": 24082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 24066, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "22228:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24068, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "22231:6:25", - "memberName": "delta2", - "nodeType": "MemberAccess", - "referencedDeclaration": 24256, - "src": "22228:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "baseExpression": { - "id": 24071, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22256:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24073, - "indexExpression": { - "id": 24072, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22266:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22256:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24075, - "indexExpression": { - "hexValue": "30", - "id": 24074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22281:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22256:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - { - "baseExpression": { - "baseExpression": { - "id": 24076, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22285:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24078, - "indexExpression": { - "id": 24077, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22295:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22285:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24080, - "indexExpression": { - "hexValue": "31", - "id": 24079, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22310:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22285:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - }, - { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - ], - "expression": { - "id": 24069, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "22240:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 24070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22248:7:25", - "memberName": "G2Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23013, - "src": "22240:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G2Point_$23013_storage_ptr_$", - "typeString": "type(struct Pairing.G2Point storage pointer)" - } - }, - "id": 24081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22240:73:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "src": "22228:85:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G2Point_$23013_memory_ptr", - "typeString": "struct Pairing.G2Point memory" - } - }, - "id": 24083, - "nodeType": "ExpressionStatement", - "src": "22228:85:25" - }, - { - "expression": { - "id": 24093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 24084, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "22324:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24086, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "22327:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "22324:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "hexValue": "35", - "id": 24091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22354:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - } - ], - "id": 24090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "22332:21:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct Pairing.G1Point memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 24088, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 24087, - "name": "Pairing.G1Point", - "nameLocations": [ - "22336:7:25", - "22344:7:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 23004, - "src": "22336:15:25" - }, - "referencedDeclaration": 23004, - "src": "22336:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_storage_ptr", - "typeString": "struct Pairing.G1Point" - } - }, - "id": 24089, - "nodeType": "ArrayTypeName", - "src": "22336:17:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_storage_$dyn_storage_ptr", - "typeString": "struct Pairing.G1Point[]" - } - } - }, - "id": 24092, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22332:24:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "src": "22324:32:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 24094, - "nodeType": "ExpressionStatement", - "src": "22324:32:25" - }, - { - "expression": { - "id": 24117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "expression": { - "id": 24095, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "22367:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24098, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22370:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "22367:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 24099, - "indexExpression": { - "hexValue": "30", - "id": 24097, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22373:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22367:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 24102, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22394:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24104, - "indexExpression": { - "id": 24103, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22404:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22394:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24106, - "indexExpression": { - "hexValue": "32", - "id": 24105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22419:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22394:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - "id": 24108, - "indexExpression": { - "hexValue": "30", - "id": 24107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22422:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22394:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 24109, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22426:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24111, - "indexExpression": { - "id": 24110, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22436:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22426:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24113, - "indexExpression": { - "hexValue": "32", - "id": 24112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22451:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22426:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - "id": 24115, - "indexExpression": { - "hexValue": "31", - "id": 24114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22454:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22426:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 24100, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "22378:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 24101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22386:7:25", - "memberName": "G1Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23004, - "src": "22378:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$23004_storage_ptr_$", - "typeString": "type(struct Pairing.G1Point storage pointer)" - } - }, - "id": 24116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22378:79:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "22367:90:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 24118, - "nodeType": "ExpressionStatement", - "src": "22367:90:25" - }, - { - "expression": { - "id": 24141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "expression": { - "id": 24119, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "22467:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24122, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22470:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "22467:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 24123, - "indexExpression": { - "hexValue": "31", - "id": 24121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22473:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22467:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 24126, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22494:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24128, - "indexExpression": { - "id": 24127, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22504:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22494:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24130, - "indexExpression": { - "hexValue": "33", - "id": 24129, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22519:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22494:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - "id": 24132, - "indexExpression": { - "hexValue": "30", - "id": 24131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22522:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22494:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 24133, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22526:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24135, - "indexExpression": { - "id": 24134, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22536:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22526:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24137, - "indexExpression": { - "hexValue": "33", - "id": 24136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22551:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22526:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - "id": 24139, - "indexExpression": { - "hexValue": "31", - "id": 24138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22554:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22526:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 24124, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "22478:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 24125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22486:7:25", - "memberName": "G1Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23004, - "src": "22478:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$23004_storage_ptr_$", - "typeString": "type(struct Pairing.G1Point storage pointer)" - } - }, - "id": 24140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22478:79:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "22467:90:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 24142, - "nodeType": "ExpressionStatement", - "src": "22467:90:25" - }, - { - "expression": { - "id": 24165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "expression": { - "id": 24143, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "22567:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24146, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22570:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "22567:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 24147, - "indexExpression": { - "hexValue": "32", - "id": 24145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22573:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22567:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 24150, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22594:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24152, - "indexExpression": { - "id": 24151, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22604:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22594:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24154, - "indexExpression": { - "hexValue": "34", - "id": 24153, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22619:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22594:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - "id": 24156, - "indexExpression": { - "hexValue": "30", - "id": 24155, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22622:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22594:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 24157, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22626:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24159, - "indexExpression": { - "id": 24158, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22636:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22626:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24161, - "indexExpression": { - "hexValue": "34", - "id": 24160, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22651:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22626:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - "id": 24163, - "indexExpression": { - "hexValue": "31", - "id": 24162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22654:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22626:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 24148, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "22578:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 24149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22586:7:25", - "memberName": "G1Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23004, - "src": "22578:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$23004_storage_ptr_$", - "typeString": "type(struct Pairing.G1Point storage pointer)" - } - }, - "id": 24164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22578:79:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "22567:90:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 24166, - "nodeType": "ExpressionStatement", - "src": "22567:90:25" - }, - { - "expression": { - "id": 24189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "expression": { - "id": 24167, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "22667:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24170, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22670:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "22667:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 24171, - "indexExpression": { - "hexValue": "33", - "id": 24169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22673:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22667:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 24174, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22694:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24176, - "indexExpression": { - "id": 24175, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22704:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22694:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24178, - "indexExpression": { - "hexValue": "35", - "id": 24177, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22719:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22694:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - "id": 24180, - "indexExpression": { - "hexValue": "30", - "id": 24179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22722:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22694:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 24181, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22726:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24183, - "indexExpression": { - "id": 24182, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22736:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22726:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24185, - "indexExpression": { - "hexValue": "35", - "id": 24184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22751:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22726:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - "id": 24187, - "indexExpression": { - "hexValue": "31", - "id": 24186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22754:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22726:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 24172, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "22678:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 24173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22686:7:25", - "memberName": "G1Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23004, - "src": "22678:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$23004_storage_ptr_$", - "typeString": "type(struct Pairing.G1Point storage pointer)" - } - }, - "id": 24188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22678:79:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "22667:90:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 24190, - "nodeType": "ExpressionStatement", - "src": "22667:90:25" - }, - { - "expression": { - "id": 24213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "expression": { - "id": 24191, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "22767:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "id": 24194, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22770:2:25", - "memberName": "IC", - "nodeType": "MemberAccess", - "referencedDeclaration": 24260, - "src": "22767:5:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_G1Point_$23004_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Pairing.G1Point memory[] memory" - } - }, - "id": 24195, - "indexExpression": { - "hexValue": "34", - "id": 24193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22773:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22767:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 24198, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22794:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24200, - "indexExpression": { - "id": 24199, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22804:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22794:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24202, - "indexExpression": { - "hexValue": "36", - "id": 24201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22819:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22794:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - "id": 24204, - "indexExpression": { - "hexValue": "30", - "id": 24203, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22822:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22794:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 24205, - "name": "VK_POINTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23771, - "src": "22826:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_array$_t_uint256_$2_storage_$7_storage_$17_storage", - "typeString": "uint256[2] storage ref[7] storage ref[17] storage ref" - } - }, - "id": 24207, - "indexExpression": { - "id": 24206, - "name": "vkPointsIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24018, - "src": "22836:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22826:24:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$7_storage", - "typeString": "uint256[2] storage ref[7] storage ref" - } - }, - "id": 24209, - "indexExpression": { - "hexValue": "36", - "id": 24208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22851:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22826:27:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage", - "typeString": "uint256[2] storage ref" - } - }, - "id": 24211, - "indexExpression": { - "hexValue": "31", - "id": 24210, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22854:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22826:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 24196, - "name": "Pairing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23380, - "src": "22778:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pairing_$23380_$", - "typeString": "type(library Pairing)" - } - }, - "id": 24197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22786:7:25", - "memberName": "G1Point", - "nodeType": "MemberAccess", - "referencedDeclaration": 23004, - "src": "22778:15:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_G1Point_$23004_storage_ptr_$", - "typeString": "type(struct Pairing.G1Point storage pointer)" - } - }, - "id": 24212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22778:79:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "src": "22767:90:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_G1Point_$23004_memory_ptr", - "typeString": "struct Pairing.G1Point memory" - } - }, - "id": 24214, - "nodeType": "ExpressionStatement", - "src": "22767:90:25" - }, - { - "expression": { - "id": 24215, - "name": "vk", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24026, - "src": "22875:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey memory" - } - }, - "functionReturnParameters": 24023, - "id": 24216, - "nodeType": "Return", - "src": "22868:9:25" - } - ] - }, - "documentation": { - "id": 24016, - "nodeType": "StructuredDocumentation", - "src": "20715:173:25", - "text": "@dev Creates the verification key for a specific Merkle tree depth.\n @param vkPointsIndex: Index of the verification key points.\n @return Verification key." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getVerificationKey", - "nameLocation": "20902:19:25", - "parameters": { - "id": 24019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24018, - "mutability": "mutable", - "name": "vkPointsIndex", - "nameLocation": "20930:13:25", - "nodeType": "VariableDeclaration", - "scope": 24218, - "src": "20922:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 24017, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20922:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "20921:23:25" - }, - "returnParameters": { - "id": 24023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24022, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 24218, - "src": "20967:22:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_memory_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey" - }, - "typeName": { - "id": 24021, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 24020, - "name": "VerificationKey", - "nameLocations": [ - "20967:15:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 24261, - "src": "20967:15:25" - }, - "referencedDeclaration": 24261, - "src": "20967:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_VerificationKey_$24261_storage_ptr", - "typeString": "struct ISemaphoreVerifier.VerificationKey" - } - }, - "visibility": "internal" - } - ], - "src": "20966:24:25" - }, - "scope": 24240, - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "id": 24239, - "nodeType": "FunctionDefinition", - "src": "23061:137:25", - "nodes": [], - "body": { - "id": 24238, - "nodeType": "Block", - "src": "23124:74:25", - "nodes": [], - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 24236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 24231, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24221, - "src": "23176:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 24229, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "23159:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 24230, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "23163:12:25", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "23159:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 24232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23159:25:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 24228, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "23149:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 24233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23149:36:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 24227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23141:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 24226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23141:7:25", - "typeDescriptions": {} - } - }, - "id": 24234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23141:45:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "38", - "id": 24235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23190:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "23141:50:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 24225, - "id": 24237, - "nodeType": "Return", - "src": "23134:57:25" - } - ] - }, - "documentation": { - "id": 24219, - "nodeType": "StructuredDocumentation", - "src": "22890:166:25", - "text": "@dev Creates a keccak256 hash of a message compatible with the SNARK scalar modulus.\n @param message: Message to be hashed.\n @return Message digest." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_hash", - "nameLocation": "23070:5:25", - "parameters": { - "id": 24222, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24221, - "mutability": "mutable", - "name": "message", - "nameLocation": "23084:7:25", - "nodeType": "VariableDeclaration", - "scope": 24239, - "src": "23076:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 24220, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23076:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23075:17:25" - }, - "returnParameters": { - "id": 24225, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24224, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 24239, - "src": "23115:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 24223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23115:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23114:9:25" - }, - "scope": 24240, - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 23385, - "name": "ISemaphoreVerifier", - "nameLocations": [ - "501:18:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 24290, - "src": "501:18:25" - }, - "id": 23386, - "nodeType": "InheritanceSpecifier", - "src": "501:18:25" - } - ], - "canonicalName": "SemaphoreVerifier", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 23384, - "nodeType": "StructuredDocumentation", - "src": "104:367:25", - "text": "@title Semaphore verifier contract.\n @notice Minimal code to allow users to verify their Semaphore proofs.\n @dev This contract allows you to verify whether a Semaphore proof is correct.\n It is a modified version of the Groth16 verifier template of SnarkJS\n (https://github.com/iden3/snarkjs) adapted to Semaphore. The Pairing library\n is external." - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 24240, - 24290 - ], - "name": "SemaphoreVerifier", - "nameLocation": "480:17:25", - "scope": 24241, - "usedErrors": [] - } - ], - "license": "MIT" - }, - "id": 25 -} \ No newline at end of file diff --git a/sol/SemaphoreVerifier20.json b/sol/SemaphoreVerifier20.json new file mode 100644 index 00000000..a43bcdd0 --- /dev/null +++ b/sol/SemaphoreVerifier20.json @@ -0,0 +1,21272 @@ +{ + "abi": [ + { + "inputs": [], + "name": "ProofInvalid", + "type": "error" + }, + { + "inputs": [], + "name": "PublicInputNotInField", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256[8]", + "name": "proof", + "type": "uint256[8]" + } + ], + "name": "compressProof", + "outputs": [ + { + "internalType": "uint256[4]", + "name": "compressed", + "type": "uint256[4]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[4]", + "name": "compressedProof", + "type": "uint256[4]" + }, + { + "internalType": "uint256[4]", + "name": "input", + "type": "uint256[4]" + } + ], + "name": "verifyCompressedProof", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[8]", + "name": "proof", + "type": "uint256[8]" + }, + { + "internalType": "uint256[4]", + "name": "input", + "type": "uint256[4]" + } + ], + "name": "verifyProof", + "outputs": [], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b50611461806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063235725111461004657806344f636921461005b578063f2457c8d14610084575b600080fd5b6100596100543660046112fb565b610097565b005b61006e610069366004611332565b610315565b60405161007b9190611356565b60405180910390f35b610059610092366004611387565b610372565b6000806100a38361068e565b9150915060006040516101008682377f29f41c6e0e30802e2749bfb0729810876f3423e6f24829ad3e30adb1934f1c8a6101008201527f030e7a5f70bb5daa6e18d80d6d447e772efb0bb7fb9d0ffcd54fc5a48af1286d6101208201527f21bd27c1c94d134f2c82226d412257f312b396b46cd09b90a31299bd67da81da6101408201527e2e019de88f0c78180144632cf41a5bdcd46174ff684de8522e20309a3c67926101608201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e26101808201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266101a08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101c08201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101e08201527e1752a100a72fdf1e5a5d6ea841cc20ec838bccfcf7bd559e79f1c9c759b6a06102008201527f192a8cc13cd9f762871f21e43451c6ca9eeab2cb2987c4e366a185c25dac2e7f61022082015283610240820152826102608201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26102808201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6102a08201527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec6102c08201527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d6102e08201526020816103008360085afa90511690508061030e57604051631ff3747d60e21b815260040160405180910390fd5b5050505050565b61031d61127d565b61033082358360015b6020020135610933565b815261034e6060830135604084013560a08501356080860135610a28565b6020830152604082015261036860c0830135836007610326565b6060820152919050565b60008061038584825b6020020135610d1f565b909250905060008080806103a1604089013560208a0135610dc4565b929650909450925090506000806103b98a600361037b565b915091506000806103c98b61068e565b915091506103d561129b565b8a8152602081018a905260408101889052606081018990526080810186905260a0810187905260c0810185905260e081018490527f29f41c6e0e30802e2749bfb0729810876f3423e6f24829ad3e30adb1934f1c8a6101008201527f030e7a5f70bb5daa6e18d80d6d447e772efb0bb7fb9d0ffcd54fc5a48af1286d6101208201527f21bd27c1c94d134f2c82226d412257f312b396b46cd09b90a31299bd67da81da6101408201527e2e019de88f0c78180144632cf41a5bdcd46174ff684de8522e20309a3c67926101608201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e26101808201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266101a08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101c08201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101e08201527e1752a100a72fdf1e5a5d6ea841cc20ec838bccfcf7bd559e79f1c9c759b6a06102008201527f192a8cc13cd9f762871f21e43451c6ca9eeab2cb2987c4e366a185c25dac2e7f610220820152610240810183905261026081018290527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26102808201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6102a08201527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec6102c08201527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d6102e082015260006106436112ba565b6020816103008560085afa915081158061065f57508051600114155b1561067d57604051631ff3747d60e21b815260040160405180910390fd5b505050505050505050505050505050565b6000806000600190506040516040810160007f2c097b31a897227a6f64c9fc31d9a8fc421b0d8b8207f92532b464e431e61db883527f0fcf6d89d77d5123a43dfb23efb9c929c28c148ca82c794057864b8e66903c5460208401527f0186dae5999acfe2cda6fa7a157ae726afda7c6f57b00ea0aa6c2c23bf83838882527f2f078608f710c45b60d23716c58e106d8c7a1c6db28119defffc413e074f871660208301528635905080604083015260008051602061140c83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f2464c1784bda2cbfb51e5ab87cf7eb2764ad81f7038152bdbbb07d404b49aa3782527f0638b273e4ee33e03e42ca6c7de1ea7043dbdcaa48661864de644d91c6b4821f60208301526020870135905080604083015260008051602061140c83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f098ce8b5289ef791db34b68b9e0043ab7bf25306d83a9f0ce74396b8a69c57bb82527f1ec6f7a81748f3d2c2b87610d747ca72045ac1530e226f00710630d41aad7e2660208301526040870135905080604083015260008051602061140c83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f07dbf682cc528d3ff763fa576d05db50e023921728119ef66f880b6adae01cbe82527f0d287dcd9318207576eaa871e7b3308f613d9df7865059cdbc9f66fdef342dc660208301526060870135905080604083015260008051602061140c8339815191528110841693505060408160608360075afa831692505060408160808360065afa8151602090920151919450909250168061092d5760405163a54f8e2760e01b815260040160405180910390fd5b50915091565b60006000805160206113ec8339815191528310158061096057506000805160206113ec8339815191528210155b1561097e57604051631ff3747d60e21b815260040160405180910390fd5b8215801561098a575081155b1561099757506000610a22565b60006109d66000805160206113ec83398151915260036000805160206113ec833981519152876000805160206113ec833981519152898a090908610faa565b90508083036109eb575050600182901b610a22565b6109f48161100e565b8303610a07575050600182811b17610a22565b604051631ff3747d60e21b815260040160405180910390fd5b505b92915050565b6000806000805160206113ec83398151915286101580610a5657506000805160206113ec8339815191528510155b80610a6f57506000805160206113ec8339815191528410155b80610a8857506000805160206113ec8339815191528310155b15610aa657604051631ff3747d60e21b815260040160405180910390fd5b82848688171717600003610abf57506000905080610d16565b600080806000805160206113ec833981519152610aeb60036000805160206113ec8339815191526113ca565b6000805160206113ec8339815191528a8c0909905060006000805160206113ec8339815191528a6000805160206113ec8339815191528c8d0909905060006000805160206113ec8339815191528a6000805160206113ec8339815191528c8d090990506000805160206113ec833981519152806000805160206113ec8339815191528c860984087f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e5089450610be46000805160206113ec833981519152806000805160206113ec8339815191528e870984087f2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e7750861100e565b9350505050600080610c356000805160206113ec83398151915280610c0b57610c0b6113b4565b6000805160206113ec8339815191528586096000805160206113ec83398151915287880908610faa565b9050610c826000805160206113ec8339815191527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea46000805160206113ec83398151915284880809611027565b15915050610c91838383611071565b90935091508683148015610ca457508186145b15610cce5780610cb5576000610cb8565b60025b60ff1660028a901b176000179450879350610d12565b610cd78361100e565b87148015610cec5750610ce98261100e565b86145b15610a075780610cfd576000610d00565b60025b60ff1660028a901b1760011794508793505b5050505b94509492505050565b60008082600003610d3557506000928392509050565b600183811c9250808416146000805160206113ec8339815191528310610d6e57604051631ff3747d60e21b815260040160405180910390fd5b610dab6000805160206113ec83398151915260036000805160206113ec833981519152866000805160206113ec8339815191528889090908610faa565b9150801561092d57610dbc8261100e565b915050915091565b600080808085158015610dd5575084155b15610deb57506000925082915081905080610fa1565b600286811c945085935060018088161490808816146000805160206113ec83398151915286101580610e2b57506000805160206113ec8339815191528510155b15610e4957604051631ff3747d60e21b815260040160405180910390fd5b60006000805160206113ec833981519152610e7360036000805160206113ec8339815191526113ca565b6000805160206113ec833981519152888a0909905060006000805160206113ec833981519152886000805160206113ec8339815191528a8b0909905060006000805160206113ec833981519152886000805160206113ec8339815191528a8b090990506000805160206113ec833981519152806000805160206113ec8339815191528a860984087f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e5089650610f6c6000805160206113ec833981519152806000805160206113ec8339815191528c870984087f2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e7750861100e565b9550610f79878786611071565b90975095508415610f9b57610f8d8761100e565b9650610f988661100e565b95505b50505050505b92959194509250565b6000610fd6827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526111b8565b9050816000805160206113ec8339815191528283091461100957604051631ff3747d60e21b815260040160405180910390fd5b919050565b6000805160206113ec8339815191529081900681030690565b600080611054837f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526111b8565b9050826000805160206113ec833981519152828309149392505050565b600080806110a36000805160206113ec833981519152808788096000805160206113ec833981519152898a0908610faa565b905083156110b7576110b48161100e565b90505b6111026000805160206113ec8339815191527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea46000805160206113ec833981519152848a0809610faa565b92506000805160206113ec83398151915261112e6000805160206113ec8339815191526002860961121d565b860991506000805160206113ec83398151915261115b6000805160206113ec83398151915284850961100e565b6000805160206113ec833981519152858609088614158061119157506000805160206113ec833981519152808385096002098514155b156111af57604051631ff3747d60e21b815260040160405180910390fd5b50935093915050565b60008060405160208152602080820152602060408201528460608201528360808201526000805160206113ec83398151915260a082015260208160c08360055afa90519250905080610a2057604051631ff3747d60e21b815260040160405180910390fd5b6000611249827f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd456111b8565b90506000805160206113ec83398151915281830960011461100957604051631ff3747d60e21b815260040160405180910390fd5b60405180608001604052806004906020820280368337509192915050565b6040518061030001604052806018906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b806101008101831015610a2257600080fd5b8060808101831015610a2257600080fd5b600080610180838503121561130f57600080fd5b61131984846112d8565b91506113298461010085016112ea565b90509250929050565b6000610100828403121561134557600080fd5b61134f83836112d8565b9392505050565b60808101818360005b600481101561137e57815183526020928301929091019060010161135f565b50505092915050565b600080610100838503121561139b57600080fd5b6113a584846112ea565b915061132984608085016112ea565b634e487b7160e01b600052601260045260246000fd5b81810381811115610a2257634e487b7160e01b600052601160045260246000fdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220d4cd20485c12e4db693530e1fd7c46ddb1ff0e06728632d9c0cea42f243f1f4164736f6c63430008150033", + "sourceMap": "383:25521:39:-:0;;;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063235725111461004657806344f636921461005b578063f2457c8d14610084575b600080fd5b6100596100543660046112fb565b610097565b005b61006e610069366004611332565b610315565b60405161007b9190611356565b60405180910390f35b610059610092366004611387565b610372565b6000806100a38361068e565b9150915060006040516101008682377f29f41c6e0e30802e2749bfb0729810876f3423e6f24829ad3e30adb1934f1c8a6101008201527f030e7a5f70bb5daa6e18d80d6d447e772efb0bb7fb9d0ffcd54fc5a48af1286d6101208201527f21bd27c1c94d134f2c82226d412257f312b396b46cd09b90a31299bd67da81da6101408201527e2e019de88f0c78180144632cf41a5bdcd46174ff684de8522e20309a3c67926101608201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e26101808201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266101a08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101c08201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101e08201527e1752a100a72fdf1e5a5d6ea841cc20ec838bccfcf7bd559e79f1c9c759b6a06102008201527f192a8cc13cd9f762871f21e43451c6ca9eeab2cb2987c4e366a185c25dac2e7f61022082015283610240820152826102608201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26102808201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6102a08201527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec6102c08201527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d6102e08201526020816103008360085afa90511690508061030e57604051631ff3747d60e21b815260040160405180910390fd5b5050505050565b61031d61127d565b61033082358360015b6020020135610933565b815261034e6060830135604084013560a08501356080860135610a28565b6020830152604082015261036860c0830135836007610326565b6060820152919050565b60008061038584825b6020020135610d1f565b909250905060008080806103a1604089013560208a0135610dc4565b929650909450925090506000806103b98a600361037b565b915091506000806103c98b61068e565b915091506103d561129b565b8a8152602081018a905260408101889052606081018990526080810186905260a0810187905260c0810185905260e081018490527f29f41c6e0e30802e2749bfb0729810876f3423e6f24829ad3e30adb1934f1c8a6101008201527f030e7a5f70bb5daa6e18d80d6d447e772efb0bb7fb9d0ffcd54fc5a48af1286d6101208201527f21bd27c1c94d134f2c82226d412257f312b396b46cd09b90a31299bd67da81da6101408201527e2e019de88f0c78180144632cf41a5bdcd46174ff684de8522e20309a3c67926101608201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e26101808201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266101a08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101c08201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101e08201527e1752a100a72fdf1e5a5d6ea841cc20ec838bccfcf7bd559e79f1c9c759b6a06102008201527f192a8cc13cd9f762871f21e43451c6ca9eeab2cb2987c4e366a185c25dac2e7f610220820152610240810183905261026081018290527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26102808201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6102a08201527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec6102c08201527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d6102e082015260006106436112ba565b6020816103008560085afa915081158061065f57508051600114155b1561067d57604051631ff3747d60e21b815260040160405180910390fd5b505050505050505050505050505050565b6000806000600190506040516040810160007f2c097b31a897227a6f64c9fc31d9a8fc421b0d8b8207f92532b464e431e61db883527f0fcf6d89d77d5123a43dfb23efb9c929c28c148ca82c794057864b8e66903c5460208401527f0186dae5999acfe2cda6fa7a157ae726afda7c6f57b00ea0aa6c2c23bf83838882527f2f078608f710c45b60d23716c58e106d8c7a1c6db28119defffc413e074f871660208301528635905080604083015260008051602061140c83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f2464c1784bda2cbfb51e5ab87cf7eb2764ad81f7038152bdbbb07d404b49aa3782527f0638b273e4ee33e03e42ca6c7de1ea7043dbdcaa48661864de644d91c6b4821f60208301526020870135905080604083015260008051602061140c83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f098ce8b5289ef791db34b68b9e0043ab7bf25306d83a9f0ce74396b8a69c57bb82527f1ec6f7a81748f3d2c2b87610d747ca72045ac1530e226f00710630d41aad7e2660208301526040870135905080604083015260008051602061140c83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f07dbf682cc528d3ff763fa576d05db50e023921728119ef66f880b6adae01cbe82527f0d287dcd9318207576eaa871e7b3308f613d9df7865059cdbc9f66fdef342dc660208301526060870135905080604083015260008051602061140c8339815191528110841693505060408160608360075afa831692505060408160808360065afa8151602090920151919450909250168061092d5760405163a54f8e2760e01b815260040160405180910390fd5b50915091565b60006000805160206113ec8339815191528310158061096057506000805160206113ec8339815191528210155b1561097e57604051631ff3747d60e21b815260040160405180910390fd5b8215801561098a575081155b1561099757506000610a22565b60006109d66000805160206113ec83398151915260036000805160206113ec833981519152876000805160206113ec833981519152898a090908610faa565b90508083036109eb575050600182901b610a22565b6109f48161100e565b8303610a07575050600182811b17610a22565b604051631ff3747d60e21b815260040160405180910390fd5b505b92915050565b6000806000805160206113ec83398151915286101580610a5657506000805160206113ec8339815191528510155b80610a6f57506000805160206113ec8339815191528410155b80610a8857506000805160206113ec8339815191528310155b15610aa657604051631ff3747d60e21b815260040160405180910390fd5b82848688171717600003610abf57506000905080610d16565b600080806000805160206113ec833981519152610aeb60036000805160206113ec8339815191526113ca565b6000805160206113ec8339815191528a8c0909905060006000805160206113ec8339815191528a6000805160206113ec8339815191528c8d0909905060006000805160206113ec8339815191528a6000805160206113ec8339815191528c8d090990506000805160206113ec833981519152806000805160206113ec8339815191528c860984087f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e5089450610be46000805160206113ec833981519152806000805160206113ec8339815191528e870984087f2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e7750861100e565b9350505050600080610c356000805160206113ec83398151915280610c0b57610c0b6113b4565b6000805160206113ec8339815191528586096000805160206113ec83398151915287880908610faa565b9050610c826000805160206113ec8339815191527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea46000805160206113ec83398151915284880809611027565b15915050610c91838383611071565b90935091508683148015610ca457508186145b15610cce5780610cb5576000610cb8565b60025b60ff1660028a901b176000179450879350610d12565b610cd78361100e565b87148015610cec5750610ce98261100e565b86145b15610a075780610cfd576000610d00565b60025b60ff1660028a901b1760011794508793505b5050505b94509492505050565b60008082600003610d3557506000928392509050565b600183811c9250808416146000805160206113ec8339815191528310610d6e57604051631ff3747d60e21b815260040160405180910390fd5b610dab6000805160206113ec83398151915260036000805160206113ec833981519152866000805160206113ec8339815191528889090908610faa565b9150801561092d57610dbc8261100e565b915050915091565b600080808085158015610dd5575084155b15610deb57506000925082915081905080610fa1565b600286811c945085935060018088161490808816146000805160206113ec83398151915286101580610e2b57506000805160206113ec8339815191528510155b15610e4957604051631ff3747d60e21b815260040160405180910390fd5b60006000805160206113ec833981519152610e7360036000805160206113ec8339815191526113ca565b6000805160206113ec833981519152888a0909905060006000805160206113ec833981519152886000805160206113ec8339815191528a8b0909905060006000805160206113ec833981519152886000805160206113ec8339815191528a8b090990506000805160206113ec833981519152806000805160206113ec8339815191528a860984087f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e5089650610f6c6000805160206113ec833981519152806000805160206113ec8339815191528c870984087f2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e7750861100e565b9550610f79878786611071565b90975095508415610f9b57610f8d8761100e565b9650610f988661100e565b95505b50505050505b92959194509250565b6000610fd6827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526111b8565b9050816000805160206113ec8339815191528283091461100957604051631ff3747d60e21b815260040160405180910390fd5b919050565b6000805160206113ec8339815191529081900681030690565b600080611054837f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526111b8565b9050826000805160206113ec833981519152828309149392505050565b600080806110a36000805160206113ec833981519152808788096000805160206113ec833981519152898a0908610faa565b905083156110b7576110b48161100e565b90505b6111026000805160206113ec8339815191527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea46000805160206113ec833981519152848a0809610faa565b92506000805160206113ec83398151915261112e6000805160206113ec8339815191526002860961121d565b860991506000805160206113ec83398151915261115b6000805160206113ec83398151915284850961100e565b6000805160206113ec833981519152858609088614158061119157506000805160206113ec833981519152808385096002098514155b156111af57604051631ff3747d60e21b815260040160405180910390fd5b50935093915050565b60008060405160208152602080820152602060408201528460608201528360808201526000805160206113ec83398151915260a082015260208160c08360055afa90519250905080610a2057604051631ff3747d60e21b815260040160405180910390fd5b6000611249827f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd456111b8565b90506000805160206113ec83398151915281830960011461100957604051631ff3747d60e21b815260040160405180910390fd5b60405180608001604052806004906020820280368337509192915050565b6040518061030001604052806018906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b806101008101831015610a2257600080fd5b8060808101831015610a2257600080fd5b600080610180838503121561130f57600080fd5b61131984846112d8565b91506113298461010085016112ea565b90509250929050565b6000610100828403121561134557600080fd5b61134f83836112d8565b9392505050565b60808101818360005b600481101561137e57815183526020928301929091019060010161135f565b50505092915050565b600080610100838503121561139b57600080fd5b6113a584846112ea565b915061132984608085016112ea565b634e487b7160e01b600052601260045260246000fd5b81810381811115610a2257634e487b7160e01b600052601160045260246000fdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220d4cd20485c12e4db693530e1fd7c46ddb1ff0e06728632d9c0cea42f243f1f4164736f6c63430008150033", + "sourceMap": "383:25521:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23766:2136;;;;;;:::i;:::-;;:::i;:::-;;20316:320;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21183:2058;;;;;;:::i;:::-;;:::i;23766:2136::-;23886:9;23897;23910:21;23925:5;23910:14;:21::i;:::-;23885:46;;;;24127:12;24203:4;24197:11;24415:5;24408;24405:1;24392:29;24723:13;24715:5;24712:1;24708:13;24701:36;24772:13;24764:5;24761:1;24757:13;24750:36;24821:13;24813:5;24810:1;24806:13;24799:36;24870:13;24862:5;24859:1;24855:13;24848:36;24919:7;24911:5;24908:1;24904:13;24897:30;24962:7;24954:5;24951:1;24947:13;24940:30;25005:12;24997:5;24994:1;24990:13;24983:35;25053:12;25045:5;25042:1;25038:13;25031:35;25101:12;25093:5;25090:1;25086:13;25079:35;25149:12;25141:5;25138:1;25134:13;25127:35;25197:1;25189:5;25186:1;25182:13;25175:24;25234:1;25226:5;25223:1;25219:13;25212:24;25271:13;25263:5;25260:1;25256:13;25249:36;25320:13;25312:5;25309:1;25305:13;25298:36;25369:13;25361:5;25358:1;25354:13;25347:36;25418:13;25410:5;25407:1;25403:13;25396:36;25546:4;25543:1;25536:5;25533:1;25514:17;25507:5;25496:55;25655:8;;25642:22;;-1:-1:-1;25642:22:39;25683:213;;25871:14;;-1:-1:-1;;;25871:14:39;;;;;;;;;;;25683:213;23875:2027;;;23766:2136;;:::o;20316:320::-;20391:28;;:::i;:::-;20447:31;20459:8;;:5;20475:1;20469:8;;;;;20447:11;:31::i;:::-;20431:47;;20521:51;20533:8;;;;20543;;;;20553;;;;20563;;;;20521:11;:51::i;:::-;20489:13;20504;;20488:84;20489:13;;;20488:84;20598:31;20610:8;;;;:5;20626:1;20620:8;;20598:31;20582:13;;;:47;:10;20316:320;-1:-1:-1;20316:320:39:o;21183:2058::-;21323:10;;21349:33;21363:15;21323:10;21363:18;;;;;21349:13;:33::i;:::-;21322:60;;-1:-1:-1;21322:60:39;-1:-1:-1;21393:11:39;;;;21447:70;21478:18;;;;;21498;;;21447:13;:70::i;:::-;21392:125;;-1:-1:-1;21392:125:39;;-1:-1:-1;21392:125:39;-1:-1:-1;21392:125:39;-1:-1:-1;21528:10:39;;21554:33;21568:15;21584:1;21568:18;;21554:33;21527:60;;;;21598:10;21610;21624:21;21639:5;21624:14;:21::i;:::-;21597:48;;;;21862:27;;:::i;:::-;21918:17;;;:12;21945;;:17;;;21972:12;;;:18;;;22000:12;;;:18;;;22028:12;;;:18;;;22056:12;;;:18;;;22105:12;;;:17;;;22132:12;;;:17;;;4146:77;22159:12;;;:28;4031:76;22197:12;;;:28;4375:77;22235:12;;;:28;4262:74;22273:12;;;:28;2741:77;22333:12;;;:22;2851:76;22365:12;;;:22;3127:76;22397:12;;;:27;3013:76;22434:12;;;:27;3356:74;22471:12;;;:27;3241:77;22508:12;;;:27;22570:12;;;:17;;;22597:12;;;:17;;;3634:77;22624:12;;;:28;3518:77;22662:12;;;:28;3866:77;22700:12;;;:28;3750:77;22738:12;;;:28;21928:1;22834:24;;:::i;:::-;22980:4;22972:6;22965:5;22955:8;22936:17;22929:5;22918:67;22907:78;;23009:7;23008:8;:26;;;-1:-1:-1;23020:9:39;;23033:1;23020:14;;23008:26;23004:231;;;23210:14;;-1:-1:-1;;;23210:14:39;;;;;;;;;;;23004:231;21312:1929;;;;;;;;;;;;;21183:2058;;:::o;17162:2670::-;17240:9;17251;17771:12;17786:4;17771:19;;17854:4;17848:11;17888:4;17885:1;17881:12;17906:5;17934:10;17931:1;17924:21;17979:10;17972:4;17969:1;17965:12;17958:32;18013:7;18010:1;18003:18;18055:7;18048:4;18045:1;18041:12;18034:29;18095:5;18082:19;18076:25;;18135:1;18128:4;18125:1;18121:12;18114:23;-1:-1:-1;;;;;;;;;;;18177:1:39;18174:8;18165:7;18161:22;18150:33;;18266:4;18263:1;18257:4;18254:1;18238:14;18231:5;18220:51;18211:7;18207:65;18196:76;;18355:4;18352:1;18346:4;18343:1;18327:14;18320:5;18309:51;18300:7;18296:65;18285:76;;18384:7;18381:1;18374:18;18426:7;18419:4;18416:1;18412:12;18405:29;18477:2;18470:5;18466:14;18453:28;18447:34;;18515:1;18508:4;18505:1;18501:12;18494:23;-1:-1:-1;;;;;;;;;;;18557:1:39;18554:8;18545:7;18541:22;18530:33;;18646:4;18643:1;18637:4;18634:1;18618:14;18611:5;18600:51;18591:7;18587:65;18576:76;;18735:4;18732:1;18726:4;18723:1;18707:14;18700:5;18689:51;18680:7;18676:65;18665:76;;18764:7;18761:1;18754:18;18806:7;18799:4;18796:1;18792:12;18785:29;18857:2;18850:5;18846:14;18833:28;18827:34;;18895:1;18888:4;18885:1;18881:12;18874:23;-1:-1:-1;;;;;;;;;;;18937:1:39;18934:8;18925:7;18921:22;18910:33;;19026:4;19023:1;19017:4;19014:1;18998:14;18991:5;18980:51;18971:7;18967:65;18956:76;;19115:4;19112:1;19106:4;19103:1;19087:14;19080:5;19069:51;19060:7;19056:65;19045:76;;19144:7;19141:1;19134:18;19186:7;19179:4;19176:1;19172:12;19165:29;19237:2;19230:5;19226:14;19213:28;19207:34;;19275:1;19268:4;19265:1;19261:12;19254:23;-1:-1:-1;;;;;;;;;;;19317:1:39;19314:8;19305:7;19301:22;19290:33;;;19406:4;19403:1;19397:4;19394:1;19378:14;19371:5;19360:51;19351:7;19347:65;19336:76;;;19495:4;19492:1;19486:4;19483:1;19467:14;19460:5;19449:51;19519:8;;19558:4;19551:12;;;19545:19;19519:8;;-1:-1:-1;19545:19:39;;-1:-1:-1;19436:65:39;;19583:243;;19792:23;;-1:-1:-1;;;19792:23:39;;;;;;;;;;;19583:243;17262:2570;17162:2670;;;:::o;10181:708::-;10247:9;-1:-1:-1;;;;;;;;;;;10272:1:39;:6;;:16;;;;-1:-1:-1;;;;;;;;;;;10282:1:39;:6;;10272:16;10268:106;;;10349:14;;-1:-1:-1;;;10349:14:39;;;;;;;;;;;10268:106;10387:6;;:16;;;;-1:-1:-1;10397:6:39;;10387:16;10383:88;;;-1:-1:-1;10459:1:39;10452:8;;10383:88;10581:13;10597:52;-1:-1:-1;;;;;;;;;;;10643:1:39;-1:-1:-1;;;;;;;;;;;10636:1:39;-1:-1:-1;;;;;;;;;;;10629:1:39;10626;10619:15;10612:29;10605:43;10597:7;:52::i;:::-;10581:68;;10668:5;10663:1;:10;10659:224;;-1:-1:-1;;10702:1:39;10697:6;;;10689:19;;10659:224;10734:13;10741:5;10734:6;:13::i;:::-;10729:1;:18;10725:158;;-1:-1:-1;;10776:1:39;10771:6;;;10770:12;10763:19;;10725:158;10858:14;;-1:-1:-1;;;10858:14:39;;;;;;;;;;;10725:158;10258:631;10181:708;;;;;:::o;12885:1660::-;12981:10;12993;-1:-1:-1;;;;;;;;;;;13019:2:39;:7;;:18;;;;-1:-1:-1;;;;;;;;;;;13030:2:39;:7;;13019:18;:29;;;;-1:-1:-1;;;;;;;;;;;13041:2:39;:7;;13019:29;:40;;;;-1:-1:-1;;;;;;;;;;;13052:2:39;:7;;13019:40;13015:130;;;13120:14;;-1:-1:-1;;;13120:14:39;;;;;;;;;;;13015:130;13174:2;13169;13164;13159;:7;:12;:17;13181:1;13158:24;13154:101;;-1:-1:-1;13239:1:39;;-1:-1:-1;13239:1:39;13231:13;;13154:101;13361:14;;;-1:-1:-1;;;;;;;;;;;13464:3:39;13466:1;-1:-1:-1;;;;;;;;;;;13464:3:39;:::i;:::-;-1:-1:-1;;;;;;;;;;;13456:2:39;13452;13445:17;13438:33;13423:48;-1:-1:-1;13485:11:39;-1:-1:-1;;;;;;;;;;;13525:2:39;-1:-1:-1;;;;;;;;;;;13517:2:39;13513;13506:17;13499:32;13485:46;-1:-1:-1;13545:11:39;-1:-1:-1;;;;;;;;;;;13585:2:39;-1:-1:-1;;;;;;;;;;;13577:2:39;13573;13566:17;13559:32;13545:46;-1:-1:-1;;;;;;;;;;;;1392:66:39;-1:-1:-1;;;;;;;;;;;13665:2:39;13659:4;13652:19;13647:3;13640:35;2211:66;13614:65;13605:74;-1:-1:-1;13702:73:39;-1:-1:-1;;;;;;;;;;;1392:66:39;-1:-1:-1;;;;;;;;;;;13760:2:39;13754:4;13747:19;13742:3;13735:35;2319:66;13709:65;13702:6;:73::i;:::-;13693:82;;13409:377;;;13894:9;13927;13939:72;-1:-1:-1;;;;;;;;;;;13947:63:39;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;13996:6:39;13988;13981:25;-1:-1:-1;;;;;;;;;;;13969:6:39;13961;13954:25;13947:63;13939:7;:72::i;:::-;13927:84;-1:-1:-1;14033:61:39;-1:-1:-1;;;;;;;;;;;2102:66:39;-1:-1:-1;;;;;;;;;;;14067:1:39;14059:6;14052:20;14045:48;14033:11;:61::i;:::-;14032:62;14025:69;;13913:192;14155:30;14164:6;14172;14180:4;14155:8;:30::i;:::-;14136:49;;-1:-1:-1;14136:49:39;-1:-1:-1;14199:12:39;;;:28;;;;;14221:6;14215:2;:12;14199:28;14195:344;;;14261:4;:13;;14273:1;14261:13;;;14268:1;14261:13;14248:27;;14255:1;14249:2;:7;;14248:27;14278:1;14248:31;14243:36;;14298:2;14293:7;;14195:344;;;14327:14;14334:6;14327;:14::i;:::-;14321:2;:20;:44;;;;;14351:14;14358:6;14351;:14::i;:::-;14345:2;:20;14321:44;14317:222;;;14399:4;:13;;14411:1;14399:13;;;14406:1;14399:13;14386:27;;14393:1;14387:2;:7;;14386:27;14416:1;14386:31;14381:36;;14436:2;14431:7;;14317:222;13005:1540;;;12885:1660;;;;;;;;:::o;11240:876::-;11297:9;11308;11479:1;11484;11479:6;11475:116;;-1:-1:-1;11575:1:39;;;;-1:-1:-1;11240:876:39;-1:-1:-1;11240:876:39:o;11475:116::-;11624:1;11644:6;;;;-1:-1:-1;11620:5:39;;;:10;-1:-1:-1;;;;;;;;;;;11664:6:39;;11660:103;;11738:14;;-1:-1:-1;;;11738:14:39;;;;;;;;;;;11660:103;11992:52;-1:-1:-1;;;;;;;;;;;12038:1:39;-1:-1:-1;;;;;;;;;;;12031:1:39;-1:-1:-1;;;;;;;;;;;12024:1:39;12021;12014:15;12007:29;12000:43;11992:7;:52::i;:::-;11988:56;;12058:12;12054:56;;;12090:9;12097:1;12090:6;:9::i;:::-;12086:13;;11319:797;11240:876;;;:::o;15284:1379::-;15358:10;;;;15575:7;;:18;;;;-1:-1:-1;15586:7:39;;15575:18;15571:123;;;-1:-1:-1;15672:1:39;;-1:-1:-1;15672:1:39;;-1:-1:-1;15672:1:39;;-1:-1:-1;15672:1:39;15664:19;;15571:123;15761:1;15782:7;;;;-1:-1:-1;15804:2:39;;-1:-1:-1;15728:1:39;15723:6;;;:11;;15756:6;;;:11;-1:-1:-1;;;;;;;;;;;15820:7:39;;;;:18;;;-1:-1:-1;;;;;;;;;;;15831:2:39;:7;;15820:18;15816:123;;;15914:14;;-1:-1:-1;;;15914:14:39;;;;;;;;;;;15816:123;15949:12;-1:-1:-1;;;;;;;;;;;15990:3:39;15992:1;-1:-1:-1;;;;;;;;;;;15990:3:39;:::i;:::-;-1:-1:-1;;;;;;;;;;;15982:2:39;15978;15971:17;15964:33;15949:48;-1:-1:-1;16007:11:39;-1:-1:-1;;;;;;;;;;;16047:2:39;-1:-1:-1;;;;;;;;;;;16039:2:39;16035;16028:17;16021:32;16007:46;-1:-1:-1;16063:11:39;-1:-1:-1;;;;;;;;;;;16103:2:39;-1:-1:-1;;;;;;;;;;;16095:2:39;16091;16084:17;16077:32;16063:46;-1:-1:-1;;;;;;;;;;;;1392:66:39;-1:-1:-1;;;;;;;;;;;16176:2:39;16170:4;16163:19;16158:3;16151:35;2211:66;16125:65;16120:70;-1:-1:-1;16205:73:39;-1:-1:-1;;;;;;;;;;;1392:66:39;-1:-1:-1;;;;;;;;;;;16263:2:39;16257:4;16250:19;16245:3;16238:35;2319:66;16212:65;16205:6;:73::i;:::-;16200:78;;16538:22;16547:2;16551;16555:4;16538:8;:22::i;:::-;16527:33;;-1:-1:-1;16527:33:39;-1:-1:-1;16570:87:39;;;;16607:10;16614:2;16607:6;:10::i;:::-;16602:15;;16636:10;16643:2;16636:6;:10::i;:::-;16631:15;;16570:87;15406:1257;;;;;15284:1379;;;;;;;;:::o;7663:300::-;7714:9;7739:19;7743:1;2593:65;7739:3;:19::i;:::-;7735:23;-1:-1:-1;7791:1:39;-1:-1:-1;;;;;;;;;;;7782:1:39;7779;7772:15;:20;7768:189;;7932:14;;-1:-1:-1;;;7932:14:39;;;;;;;;;;;7768:189;7663:300;;;:::o;5795:169::-;-1:-1:-1;;;;;;;;;;;5900:5:39;;;;5895:11;;5894:17;;5795:169::o;8232:146::-;8287:4;8303:9;8315:19;8319:1;2593:65;8315:3;:19::i;:::-;8303:31;-1:-1:-1;8370:1:39;-1:-1:-1;;;;;;;;;;;8361:1:39;8358;8351:15;:20;;8232:146;-1:-1:-1;;;8232:146:39:o;9009:791::-;9085:10;;;9199:56;-1:-1:-1;;;;;;;;;;;1392:66:39;9244:2;9240;9233:17;-1:-1:-1;;;;;;;;;;;9225:2:39;9221;9214:17;9207:47;9199:7;:56::i;:::-;9187:68;;9269:4;9265:48;;;9293:9;9300:1;9293:6;:9::i;:::-;9289:13;;9265:48;9395:53;-1:-1:-1;;;;;;;;;;;2102:66:39;-1:-1:-1;;;;;;;;;;;9421:1:39;9417:2;9410:16;9403:44;9395:7;:53::i;:::-;9390:58;-1:-1:-1;;;;;;;;;;;;9474:27:39;-1:-1:-1;;;;;;;;;;;9495:1:39;9491:2;9484:16;9474:9;:27::i;:::-;9470:2;9463:42;9458:47;-1:-1:-1;;;;;;;;;;;;9667:25:39;-1:-1:-1;;;;;;;;;;;9685:2:39;9681;9674:17;9667:6;:25::i;:::-;-1:-1:-1;;;;;;;;;;;9659:2:39;9655;9648:17;9641:55;9635:2;:61;;:111;;;-1:-1:-1;;;;;;;;;;;;1392:66:39;9736:2;9732;9725:17;9722:1;9715:31;9709:2;:37;;9635:111;9631:163;;;9769:14;;-1:-1:-1;;;9769:14:39;;;;;;;;;;;9631:163;9109:691;9009:791;;;;;;:::o;6202:636::-;6260:9;6281:12;6357:4;6351:11;6385:4;6382:1;6375:15;6424:4;6417;6414:1;6410:12;6403:26;6463:4;6456;6453:1;6449:12;6442:26;6502:1;6495:4;6492:1;6488:12;6481:23;6538:1;6531:4;6528:1;6524:12;6517:23;-1:-1:-1;;;;;;;;;;;6567:4:39;6564:1;6560:12;6553:23;6649:4;6646:1;6640:4;6637:1;6618:17;6611:5;6600:54;6672:8;;;-1:-1:-1;6589:65:39;-1:-1:-1;6589:65:39;6699:132;;6806:14;;-1:-1:-1;;;6806:14:39;;;;;;;;;;;7119:289;7172:9;7197:22;7201:1;2481:66;7197:3;:22::i;:::-;7193:26;-1:-1:-1;;;;;;;;;;;;7243:1:39;7240;7233:15;7252:1;7233:20;7229:173;;7377:14;;-1:-1:-1;;;7377:14:39;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:160:61:-;108:6;141:3;129:16;;126:25;-1:-1:-1;123:45:61;;;164:1;161;154:12;179:164;277:6;310:3;298:16;;295:25;-1:-1:-1;292:45:61;;;333:1;330;323:12;348:364;466:6;474;527:3;515:9;506:7;502:23;498:33;495:53;;;544:1;541;534:12;495:53;567;612:7;601:9;567:53;:::i;:::-;557:63;;639:67;698:7;692:3;681:9;677:19;639:67;:::i;:::-;629:77;;348:364;;;;;:::o;717:236::-;801:6;854:3;842:9;833:7;829:23;825:33;822:53;;;871:1;868;861:12;822:53;894;939:7;928:9;894:53;:::i;:::-;884:63;717:236;-1:-1:-1;;;717:236:61:o;958:495::-;1138:3;1123:19;;1127:9;1219:6;1096:4;1253:194;1267:4;1264:1;1261:11;1253:194;;;1326:13;;1314:26;;1363:4;1387:12;;;;1422:15;;;;1287:1;1280:9;1253:194;;;1257:3;;;958:495;;;;:::o;1458:368::-;1576:6;1584;1637:3;1625:9;1616:7;1612:23;1608:33;1605:53;;;1654:1;1651;1644:12;1605:53;1677:57;1726:7;1715:9;1677:57;:::i;:::-;1667:67;;1753;1812:7;1806:3;1795:9;1791:19;1753:67;:::i;1963:127::-;2024:10;2019:3;2015:20;2012:1;2005:31;2055:4;2052:1;2045:15;2079:4;2076:1;2069:15;2095:225;2162:9;;;2183:11;;;2180:134;;;2236:10;2231:3;2227:20;2224:1;2217:31;2271:4;2268:1;2261:15;2299:4;2296:1;2289:15", + "linkReferences": {} + }, + "methodIdentifiers": { + "compressProof(uint256[8])": "44f63692", + "verifyCompressedProof(uint256[4],uint256[4])": "f2457c8d", + "verifyProof(uint256[8],uint256[4])": "23572511" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ProofInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PublicInputNotInField\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"compressProof\",\"outputs\":[{\"internalType\":\"uint256[4]\",\"name\":\"compressed\",\"type\":\"uint256[4]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[4]\",\"name\":\"compressedProof\",\"type\":\"uint256[4]\"},{\"internalType\":\"uint256[4]\",\"name\":\"input\",\"type\":\"uint256[4]\"}],\"name\":\"verifyCompressedProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256[4]\",\"name\":\"input\",\"type\":\"uint256[4]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Remco Bloemen\",\"errors\":{\"ProofInvalid()\":[{\"details\":\"This can mean that provided Groth16 proof points are not on their curves, that pairing equation fails, or that the proof is not for the provided public input.\"}],\"PublicInputNotInField()\":[{\"details\":\"Public input elements are not automatically reduced, as this is can be a dangerous source of bugs.\"}]},\"kind\":\"dev\",\"methods\":{\"compressProof(uint256[8])\":{\"params\":{\"proof\":\"The uncompressed Groth16 proof. Elements are in the same order as for verifyProof. I.e. Groth16 points (A, B, C) encoded as in EIP-197.\"},\"returns\":{\"compressed\":\"The compressed proof. Elements are in the same order as for verifyCompressedProof. I.e. points (A, B, C) in compressed format.\"}},\"verifyCompressedProof(uint256[4],uint256[4])\":{\"params\":{\"compressedProof\":\"the points (A, B, C) in compressed format matching the output of compressProof.\",\"input\":\"the public input field elements in the scalar field Fr. Elements must be reduced.\"}},\"verifyProof(uint256[8],uint256[4])\":{\"params\":{\"input\":\"the public input field elements in the scalar field Fr. Elements must be reduced.\",\"proof\":\"the points (A, B, C) in EIP-197 format matching the output of compressProof.\"}}},\"title\":\"Groth16 verifier template.\",\"version\":1},\"userdoc\":{\"errors\":{\"ProofInvalid()\":[{\"notice\":\"The proof is invalid.\"}],\"PublicInputNotInField()\":[{\"notice\":\"Some of the provided public input values are larger than the field modulus.\"}]},\"kind\":\"user\",\"methods\":{\"compressProof(uint256[8])\":{\"notice\":\"Compress a proof.Will revert with InvalidProof if the curve points are invalid, but does not verify the proof itself.\"},\"verifyCompressedProof(uint256[4],uint256[4])\":{\"notice\":\"Verify a Groth16 proof with compressed points.Reverts with InvalidProof if the proof is invalid or with PublicInputNotInField the public input is not reduced.There is no return value. If the function does not revert, the proof was succesfully verified.\"},\"verifyProof(uint256[8],uint256[4])\":{\"notice\":\"Verify an uncompressed Groth16 proof.Reverts with InvalidProof if the proof is invalid or with PublicInputNotInField the public input is not reduced.There is no return value. If the function does not revert, the proof was succesfully verified.\"}},\"notice\":\"Supports verifying Groth16 proofs. Proofs can be in uncompressed (256 bytes) and compressed (128 bytes) format. A view function is provided to compress proofs.See for further explanation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SemaphoreVerifier20.sol\":\"Verifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"src/SemaphoreVerifier20.sol\":{\"keccak256\":\"0xed6f9117543ee86c39ccd68aa98d605b1c9d3afb9c6468c11f137b1e4e30b1e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a405276030e0a143f28d4a3571e070e6d02f4d46c4e6ae158bc07ec735bab5b8\",\"dweb:/ipfs/QmR3TMHt8jfrnPSreT1LqdgjHZZESRf7Jk1KXGFRLV3kin\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.21+commit.d9974bed" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "type": "error", + "name": "ProofInvalid" + }, + { + "inputs": [], + "type": "error", + "name": "PublicInputNotInField" + }, + { + "inputs": [ + { + "internalType": "uint256[8]", + "name": "proof", + "type": "uint256[8]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "compressProof", + "outputs": [ + { + "internalType": "uint256[4]", + "name": "compressed", + "type": "uint256[4]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256[4]", + "name": "compressedProof", + "type": "uint256[4]" + }, + { + "internalType": "uint256[4]", + "name": "input", + "type": "uint256[4]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "verifyCompressedProof" + }, + { + "inputs": [ + { + "internalType": "uint256[8]", + "name": "proof", + "type": "uint256[8]" + }, + { + "internalType": "uint256[4]", + "name": "input", + "type": "uint256[4]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "verifyProof" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "compressProof(uint256[8])": { + "params": { + "proof": "The uncompressed Groth16 proof. Elements are in the same order as for verifyProof. I.e. Groth16 points (A, B, C) encoded as in EIP-197." + }, + "returns": { + "compressed": "The compressed proof. Elements are in the same order as for verifyCompressedProof. I.e. points (A, B, C) in compressed format." + } + }, + "verifyCompressedProof(uint256[4],uint256[4])": { + "params": { + "compressedProof": "the points (A, B, C) in compressed format matching the output of compressProof.", + "input": "the public input field elements in the scalar field Fr. Elements must be reduced." + } + }, + "verifyProof(uint256[8],uint256[4])": { + "params": { + "input": "the public input field elements in the scalar field Fr. Elements must be reduced.", + "proof": "the points (A, B, C) in EIP-197 format matching the output of compressProof." + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "compressProof(uint256[8])": { + "notice": "Compress a proof.Will revert with InvalidProof if the curve points are invalid, but does not verify the proof itself." + }, + "verifyCompressedProof(uint256[4],uint256[4])": { + "notice": "Verify a Groth16 proof with compressed points.Reverts with InvalidProof if the proof is invalid or with PublicInputNotInField the public input is not reduced.There is no return value. If the function does not revert, the proof was succesfully verified." + }, + "verifyProof(uint256[8],uint256[4])": { + "notice": "Verify an uncompressed Groth16 proof.Reverts with InvalidProof if the proof is invalid or with PublicInputNotInField the public input is not reduced.There is no return value. If the function does not revert, the proof was succesfully verified." + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + "@zk-kit/=lib/zk-kit/packages/", + "contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", + "ds-test/=lib/ds-test/src/", + "forge-std/=lib/forge-std/src/", + "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "semaphore/=lib/semaphore/packages/contracts/contracts/", + "solmate/=lib/solmate/src/", + "zk-kit/=lib/zk-kit/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/SemaphoreVerifier20.sol": "Verifier" + }, + "libraries": {} + }, + "sources": { + "src/SemaphoreVerifier20.sol": { + "keccak256": "0xed6f9117543ee86c39ccd68aa98d605b1c9d3afb9c6468c11f137b1e4e30b1e6", + "urls": [ + "bzz-raw://a405276030e0a143f28d4a3571e070e6d02f4d46c4e6ae158bc07ec735bab5b8", + "dweb:/ipfs/QmR3TMHt8jfrnPSreT1LqdgjHZZESRf7Jk1KXGFRLV3kin" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/SemaphoreVerifier20.sol", + "id": 33932, + "exportedSymbols": { + "Verifier": [ + 33931 + ] + }, + "nodeType": "SourceUnit", + "src": "34:25871:39", + "nodes": [ + { + "id": 32677, + "nodeType": "PragmaDirective", + "src": "34:23:39", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ] + }, + { + "id": 33931, + "nodeType": "ContractDefinition", + "src": "383:25521:39", + "nodes": [ + { + "id": 32681, + "nodeType": "ErrorDefinition", + "src": "616:30:39", + "nodes": [], + "documentation": { + "id": 32679, + "nodeType": "StructuredDocumentation", + "src": "412:199:39", + "text": "Some of the provided public input values are larger than the field modulus.\n @dev Public input elements are not automatically reduced, as this is can be\n a dangerous source of bugs." + }, + "errorSelector": "a54f8e27", + "name": "PublicInputNotInField", + "nameLocation": "622:21:39", + "parameters": { + "id": 32680, + "nodeType": "ParameterList", + "parameters": [], + "src": "643:2:39" + } + }, + { + "id": 32684, + "nodeType": "ErrorDefinition", + "src": "870:21:39", + "nodes": [], + "documentation": { + "id": 32682, + "nodeType": "StructuredDocumentation", + "src": "652:213:39", + "text": "The proof is invalid.\n @dev This can mean that provided Groth16 proof points are not on their\n curves, that pairing equation fails, or that the proof is not for the\n provided public input." + }, + "errorSelector": "7fcdd1f4", + "name": "ProofInvalid", + "nameLocation": "876:12:39", + "parameters": { + "id": 32683, + "nodeType": "ParameterList", + "parameters": [], + "src": "888:2:39" + } + }, + { + "id": 32687, + "nodeType": "VariableDeclaration", + "src": "929:41:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PRECOMPILE_MODEXP", + "nameLocation": "946:17:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "929:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783035", + "id": 32686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "966:4:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "0x05" + }, + "visibility": "internal" + }, + { + "id": 32690, + "nodeType": "VariableDeclaration", + "src": "976:38:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PRECOMPILE_ADD", + "nameLocation": "993:14:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "976:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783036", + "id": 32689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1010:4:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "0x06" + }, + "visibility": "internal" + }, + { + "id": 32693, + "nodeType": "VariableDeclaration", + "src": "1020:38:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PRECOMPILE_MUL", + "nameLocation": "1037:14:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1020:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783037", + "id": 32692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1054:4:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "0x07" + }, + "visibility": "internal" + }, + { + "id": 32696, + "nodeType": "VariableDeclaration", + "src": "1064:41:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PRECOMPILE_VERIFY", + "nameLocation": "1081:17:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1064:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783038", + "id": 32695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1101:4:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "0x08" + }, + "visibility": "internal" + }, + { + "id": 32699, + "nodeType": "VariableDeclaration", + "src": "1371:87:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "P", + "nameLocation": "1388:1:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1371:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "307833303634346537326531333161303239623835303435623638313831353835643937383136613931363837316361386433633230386331366438376366643437", + "id": 32698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1392:66:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1", + "typeString": "int_const 2188...(69 digits omitted)...8583" + }, + "value": "0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47" + }, + "visibility": "internal" + }, + { + "id": 32702, + "nodeType": "VariableDeclaration", + "src": "1464:87:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "R", + "nameLocation": "1481:1:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1464:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "307833303634346537326531333161303239623835303435623638313831353835643238333365383438373962393730393134336531663539336630303030303031", + "id": 32701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1485:66:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", + "typeString": "int_const 2188...(69 digits omitted)...5617" + }, + "value": "0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001" + }, + "visibility": "internal" + }, + { + "id": 32705, + "nodeType": "VariableDeclaration", + "src": "2067:101:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "FRACTION_1_2_FP", + "nameLocation": "2084:15:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2067:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "307831383332323733393730393864303134646332383232646234306330616332656362633062353438623433386535343639653130343630623663336537656134", + "id": 32704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2102:66:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_10944121435919637611123202872628637544348155578648911831344518947322613104292_by_1", + "typeString": "int_const 1094...(69 digits omitted)...4292" + }, + "value": "0x183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea4" + }, + "visibility": "internal" + }, + { + "id": 32708, + "nodeType": "VariableDeclaration", + "src": "2174:103:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "FRACTION_27_82_FP", + "nameLocation": "2191:17:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2174:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "307832623134396434306365623861616165383162653138393931626530366163336235623463356535353964626566613333323637653664633234613133386535", + "id": 32707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2211:66:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_19485874751759354771024239261021720505790618469301721065564631296452457478373_by_1", + "typeString": "int_const 1948...(69 digits omitted)...8373" + }, + "value": "0x2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e5" + }, + "visibility": "internal" + }, + { + "id": 32711, + "nodeType": "VariableDeclaration", + "src": "2283:102:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "FRACTION_3_82_FP", + "nameLocation": "2300:16:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2283:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "307832666364336163326136343061313534656232333936303839326138356136386630333163613063383334346232336135373764636631303532623965373735", + "id": 32710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2319:66:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_21621313080719284060999498358119991246151234191964923374119659383734918571893_by_1", + "typeString": "int_const 2162...(69 digits omitted)...1893" + }, + "value": "0x2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e775" + }, + "visibility": "internal" + }, + { + "id": 32714, + "nodeType": "VariableDeclaration", + "src": "2447:100:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "EXP_INVERSE_FP", + "nameLocation": "2464:14:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2447:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "307833303634344537324531333141303239423835303435423638313831353835443937383136413931363837314341384433433230384331364438374346443435", + "id": 32713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2481:66:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208581_by_1", + "typeString": "int_const 2188...(69 digits omitted)...8581" + }, + "value": "0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD45" + }, + "visibility": "internal" + }, + { + "id": 32717, + "nodeType": "VariableDeclaration", + "src": "2562:96:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "EXP_SQRT_FP", + "nameLocation": "2579:11:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2562:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3078433139313339434238344336383041364531343131364441303630353631373635453035414134354131433732413334463038323330354236314633463532", + "id": 32716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2593:65:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_5472060717959818805561601436314318772174077789324455915672259473661306552146_by_1", + "typeString": "int_const 5472...(68 digits omitted)...2146" + }, + "value": "0xC19139CB84C680A6E14116DA060561765E05AA45A1C72A34F082305B61F3F52" + }, + "visibility": "internal" + }, + { + "id": 32720, + "nodeType": "VariableDeclaration", + "src": "2714:104:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "ALPHA_X", + "nameLocation": "2731:7:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32718, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2714:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432", + "id": 32719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2741:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1", + "typeString": "int_const 2049...(69 digits omitted)...3042" + }, + "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042" + }, + "visibility": "internal" + }, + { + "id": 32723, + "nodeType": "VariableDeclaration", + "src": "2824:103:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "ALPHA_Y", + "nameLocation": "2841:7:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2824:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538", + "id": 32722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2851:76:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1", + "typeString": "int_const 9383...(68 digits omitted)...5958" + }, + "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958" + }, + "visibility": "internal" + }, + { + "id": 32726, + "nodeType": "VariableDeclaration", + "src": "2981:108:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "BETA_NEG_X_0", + "nameLocation": "2998:12:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2981:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331", + "id": 32725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3013:76:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1", + "typeString": "int_const 6375...(68 digits omitted)...8731" + }, + "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731" + }, + "visibility": "internal" + }, + { + "id": 32729, + "nodeType": "VariableDeclaration", + "src": "3095:108:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "BETA_NEG_X_1", + "nameLocation": "3112:12:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3095:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332", + "id": 32728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3127:76:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1", + "typeString": "int_const 4252...(68 digits omitted)...7132" + }, + "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132" + }, + "visibility": "internal" + }, + { + "id": 32732, + "nodeType": "VariableDeclaration", + "src": "3209:109:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "BETA_NEG_Y_0", + "nameLocation": "3226:12:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3209:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131333833303030323435343639303132393434363933353034363633313632393138333931323836343735343737303737323332363930383135383636373534323733383935303031373237", + "id": 32731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3241:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_11383000245469012944693504663162918391286475477077232690815866754273895001727_by_1", + "typeString": "int_const 1138...(69 digits omitted)...1727" + }, + "value": "11383000245469012944693504663162918391286475477077232690815866754273895001727" + }, + "visibility": "internal" + }, + { + "id": 32735, + "nodeType": "VariableDeclaration", + "src": "3324:106:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "BETA_NEG_Y_1", + "nameLocation": "3341:12:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3324:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3431323037373636333130353239383138393538313733303534313039363930333630353035313438343234393937393538333234333131383738323032323935313637303731393034", + "id": 32734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3356:74:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_41207766310529818958173054109690360505148424997958324311878202295167071904_by_1", + "typeString": "int_const 4120...(66 digits omitted)...1904" + }, + "value": "41207766310529818958173054109690360505148424997958324311878202295167071904" + }, + "visibility": "internal" + }, + { + "id": 32738, + "nodeType": "VariableDeclaration", + "src": "3485:110:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "GAMMA_NEG_X_0", + "nameLocation": "3502:13:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32736, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3485:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831", + "id": 32737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3518:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1", + "typeString": "int_const 1085...(69 digits omitted)...2781" + }, + "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" + }, + "visibility": "internal" + }, + { + "id": 32741, + "nodeType": "VariableDeclaration", + "src": "3601:110:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "GAMMA_NEG_X_1", + "nameLocation": "3618:13:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32739, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3601:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334", + "id": 32740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3634:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1", + "typeString": "int_const 1155...(69 digits omitted)...5634" + }, + "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634" + }, + "visibility": "internal" + }, + { + "id": 32744, + "nodeType": "VariableDeclaration", + "src": "3717:110:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "GAMMA_NEG_Y_0", + "nameLocation": "3734:13:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32742, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3717:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3133333932353838393438373135383433383034363431343332343937373638303032363530323738313230353730303334323233353133393138373537323435333338323638313036363533", + "id": 32743, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3750:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_13392588948715843804641432497768002650278120570034223513918757245338268106653_by_1", + "typeString": "int_const 1339...(69 digits omitted)...6653" + }, + "value": "13392588948715843804641432497768002650278120570034223513918757245338268106653" + }, + "visibility": "internal" + }, + { + "id": 32747, + "nodeType": "VariableDeclaration", + "src": "3833:110:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "GAMMA_NEG_Y_1", + "nameLocation": "3850:13:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3833:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3137383035383734393935393735383431353430393134323032333432313131383339353230333739343539383239373034343232343534353833323936383138343331313036313135303532", + "id": 32746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3866:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_17805874995975841540914202342111839520379459829704422454583296818431106115052_by_1", + "typeString": "int_const 1780...(69 digits omitted)...5052" + }, + "value": "17805874995975841540914202342111839520379459829704422454583296818431106115052" + }, + "visibility": "internal" + }, + { + "id": 32750, + "nodeType": "VariableDeclaration", + "src": "3998:109:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "DELTA_NEG_X_0", + "nameLocation": "4015:13:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3998:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31333832353138393930373737393932383933383035313430333033363834363432333238303636373436353331323537373830323739323236363737323437353637303034323438313733", + "id": 32749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4031:76:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1382518990777992893805140303684642328066746531257780279226677247567004248173_by_1", + "typeString": "int_const 1382...(68 digits omitted)...8173" + }, + "value": "1382518990777992893805140303684642328066746531257780279226677247567004248173" + }, + "visibility": "internal" + }, + { + "id": 32753, + "nodeType": "VariableDeclaration", + "src": "4113:110:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "DELTA_NEG_X_1", + "nameLocation": "4130:13:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4113:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3138393736313333363931373036303135333337393038333831373537323032313233313832383431393031363131303637393330363134353139333234303834313832393436303934323138", + "id": 32752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4146:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_18976133691706015337908381757202123182841901611067930614519324084182946094218_by_1", + "typeString": "int_const 1897...(69 digits omitted)...4218" + }, + "value": "18976133691706015337908381757202123182841901611067930614519324084182946094218" + }, + "visibility": "internal" + }, + { + "id": 32756, + "nodeType": "VariableDeclaration", + "src": "4229:107:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "DELTA_NEG_Y_0", + "nameLocation": "4246:13:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4229:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3831323836313233393239303737373034353031393036333232313530303335333839323637333331353035313834373432313933333033313631313236343332353139353134303032", + "id": 32755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4262:74:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_81286123929077704501906322150035389267331505184742193303161126432519514002_by_1", + "typeString": "int_const 8128...(66 digits omitted)...4002" + }, + "value": "81286123929077704501906322150035389267331505184742193303161126432519514002" + }, + "visibility": "internal" + }, + { + "id": 32759, + "nodeType": "VariableDeclaration", + "src": "4342:110:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "DELTA_NEG_Y_1", + "nameLocation": "4359:13:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4342:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3135323630353332343931303637363134363633353835373737383636373130303531333638393030393534323534303430373434343634333535333936323133333134383337373039323734", + "id": 32758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4375:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_15260532491067614663585777866710051368900954254040744464355396213314837709274_by_1", + "typeString": "int_const 1526...(69 digits omitted)...9274" + }, + "value": "15260532491067614663585777866710051368900954254040744464355396213314837709274" + }, + "visibility": "internal" + }, + { + "id": 32762, + "nodeType": "VariableDeclaration", + "src": "4499:107:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "CONSTANT_X", + "nameLocation": "4516:10:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4499:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3139393138353137323134383339343036363738393037343832333035303335323038313733353130313732353637353436303731333830333032393635343539373337323738353533353238", + "id": 32761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4529:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_19918517214839406678907482305035208173510172567546071380302965459737278553528_by_1", + "typeString": "int_const 1991...(69 digits omitted)...3528" + }, + "value": "19918517214839406678907482305035208173510172567546071380302965459737278553528" + }, + "visibility": "internal" + }, + { + "id": 32765, + "nodeType": "VariableDeclaration", + "src": "4612:106:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "CONSTANT_Y", + "nameLocation": "4629:10:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4612:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37313531313836303737373136333130303634373737353230363930313434353131383835363936323937313237313635323738333632303832323139343431373332363633313331323230", + "id": 32764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4642:76:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_7151186077716310064777520690144511885696297127165278362082219441732663131220_by_1", + "typeString": "int_const 7151...(68 digits omitted)...1220" + }, + "value": "7151186077716310064777520690144511885696297127165278362082219441732663131220" + }, + "visibility": "internal" + }, + { + "id": 32768, + "nodeType": "VariableDeclaration", + "src": "4724:102:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PUB_0_X", + "nameLocation": "4741:7:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4724:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "363930353831313235393731343233363139353238353038333136343032373031353230303730313533373734383638373332353334323739303935353033363131393935383439363038", + "id": 32767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4751:75:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_690581125971423619528508316402701520070153774868732534279095503611995849608_by_1", + "typeString": "int_const 6905...(67 digits omitted)...9608" + }, + "value": "690581125971423619528508316402701520070153774868732534279095503611995849608" + }, + "visibility": "internal" + }, + { + "id": 32771, + "nodeType": "VariableDeclaration", + "src": "4832:104:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PUB_0_Y", + "nameLocation": "4849:7:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4832:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231323731393936383838353736303435383130343135383433363132383639373839333134363830343038343737303638393733303234373836343538333035393530333730343635353538", + "id": 32770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4859:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_21271996888576045810415843612869789314680408477068973024786458305950370465558_by_1", + "typeString": "int_const 2127...(69 digits omitted)...5558" + }, + "value": "21271996888576045810415843612869789314680408477068973024786458305950370465558" + }, + "visibility": "internal" + }, + { + "id": 32774, + "nodeType": "VariableDeclaration", + "src": "4942:104:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PUB_1_X", + "nameLocation": "4959:7:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4942:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3136343631323832353335373032313332383333343432393337383239303237393133313130313532313335313439313531313939383630363731393433343435373230373735333731333139", + "id": 32773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_16461282535702132833442937829027913110152135149151199860671943445720775371319_by_1", + "typeString": "int_const 1646...(69 digits omitted)...1319" + }, + "value": "16461282535702132833442937829027913110152135149151199860671943445720775371319" + }, + "visibility": "internal" + }, + { + "id": 32777, + "nodeType": "VariableDeclaration", + "src": "5052:103:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PUB_1_Y", + "nameLocation": "5069:7:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5052:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32383134303532313632343739393736363738343033363738353132353635353633323735343238373931333230353537303630373737333233363433373935303137373239303831383837", + "id": 32776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5079:76:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2814052162479976678403678512565563275428791320557060777323643795017729081887_by_1", + "typeString": "int_const 2814...(68 digits omitted)...1887" + }, + "value": "2814052162479976678403678512565563275428791320557060777323643795017729081887" + }, + "visibility": "internal" + }, + { + "id": 32780, + "nodeType": "VariableDeclaration", + "src": "5161:103:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PUB_2_X", + "nameLocation": "5178:7:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5161:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34333139373830333135343939303630333932353734313338373832313931303133313239353932353433373636343634303436353932323038383834383636353639333737343337363237", + "id": 32779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5188:76:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_4319780315499060392574138782191013129592543766464046592208884866569377437627_by_1", + "typeString": "int_const 4319...(68 digits omitted)...7627" + }, + "value": "4319780315499060392574138782191013129592543766464046592208884866569377437627" + }, + "visibility": "internal" + }, + { + "id": 32783, + "nodeType": "VariableDeclaration", + "src": "5270:104:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PUB_2_Y", + "nameLocation": "5287:7:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5270:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3133393230393330343339333935303032363938333339343439393939343832323437373238313239343834303730363432303739383531333132363832393933353535313035323138303836", + "id": 32782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5297:77:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_13920930439395002698339449999482247728129484070642079851312682993555105218086_by_1", + "typeString": "int_const 1392...(69 digits omitted)...8086" + }, + "value": "13920930439395002698339449999482247728129484070642079851312682993555105218086" + }, + "visibility": "internal" + }, + { + "id": 32786, + "nodeType": "VariableDeclaration", + "src": "5380:103:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PUB_3_X", + "nameLocation": "5397:7:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32784, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5380:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "33353534383330383033313831333735343138363635323932353435343136323237333334313338383338323834363836343036313739353938363837373535363236333235343832363836", + "id": 32785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5407:76:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_3554830803181375418665292545416227334138838284686406179598687755626325482686_by_1", + "typeString": "int_const 3554...(68 digits omitted)...2686" + }, + "value": "3554830803181375418665292545416227334138838284686406179598687755626325482686" + }, + "visibility": "internal" + }, + { + "id": 32789, + "nodeType": "VariableDeclaration", + "src": "5489:103:39", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "PUB_3_Y", + "nameLocation": "5506:7:39", + "scope": 33931, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5489:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35393531363039313734373436383436303730333637313133353933363735323131363931333131303133333634343231343337393233343730373837333731373338313335323736393938", + "id": 32788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5516:76:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_5951609174746846070367113593675211691311013364421437923470787371738135276998_by_1", + "typeString": "int_const 5951...(68 digits omitted)...6998" + }, + "value": "5951609174746846070367113593675211691311013364421437923470787371738135276998" + }, + "visibility": "internal" + }, + { + "id": 32811, + "nodeType": "FunctionDefinition", + "src": "5795:169:39", + "nodes": [], + "body": { + "id": 32810, + "nodeType": "Block", + "src": "5856:108:39", + "nodes": [], + "statements": [ + { + "id": 32809, + "nodeType": "UncheckedBlock", + "src": "5866:92:39", + "statements": [ + { + "expression": { + "id": 32807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 32797, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32795, + "src": "5890:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 32806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 32803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 32798, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "5895:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 32801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 32799, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32792, + "src": "5900:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 32800, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "5904:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5900:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 32802, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5899:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5895:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 32804, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5894:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 32805, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "5910:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5894:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5890:21:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 32808, + "nodeType": "ExpressionStatement", + "src": "5890:21:39" + } + ] + } + ] + }, + "documentation": { + "id": 32790, + "nodeType": "StructuredDocumentation", + "src": "5599:191:39", + "text": "Negation in Fp.\n @notice Returns a number x such that a + x = 0 in Fp.\n @notice The input does not need to be reduced.\n @param a the base\n @return x the result" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "negate", + "nameLocation": "5804:6:39", + "parameters": { + "id": 32793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32792, + "mutability": "mutable", + "name": "a", + "nameLocation": "5819:1:39", + "nodeType": "VariableDeclaration", + "scope": 32811, + "src": "5811:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5811:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5810:11:39" + }, + "returnParameters": { + "id": 32796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32795, + "mutability": "mutable", + "name": "x", + "nameLocation": "5853:1:39", + "nodeType": "VariableDeclaration", + "scope": 32811, + "src": "5845:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32794, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5845:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5844:11:39" + }, + "scope": 33931, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "id": 32833, + "nodeType": "FunctionDefinition", + "src": "6202:636:39", + "nodes": [], + "body": { + "id": 32832, + "nodeType": "Block", + "src": "6271:567:39", + "nodes": [], + "statements": [ + { + "assignments": [ + 32822 + ], + "declarations": [ + { + "constant": false, + "id": 32822, + "mutability": "mutable", + "name": "success", + "nameLocation": "6286:7:39", + "nodeType": "VariableDeclaration", + "scope": 32832, + "src": "6281:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 32821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6281:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 32823, + "nodeType": "VariableDeclarationStatement", + "src": "6281:12:39" + }, + { + "AST": { + "nativeSrc": "6328:362:39", + "nodeType": "YulBlock", + "src": "6328:362:39", + "statements": [ + { + "nativeSrc": "6342:20:39", + "nodeType": "YulVariableDeclaration", + "src": "6342:20:39", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6357:4:39", + "nodeType": "YulLiteral", + "src": "6357:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6351:5:39", + "nodeType": "YulIdentifier", + "src": "6351:5:39" + }, + "nativeSrc": "6351:11:39", + "nodeType": "YulFunctionCall", + "src": "6351:11:39" + }, + "variables": [ + { + "name": "f", + "nativeSrc": "6346:1:39", + "nodeType": "YulTypedName", + "src": "6346:1:39", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "f", + "nativeSrc": "6382:1:39", + "nodeType": "YulIdentifier", + "src": "6382:1:39" + }, + { + "kind": "number", + "nativeSrc": "6385:4:39", + "nodeType": "YulLiteral", + "src": "6385:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6375:6:39", + "nodeType": "YulIdentifier", + "src": "6375:6:39" + }, + "nativeSrc": "6375:15:39", + "nodeType": "YulFunctionCall", + "src": "6375:15:39" + }, + "nativeSrc": "6375:15:39", + "nodeType": "YulExpressionStatement", + "src": "6375:15:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "6414:1:39", + "nodeType": "YulIdentifier", + "src": "6414:1:39" + }, + { + "kind": "number", + "nativeSrc": "6417:4:39", + "nodeType": "YulLiteral", + "src": "6417:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6410:3:39", + "nodeType": "YulIdentifier", + "src": "6410:3:39" + }, + "nativeSrc": "6410:12:39", + "nodeType": "YulFunctionCall", + "src": "6410:12:39" + }, + { + "kind": "number", + "nativeSrc": "6424:4:39", + "nodeType": "YulLiteral", + "src": "6424:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6403:6:39", + "nodeType": "YulIdentifier", + "src": "6403:6:39" + }, + "nativeSrc": "6403:26:39", + "nodeType": "YulFunctionCall", + "src": "6403:26:39" + }, + "nativeSrc": "6403:26:39", + "nodeType": "YulExpressionStatement", + "src": "6403:26:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "6453:1:39", + "nodeType": "YulIdentifier", + "src": "6453:1:39" + }, + { + "kind": "number", + "nativeSrc": "6456:4:39", + "nodeType": "YulLiteral", + "src": "6456:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6449:3:39", + "nodeType": "YulIdentifier", + "src": "6449:3:39" + }, + "nativeSrc": "6449:12:39", + "nodeType": "YulFunctionCall", + "src": "6449:12:39" + }, + { + "kind": "number", + "nativeSrc": "6463:4:39", + "nodeType": "YulLiteral", + "src": "6463:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6442:6:39", + "nodeType": "YulIdentifier", + "src": "6442:6:39" + }, + "nativeSrc": "6442:26:39", + "nodeType": "YulFunctionCall", + "src": "6442:26:39" + }, + "nativeSrc": "6442:26:39", + "nodeType": "YulExpressionStatement", + "src": "6442:26:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "6492:1:39", + "nodeType": "YulIdentifier", + "src": "6492:1:39" + }, + { + "kind": "number", + "nativeSrc": "6495:4:39", + "nodeType": "YulLiteral", + "src": "6495:4:39", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6488:3:39", + "nodeType": "YulIdentifier", + "src": "6488:3:39" + }, + "nativeSrc": "6488:12:39", + "nodeType": "YulFunctionCall", + "src": "6488:12:39" + }, + { + "name": "a", + "nativeSrc": "6502:1:39", + "nodeType": "YulIdentifier", + "src": "6502:1:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6481:6:39", + "nodeType": "YulIdentifier", + "src": "6481:6:39" + }, + "nativeSrc": "6481:23:39", + "nodeType": "YulFunctionCall", + "src": "6481:23:39" + }, + "nativeSrc": "6481:23:39", + "nodeType": "YulExpressionStatement", + "src": "6481:23:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "6528:1:39", + "nodeType": "YulIdentifier", + "src": "6528:1:39" + }, + { + "kind": "number", + "nativeSrc": "6531:4:39", + "nodeType": "YulLiteral", + "src": "6531:4:39", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6524:3:39", + "nodeType": "YulIdentifier", + "src": "6524:3:39" + }, + "nativeSrc": "6524:12:39", + "nodeType": "YulFunctionCall", + "src": "6524:12:39" + }, + { + "name": "e", + "nativeSrc": "6538:1:39", + "nodeType": "YulIdentifier", + "src": "6538:1:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6517:6:39", + "nodeType": "YulIdentifier", + "src": "6517:6:39" + }, + "nativeSrc": "6517:23:39", + "nodeType": "YulFunctionCall", + "src": "6517:23:39" + }, + "nativeSrc": "6517:23:39", + "nodeType": "YulExpressionStatement", + "src": "6517:23:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "6564:1:39", + "nodeType": "YulIdentifier", + "src": "6564:1:39" + }, + { + "kind": "number", + "nativeSrc": "6567:4:39", + "nodeType": "YulLiteral", + "src": "6567:4:39", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6560:3:39", + "nodeType": "YulIdentifier", + "src": "6560:3:39" + }, + "nativeSrc": "6560:12:39", + "nodeType": "YulFunctionCall", + "src": "6560:12:39" + }, + { + "name": "P", + "nativeSrc": "6574:1:39", + "nodeType": "YulIdentifier", + "src": "6574:1:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6553:6:39", + "nodeType": "YulIdentifier", + "src": "6553:6:39" + }, + "nativeSrc": "6553:23:39", + "nodeType": "YulFunctionCall", + "src": "6553:23:39" + }, + "nativeSrc": "6553:23:39", + "nodeType": "YulExpressionStatement", + "src": "6553:23:39" + }, + { + "nativeSrc": "6589:65:39", + "nodeType": "YulAssignment", + "src": "6589:65:39", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "6611:3:39", + "nodeType": "YulIdentifier", + "src": "6611:3:39" + }, + "nativeSrc": "6611:5:39", + "nodeType": "YulFunctionCall", + "src": "6611:5:39" + }, + { + "name": "PRECOMPILE_MODEXP", + "nativeSrc": "6618:17:39", + "nodeType": "YulIdentifier", + "src": "6618:17:39" + }, + { + "name": "f", + "nativeSrc": "6637:1:39", + "nodeType": "YulIdentifier", + "src": "6637:1:39" + }, + { + "kind": "number", + "nativeSrc": "6640:4:39", + "nodeType": "YulLiteral", + "src": "6640:4:39", + "type": "", + "value": "0xc0" + }, + { + "name": "f", + "nativeSrc": "6646:1:39", + "nodeType": "YulIdentifier", + "src": "6646:1:39" + }, + { + "kind": "number", + "nativeSrc": "6649:4:39", + "nodeType": "YulLiteral", + "src": "6649:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "6600:10:39", + "nodeType": "YulIdentifier", + "src": "6600:10:39" + }, + "nativeSrc": "6600:54:39", + "nodeType": "YulFunctionCall", + "src": "6600:54:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "6589:7:39", + "nodeType": "YulIdentifier", + "src": "6589:7:39" + } + ] + }, + { + "nativeSrc": "6667:13:39", + "nodeType": "YulAssignment", + "src": "6667:13:39", + "value": { + "arguments": [ + { + "name": "f", + "nativeSrc": "6678:1:39", + "nodeType": "YulIdentifier", + "src": "6678:1:39" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6672:5:39", + "nodeType": "YulIdentifier", + "src": "6672:5:39" + }, + "nativeSrc": "6672:8:39", + "nodeType": "YulFunctionCall", + "src": "6672:8:39" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "6667:1:39", + "nodeType": "YulIdentifier", + "src": "6667:1:39" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 32699, + "isOffset": false, + "isSlot": false, + "src": "6574:1:39", + "valueSize": 1 + }, + { + "declaration": 32687, + "isOffset": false, + "isSlot": false, + "src": "6618:17:39", + "valueSize": 1 + }, + { + "declaration": 32814, + "isOffset": false, + "isSlot": false, + "src": "6502:1:39", + "valueSize": 1 + }, + { + "declaration": 32816, + "isOffset": false, + "isSlot": false, + "src": "6538:1:39", + "valueSize": 1 + }, + { + "declaration": 32822, + "isOffset": false, + "isSlot": false, + "src": "6589:7:39", + "valueSize": 1 + }, + { + "declaration": 32819, + "isOffset": false, + "isSlot": false, + "src": "6667:1:39", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 32824, + "nodeType": "InlineAssembly", + "src": "6303:387:39" + }, + { + "condition": { + "id": 32826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "6703:8:39", + "subExpression": { + "id": 32825, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32822, + "src": "6704:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32831, + "nodeType": "IfStatement", + "src": "6699:132:39", + "trueBody": { + "id": 32830, + "nodeType": "Block", + "src": "6713:118:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 32827, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "6806:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 32828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6806:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32829, + "nodeType": "RevertStatement", + "src": "6799:21:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 32812, + "nodeType": "StructuredDocumentation", + "src": "5970:227:39", + "text": "Exponentiation in Fp.\n @notice Returns a number x such that a ^ e = x in Fp.\n @notice The input does not need to be reduced.\n @param a the base\n @param e the exponent\n @return x the result" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exp", + "nameLocation": "6211:3:39", + "parameters": { + "id": 32817, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32814, + "mutability": "mutable", + "name": "a", + "nameLocation": "6223:1:39", + "nodeType": "VariableDeclaration", + "scope": 32833, + "src": "6215:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32813, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6215:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32816, + "mutability": "mutable", + "name": "e", + "nameLocation": "6234:1:39", + "nodeType": "VariableDeclaration", + "scope": 32833, + "src": "6226:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32815, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6226:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6214:22:39" + }, + "returnParameters": { + "id": 32820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32819, + "mutability": "mutable", + "name": "x", + "nameLocation": "6268:1:39", + "nodeType": "VariableDeclaration", + "scope": 32833, + "src": "6260:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6260:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6259:11:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "id": 32861, + "nodeType": "FunctionDefinition", + "src": "7119:289:39", + "nodes": [], + "body": { + "id": 32860, + "nodeType": "Block", + "src": "7183:225:39", + "nodes": [], + "statements": [ + { + "expression": { + "id": 32846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 32841, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32839, + "src": "7193:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 32843, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32836, + "src": "7201:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32844, + "name": "EXP_INVERSE_FP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32714, + "src": "7204:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32842, + "name": "exp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32833, + "src": "7197:3:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 32845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7197:22:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7193:26:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 32847, + "nodeType": "ExpressionStatement", + "src": "7193:26:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 32854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 32849, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32836, + "src": "7240:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32850, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32839, + "src": "7243:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32851, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "7246:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32848, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "7233:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7233:15:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "31", + "id": 32853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7252:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7233:20:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32859, + "nodeType": "IfStatement", + "src": "7229:173:39", + "trueBody": { + "id": 32858, + "nodeType": "Block", + "src": "7255:147:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 32855, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "7377:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 32856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7377:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32857, + "nodeType": "RevertStatement", + "src": "7370:21:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 32834, + "nodeType": "StructuredDocumentation", + "src": "6844:270:39", + "text": "Invertsion in Fp.\n @notice Returns a number x such that a * x = 1 in Fp.\n @notice The input does not need to be reduced.\n @notice Reverts with ProofInvalid() if the inverse does not exist\n @param a the input\n @return x the solution" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "invert_Fp", + "nameLocation": "7128:9:39", + "parameters": { + "id": 32837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32836, + "mutability": "mutable", + "name": "a", + "nameLocation": "7146:1:39", + "nodeType": "VariableDeclaration", + "scope": 32861, + "src": "7138:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32835, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7138:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7137:11:39" + }, + "returnParameters": { + "id": 32840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32839, + "mutability": "mutable", + "name": "x", + "nameLocation": "7180:1:39", + "nodeType": "VariableDeclaration", + "scope": 32861, + "src": "7172:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7172:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7171:11:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "id": 32889, + "nodeType": "FunctionDefinition", + "src": "7663:300:39", + "nodes": [], + "body": { + "id": 32888, + "nodeType": "Block", + "src": "7725:238:39", + "nodes": [], + "statements": [ + { + "expression": { + "id": 32874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 32869, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32867, + "src": "7735:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 32871, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32864, + "src": "7743:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32872, + "name": "EXP_SQRT_FP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32717, + "src": "7746:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32870, + "name": "exp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32833, + "src": "7739:3:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 32873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7739:19:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7735:23:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 32875, + "nodeType": "ExpressionStatement", + "src": "7735:23:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 32882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 32877, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32867, + "src": "7779:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32878, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32867, + "src": "7782:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32879, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "7785:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32876, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "7772:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7772:15:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 32881, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32864, + "src": "7791:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7772:20:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32887, + "nodeType": "IfStatement", + "src": "7768:189:39", + "trueBody": { + "id": 32886, + "nodeType": "Block", + "src": "7794:163:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 32883, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "7932:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 32884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7932:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 32885, + "nodeType": "RevertStatement", + "src": "7925:21:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 32862, + "nodeType": "StructuredDocumentation", + "src": "7414:244:39", + "text": "Square root in Fp.\n @notice Returns a number x such that x * x = a in Fp.\n @notice Will revert with InvalidProof() if the input is not a square\n or not reduced.\n @param a the square\n @return x the solution" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt_Fp", + "nameLocation": "7672:7:39", + "parameters": { + "id": 32865, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32864, + "mutability": "mutable", + "name": "a", + "nameLocation": "7688:1:39", + "nodeType": "VariableDeclaration", + "scope": 32889, + "src": "7680:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7680:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7679:11:39" + }, + "returnParameters": { + "id": 32868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32867, + "mutability": "mutable", + "name": "x", + "nameLocation": "7722:1:39", + "nodeType": "VariableDeclaration", + "scope": 32889, + "src": "7714:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7714:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7713:11:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "id": 32913, + "nodeType": "FunctionDefinition", + "src": "8232:146:39", + "nodes": [], + "body": { + "id": 32912, + "nodeType": "Block", + "src": "8293:85:39", + "nodes": [], + "statements": [ + { + "assignments": [ + 32898 + ], + "declarations": [ + { + "constant": false, + "id": 32898, + "mutability": "mutable", + "name": "x", + "nameLocation": "8311:1:39", + "nodeType": "VariableDeclaration", + "scope": 32912, + "src": "8303:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32897, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8303:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 32903, + "initialValue": { + "arguments": [ + { + "id": 32900, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32892, + "src": "8319:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32901, + "name": "EXP_SQRT_FP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32717, + "src": "8322:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32899, + "name": "exp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32833, + "src": "8315:3:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 32902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8315:19:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8303:31:39" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 32910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 32905, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32898, + "src": "8358:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32906, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32898, + "src": "8361:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32907, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "8364:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32904, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "8351:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8351:15:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 32909, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32892, + "src": "8370:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8351:20:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 32896, + "id": 32911, + "nodeType": "Return", + "src": "8344:27:39" + } + ] + }, + "documentation": { + "id": 32890, + "nodeType": "StructuredDocumentation", + "src": "7969:258:39", + "text": "Square test in Fp.\n @notice Returns wheter a number x exists such that x * x = a in Fp.\n @notice Will revert with InvalidProof() if the input is not a square\n or not reduced.\n @param a the square\n @return x the solution" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isSquare_Fp", + "nameLocation": "8241:11:39", + "parameters": { + "id": 32893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32892, + "mutability": "mutable", + "name": "a", + "nameLocation": "8261:1:39", + "nodeType": "VariableDeclaration", + "scope": 32913, + "src": "8253:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8253:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8252:11:39" + }, + "returnParameters": { + "id": 32896, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32895, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 32913, + "src": "8287:4:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 32894, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8287:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8286:6:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "id": 33017, + "nodeType": "FunctionDefinition", + "src": "9009:791:39", + "nodes": [], + "body": { + "id": 33016, + "nodeType": "Block", + "src": "9109:691:39", + "nodes": [], + "statements": [ + { + "assignments": [ + 32928 + ], + "declarations": [ + { + "constant": false, + "id": 32928, + "mutability": "mutable", + "name": "d", + "nameLocation": "9195:1:39", + "nodeType": "VariableDeclaration", + "scope": 33016, + "src": "9187:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32927, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9187:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 32944, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 32932, + "name": "a0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32916, + "src": "9221:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32933, + "name": "a0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32916, + "src": "9225:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32934, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9229:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32931, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "9214:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9214:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 32937, + "name": "a1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32918, + "src": "9240:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32938, + "name": "a1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32918, + "src": "9244:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32939, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9248:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32936, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "9233:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9233:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32941, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9252:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32930, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "9207:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9207:47:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32929, + "name": "sqrt_Fp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32889, + "src": "9199:7:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 32943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9199:56:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9187:68:39" + }, + { + "condition": { + "id": 32945, + "name": "hint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32920, + "src": "9269:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 32953, + "nodeType": "IfStatement", + "src": "9265:48:39", + "trueBody": { + "id": 32952, + "nodeType": "Block", + "src": "9275:38:39", + "statements": [ + { + "expression": { + "id": 32950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 32946, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32928, + "src": "9289:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 32948, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32928, + "src": "9300:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32947, + "name": "negate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32811, + "src": "9293:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 32949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9293:9:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9289:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 32951, + "nodeType": "ExpressionStatement", + "src": "9289:13:39" + } + ] + } + }, + { + "expression": { + "id": 32966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 32954, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32923, + "src": "9390:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 32958, + "name": "a0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32916, + "src": "9417:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32959, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32928, + "src": "9421:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32960, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9424:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32957, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "9410:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9410:16:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32962, + "name": "FRACTION_1_2_FP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32705, + "src": "9428:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32963, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9445:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32956, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "9403:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9403:44:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32955, + "name": "sqrt_Fp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32889, + "src": "9395:7:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 32965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9395:53:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9390:58:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 32967, + "nodeType": "ExpressionStatement", + "src": "9390:58:39" + }, + { + "expression": { + "id": 32980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 32968, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32925, + "src": "9458:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 32970, + "name": "a1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32918, + "src": "9470:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 32973, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32923, + "src": "9491:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "32", + "id": 32974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9495:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + { + "id": 32975, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9498:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32972, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "9484:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9484:16:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32971, + "name": "invert_Fp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32861, + "src": "9474:9:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 32977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9474:27:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32978, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9503:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32969, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "9463:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9463:42:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9458:47:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 32981, + "nodeType": "ExpressionStatement", + "src": "9458:47:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 32998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 32982, + "name": "a0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32916, + "src": "9635:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 32985, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32923, + "src": "9655:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32986, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32923, + "src": "9659:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32987, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9663:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32984, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "9648:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9648:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 32991, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32925, + "src": "9681:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32992, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32925, + "src": "9685:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32993, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9689:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32990, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "9674:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9674:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32989, + "name": "negate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32811, + "src": "9667:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 32995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9667:25:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 32996, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9694:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 32983, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "9641:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 32997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9641:55:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9635:61:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 32999, + "name": "a1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32918, + "src": "9709:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "32", + "id": 33001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9722:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + { + "arguments": [ + { + "id": 33003, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32923, + "src": "9732:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33004, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32925, + "src": "9736:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33005, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9740:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33002, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "9725:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9725:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33007, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "9744:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33000, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "9715:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9715:31:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9709:37:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9635:111:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33015, + "nodeType": "IfStatement", + "src": "9631:163:39", + "trueBody": { + "id": 33014, + "nodeType": "Block", + "src": "9748:46:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33011, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "9769:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 33012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9769:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33013, + "nodeType": "RevertStatement", + "src": "9762:21:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 32914, + "nodeType": "StructuredDocumentation", + "src": "8384:620:39", + "text": "Square root in Fp2.\n @notice Fp2 is the complex extension Fp[i]/(i^2 + 1). The input is\n a0 + a1 â‹… i and the result is x0 + x1 â‹… i.\n @notice Will revert with InvalidProof() if\n * the input is not a square,\n * the hint is incorrect, or\n * the input coefficents are not reduced.\n @param a0 The real part of the input.\n @param a1 The imaginary part of the input.\n @param hint A hint which of two possible signs to pick in the equation.\n @return x0 The real part of the square root.\n @return x1 The imaginary part of the square root." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt_Fp2", + "nameLocation": "9018:8:39", + "parameters": { + "id": 32921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32916, + "mutability": "mutable", + "name": "a0", + "nameLocation": "9035:2:39", + "nodeType": "VariableDeclaration", + "scope": 33017, + "src": "9027:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32915, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9027:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32918, + "mutability": "mutable", + "name": "a1", + "nameLocation": "9047:2:39", + "nodeType": "VariableDeclaration", + "scope": 33017, + "src": "9039:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9039:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32920, + "mutability": "mutable", + "name": "hint", + "nameLocation": "9056:4:39", + "nodeType": "VariableDeclaration", + "scope": 33017, + "src": "9051:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 32919, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9051:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9026:35:39" + }, + "returnParameters": { + "id": 32926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32923, + "mutability": "mutable", + "name": "x0", + "nameLocation": "9093:2:39", + "nodeType": "VariableDeclaration", + "scope": 33017, + "src": "9085:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32922, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9085:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32925, + "mutability": "mutable", + "name": "x1", + "nameLocation": "9105:2:39", + "nodeType": "VariableDeclaration", + "scope": 33017, + "src": "9097:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 32924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9097:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9084:24:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "id": 33099, + "nodeType": "FunctionDefinition", + "src": "10181:708:39", + "nodes": [], + "body": { + "id": 33098, + "nodeType": "Block", + "src": "10258:631:39", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33027, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33020, + "src": "10272:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 33028, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "10277:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10272:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33030, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33022, + "src": "10282:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 33031, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "10287:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10282:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10272:16:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33038, + "nodeType": "IfStatement", + "src": "10268:106:39", + "trueBody": { + "id": 33037, + "nodeType": "Block", + "src": "10290:84:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33034, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "10349:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 33035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10349:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33036, + "nodeType": "RevertStatement", + "src": "10342:21:39" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33039, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33020, + "src": "10387:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 33040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10392:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10387:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33042, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33022, + "src": "10397:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 33043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10402:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10397:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10387:16:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33049, + "nodeType": "IfStatement", + "src": "10383:88:39", + "trueBody": { + "id": 33048, + "nodeType": "Block", + "src": "10405:66:39", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 33046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10459:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 33026, + "id": 33047, + "nodeType": "Return", + "src": "10452:8:39" + } + ] + } + }, + { + "assignments": [ + 33051 + ], + "declarations": [ + { + "constant": false, + "id": 33051, + "mutability": "mutable", + "name": "y_pos", + "nameLocation": "10589:5:39", + "nodeType": "VariableDeclaration", + "scope": 33098, + "src": "10581:13:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33050, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10581:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33067, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 33056, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33020, + "src": "10626:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33057, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33020, + "src": "10629:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33058, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "10632:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33055, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "10619:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10619:15:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33060, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33020, + "src": "10636:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33061, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "10639:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33054, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "10612:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10612:29:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "33", + "id": 33063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10643:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + { + "id": 33064, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "10646:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33053, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "10605:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10605:43:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33052, + "name": "sqrt_Fp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32889, + "src": "10597:7:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 33066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10597:52:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10581:68:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33068, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33022, + "src": "10663:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 33069, + "name": "y_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33051, + "src": "10668:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10663:10:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33079, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33022, + "src": "10729:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "id": 33081, + "name": "y_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33051, + "src": "10741:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33080, + "name": "negate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32811, + "src": "10734:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 33082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10734:13:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10729:18:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 33095, + "nodeType": "Block", + "src": "10799:84:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33092, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "10858:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 33093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10858:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33094, + "nodeType": "RevertStatement", + "src": "10851:21:39" + } + ] + }, + "id": 33096, + "nodeType": "IfStatement", + "src": "10725:158:39", + "trueBody": { + "id": 33091, + "nodeType": "Block", + "src": "10749:44:39", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33084, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33020, + "src": "10771:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "31", + "id": 33085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10776:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10771:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33087, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10770:8:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "hexValue": "31", + "id": 33088, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10781:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10770:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 33026, + "id": 33090, + "nodeType": "Return", + "src": "10763:19:39" + } + ] + } + }, + "id": 33097, + "nodeType": "IfStatement", + "src": "10659:224:39", + "trueBody": { + "id": 33078, + "nodeType": "Block", + "src": "10675:44:39", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33071, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33020, + "src": "10697:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "31", + "id": 33072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10702:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10697:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33074, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10696:8:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "hexValue": "30", + "id": 33075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10707:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10696:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 33026, + "id": 33077, + "nodeType": "Return", + "src": "10689:19:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 33018, + "nodeType": "StructuredDocumentation", + "src": "9806:370:39", + "text": "Compress a G1 point.\n @notice Reverts with InvalidProof if the coordinates are not reduced\n or if the point is not on the curve.\n @notice The point at infinity is encoded as (0,0) and compressed to 0.\n @param x The X coordinate in Fp.\n @param y The Y coordinate in Fp.\n @return c The compresed point (x with one signal bit)." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "compress_g1", + "nameLocation": "10190:11:39", + "parameters": { + "id": 33023, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33020, + "mutability": "mutable", + "name": "x", + "nameLocation": "10210:1:39", + "nodeType": "VariableDeclaration", + "scope": 33099, + "src": "10202:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10202:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33022, + "mutability": "mutable", + "name": "y", + "nameLocation": "10221:1:39", + "nodeType": "VariableDeclaration", + "scope": 33099, + "src": "10213:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33021, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10213:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10201:22:39" + }, + "returnParameters": { + "id": 33026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33025, + "mutability": "mutable", + "name": "c", + "nameLocation": "10255:1:39", + "nodeType": "VariableDeclaration", + "scope": 33099, + "src": "10247:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10247:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10246:11:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "id": 33168, + "nodeType": "FunctionDefinition", + "src": "11240:876:39", + "nodes": [], + "body": { + "id": 33167, + "nodeType": "Block", + "src": "11319:797:39", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33109, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33102, + "src": "11479:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 33110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11484:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11479:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33117, + "nodeType": "IfStatement", + "src": "11475:116:39", + "trueBody": { + "id": 33116, + "nodeType": "Block", + "src": "11487:104:39", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "30", + "id": 33112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11575:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 33113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11578:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 33114, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11574:6:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$", + "typeString": "tuple(int_const 0,int_const 0)" + } + }, + "functionReturnParameters": 33108, + "id": 33115, + "nodeType": "Return", + "src": "11567:13:39" + } + ] + } + }, + { + "assignments": [ + 33119 + ], + "declarations": [ + { + "constant": false, + "id": 33119, + "mutability": "mutable", + "name": "negate_point", + "nameLocation": "11605:12:39", + "nodeType": "VariableDeclaration", + "scope": 33167, + "src": "11600:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33118, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11600:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 33125, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33120, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33102, + "src": "11620:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "31", + "id": 33121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11624:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11620:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 33123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11629:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11620:10:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11600:30:39" + }, + { + "expression": { + "id": 33130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33126, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33105, + "src": "11640:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33127, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33102, + "src": "11644:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 33128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11649:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11644:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11640:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33131, + "nodeType": "ExpressionStatement", + "src": "11640:10:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33132, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33105, + "src": "11664:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 33133, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "11669:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11664:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33139, + "nodeType": "IfStatement", + "src": "11660:103:39", + "trueBody": { + "id": 33138, + "nodeType": "Block", + "src": "11672:91:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33135, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "11738:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 33136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11738:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33137, + "nodeType": "RevertStatement", + "src": "11731:21:39" + } + ] + } + }, + { + "expression": { + "id": 33156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33140, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33107, + "src": "11988:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 33145, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33105, + "src": "12021:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33146, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33105, + "src": "12024:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33147, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "12027:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33144, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "12014:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12014:15:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33149, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33105, + "src": "12031:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33150, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "12034:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33143, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "12007:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12007:29:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "33", + "id": 33152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12038:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + { + "id": 33153, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "12041:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33142, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "12000:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12000:43:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33141, + "name": "sqrt_Fp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32889, + "src": "11992:7:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 33155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11992:52:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11988:56:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33157, + "nodeType": "ExpressionStatement", + "src": "11988:56:39" + }, + { + "condition": { + "id": 33158, + "name": "negate_point", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33119, + "src": "12058:12:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33166, + "nodeType": "IfStatement", + "src": "12054:56:39", + "trueBody": { + "id": 33165, + "nodeType": "Block", + "src": "12072:38:39", + "statements": [ + { + "expression": { + "id": 33163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33159, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33107, + "src": "12086:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33161, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33107, + "src": "12097:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33160, + "name": "negate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32811, + "src": "12090:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 33162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12090:9:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12086:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33164, + "nodeType": "ExpressionStatement", + "src": "12086:13:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 33100, + "nodeType": "StructuredDocumentation", + "src": "10895:340:39", + "text": "Decompress a G1 point.\n @notice Reverts with InvalidProof if the input does not represent a valid point.\n @notice The point at infinity is encoded as (0,0) and compressed to 0.\n @param c The compresed point (x with one signal bit).\n @return x The X coordinate in Fp.\n @return y The Y coordinate in Fp." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decompress_g1", + "nameLocation": "11249:13:39", + "parameters": { + "id": 33103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33102, + "mutability": "mutable", + "name": "c", + "nameLocation": "11271:1:39", + "nodeType": "VariableDeclaration", + "scope": 33168, + "src": "11263:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11263:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11262:11:39" + }, + "returnParameters": { + "id": 33108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33105, + "mutability": "mutable", + "name": "x", + "nameLocation": "11305:1:39", + "nodeType": "VariableDeclaration", + "scope": 33168, + "src": "11297:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33104, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11297:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33107, + "mutability": "mutable", + "name": "y", + "nameLocation": "11316:1:39", + "nodeType": "VariableDeclaration", + "scope": 33168, + "src": "11308:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11308:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11296:22:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "id": 33411, + "nodeType": "FunctionDefinition", + "src": "12885:1660:39", + "nodes": [], + "body": { + "id": 33410, + "nodeType": "Block", + "src": "13005:1540:39", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33184, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33171, + "src": "13019:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 33185, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13025:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13019:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33187, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33173, + "src": "13030:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 33188, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13036:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13030:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13019:18:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33191, + "name": "y0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33175, + "src": "13041:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 33192, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13047:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13041:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13019:29:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33195, + "name": "y1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33177, + "src": "13052:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 33196, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13058:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13052:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13019:40:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33203, + "nodeType": "IfStatement", + "src": "13015:130:39", + "trueBody": { + "id": 33202, + "nodeType": "Block", + "src": "13061:84:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33199, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "13120:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 33200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13120:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33201, + "nodeType": "RevertStatement", + "src": "13113:21:39" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33204, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33171, + "src": "13159:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "id": 33205, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33173, + "src": "13164:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13159:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "id": 33207, + "name": "y0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33175, + "src": "13169:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13159:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "id": 33209, + "name": "y1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33177, + "src": "13174:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13159:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33211, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13158:19:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 33212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13181:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13158:24:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33219, + "nodeType": "IfStatement", + "src": "13154:101:39", + "trueBody": { + "id": 33218, + "nodeType": "Block", + "src": "13184:71:39", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "30", + "id": 33214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13239:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 33215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13242:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 33216, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13238:6:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$", + "typeString": "tuple(int_const 0,int_const 0)" + } + }, + "functionReturnParameters": 33183, + "id": 33217, + "nodeType": "Return", + "src": "13231:13:39" + } + ] + } + }, + { + "assignments": [ + 33221 + ], + "declarations": [ + { + "constant": false, + "id": 33221, + "mutability": "mutable", + "name": "y0_pos", + "nameLocation": "13369:6:39", + "nodeType": "VariableDeclaration", + "scope": 33410, + "src": "13361:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13361:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33222, + "nodeType": "VariableDeclarationStatement", + "src": "13361:14:39" + }, + { + "assignments": [ + 33224 + ], + "declarations": [ + { + "constant": false, + "id": 33224, + "mutability": "mutable", + "name": "y1_pos", + "nameLocation": "13393:6:39", + "nodeType": "VariableDeclaration", + "scope": 33410, + "src": "13385:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13385:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33225, + "nodeType": "VariableDeclarationStatement", + "src": "13385:14:39" + }, + { + "id": 33298, + "nodeType": "Block", + "src": "13409:377:39", + "statements": [ + { + "assignments": [ + 33227 + ], + "declarations": [ + { + "constant": false, + "id": 33227, + "mutability": "mutable", + "name": "n3ab", + "nameLocation": "13431:4:39", + "nodeType": "VariableDeclaration", + "scope": 33298, + "src": "13423:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13423:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33239, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 33230, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33171, + "src": "13452:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33231, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33173, + "src": "13456:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33232, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13460:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33229, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "13445:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13445:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "id": 33234, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13464:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "33", + "id": 33235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13466:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "13464:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33237, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13469:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33228, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "13438:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13438:33:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13423:48:39" + }, + { + "assignments": [ + 33241 + ], + "declarations": [ + { + "constant": false, + "id": 33241, + "mutability": "mutable", + "name": "a_3", + "nameLocation": "13493:3:39", + "nodeType": "VariableDeclaration", + "scope": 33298, + "src": "13485:11:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13485:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33251, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 33244, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33171, + "src": "13513:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33245, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33171, + "src": "13517:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33246, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13521:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33243, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "13506:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13506:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33248, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33171, + "src": "13525:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33249, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13529:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33242, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "13499:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13499:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13485:46:39" + }, + { + "assignments": [ + 33253 + ], + "declarations": [ + { + "constant": false, + "id": 33253, + "mutability": "mutable", + "name": "b_3", + "nameLocation": "13553:3:39", + "nodeType": "VariableDeclaration", + "scope": 33298, + "src": "13545:11:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33252, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13545:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33263, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 33256, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33173, + "src": "13573:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33257, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33173, + "src": "13577:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33258, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13581:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33255, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "13566:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13566:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33260, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33173, + "src": "13585:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33261, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13589:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33254, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "13559:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13559:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13545:46:39" + }, + { + "expression": { + "id": 33278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33264, + "name": "y0_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33221, + "src": "13605:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33266, + "name": "FRACTION_27_82_FP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32708, + "src": "13621:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 33268, + "name": "a_3", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33241, + "src": "13647:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 33270, + "name": "n3ab", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33227, + "src": "13659:4:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33271, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33173, + "src": "13665:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33272, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13669:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33269, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "13652:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13652:19:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33274, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13673:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33267, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "13640:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13640:35:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33276, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13677:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33265, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "13614:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13614:65:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13605:74:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33279, + "nodeType": "ExpressionStatement", + "src": "13605:74:39" + }, + { + "expression": { + "id": 33296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33280, + "name": "y1_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33224, + "src": "13693:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 33283, + "name": "FRACTION_3_82_FP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32711, + "src": "13716:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 33285, + "name": "b_3", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33253, + "src": "13742:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 33287, + "name": "n3ab", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33227, + "src": "13754:4:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33288, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33171, + "src": "13760:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33289, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13764:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33286, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "13747:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13747:19:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33291, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13768:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33284, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "13735:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13735:35:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33293, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13772:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33282, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "13709:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13709:65:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33281, + "name": "negate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32811, + "src": "13702:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 33295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13702:73:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13693:82:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33297, + "nodeType": "ExpressionStatement", + "src": "13693:82:39" + } + ] + }, + { + "assignments": [ + 33300 + ], + "declarations": [ + { + "constant": false, + "id": 33300, + "mutability": "mutable", + "name": "hint", + "nameLocation": "13899:4:39", + "nodeType": "VariableDeclaration", + "scope": 33410, + "src": "13894:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33299, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13894:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 33301, + "nodeType": "VariableDeclarationStatement", + "src": "13894:9:39" + }, + { + "id": 33335, + "nodeType": "Block", + "src": "13913:192:39", + "statements": [ + { + "assignments": [ + 33303 + ], + "declarations": [ + { + "constant": false, + "id": 33303, + "mutability": "mutable", + "name": "d", + "nameLocation": "13935:1:39", + "nodeType": "VariableDeclaration", + "scope": 33335, + "src": "13927:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33302, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13927:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33319, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 33307, + "name": "y0_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33221, + "src": "13961:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33308, + "name": "y0_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33221, + "src": "13969:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33309, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "13977:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33306, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "13954:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13954:25:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 33312, + "name": "y1_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33224, + "src": "13988:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33313, + "name": "y1_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33224, + "src": "13996:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33314, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "14004:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33311, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "13981:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13981:25:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33316, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "14008:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33305, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "13947:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13947:63:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33304, + "name": "sqrt_Fp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32889, + "src": "13939:7:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 33318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13939:72:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13927:84:39" + }, + { + "expression": { + "id": 33333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33320, + "name": "hint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33300, + "src": "14025:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14032:62:39", + "subExpression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 33324, + "name": "y0_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33221, + "src": "14059:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33325, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33303, + "src": "14067:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33326, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "14070:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33323, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "14052:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14052:20:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33328, + "name": "FRACTION_1_2_FP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32705, + "src": "14074:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33329, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "14091:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33322, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "14045:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14045:48:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33321, + "name": "isSquare_Fp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32913, + "src": "14033:11:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 33331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14033:61:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14025:69:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33334, + "nodeType": "ExpressionStatement", + "src": "14025:69:39" + } + ] + }, + { + "expression": { + "id": 33344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 33336, + "name": "y0_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33221, + "src": "14137:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33337, + "name": "y1_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33224, + "src": "14145:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33338, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "14136:16:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33340, + "name": "y0_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33221, + "src": "14164:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33341, + "name": "y1_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33224, + "src": "14172:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33342, + "name": "hint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33300, + "src": "14180:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 33339, + "name": "sqrt_Fp2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33017, + "src": "14155:8:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256,bool) view returns (uint256,uint256)" + } + }, + "id": 33343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14155:30:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "14136:49:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33345, + "nodeType": "ExpressionStatement", + "src": "14136:49:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33346, + "name": "y0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33175, + "src": "14199:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 33347, + "name": "y0_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33221, + "src": "14205:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14199:12:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33349, + "name": "y1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33177, + "src": "14215:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 33350, + "name": "y1_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33224, + "src": "14221:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14215:12:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14199:28:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33373, + "name": "y0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33175, + "src": "14321:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "id": 33375, + "name": "y0_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33221, + "src": "14334:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33374, + "name": "negate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32811, + "src": "14327:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 33376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14327:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14321:20:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33378, + "name": "y1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33177, + "src": "14345:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "id": 33380, + "name": "y1_pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33224, + "src": "14358:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33379, + "name": "negate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32811, + "src": "14351:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 33381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14351:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14345:20:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14321:44:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 33407, + "nodeType": "Block", + "src": "14455:84:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33404, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "14514:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 33405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14514:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33406, + "nodeType": "RevertStatement", + "src": "14507:21:39" + } + ] + }, + "id": 33408, + "nodeType": "IfStatement", + "src": "14317:222:39", + "trueBody": { + "id": 33403, + "nodeType": "Block", + "src": "14367:82:39", + "statements": [ + { + "expression": { + "id": 33397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33384, + "name": "c0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33180, + "src": "14381:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33385, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33171, + "src": "14387:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "32", + "id": 33386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14393:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14387:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33388, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14386:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "condition": { + "id": 33389, + "name": "hint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33300, + "src": "14399:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 33391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14411:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 33392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "14399:13:39", + "trueExpression": { + "hexValue": "32", + "id": 33390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14406:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 33393, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14398:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "14386:27:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "hexValue": "31", + "id": 33395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14416:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14386:31:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14381:36:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33398, + "nodeType": "ExpressionStatement", + "src": "14381:36:39" + }, + { + "expression": { + "id": 33401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33399, + "name": "c1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33182, + "src": "14431:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33400, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33173, + "src": "14436:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14431:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33402, + "nodeType": "ExpressionStatement", + "src": "14431:7:39" + } + ] + } + }, + "id": 33409, + "nodeType": "IfStatement", + "src": "14195:344:39", + "trueBody": { + "id": 33372, + "nodeType": "Block", + "src": "14229:82:39", + "statements": [ + { + "expression": { + "id": 33366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33353, + "name": "c0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33180, + "src": "14243:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33354, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33171, + "src": "14249:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "32", + "id": 33355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14255:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14249:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33357, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14248:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "condition": { + "id": 33358, + "name": "hint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33300, + "src": "14261:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 33360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14273:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 33361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "14261:13:39", + "trueExpression": { + "hexValue": "32", + "id": 33359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14268:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 33362, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14260:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "14248:27:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "hexValue": "30", + "id": 33364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14278:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14248:31:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14243:36:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33367, + "nodeType": "ExpressionStatement", + "src": "14243:36:39" + }, + { + "expression": { + "id": 33370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33368, + "name": "c1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33182, + "src": "14293:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33369, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33173, + "src": "14298:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14293:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33371, + "nodeType": "ExpressionStatement", + "src": "14293:7:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 33169, + "nodeType": "StructuredDocumentation", + "src": "12122:758:39", + "text": "Compress a G2 point.\n @notice Reverts with InvalidProof if the coefficients are not reduced\n or if the point is not on the curve.\n @notice The G2 curve is defined over the complex extension Fp[i]/(i^2 + 1)\n with coordinates (x0 + x1 â‹… i, y0 + y1 â‹… i). \n @notice The point at infinity is encoded as (0,0,0,0) and compressed to (0,0).\n @param x0 The real part of the X coordinate.\n @param x1 The imaginary poart of the X coordinate.\n @param y0 The real part of the Y coordinate.\n @param y1 The imaginary part of the Y coordinate.\n @return c0 The first half of the compresed point (x0 with two signal bits).\n @return c1 The second half of the compressed point (x1 unmodified)." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "compress_g2", + "nameLocation": "12894:11:39", + "parameters": { + "id": 33178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33171, + "mutability": "mutable", + "name": "x0", + "nameLocation": "12914:2:39", + "nodeType": "VariableDeclaration", + "scope": 33411, + "src": "12906:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33170, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12906:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33173, + "mutability": "mutable", + "name": "x1", + "nameLocation": "12926:2:39", + "nodeType": "VariableDeclaration", + "scope": 33411, + "src": "12918:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33172, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12918:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33175, + "mutability": "mutable", + "name": "y0", + "nameLocation": "12938:2:39", + "nodeType": "VariableDeclaration", + "scope": 33411, + "src": "12930:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12930:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33177, + "mutability": "mutable", + "name": "y1", + "nameLocation": "12950:2:39", + "nodeType": "VariableDeclaration", + "scope": 33411, + "src": "12942:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12942:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12905:48:39" + }, + "returnParameters": { + "id": 33183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33180, + "mutability": "mutable", + "name": "c0", + "nameLocation": "12989:2:39", + "nodeType": "VariableDeclaration", + "scope": 33411, + "src": "12981:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33179, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12981:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33182, + "mutability": "mutable", + "name": "c1", + "nameLocation": "13001:2:39", + "nodeType": "VariableDeclaration", + "scope": 33411, + "src": "12993:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12993:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12980:24:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "id": 33578, + "nodeType": "FunctionDefinition", + "src": "15284:1379:39", + "nodes": [], + "body": { + "id": 33577, + "nodeType": "Block", + "src": "15406:1257:39", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33427, + "name": "c0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33414, + "src": "15575:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 33428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15581:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33430, + "name": "c1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33416, + "src": "15586:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 33431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15592:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15586:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15575:18:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33441, + "nodeType": "IfStatement", + "src": "15571:123:39", + "trueBody": { + "id": 33440, + "nodeType": "Block", + "src": "15595:99:39", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "30", + "id": 33434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15672:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 33435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15675:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 33436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15678:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 33437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15681:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 33438, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15671:12:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$_t_rational_0_by_1_$_t_rational_0_by_1_$", + "typeString": "tuple(int_const 0,int_const 0,int_const 0,int_const 0)" + } + }, + "functionReturnParameters": 33426, + "id": 33439, + "nodeType": "Return", + "src": "15664:19:39" + } + ] + } + }, + { + "assignments": [ + 33443 + ], + "declarations": [ + { + "constant": false, + "id": 33443, + "mutability": "mutable", + "name": "negate_point", + "nameLocation": "15708:12:39", + "nodeType": "VariableDeclaration", + "scope": 33577, + "src": "15703:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33442, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15703:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 33449, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33444, + "name": "c0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33414, + "src": "15723:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "31", + "id": 33445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15728:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15723:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 33447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15733:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15723:11:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15703:31:39" + }, + { + "assignments": [ + 33451 + ], + "declarations": [ + { + "constant": false, + "id": 33451, + "mutability": "mutable", + "name": "hint", + "nameLocation": "15749:4:39", + "nodeType": "VariableDeclaration", + "scope": 33577, + "src": "15744:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33450, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15744:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 33457, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33452, + "name": "c0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33414, + "src": "15756:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "32", + "id": 33453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15761:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15756:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "32", + "id": 33455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15766:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15756:11:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15744:23:39" + }, + { + "expression": { + "id": 33462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33458, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33419, + "src": "15777:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33459, + "name": "c0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33414, + "src": "15782:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "32", + "id": 33460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15788:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15782:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15777:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33463, + "nodeType": "ExpressionStatement", + "src": "15777:12:39" + }, + { + "expression": { + "id": 33466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33464, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33421, + "src": "15799:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33465, + "name": "c1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33416, + "src": "15804:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15799:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33467, + "nodeType": "ExpressionStatement", + "src": "15799:7:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33468, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33419, + "src": "15820:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 33469, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "15826:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15820:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33471, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33421, + "src": "15831:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 33472, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "15837:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15831:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15820:18:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33479, + "nodeType": "IfStatement", + "src": "15816:123:39", + "trueBody": { + "id": 33478, + "nodeType": "Block", + "src": "15840:99:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33475, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "15914:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 33476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15914:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33477, + "nodeType": "RevertStatement", + "src": "15907:21:39" + } + ] + } + }, + { + "assignments": [ + 33481 + ], + "declarations": [ + { + "constant": false, + "id": 33481, + "mutability": "mutable", + "name": "n3ab", + "nameLocation": "15957:4:39", + "nodeType": "VariableDeclaration", + "scope": 33577, + "src": "15949:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33480, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15949:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33493, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 33484, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33419, + "src": "15978:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33485, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33421, + "src": "15982:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33486, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "15986:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33483, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "15971:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15971:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33490, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "id": 33488, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "15990:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "33", + "id": 33489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15992:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "15990:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33491, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "15995:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33482, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "15964:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15964:33:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15949:48:39" + }, + { + "assignments": [ + 33495 + ], + "declarations": [ + { + "constant": false, + "id": 33495, + "mutability": "mutable", + "name": "a_3", + "nameLocation": "16015:3:39", + "nodeType": "VariableDeclaration", + "scope": 33577, + "src": "16007:11:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16007:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33505, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 33498, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33419, + "src": "16035:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33499, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33419, + "src": "16039:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33500, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "16043:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33497, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "16028:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16028:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33502, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33419, + "src": "16047:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33503, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "16051:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33496, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "16021:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16021:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16007:46:39" + }, + { + "assignments": [ + 33507 + ], + "declarations": [ + { + "constant": false, + "id": 33507, + "mutability": "mutable", + "name": "b_3", + "nameLocation": "16071:3:39", + "nodeType": "VariableDeclaration", + "scope": 33577, + "src": "16063:11:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16063:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33517, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 33510, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33421, + "src": "16091:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33511, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33421, + "src": "16095:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33512, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "16099:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33509, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "16084:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16084:17:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33514, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33421, + "src": "16103:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33515, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "16107:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33508, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "16077:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16077:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16063:46:39" + }, + { + "expression": { + "id": 33532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33518, + "name": "y0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33423, + "src": "16120:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33520, + "name": "FRACTION_27_82_FP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32708, + "src": "16132:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 33522, + "name": "a_3", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33495, + "src": "16158:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 33524, + "name": "n3ab", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33481, + "src": "16170:4:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33525, + "name": "x1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33421, + "src": "16176:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33526, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "16180:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33523, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "16163:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16163:19:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33528, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "16184:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33521, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "16151:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16151:35:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33530, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "16188:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33519, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "16125:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16125:65:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16120:70:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33533, + "nodeType": "ExpressionStatement", + "src": "16120:70:39" + }, + { + "expression": { + "id": 33550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33534, + "name": "y1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33425, + "src": "16200:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 33537, + "name": "FRACTION_3_82_FP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32711, + "src": "16219:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 33539, + "name": "b_3", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33507, + "src": "16245:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 33541, + "name": "n3ab", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33481, + "src": "16257:4:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33542, + "name": "x0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33419, + "src": "16263:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33543, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "16267:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33540, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "16250:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16250:19:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33545, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "16271:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33538, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "16238:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16238:35:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33547, + "name": "P", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32699, + "src": "16275:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33536, + "name": "addmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -2, + "src": "16212:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_addmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 33548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16212:65:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33535, + "name": "negate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32811, + "src": "16205:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 33549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16205:73:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16200:78:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33551, + "nodeType": "ExpressionStatement", + "src": "16200:78:39" + }, + { + "expression": { + "id": 33560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 33552, + "name": "y0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33423, + "src": "16528:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33553, + "name": "y1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33425, + "src": "16532:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33554, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "16527:8:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33556, + "name": "y0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33423, + "src": "16547:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33557, + "name": "y1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33425, + "src": "16551:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 33558, + "name": "hint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33451, + "src": "16555:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 33555, + "name": "sqrt_Fp2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33017, + "src": "16538:8:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256,bool) view returns (uint256,uint256)" + } + }, + "id": 33559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16538:22:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "16527:33:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33561, + "nodeType": "ExpressionStatement", + "src": "16527:33:39" + }, + { + "condition": { + "id": 33562, + "name": "negate_point", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33443, + "src": "16574:12:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33576, + "nodeType": "IfStatement", + "src": "16570:87:39", + "trueBody": { + "id": 33575, + "nodeType": "Block", + "src": "16588:69:39", + "statements": [ + { + "expression": { + "id": 33567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33563, + "name": "y0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33423, + "src": "16602:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33565, + "name": "y0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33423, + "src": "16614:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33564, + "name": "negate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32811, + "src": "16607:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 33566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16607:10:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16602:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33568, + "nodeType": "ExpressionStatement", + "src": "16602:15:39" + }, + { + "expression": { + "id": 33573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 33569, + "name": "y1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33425, + "src": "16631:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 33571, + "name": "y1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33425, + "src": "16643:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33570, + "name": "negate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32811, + "src": "16636:6:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 33572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16636:10:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16631:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33574, + "nodeType": "ExpressionStatement", + "src": "16631:15:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 33412, + "nodeType": "StructuredDocumentation", + "src": "14551:728:39", + "text": "Decompress a G2 point.\n @notice Reverts with InvalidProof if the input does not represent a valid point.\n @notice The G2 curve is defined over the complex extension Fp[i]/(i^2 + 1)\n with coordinates (x0 + x1 â‹… i, y0 + y1 â‹… i). \n @notice The point at infinity is encoded as (0,0,0,0) and compressed to (0,0).\n @param c0 The first half of the compresed point (x0 with two signal bits).\n @param c1 The second half of the compressed point (x1 unmodified).\n @return x0 The real part of the X coordinate.\n @return x1 The imaginary poart of the X coordinate.\n @return y0 The real part of the Y coordinate.\n @return y1 The imaginary part of the Y coordinate." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decompress_g2", + "nameLocation": "15293:13:39", + "parameters": { + "id": 33417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33414, + "mutability": "mutable", + "name": "c0", + "nameLocation": "15315:2:39", + "nodeType": "VariableDeclaration", + "scope": 33578, + "src": "15307:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33413, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15307:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33416, + "mutability": "mutable", + "name": "c1", + "nameLocation": "15327:2:39", + "nodeType": "VariableDeclaration", + "scope": 33578, + "src": "15319:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15319:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15306:24:39" + }, + "returnParameters": { + "id": 33426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33419, + "mutability": "mutable", + "name": "x0", + "nameLocation": "15366:2:39", + "nodeType": "VariableDeclaration", + "scope": 33578, + "src": "15358:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33418, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15358:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33421, + "mutability": "mutable", + "name": "x1", + "nameLocation": "15378:2:39", + "nodeType": "VariableDeclaration", + "scope": 33578, + "src": "15370:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33420, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15370:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33423, + "mutability": "mutable", + "name": "y0", + "nameLocation": "15390:2:39", + "nodeType": "VariableDeclaration", + "scope": 33578, + "src": "15382:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15382:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33425, + "mutability": "mutable", + "name": "y1", + "nameLocation": "15402:2:39", + "nodeType": "VariableDeclaration", + "scope": 33578, + "src": "15394:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33424, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15394:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15357:48:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "id": 33603, + "nodeType": "FunctionDefinition", + "src": "17162:2670:39", + "nodes": [], + "body": { + "id": 33602, + "nodeType": "Block", + "src": "17262:2570:39", + "nodes": [], + "statements": [ + { + "assignments": [ + 33591 + ], + "declarations": [ + { + "constant": false, + "id": 33591, + "mutability": "mutable", + "name": "success", + "nameLocation": "17776:7:39", + "nodeType": "VariableDeclaration", + "scope": 33602, + "src": "17771:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33590, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17771:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 33593, + "initialValue": { + "hexValue": "74727565", + "id": 33592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17786:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "nodeType": "VariableDeclarationStatement", + "src": "17771:19:39" + }, + { + "AST": { + "nativeSrc": "17825:1749:39", + "nodeType": "YulBlock", + "src": "17825:1749:39", + "statements": [ + { + "nativeSrc": "17839:20:39", + "nodeType": "YulVariableDeclaration", + "src": "17839:20:39", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17854:4:39", + "nodeType": "YulLiteral", + "src": "17854:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17848:5:39", + "nodeType": "YulIdentifier", + "src": "17848:5:39" + }, + "nativeSrc": "17848:11:39", + "nodeType": "YulFunctionCall", + "src": "17848:11:39" + }, + "variables": [ + { + "name": "f", + "nativeSrc": "17843:1:39", + "nodeType": "YulTypedName", + "src": "17843:1:39", + "type": "" + } + ] + }, + { + "nativeSrc": "17872:21:39", + "nodeType": "YulVariableDeclaration", + "src": "17872:21:39", + "value": { + "arguments": [ + { + "name": "f", + "nativeSrc": "17885:1:39", + "nodeType": "YulIdentifier", + "src": "17885:1:39" + }, + { + "kind": "number", + "nativeSrc": "17888:4:39", + "nodeType": "YulLiteral", + "src": "17888:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17881:3:39", + "nodeType": "YulIdentifier", + "src": "17881:3:39" + }, + "nativeSrc": "17881:12:39", + "nodeType": "YulFunctionCall", + "src": "17881:12:39" + }, + "variables": [ + { + "name": "g", + "nativeSrc": "17876:1:39", + "nodeType": "YulTypedName", + "src": "17876:1:39", + "type": "" + } + ] + }, + { + "nativeSrc": "17906:5:39", + "nodeType": "YulVariableDeclaration", + "src": "17906:5:39", + "variables": [ + { + "name": "s", + "nativeSrc": "17910:1:39", + "nodeType": "YulTypedName", + "src": "17910:1:39", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "f", + "nativeSrc": "17931:1:39", + "nodeType": "YulIdentifier", + "src": "17931:1:39" + }, + { + "name": "CONSTANT_X", + "nativeSrc": "17934:10:39", + "nodeType": "YulIdentifier", + "src": "17934:10:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17924:6:39", + "nodeType": "YulIdentifier", + "src": "17924:6:39" + }, + "nativeSrc": "17924:21:39", + "nodeType": "YulFunctionCall", + "src": "17924:21:39" + }, + "nativeSrc": "17924:21:39", + "nodeType": "YulExpressionStatement", + "src": "17924:21:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "17969:1:39", + "nodeType": "YulIdentifier", + "src": "17969:1:39" + }, + { + "kind": "number", + "nativeSrc": "17972:4:39", + "nodeType": "YulLiteral", + "src": "17972:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17965:3:39", + "nodeType": "YulIdentifier", + "src": "17965:3:39" + }, + "nativeSrc": "17965:12:39", + "nodeType": "YulFunctionCall", + "src": "17965:12:39" + }, + { + "name": "CONSTANT_Y", + "nativeSrc": "17979:10:39", + "nodeType": "YulIdentifier", + "src": "17979:10:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17958:6:39", + "nodeType": "YulIdentifier", + "src": "17958:6:39" + }, + "nativeSrc": "17958:32:39", + "nodeType": "YulFunctionCall", + "src": "17958:32:39" + }, + "nativeSrc": "17958:32:39", + "nodeType": "YulExpressionStatement", + "src": "17958:32:39" + }, + { + "expression": { + "arguments": [ + { + "name": "g", + "nativeSrc": "18010:1:39", + "nodeType": "YulIdentifier", + "src": "18010:1:39" + }, + { + "name": "PUB_0_X", + "nativeSrc": "18013:7:39", + "nodeType": "YulIdentifier", + "src": "18013:7:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18003:6:39", + "nodeType": "YulIdentifier", + "src": "18003:6:39" + }, + "nativeSrc": "18003:18:39", + "nodeType": "YulFunctionCall", + "src": "18003:18:39" + }, + "nativeSrc": "18003:18:39", + "nodeType": "YulExpressionStatement", + "src": "18003:18:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "g", + "nativeSrc": "18045:1:39", + "nodeType": "YulIdentifier", + "src": "18045:1:39" + }, + { + "kind": "number", + "nativeSrc": "18048:4:39", + "nodeType": "YulLiteral", + "src": "18048:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18041:3:39", + "nodeType": "YulIdentifier", + "src": "18041:3:39" + }, + "nativeSrc": "18041:12:39", + "nodeType": "YulFunctionCall", + "src": "18041:12:39" + }, + { + "name": "PUB_0_Y", + "nativeSrc": "18055:7:39", + "nodeType": "YulIdentifier", + "src": "18055:7:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18034:6:39", + "nodeType": "YulIdentifier", + "src": "18034:6:39" + }, + "nativeSrc": "18034:29:39", + "nodeType": "YulFunctionCall", + "src": "18034:29:39" + }, + "nativeSrc": "18034:29:39", + "nodeType": "YulExpressionStatement", + "src": "18034:29:39" + }, + { + "nativeSrc": "18076:25:39", + "nodeType": "YulAssignment", + "src": "18076:25:39", + "value": { + "arguments": [ + { + "name": "input", + "nativeSrc": "18095:5:39", + "nodeType": "YulIdentifier", + "src": "18095:5:39" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18082:12:39", + "nodeType": "YulIdentifier", + "src": "18082:12:39" + }, + "nativeSrc": "18082:19:39", + "nodeType": "YulFunctionCall", + "src": "18082:19:39" + }, + "variableNames": [ + { + "name": "s", + "nativeSrc": "18076:1:39", + "nodeType": "YulIdentifier", + "src": "18076:1:39" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "g", + "nativeSrc": "18125:1:39", + "nodeType": "YulIdentifier", + "src": "18125:1:39" + }, + { + "kind": "number", + "nativeSrc": "18128:4:39", + "nodeType": "YulLiteral", + "src": "18128:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18121:3:39", + "nodeType": "YulIdentifier", + "src": "18121:3:39" + }, + "nativeSrc": "18121:12:39", + "nodeType": "YulFunctionCall", + "src": "18121:12:39" + }, + { + "name": "s", + "nativeSrc": "18135:1:39", + "nodeType": "YulIdentifier", + "src": "18135:1:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18114:6:39", + "nodeType": "YulIdentifier", + "src": "18114:6:39" + }, + "nativeSrc": "18114:23:39", + "nodeType": "YulFunctionCall", + "src": "18114:23:39" + }, + "nativeSrc": "18114:23:39", + "nodeType": "YulExpressionStatement", + "src": "18114:23:39" + }, + { + "nativeSrc": "18150:33:39", + "nodeType": "YulAssignment", + "src": "18150:33:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "18165:7:39", + "nodeType": "YulIdentifier", + "src": "18165:7:39" + }, + { + "arguments": [ + { + "name": "s", + "nativeSrc": "18177:1:39", + "nodeType": "YulIdentifier", + "src": "18177:1:39" + }, + { + "name": "R", + "nativeSrc": "18180:1:39", + "nodeType": "YulIdentifier", + "src": "18180:1:39" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18174:2:39", + "nodeType": "YulIdentifier", + "src": "18174:2:39" + }, + "nativeSrc": "18174:8:39", + "nodeType": "YulFunctionCall", + "src": "18174:8:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18161:3:39", + "nodeType": "YulIdentifier", + "src": "18161:3:39" + }, + "nativeSrc": "18161:22:39", + "nodeType": "YulFunctionCall", + "src": "18161:22:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18150:7:39", + "nodeType": "YulIdentifier", + "src": "18150:7:39" + } + ] + }, + { + "nativeSrc": "18196:76:39", + "nodeType": "YulAssignment", + "src": "18196:76:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "18211:7:39", + "nodeType": "YulIdentifier", + "src": "18211:7:39" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "18231:3:39", + "nodeType": "YulIdentifier", + "src": "18231:3:39" + }, + "nativeSrc": "18231:5:39", + "nodeType": "YulFunctionCall", + "src": "18231:5:39" + }, + { + "name": "PRECOMPILE_MUL", + "nativeSrc": "18238:14:39", + "nodeType": "YulIdentifier", + "src": "18238:14:39" + }, + { + "name": "g", + "nativeSrc": "18254:1:39", + "nodeType": "YulIdentifier", + "src": "18254:1:39" + }, + { + "kind": "number", + "nativeSrc": "18257:4:39", + "nodeType": "YulLiteral", + "src": "18257:4:39", + "type": "", + "value": "0x60" + }, + { + "name": "g", + "nativeSrc": "18263:1:39", + "nodeType": "YulIdentifier", + "src": "18263:1:39" + }, + { + "kind": "number", + "nativeSrc": "18266:4:39", + "nodeType": "YulLiteral", + "src": "18266:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "18220:10:39", + "nodeType": "YulIdentifier", + "src": "18220:10:39" + }, + "nativeSrc": "18220:51:39", + "nodeType": "YulFunctionCall", + "src": "18220:51:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18207:3:39", + "nodeType": "YulIdentifier", + "src": "18207:3:39" + }, + "nativeSrc": "18207:65:39", + "nodeType": "YulFunctionCall", + "src": "18207:65:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18196:7:39", + "nodeType": "YulIdentifier", + "src": "18196:7:39" + } + ] + }, + { + "nativeSrc": "18285:76:39", + "nodeType": "YulAssignment", + "src": "18285:76:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "18300:7:39", + "nodeType": "YulIdentifier", + "src": "18300:7:39" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "18320:3:39", + "nodeType": "YulIdentifier", + "src": "18320:3:39" + }, + "nativeSrc": "18320:5:39", + "nodeType": "YulFunctionCall", + "src": "18320:5:39" + }, + { + "name": "PRECOMPILE_ADD", + "nativeSrc": "18327:14:39", + "nodeType": "YulIdentifier", + "src": "18327:14:39" + }, + { + "name": "f", + "nativeSrc": "18343:1:39", + "nodeType": "YulIdentifier", + "src": "18343:1:39" + }, + { + "kind": "number", + "nativeSrc": "18346:4:39", + "nodeType": "YulLiteral", + "src": "18346:4:39", + "type": "", + "value": "0x80" + }, + { + "name": "f", + "nativeSrc": "18352:1:39", + "nodeType": "YulIdentifier", + "src": "18352:1:39" + }, + { + "kind": "number", + "nativeSrc": "18355:4:39", + "nodeType": "YulLiteral", + "src": "18355:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "18309:10:39", + "nodeType": "YulIdentifier", + "src": "18309:10:39" + }, + "nativeSrc": "18309:51:39", + "nodeType": "YulFunctionCall", + "src": "18309:51:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18296:3:39", + "nodeType": "YulIdentifier", + "src": "18296:3:39" + }, + "nativeSrc": "18296:65:39", + "nodeType": "YulFunctionCall", + "src": "18296:65:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18285:7:39", + "nodeType": "YulIdentifier", + "src": "18285:7:39" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "g", + "nativeSrc": "18381:1:39", + "nodeType": "YulIdentifier", + "src": "18381:1:39" + }, + { + "name": "PUB_1_X", + "nativeSrc": "18384:7:39", + "nodeType": "YulIdentifier", + "src": "18384:7:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18374:6:39", + "nodeType": "YulIdentifier", + "src": "18374:6:39" + }, + "nativeSrc": "18374:18:39", + "nodeType": "YulFunctionCall", + "src": "18374:18:39" + }, + "nativeSrc": "18374:18:39", + "nodeType": "YulExpressionStatement", + "src": "18374:18:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "g", + "nativeSrc": "18416:1:39", + "nodeType": "YulIdentifier", + "src": "18416:1:39" + }, + { + "kind": "number", + "nativeSrc": "18419:4:39", + "nodeType": "YulLiteral", + "src": "18419:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18412:3:39", + "nodeType": "YulIdentifier", + "src": "18412:3:39" + }, + "nativeSrc": "18412:12:39", + "nodeType": "YulFunctionCall", + "src": "18412:12:39" + }, + { + "name": "PUB_1_Y", + "nativeSrc": "18426:7:39", + "nodeType": "YulIdentifier", + "src": "18426:7:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18405:6:39", + "nodeType": "YulIdentifier", + "src": "18405:6:39" + }, + "nativeSrc": "18405:29:39", + "nodeType": "YulFunctionCall", + "src": "18405:29:39" + }, + "nativeSrc": "18405:29:39", + "nodeType": "YulExpressionStatement", + "src": "18405:29:39" + }, + { + "nativeSrc": "18447:34:39", + "nodeType": "YulAssignment", + "src": "18447:34:39", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "input", + "nativeSrc": "18470:5:39", + "nodeType": "YulIdentifier", + "src": "18470:5:39" + }, + { + "kind": "number", + "nativeSrc": "18477:2:39", + "nodeType": "YulLiteral", + "src": "18477:2:39", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18466:3:39", + "nodeType": "YulIdentifier", + "src": "18466:3:39" + }, + "nativeSrc": "18466:14:39", + "nodeType": "YulFunctionCall", + "src": "18466:14:39" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18453:12:39", + "nodeType": "YulIdentifier", + "src": "18453:12:39" + }, + "nativeSrc": "18453:28:39", + "nodeType": "YulFunctionCall", + "src": "18453:28:39" + }, + "variableNames": [ + { + "name": "s", + "nativeSrc": "18447:1:39", + "nodeType": "YulIdentifier", + "src": "18447:1:39" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "g", + "nativeSrc": "18505:1:39", + "nodeType": "YulIdentifier", + "src": "18505:1:39" + }, + { + "kind": "number", + "nativeSrc": "18508:4:39", + "nodeType": "YulLiteral", + "src": "18508:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18501:3:39", + "nodeType": "YulIdentifier", + "src": "18501:3:39" + }, + "nativeSrc": "18501:12:39", + "nodeType": "YulFunctionCall", + "src": "18501:12:39" + }, + { + "name": "s", + "nativeSrc": "18515:1:39", + "nodeType": "YulIdentifier", + "src": "18515:1:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18494:6:39", + "nodeType": "YulIdentifier", + "src": "18494:6:39" + }, + "nativeSrc": "18494:23:39", + "nodeType": "YulFunctionCall", + "src": "18494:23:39" + }, + "nativeSrc": "18494:23:39", + "nodeType": "YulExpressionStatement", + "src": "18494:23:39" + }, + { + "nativeSrc": "18530:33:39", + "nodeType": "YulAssignment", + "src": "18530:33:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "18545:7:39", + "nodeType": "YulIdentifier", + "src": "18545:7:39" + }, + { + "arguments": [ + { + "name": "s", + "nativeSrc": "18557:1:39", + "nodeType": "YulIdentifier", + "src": "18557:1:39" + }, + { + "name": "R", + "nativeSrc": "18560:1:39", + "nodeType": "YulIdentifier", + "src": "18560:1:39" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18554:2:39", + "nodeType": "YulIdentifier", + "src": "18554:2:39" + }, + "nativeSrc": "18554:8:39", + "nodeType": "YulFunctionCall", + "src": "18554:8:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18541:3:39", + "nodeType": "YulIdentifier", + "src": "18541:3:39" + }, + "nativeSrc": "18541:22:39", + "nodeType": "YulFunctionCall", + "src": "18541:22:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18530:7:39", + "nodeType": "YulIdentifier", + "src": "18530:7:39" + } + ] + }, + { + "nativeSrc": "18576:76:39", + "nodeType": "YulAssignment", + "src": "18576:76:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "18591:7:39", + "nodeType": "YulIdentifier", + "src": "18591:7:39" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "18611:3:39", + "nodeType": "YulIdentifier", + "src": "18611:3:39" + }, + "nativeSrc": "18611:5:39", + "nodeType": "YulFunctionCall", + "src": "18611:5:39" + }, + { + "name": "PRECOMPILE_MUL", + "nativeSrc": "18618:14:39", + "nodeType": "YulIdentifier", + "src": "18618:14:39" + }, + { + "name": "g", + "nativeSrc": "18634:1:39", + "nodeType": "YulIdentifier", + "src": "18634:1:39" + }, + { + "kind": "number", + "nativeSrc": "18637:4:39", + "nodeType": "YulLiteral", + "src": "18637:4:39", + "type": "", + "value": "0x60" + }, + { + "name": "g", + "nativeSrc": "18643:1:39", + "nodeType": "YulIdentifier", + "src": "18643:1:39" + }, + { + "kind": "number", + "nativeSrc": "18646:4:39", + "nodeType": "YulLiteral", + "src": "18646:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "18600:10:39", + "nodeType": "YulIdentifier", + "src": "18600:10:39" + }, + "nativeSrc": "18600:51:39", + "nodeType": "YulFunctionCall", + "src": "18600:51:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18587:3:39", + "nodeType": "YulIdentifier", + "src": "18587:3:39" + }, + "nativeSrc": "18587:65:39", + "nodeType": "YulFunctionCall", + "src": "18587:65:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18576:7:39", + "nodeType": "YulIdentifier", + "src": "18576:7:39" + } + ] + }, + { + "nativeSrc": "18665:76:39", + "nodeType": "YulAssignment", + "src": "18665:76:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "18680:7:39", + "nodeType": "YulIdentifier", + "src": "18680:7:39" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "18700:3:39", + "nodeType": "YulIdentifier", + "src": "18700:3:39" + }, + "nativeSrc": "18700:5:39", + "nodeType": "YulFunctionCall", + "src": "18700:5:39" + }, + { + "name": "PRECOMPILE_ADD", + "nativeSrc": "18707:14:39", + "nodeType": "YulIdentifier", + "src": "18707:14:39" + }, + { + "name": "f", + "nativeSrc": "18723:1:39", + "nodeType": "YulIdentifier", + "src": "18723:1:39" + }, + { + "kind": "number", + "nativeSrc": "18726:4:39", + "nodeType": "YulLiteral", + "src": "18726:4:39", + "type": "", + "value": "0x80" + }, + { + "name": "f", + "nativeSrc": "18732:1:39", + "nodeType": "YulIdentifier", + "src": "18732:1:39" + }, + { + "kind": "number", + "nativeSrc": "18735:4:39", + "nodeType": "YulLiteral", + "src": "18735:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "18689:10:39", + "nodeType": "YulIdentifier", + "src": "18689:10:39" + }, + "nativeSrc": "18689:51:39", + "nodeType": "YulFunctionCall", + "src": "18689:51:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18676:3:39", + "nodeType": "YulIdentifier", + "src": "18676:3:39" + }, + "nativeSrc": "18676:65:39", + "nodeType": "YulFunctionCall", + "src": "18676:65:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18665:7:39", + "nodeType": "YulIdentifier", + "src": "18665:7:39" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "g", + "nativeSrc": "18761:1:39", + "nodeType": "YulIdentifier", + "src": "18761:1:39" + }, + { + "name": "PUB_2_X", + "nativeSrc": "18764:7:39", + "nodeType": "YulIdentifier", + "src": "18764:7:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18754:6:39", + "nodeType": "YulIdentifier", + "src": "18754:6:39" + }, + "nativeSrc": "18754:18:39", + "nodeType": "YulFunctionCall", + "src": "18754:18:39" + }, + "nativeSrc": "18754:18:39", + "nodeType": "YulExpressionStatement", + "src": "18754:18:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "g", + "nativeSrc": "18796:1:39", + "nodeType": "YulIdentifier", + "src": "18796:1:39" + }, + { + "kind": "number", + "nativeSrc": "18799:4:39", + "nodeType": "YulLiteral", + "src": "18799:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18792:3:39", + "nodeType": "YulIdentifier", + "src": "18792:3:39" + }, + "nativeSrc": "18792:12:39", + "nodeType": "YulFunctionCall", + "src": "18792:12:39" + }, + { + "name": "PUB_2_Y", + "nativeSrc": "18806:7:39", + "nodeType": "YulIdentifier", + "src": "18806:7:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18785:6:39", + "nodeType": "YulIdentifier", + "src": "18785:6:39" + }, + "nativeSrc": "18785:29:39", + "nodeType": "YulFunctionCall", + "src": "18785:29:39" + }, + "nativeSrc": "18785:29:39", + "nodeType": "YulExpressionStatement", + "src": "18785:29:39" + }, + { + "nativeSrc": "18827:34:39", + "nodeType": "YulAssignment", + "src": "18827:34:39", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "input", + "nativeSrc": "18850:5:39", + "nodeType": "YulIdentifier", + "src": "18850:5:39" + }, + { + "kind": "number", + "nativeSrc": "18857:2:39", + "nodeType": "YulLiteral", + "src": "18857:2:39", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18846:3:39", + "nodeType": "YulIdentifier", + "src": "18846:3:39" + }, + "nativeSrc": "18846:14:39", + "nodeType": "YulFunctionCall", + "src": "18846:14:39" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18833:12:39", + "nodeType": "YulIdentifier", + "src": "18833:12:39" + }, + "nativeSrc": "18833:28:39", + "nodeType": "YulFunctionCall", + "src": "18833:28:39" + }, + "variableNames": [ + { + "name": "s", + "nativeSrc": "18827:1:39", + "nodeType": "YulIdentifier", + "src": "18827:1:39" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "g", + "nativeSrc": "18885:1:39", + "nodeType": "YulIdentifier", + "src": "18885:1:39" + }, + { + "kind": "number", + "nativeSrc": "18888:4:39", + "nodeType": "YulLiteral", + "src": "18888:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18881:3:39", + "nodeType": "YulIdentifier", + "src": "18881:3:39" + }, + "nativeSrc": "18881:12:39", + "nodeType": "YulFunctionCall", + "src": "18881:12:39" + }, + { + "name": "s", + "nativeSrc": "18895:1:39", + "nodeType": "YulIdentifier", + "src": "18895:1:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18874:6:39", + "nodeType": "YulIdentifier", + "src": "18874:6:39" + }, + "nativeSrc": "18874:23:39", + "nodeType": "YulFunctionCall", + "src": "18874:23:39" + }, + "nativeSrc": "18874:23:39", + "nodeType": "YulExpressionStatement", + "src": "18874:23:39" + }, + { + "nativeSrc": "18910:33:39", + "nodeType": "YulAssignment", + "src": "18910:33:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "18925:7:39", + "nodeType": "YulIdentifier", + "src": "18925:7:39" + }, + { + "arguments": [ + { + "name": "s", + "nativeSrc": "18937:1:39", + "nodeType": "YulIdentifier", + "src": "18937:1:39" + }, + { + "name": "R", + "nativeSrc": "18940:1:39", + "nodeType": "YulIdentifier", + "src": "18940:1:39" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18934:2:39", + "nodeType": "YulIdentifier", + "src": "18934:2:39" + }, + "nativeSrc": "18934:8:39", + "nodeType": "YulFunctionCall", + "src": "18934:8:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18921:3:39", + "nodeType": "YulIdentifier", + "src": "18921:3:39" + }, + "nativeSrc": "18921:22:39", + "nodeType": "YulFunctionCall", + "src": "18921:22:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18910:7:39", + "nodeType": "YulIdentifier", + "src": "18910:7:39" + } + ] + }, + { + "nativeSrc": "18956:76:39", + "nodeType": "YulAssignment", + "src": "18956:76:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "18971:7:39", + "nodeType": "YulIdentifier", + "src": "18971:7:39" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "18991:3:39", + "nodeType": "YulIdentifier", + "src": "18991:3:39" + }, + "nativeSrc": "18991:5:39", + "nodeType": "YulFunctionCall", + "src": "18991:5:39" + }, + { + "name": "PRECOMPILE_MUL", + "nativeSrc": "18998:14:39", + "nodeType": "YulIdentifier", + "src": "18998:14:39" + }, + { + "name": "g", + "nativeSrc": "19014:1:39", + "nodeType": "YulIdentifier", + "src": "19014:1:39" + }, + { + "kind": "number", + "nativeSrc": "19017:4:39", + "nodeType": "YulLiteral", + "src": "19017:4:39", + "type": "", + "value": "0x60" + }, + { + "name": "g", + "nativeSrc": "19023:1:39", + "nodeType": "YulIdentifier", + "src": "19023:1:39" + }, + { + "kind": "number", + "nativeSrc": "19026:4:39", + "nodeType": "YulLiteral", + "src": "19026:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "18980:10:39", + "nodeType": "YulIdentifier", + "src": "18980:10:39" + }, + "nativeSrc": "18980:51:39", + "nodeType": "YulFunctionCall", + "src": "18980:51:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18967:3:39", + "nodeType": "YulIdentifier", + "src": "18967:3:39" + }, + "nativeSrc": "18967:65:39", + "nodeType": "YulFunctionCall", + "src": "18967:65:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18956:7:39", + "nodeType": "YulIdentifier", + "src": "18956:7:39" + } + ] + }, + { + "nativeSrc": "19045:76:39", + "nodeType": "YulAssignment", + "src": "19045:76:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "19060:7:39", + "nodeType": "YulIdentifier", + "src": "19060:7:39" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "19080:3:39", + "nodeType": "YulIdentifier", + "src": "19080:3:39" + }, + "nativeSrc": "19080:5:39", + "nodeType": "YulFunctionCall", + "src": "19080:5:39" + }, + { + "name": "PRECOMPILE_ADD", + "nativeSrc": "19087:14:39", + "nodeType": "YulIdentifier", + "src": "19087:14:39" + }, + { + "name": "f", + "nativeSrc": "19103:1:39", + "nodeType": "YulIdentifier", + "src": "19103:1:39" + }, + { + "kind": "number", + "nativeSrc": "19106:4:39", + "nodeType": "YulLiteral", + "src": "19106:4:39", + "type": "", + "value": "0x80" + }, + { + "name": "f", + "nativeSrc": "19112:1:39", + "nodeType": "YulIdentifier", + "src": "19112:1:39" + }, + { + "kind": "number", + "nativeSrc": "19115:4:39", + "nodeType": "YulLiteral", + "src": "19115:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "19069:10:39", + "nodeType": "YulIdentifier", + "src": "19069:10:39" + }, + "nativeSrc": "19069:51:39", + "nodeType": "YulFunctionCall", + "src": "19069:51:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19056:3:39", + "nodeType": "YulIdentifier", + "src": "19056:3:39" + }, + "nativeSrc": "19056:65:39", + "nodeType": "YulFunctionCall", + "src": "19056:65:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "19045:7:39", + "nodeType": "YulIdentifier", + "src": "19045:7:39" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "g", + "nativeSrc": "19141:1:39", + "nodeType": "YulIdentifier", + "src": "19141:1:39" + }, + { + "name": "PUB_3_X", + "nativeSrc": "19144:7:39", + "nodeType": "YulIdentifier", + "src": "19144:7:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19134:6:39", + "nodeType": "YulIdentifier", + "src": "19134:6:39" + }, + "nativeSrc": "19134:18:39", + "nodeType": "YulFunctionCall", + "src": "19134:18:39" + }, + "nativeSrc": "19134:18:39", + "nodeType": "YulExpressionStatement", + "src": "19134:18:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "g", + "nativeSrc": "19176:1:39", + "nodeType": "YulIdentifier", + "src": "19176:1:39" + }, + { + "kind": "number", + "nativeSrc": "19179:4:39", + "nodeType": "YulLiteral", + "src": "19179:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19172:3:39", + "nodeType": "YulIdentifier", + "src": "19172:3:39" + }, + "nativeSrc": "19172:12:39", + "nodeType": "YulFunctionCall", + "src": "19172:12:39" + }, + { + "name": "PUB_3_Y", + "nativeSrc": "19186:7:39", + "nodeType": "YulIdentifier", + "src": "19186:7:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19165:6:39", + "nodeType": "YulIdentifier", + "src": "19165:6:39" + }, + "nativeSrc": "19165:29:39", + "nodeType": "YulFunctionCall", + "src": "19165:29:39" + }, + "nativeSrc": "19165:29:39", + "nodeType": "YulExpressionStatement", + "src": "19165:29:39" + }, + { + "nativeSrc": "19207:34:39", + "nodeType": "YulAssignment", + "src": "19207:34:39", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "input", + "nativeSrc": "19230:5:39", + "nodeType": "YulIdentifier", + "src": "19230:5:39" + }, + { + "kind": "number", + "nativeSrc": "19237:2:39", + "nodeType": "YulLiteral", + "src": "19237:2:39", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19226:3:39", + "nodeType": "YulIdentifier", + "src": "19226:3:39" + }, + "nativeSrc": "19226:14:39", + "nodeType": "YulFunctionCall", + "src": "19226:14:39" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "19213:12:39", + "nodeType": "YulIdentifier", + "src": "19213:12:39" + }, + "nativeSrc": "19213:28:39", + "nodeType": "YulFunctionCall", + "src": "19213:28:39" + }, + "variableNames": [ + { + "name": "s", + "nativeSrc": "19207:1:39", + "nodeType": "YulIdentifier", + "src": "19207:1:39" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "g", + "nativeSrc": "19265:1:39", + "nodeType": "YulIdentifier", + "src": "19265:1:39" + }, + { + "kind": "number", + "nativeSrc": "19268:4:39", + "nodeType": "YulLiteral", + "src": "19268:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19261:3:39", + "nodeType": "YulIdentifier", + "src": "19261:3:39" + }, + "nativeSrc": "19261:12:39", + "nodeType": "YulFunctionCall", + "src": "19261:12:39" + }, + { + "name": "s", + "nativeSrc": "19275:1:39", + "nodeType": "YulIdentifier", + "src": "19275:1:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19254:6:39", + "nodeType": "YulIdentifier", + "src": "19254:6:39" + }, + "nativeSrc": "19254:23:39", + "nodeType": "YulFunctionCall", + "src": "19254:23:39" + }, + "nativeSrc": "19254:23:39", + "nodeType": "YulExpressionStatement", + "src": "19254:23:39" + }, + { + "nativeSrc": "19290:33:39", + "nodeType": "YulAssignment", + "src": "19290:33:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "19305:7:39", + "nodeType": "YulIdentifier", + "src": "19305:7:39" + }, + { + "arguments": [ + { + "name": "s", + "nativeSrc": "19317:1:39", + "nodeType": "YulIdentifier", + "src": "19317:1:39" + }, + { + "name": "R", + "nativeSrc": "19320:1:39", + "nodeType": "YulIdentifier", + "src": "19320:1:39" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19314:2:39", + "nodeType": "YulIdentifier", + "src": "19314:2:39" + }, + "nativeSrc": "19314:8:39", + "nodeType": "YulFunctionCall", + "src": "19314:8:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19301:3:39", + "nodeType": "YulIdentifier", + "src": "19301:3:39" + }, + "nativeSrc": "19301:22:39", + "nodeType": "YulFunctionCall", + "src": "19301:22:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "19290:7:39", + "nodeType": "YulIdentifier", + "src": "19290:7:39" + } + ] + }, + { + "nativeSrc": "19336:76:39", + "nodeType": "YulAssignment", + "src": "19336:76:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "19351:7:39", + "nodeType": "YulIdentifier", + "src": "19351:7:39" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "19371:3:39", + "nodeType": "YulIdentifier", + "src": "19371:3:39" + }, + "nativeSrc": "19371:5:39", + "nodeType": "YulFunctionCall", + "src": "19371:5:39" + }, + { + "name": "PRECOMPILE_MUL", + "nativeSrc": "19378:14:39", + "nodeType": "YulIdentifier", + "src": "19378:14:39" + }, + { + "name": "g", + "nativeSrc": "19394:1:39", + "nodeType": "YulIdentifier", + "src": "19394:1:39" + }, + { + "kind": "number", + "nativeSrc": "19397:4:39", + "nodeType": "YulLiteral", + "src": "19397:4:39", + "type": "", + "value": "0x60" + }, + { + "name": "g", + "nativeSrc": "19403:1:39", + "nodeType": "YulIdentifier", + "src": "19403:1:39" + }, + { + "kind": "number", + "nativeSrc": "19406:4:39", + "nodeType": "YulLiteral", + "src": "19406:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "19360:10:39", + "nodeType": "YulIdentifier", + "src": "19360:10:39" + }, + "nativeSrc": "19360:51:39", + "nodeType": "YulFunctionCall", + "src": "19360:51:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19347:3:39", + "nodeType": "YulIdentifier", + "src": "19347:3:39" + }, + "nativeSrc": "19347:65:39", + "nodeType": "YulFunctionCall", + "src": "19347:65:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "19336:7:39", + "nodeType": "YulIdentifier", + "src": "19336:7:39" + } + ] + }, + { + "nativeSrc": "19425:76:39", + "nodeType": "YulAssignment", + "src": "19425:76:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "19440:7:39", + "nodeType": "YulIdentifier", + "src": "19440:7:39" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "19460:3:39", + "nodeType": "YulIdentifier", + "src": "19460:3:39" + }, + "nativeSrc": "19460:5:39", + "nodeType": "YulFunctionCall", + "src": "19460:5:39" + }, + { + "name": "PRECOMPILE_ADD", + "nativeSrc": "19467:14:39", + "nodeType": "YulIdentifier", + "src": "19467:14:39" + }, + { + "name": "f", + "nativeSrc": "19483:1:39", + "nodeType": "YulIdentifier", + "src": "19483:1:39" + }, + { + "kind": "number", + "nativeSrc": "19486:4:39", + "nodeType": "YulLiteral", + "src": "19486:4:39", + "type": "", + "value": "0x80" + }, + { + "name": "f", + "nativeSrc": "19492:1:39", + "nodeType": "YulIdentifier", + "src": "19492:1:39" + }, + { + "kind": "number", + "nativeSrc": "19495:4:39", + "nodeType": "YulLiteral", + "src": "19495:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "19449:10:39", + "nodeType": "YulIdentifier", + "src": "19449:10:39" + }, + "nativeSrc": "19449:51:39", + "nodeType": "YulFunctionCall", + "src": "19449:51:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19436:3:39", + "nodeType": "YulIdentifier", + "src": "19436:3:39" + }, + "nativeSrc": "19436:65:39", + "nodeType": "YulFunctionCall", + "src": "19436:65:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "19425:7:39", + "nodeType": "YulIdentifier", + "src": "19425:7:39" + } + ] + }, + { + "nativeSrc": "19514:13:39", + "nodeType": "YulAssignment", + "src": "19514:13:39", + "value": { + "arguments": [ + { + "name": "f", + "nativeSrc": "19525:1:39", + "nodeType": "YulIdentifier", + "src": "19525:1:39" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19519:5:39", + "nodeType": "YulIdentifier", + "src": "19519:5:39" + }, + "nativeSrc": "19519:8:39", + "nodeType": "YulFunctionCall", + "src": "19519:8:39" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "19514:1:39", + "nodeType": "YulIdentifier", + "src": "19514:1:39" + } + ] + }, + { + "nativeSrc": "19540:24:39", + "nodeType": "YulAssignment", + "src": "19540:24:39", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "19555:1:39", + "nodeType": "YulIdentifier", + "src": "19555:1:39" + }, + { + "kind": "number", + "nativeSrc": "19558:4:39", + "nodeType": "YulLiteral", + "src": "19558:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19551:3:39", + "nodeType": "YulIdentifier", + "src": "19551:3:39" + }, + "nativeSrc": "19551:12:39", + "nodeType": "YulFunctionCall", + "src": "19551:12:39" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19545:5:39", + "nodeType": "YulIdentifier", + "src": "19545:5:39" + }, + "nativeSrc": "19545:19:39", + "nodeType": "YulFunctionCall", + "src": "19545:19:39" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "19540:1:39", + "nodeType": "YulIdentifier", + "src": "19540:1:39" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 32762, + "isOffset": false, + "isSlot": false, + "src": "17934:10:39", + "valueSize": 1 + }, + { + "declaration": 32765, + "isOffset": false, + "isSlot": false, + "src": "17979:10:39", + "valueSize": 1 + }, + { + "declaration": 32690, + "isOffset": false, + "isSlot": false, + "src": "18327:14:39", + "valueSize": 1 + }, + { + "declaration": 32690, + "isOffset": false, + "isSlot": false, + "src": "18707:14:39", + "valueSize": 1 + }, + { + "declaration": 32690, + "isOffset": false, + "isSlot": false, + "src": "19087:14:39", + "valueSize": 1 + }, + { + "declaration": 32690, + "isOffset": false, + "isSlot": false, + "src": "19467:14:39", + "valueSize": 1 + }, + { + "declaration": 32693, + "isOffset": false, + "isSlot": false, + "src": "18238:14:39", + "valueSize": 1 + }, + { + "declaration": 32693, + "isOffset": false, + "isSlot": false, + "src": "18618:14:39", + "valueSize": 1 + }, + { + "declaration": 32693, + "isOffset": false, + "isSlot": false, + "src": "18998:14:39", + "valueSize": 1 + }, + { + "declaration": 32693, + "isOffset": false, + "isSlot": false, + "src": "19378:14:39", + "valueSize": 1 + }, + { + "declaration": 32768, + "isOffset": false, + "isSlot": false, + "src": "18013:7:39", + "valueSize": 1 + }, + { + "declaration": 32771, + "isOffset": false, + "isSlot": false, + "src": "18055:7:39", + "valueSize": 1 + }, + { + "declaration": 32774, + "isOffset": false, + "isSlot": false, + "src": "18384:7:39", + "valueSize": 1 + }, + { + "declaration": 32777, + "isOffset": false, + "isSlot": false, + "src": "18426:7:39", + "valueSize": 1 + }, + { + "declaration": 32780, + "isOffset": false, + "isSlot": false, + "src": "18764:7:39", + "valueSize": 1 + }, + { + "declaration": 32783, + "isOffset": false, + "isSlot": false, + "src": "18806:7:39", + "valueSize": 1 + }, + { + "declaration": 32786, + "isOffset": false, + "isSlot": false, + "src": "19144:7:39", + "valueSize": 1 + }, + { + "declaration": 32789, + "isOffset": false, + "isSlot": false, + "src": "19186:7:39", + "valueSize": 1 + }, + { + "declaration": 32702, + "isOffset": false, + "isSlot": false, + "src": "18180:1:39", + "valueSize": 1 + }, + { + "declaration": 32702, + "isOffset": false, + "isSlot": false, + "src": "18560:1:39", + "valueSize": 1 + }, + { + "declaration": 32702, + "isOffset": false, + "isSlot": false, + "src": "18940:1:39", + "valueSize": 1 + }, + { + "declaration": 32702, + "isOffset": false, + "isSlot": false, + "src": "19320:1:39", + "valueSize": 1 + }, + { + "declaration": 33583, + "isOffset": false, + "isSlot": false, + "src": "18095:5:39", + "valueSize": 1 + }, + { + "declaration": 33583, + "isOffset": false, + "isSlot": false, + "src": "18470:5:39", + "valueSize": 1 + }, + { + "declaration": 33583, + "isOffset": false, + "isSlot": false, + "src": "18850:5:39", + "valueSize": 1 + }, + { + "declaration": 33583, + "isOffset": false, + "isSlot": false, + "src": "19230:5:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18150:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18165:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18196:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18211:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18285:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18300:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18530:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18545:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18576:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18591:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18665:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18680:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18910:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18925:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18956:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "18971:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "19045:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "19060:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "19290:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "19305:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "19336:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "19351:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "19425:7:39", + "valueSize": 1 + }, + { + "declaration": 33591, + "isOffset": false, + "isSlot": false, + "src": "19440:7:39", + "valueSize": 1 + }, + { + "declaration": 33586, + "isOffset": false, + "isSlot": false, + "src": "19514:1:39", + "valueSize": 1 + }, + { + "declaration": 33588, + "isOffset": false, + "isSlot": false, + "src": "19540:1:39", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 33594, + "nodeType": "InlineAssembly", + "src": "17800:1774:39" + }, + { + "condition": { + "id": 33596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "19587:8:39", + "subExpression": { + "id": 33595, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33591, + "src": "19588:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33601, + "nodeType": "IfStatement", + "src": "19583:243:39", + "trueBody": { + "id": 33600, + "nodeType": "Block", + "src": "19597:229:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33597, + "name": "PublicInputNotInField", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32681, + "src": "19792:21:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 33598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19792:23:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33599, + "nodeType": "RevertStatement", + "src": "19785:30:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 33579, + "nodeType": "StructuredDocumentation", + "src": "16669:488:39", + "text": "Compute the public input linear combination.\n @notice Reverts with PublicInputNotInField if the input is not in the field.\n @notice Computes the multi-scalar-multiplication of the public input\n elements and the verification key including the constant term.\n @param input The public inputs. These are elements of the scalar field Fr.\n @return x The X coordinate of the resulting G1 point.\n @return y The Y coordinate of the resulting G1 point." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "publicInputMSM", + "nameLocation": "17171:14:39", + "parameters": { + "id": 33584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33583, + "mutability": "mutable", + "name": "input", + "nameLocation": "17206:5:39", + "nodeType": "VariableDeclaration", + "scope": 33603, + "src": "17186:25:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 33580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17186:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33582, + "length": { + "hexValue": "34", + "id": 33581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17194:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "17186:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "visibility": "internal" + } + ], + "src": "17185:27:39" + }, + "returnParameters": { + "id": 33589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33586, + "mutability": "mutable", + "name": "x", + "nameLocation": "17248:1:39", + "nodeType": "VariableDeclaration", + "scope": 33603, + "src": "17240:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33585, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17240:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33588, + "mutability": "mutable", + "name": "y", + "nameLocation": "17259:1:39", + "nodeType": "VariableDeclaration", + "scope": 33603, + "src": "17251:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33587, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17251:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17239:22:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "id": 33665, + "nodeType": "FunctionDefinition", + "src": "20316:320:39", + "nodes": [], + "body": { + "id": 33664, + "nodeType": "Block", + "src": "20421:215:39", + "nodes": [], + "statements": [ + { + "expression": { + "id": 33626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33615, + "name": "compressed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33613, + "src": "20431:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 33617, + "indexExpression": { + "hexValue": "30", + "id": 33616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20442:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20431:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 33619, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33608, + "src": "20459:5:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 33621, + "indexExpression": { + "hexValue": "30", + "id": 33620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20465:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20459:8:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 33622, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33608, + "src": "20469:5:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 33624, + "indexExpression": { + "hexValue": "31", + "id": 33623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20475:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20469:8:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33618, + "name": "compress_g1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33099, + "src": "20447:11:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 33625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20447:31:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20431:47:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33627, + "nodeType": "ExpressionStatement", + "src": "20431:47:39" + }, + { + "expression": { + "id": 33649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "baseExpression": { + "id": 33628, + "name": "compressed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33613, + "src": "20489:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 33630, + "indexExpression": { + "hexValue": "32", + "id": 33629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20500:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20489:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 33631, + "name": "compressed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33613, + "src": "20504:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 33633, + "indexExpression": { + "hexValue": "31", + "id": 33632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20515:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20504:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 33634, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "20488:30:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 33636, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33608, + "src": "20533:5:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 33638, + "indexExpression": { + "hexValue": "33", + "id": 33637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20539:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20533:8:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 33639, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33608, + "src": "20543:5:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 33641, + "indexExpression": { + "hexValue": "32", + "id": 33640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20549:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20543:8:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 33642, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33608, + "src": "20553:5:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 33644, + "indexExpression": { + "hexValue": "35", + "id": 33643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20559:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20553:8:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 33645, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33608, + "src": "20563:5:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 33647, + "indexExpression": { + "hexValue": "34", + "id": 33646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20569:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20563:8:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33635, + "name": "compress_g2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33411, + "src": "20521:11:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,uint256) view returns (uint256,uint256)" + } + }, + "id": 33648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20521:51:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "20488:84:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33650, + "nodeType": "ExpressionStatement", + "src": "20488:84:39" + }, + { + "expression": { + "id": 33662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33651, + "name": "compressed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33613, + "src": "20582:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 33653, + "indexExpression": { + "hexValue": "33", + "id": 33652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20593:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20582:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 33655, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33608, + "src": "20610:5:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 33657, + "indexExpression": { + "hexValue": "36", + "id": 33656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20616:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20610:8:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 33658, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33608, + "src": "20620:5:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 33660, + "indexExpression": { + "hexValue": "37", + "id": 33659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20626:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20620:8:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33654, + "name": "compress_g1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33099, + "src": "20598:11:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 33661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20598:31:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20582:47:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33663, + "nodeType": "ExpressionStatement", + "src": "20582:47:39" + } + ] + }, + "documentation": { + "id": 33604, + "nodeType": "StructuredDocumentation", + "src": "19838:473:39", + "text": "Compress a proof.\n @notice Will revert with InvalidProof if the curve points are invalid,\n but does not verify the proof itself.\n @param proof The uncompressed Groth16 proof. Elements are in the same order as for\n verifyProof. I.e. Groth16 points (A, B, C) encoded as in EIP-197.\n @return compressed The compressed proof. Elements are in the same order as for\n verifyCompressedProof. I.e. points (A, B, C) in compressed format." + }, + "functionSelector": "44f63692", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "compressProof", + "nameLocation": "20325:13:39", + "parameters": { + "id": 33609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33608, + "mutability": "mutable", + "name": "proof", + "nameLocation": "20359:5:39", + "nodeType": "VariableDeclaration", + "scope": 33665, + "src": "20339:25:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 33605, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20339:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33607, + "length": { + "hexValue": "38", + "id": 33606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20347:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "nodeType": "ArrayTypeName", + "src": "20339:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + } + }, + "visibility": "internal" + } + ], + "src": "20338:27:39" + }, + "returnParameters": { + "id": 33614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33613, + "mutability": "mutable", + "name": "compressed", + "nameLocation": "20409:10:39", + "nodeType": "VariableDeclaration", + "scope": 33665, + "src": "20391:28:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 33610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20391:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33612, + "length": { + "hexValue": "34", + "id": 33611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20399:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "20391:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "visibility": "internal" + } + ], + "src": "20390:30:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 33898, + "nodeType": "FunctionDefinition", + "src": "21183:2058:39", + "nodes": [], + "body": { + "id": 33897, + "nodeType": "Block", + "src": "21312:1929:39", + "nodes": [], + "statements": [ + { + "assignments": [ + 33678, + 33680 + ], + "declarations": [ + { + "constant": false, + "id": 33678, + "mutability": "mutable", + "name": "Ax", + "nameLocation": "21331:2:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21323:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21323:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33680, + "mutability": "mutable", + "name": "Ay", + "nameLocation": "21343:2:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21335:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33679, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21335:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33686, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 33682, + "name": "compressedProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33670, + "src": "21363:15:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4] calldata" + } + }, + "id": 33684, + "indexExpression": { + "hexValue": "30", + "id": 33683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21379:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21363:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33681, + "name": "decompress_g1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33168, + "src": "21349:13:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256)" + } + }, + "id": 33685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21349:33:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21322:60:39" + }, + { + "assignments": [ + 33688, + 33690, + 33692, + 33694 + ], + "declarations": [ + { + "constant": false, + "id": 33688, + "mutability": "mutable", + "name": "Bx0", + "nameLocation": "21401:3:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21393:11:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21393:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33690, + "mutability": "mutable", + "name": "Bx1", + "nameLocation": "21414:3:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21406:11:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21406:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33692, + "mutability": "mutable", + "name": "By0", + "nameLocation": "21427:3:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21419:11:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21419:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33694, + "mutability": "mutable", + "name": "By1", + "nameLocation": "21440:3:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21432:11:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21432:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33703, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 33696, + "name": "compressedProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33670, + "src": "21478:15:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4] calldata" + } + }, + "id": 33698, + "indexExpression": { + "hexValue": "32", + "id": 33697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21494:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21478:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 33699, + "name": "compressedProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33670, + "src": "21498:15:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4] calldata" + } + }, + "id": 33701, + "indexExpression": { + "hexValue": "31", + "id": 33700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21514:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21498:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33695, + "name": "decompress_g2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33578, + "src": "21447:13:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256,uint256,uint256,uint256)" + } + }, + "id": 33702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21447:70:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21392:125:39" + }, + { + "assignments": [ + 33705, + 33707 + ], + "declarations": [ + { + "constant": false, + "id": 33705, + "mutability": "mutable", + "name": "Cx", + "nameLocation": "21536:2:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21528:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21528:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33707, + "mutability": "mutable", + "name": "Cy", + "nameLocation": "21548:2:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21540:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21540:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33713, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 33709, + "name": "compressedProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33670, + "src": "21568:15:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4] calldata" + } + }, + "id": 33711, + "indexExpression": { + "hexValue": "33", + "id": 33710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21584:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21568:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 33708, + "name": "decompress_g1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33168, + "src": "21554:13:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256)" + } + }, + "id": 33712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21554:33:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21527:60:39" + }, + { + "assignments": [ + 33715, + 33717 + ], + "declarations": [ + { + "constant": false, + "id": 33715, + "mutability": "mutable", + "name": "Lx", + "nameLocation": "21606:2:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21598:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21598:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33717, + "mutability": "mutable", + "name": "Ly", + "nameLocation": "21618:2:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21610:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21610:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33721, + "initialValue": { + "arguments": [ + { + "id": 33719, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33674, + "src": "21639:5:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4] calldata" + } + ], + "id": 33718, + "name": "publicInputMSM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33603, + "src": "21624:14:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$4_calldata_ptr_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256[4] calldata) view returns (uint256,uint256)" + } + }, + "id": 33720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21624:21:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21597:48:39" + }, + { + "assignments": [ + 33727 + ], + "declarations": [ + { + "constant": false, + "id": 33727, + "mutability": "mutable", + "name": "pairings", + "nameLocation": "21881:8:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "21862:27:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24]" + }, + "typeName": { + "baseType": { + "id": 33725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21862:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33726, + "length": { + "hexValue": "3234", + "id": 33724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21870:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "nodeType": "ArrayTypeName", + "src": "21862:11:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_storage_ptr", + "typeString": "uint256[24]" + } + }, + "visibility": "internal" + } + ], + "id": 33728, + "nodeType": "VariableDeclarationStatement", + "src": "21862:27:39" + }, + { + "expression": { + "id": 33733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33729, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "21918:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33731, + "indexExpression": { + "hexValue": "30", + "id": 33730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21928:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "21918:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33732, + "name": "Ax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33678, + "src": "21933:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21918:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33734, + "nodeType": "ExpressionStatement", + "src": "21918:17:39" + }, + { + "expression": { + "id": 33739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33735, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "21945:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33737, + "indexExpression": { + "hexValue": "31", + "id": 33736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21955:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "21945:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33738, + "name": "Ay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33680, + "src": "21960:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21945:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33740, + "nodeType": "ExpressionStatement", + "src": "21945:17:39" + }, + { + "expression": { + "id": 33745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33741, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "21972:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33743, + "indexExpression": { + "hexValue": "32", + "id": 33742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21982:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "21972:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33744, + "name": "Bx1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33690, + "src": "21987:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21972:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33746, + "nodeType": "ExpressionStatement", + "src": "21972:18:39" + }, + { + "expression": { + "id": 33751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33747, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22000:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33749, + "indexExpression": { + "hexValue": "33", + "id": 33748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22010:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22000:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33750, + "name": "Bx0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33688, + "src": "22015:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22000:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33752, + "nodeType": "ExpressionStatement", + "src": "22000:18:39" + }, + { + "expression": { + "id": 33757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33753, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22028:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33755, + "indexExpression": { + "hexValue": "34", + "id": 33754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22038:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22028:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33756, + "name": "By1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33694, + "src": "22043:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22028:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33758, + "nodeType": "ExpressionStatement", + "src": "22028:18:39" + }, + { + "expression": { + "id": 33763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33759, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22056:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33761, + "indexExpression": { + "hexValue": "35", + "id": 33760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22066:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22056:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33762, + "name": "By0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33692, + "src": "22071:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22056:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33764, + "nodeType": "ExpressionStatement", + "src": "22056:18:39" + }, + { + "expression": { + "id": 33769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33765, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22105:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33767, + "indexExpression": { + "hexValue": "36", + "id": 33766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22115:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22105:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33768, + "name": "Cx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33705, + "src": "22120:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22105:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33770, + "nodeType": "ExpressionStatement", + "src": "22105:17:39" + }, + { + "expression": { + "id": 33775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33771, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22132:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33773, + "indexExpression": { + "hexValue": "37", + "id": 33772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22142:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22132:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33774, + "name": "Cy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33707, + "src": "22147:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22132:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33776, + "nodeType": "ExpressionStatement", + "src": "22132:17:39" + }, + { + "expression": { + "id": 33781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33777, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22159:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33779, + "indexExpression": { + "hexValue": "38", + "id": 33778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22169:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22159:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33780, + "name": "DELTA_NEG_X_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32753, + "src": "22174:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22159:28:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33782, + "nodeType": "ExpressionStatement", + "src": "22159:28:39" + }, + { + "expression": { + "id": 33787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33783, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22197:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33785, + "indexExpression": { + "hexValue": "39", + "id": 33784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22207:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22197:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33786, + "name": "DELTA_NEG_X_0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32750, + "src": "22212:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22197:28:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33788, + "nodeType": "ExpressionStatement", + "src": "22197:28:39" + }, + { + "expression": { + "id": 33793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33789, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22235:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33791, + "indexExpression": { + "hexValue": "3130", + "id": 33790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22244:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22235:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33792, + "name": "DELTA_NEG_Y_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32759, + "src": "22250:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22235:28:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33794, + "nodeType": "ExpressionStatement", + "src": "22235:28:39" + }, + { + "expression": { + "id": 33799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33795, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22273:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33797, + "indexExpression": { + "hexValue": "3131", + "id": 33796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22282:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_11_by_1", + "typeString": "int_const 11" + }, + "value": "11" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22273:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33798, + "name": "DELTA_NEG_Y_0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32756, + "src": "22288:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22273:28:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33800, + "nodeType": "ExpressionStatement", + "src": "22273:28:39" + }, + { + "expression": { + "id": 33805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33801, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22333:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33803, + "indexExpression": { + "hexValue": "3132", + "id": 33802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22342:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22333:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33804, + "name": "ALPHA_X", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32720, + "src": "22348:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22333:22:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33806, + "nodeType": "ExpressionStatement", + "src": "22333:22:39" + }, + { + "expression": { + "id": 33811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33807, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22365:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33809, + "indexExpression": { + "hexValue": "3133", + "id": 33808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22374:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_13_by_1", + "typeString": "int_const 13" + }, + "value": "13" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22365:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33810, + "name": "ALPHA_Y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32723, + "src": "22380:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22365:22:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33812, + "nodeType": "ExpressionStatement", + "src": "22365:22:39" + }, + { + "expression": { + "id": 33817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33813, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22397:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33815, + "indexExpression": { + "hexValue": "3134", + "id": 33814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22406:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_14_by_1", + "typeString": "int_const 14" + }, + "value": "14" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22397:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33816, + "name": "BETA_NEG_X_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32729, + "src": "22412:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22397:27:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33818, + "nodeType": "ExpressionStatement", + "src": "22397:27:39" + }, + { + "expression": { + "id": 33823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33819, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22434:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33821, + "indexExpression": { + "hexValue": "3135", + "id": 33820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22443:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "15" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22434:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33822, + "name": "BETA_NEG_X_0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32726, + "src": "22449:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22434:27:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33824, + "nodeType": "ExpressionStatement", + "src": "22434:27:39" + }, + { + "expression": { + "id": 33829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33825, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22471:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33827, + "indexExpression": { + "hexValue": "3136", + "id": 33826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22480:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22471:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33828, + "name": "BETA_NEG_Y_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32735, + "src": "22486:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22471:27:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33830, + "nodeType": "ExpressionStatement", + "src": "22471:27:39" + }, + { + "expression": { + "id": 33835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33831, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22508:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33833, + "indexExpression": { + "hexValue": "3137", + "id": 33832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22517:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_17_by_1", + "typeString": "int_const 17" + }, + "value": "17" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22508:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33834, + "name": "BETA_NEG_Y_0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32732, + "src": "22523:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22508:27:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33836, + "nodeType": "ExpressionStatement", + "src": "22508:27:39" + }, + { + "expression": { + "id": 33841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33837, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22570:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33839, + "indexExpression": { + "hexValue": "3138", + "id": 33838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22579:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22570:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33840, + "name": "Lx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33715, + "src": "22585:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22570:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33842, + "nodeType": "ExpressionStatement", + "src": "22570:17:39" + }, + { + "expression": { + "id": 33847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33843, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22597:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33845, + "indexExpression": { + "hexValue": "3139", + "id": 33844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22606:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_19_by_1", + "typeString": "int_const 19" + }, + "value": "19" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22597:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33846, + "name": "Ly", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33717, + "src": "22612:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22597:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33848, + "nodeType": "ExpressionStatement", + "src": "22597:17:39" + }, + { + "expression": { + "id": 33853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33849, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22624:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33851, + "indexExpression": { + "hexValue": "3230", + "id": 33850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22633:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22624:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33852, + "name": "GAMMA_NEG_X_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32741, + "src": "22639:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22624:28:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33854, + "nodeType": "ExpressionStatement", + "src": "22624:28:39" + }, + { + "expression": { + "id": 33859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33855, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22662:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33857, + "indexExpression": { + "hexValue": "3231", + "id": 33856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22671:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_21_by_1", + "typeString": "int_const 21" + }, + "value": "21" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22662:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33858, + "name": "GAMMA_NEG_X_0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32738, + "src": "22677:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22662:28:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33860, + "nodeType": "ExpressionStatement", + "src": "22662:28:39" + }, + { + "expression": { + "id": 33865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33861, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22700:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33863, + "indexExpression": { + "hexValue": "3232", + "id": 33862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22709:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_22_by_1", + "typeString": "int_const 22" + }, + "value": "22" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22700:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33864, + "name": "GAMMA_NEG_Y_1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32747, + "src": "22715:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22700:28:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33866, + "nodeType": "ExpressionStatement", + "src": "22700:28:39" + }, + { + "expression": { + "id": 33871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 33867, + "name": "pairings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33727, + "src": "22738:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$24_memory_ptr", + "typeString": "uint256[24] memory" + } + }, + "id": 33869, + "indexExpression": { + "hexValue": "3233", + "id": 33868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22747:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_23_by_1", + "typeString": "int_const 23" + }, + "value": "23" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22738:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 33870, + "name": "GAMMA_NEG_Y_0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32744, + "src": "22753:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22738:28:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33872, + "nodeType": "ExpressionStatement", + "src": "22738:28:39" + }, + { + "assignments": [ + 33874 + ], + "declarations": [ + { + "constant": false, + "id": 33874, + "mutability": "mutable", + "name": "success", + "nameLocation": "22817:7:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "22812:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22812:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 33875, + "nodeType": "VariableDeclarationStatement", + "src": "22812:12:39" + }, + { + "assignments": [ + 33881 + ], + "declarations": [ + { + "constant": false, + "id": 33881, + "mutability": "mutable", + "name": "output", + "nameLocation": "22852:6:39", + "nodeType": "VariableDeclaration", + "scope": 33897, + "src": "22834:24:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", + "typeString": "uint256[1]" + }, + "typeName": { + "baseType": { + "id": 33879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22834:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33880, + "length": { + "hexValue": "31", + "id": 33878, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22842:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "22834:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", + "typeString": "uint256[1]" + } + }, + "visibility": "internal" + } + ], + "id": 33882, + "nodeType": "VariableDeclarationStatement", + "src": "22834:24:39" + }, + { + "AST": { + "nativeSrc": "22893:102:39", + "nodeType": "YulBlock", + "src": "22893:102:39", + "statements": [ + { + "nativeSrc": "22907:78:39", + "nodeType": "YulAssignment", + "src": "22907:78:39", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "22929:3:39", + "nodeType": "YulIdentifier", + "src": "22929:3:39" + }, + "nativeSrc": "22929:5:39", + "nodeType": "YulFunctionCall", + "src": "22929:5:39" + }, + { + "name": "PRECOMPILE_VERIFY", + "nativeSrc": "22936:17:39", + "nodeType": "YulIdentifier", + "src": "22936:17:39" + }, + { + "name": "pairings", + "nativeSrc": "22955:8:39", + "nodeType": "YulIdentifier", + "src": "22955:8:39" + }, + { + "kind": "number", + "nativeSrc": "22965:5:39", + "nodeType": "YulLiteral", + "src": "22965:5:39", + "type": "", + "value": "0x300" + }, + { + "name": "output", + "nativeSrc": "22972:6:39", + "nodeType": "YulIdentifier", + "src": "22972:6:39" + }, + { + "kind": "number", + "nativeSrc": "22980:4:39", + "nodeType": "YulLiteral", + "src": "22980:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "22918:10:39", + "nodeType": "YulIdentifier", + "src": "22918:10:39" + }, + "nativeSrc": "22918:67:39", + "nodeType": "YulFunctionCall", + "src": "22918:67:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "22907:7:39", + "nodeType": "YulIdentifier", + "src": "22907:7:39" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 32696, + "isOffset": false, + "isSlot": false, + "src": "22936:17:39", + "valueSize": 1 + }, + { + "declaration": 33881, + "isOffset": false, + "isSlot": false, + "src": "22972:6:39", + "valueSize": 1 + }, + { + "declaration": 33727, + "isOffset": false, + "isSlot": false, + "src": "22955:8:39", + "valueSize": 1 + }, + { + "declaration": 33874, + "isOffset": false, + "isSlot": false, + "src": "22907:7:39", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 33883, + "nodeType": "InlineAssembly", + "src": "22868:127:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 33891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 33885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "23008:8:39", + "subExpression": { + "id": 33884, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33874, + "src": "23009:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 33890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 33886, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33881, + "src": "23020:6:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", + "typeString": "uint256[1] memory" + } + }, + "id": 33888, + "indexExpression": { + "hexValue": "30", + "id": 33887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23027:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23020:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "31", + "id": 33889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23033:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "23020:14:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "23008:26:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33896, + "nodeType": "IfStatement", + "src": "23004:231:39", + "trueBody": { + "id": 33895, + "nodeType": "Block", + "src": "23036:199:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33892, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "23210:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 33893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23210:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33894, + "nodeType": "RevertStatement", + "src": "23203:21:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 33666, + "nodeType": "StructuredDocumentation", + "src": "20642:536:39", + "text": "Verify a Groth16 proof with compressed points.\n @notice Reverts with InvalidProof if the proof is invalid or\n with PublicInputNotInField the public input is not reduced.\n @notice There is no return value. If the function does not revert, the\n proof was succesfully verified.\n @param compressedProof the points (A, B, C) in compressed format\n matching the output of compressProof.\n @param input the public input field elements in the scalar field Fr.\n Elements must be reduced." + }, + "functionSelector": "f2457c8d", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCompressedProof", + "nameLocation": "21192:21:39", + "parameters": { + "id": 33675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33670, + "mutability": "mutable", + "name": "compressedProof", + "nameLocation": "21243:15:39", + "nodeType": "VariableDeclaration", + "scope": 33898, + "src": "21223:35:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 33667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21223:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33669, + "length": { + "hexValue": "34", + "id": 33668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21231:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "21223:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33674, + "mutability": "mutable", + "name": "input", + "nameLocation": "21288:5:39", + "nodeType": "VariableDeclaration", + "scope": 33898, + "src": "21268:25:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 33671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21268:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33673, + "length": { + "hexValue": "34", + "id": 33672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21276:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "21268:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "visibility": "internal" + } + ], + "src": "21213:86:39" + }, + "returnParameters": { + "id": 33676, + "nodeType": "ParameterList", + "parameters": [], + "src": "21312:0:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 33930, + "nodeType": "FunctionDefinition", + "src": "23766:2136:39", + "nodes": [], + "body": { + "id": 33929, + "nodeType": "Block", + "src": "23875:2027:39", + "nodes": [], + "statements": [ + { + "assignments": [ + 33911, + 33913 + ], + "declarations": [ + { + "constant": false, + "id": 33911, + "mutability": "mutable", + "name": "x", + "nameLocation": "23894:1:39", + "nodeType": "VariableDeclaration", + "scope": 33929, + "src": "23886:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23886:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33913, + "mutability": "mutable", + "name": "y", + "nameLocation": "23905:1:39", + "nodeType": "VariableDeclaration", + "scope": 33929, + "src": "23897:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33912, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23897:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 33917, + "initialValue": { + "arguments": [ + { + "id": 33915, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33907, + "src": "23925:5:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4] calldata" + } + ], + "id": 33914, + "name": "publicInputMSM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33603, + "src": "23910:14:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_array$_t_uint256_$4_calldata_ptr_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256[4] calldata) view returns (uint256,uint256)" + } + }, + "id": 33916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23910:21:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23885:46:39" + }, + { + "assignments": [ + 33919 + ], + "declarations": [ + { + "constant": false, + "id": 33919, + "mutability": "mutable", + "name": "success", + "nameLocation": "24132:7:39", + "nodeType": "VariableDeclaration", + "scope": 33929, + "src": "24127:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24127:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 33920, + "nodeType": "VariableDeclarationStatement", + "src": "24127:12:39" + }, + { + "AST": { + "nativeSrc": "24174:1500:39", + "nodeType": "YulBlock", + "src": "24174:1500:39", + "statements": [ + { + "nativeSrc": "24188:20:39", + "nodeType": "YulVariableDeclaration", + "src": "24188:20:39", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24203:4:39", + "nodeType": "YulLiteral", + "src": "24203:4:39", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24197:5:39", + "nodeType": "YulIdentifier", + "src": "24197:5:39" + }, + "nativeSrc": "24197:11:39", + "nodeType": "YulFunctionCall", + "src": "24197:11:39" + }, + "variables": [ + { + "name": "f", + "nativeSrc": "24192:1:39", + "nodeType": "YulTypedName", + "src": "24192:1:39", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "f", + "nativeSrc": "24405:1:39", + "nodeType": "YulIdentifier", + "src": "24405:1:39" + }, + { + "name": "proof", + "nativeSrc": "24408:5:39", + "nodeType": "YulIdentifier", + "src": "24408:5:39" + }, + { + "kind": "number", + "nativeSrc": "24415:5:39", + "nodeType": "YulLiteral", + "src": "24415:5:39", + "type": "", + "value": "0x100" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "24392:12:39", + "nodeType": "YulIdentifier", + "src": "24392:12:39" + }, + "nativeSrc": "24392:29:39", + "nodeType": "YulFunctionCall", + "src": "24392:29:39" + }, + "nativeSrc": "24392:29:39", + "nodeType": "YulExpressionStatement", + "src": "24392:29:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "24712:1:39", + "nodeType": "YulIdentifier", + "src": "24712:1:39" + }, + { + "kind": "number", + "nativeSrc": "24715:5:39", + "nodeType": "YulLiteral", + "src": "24715:5:39", + "type": "", + "value": "0x100" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24708:3:39", + "nodeType": "YulIdentifier", + "src": "24708:3:39" + }, + "nativeSrc": "24708:13:39", + "nodeType": "YulFunctionCall", + "src": "24708:13:39" + }, + { + "name": "DELTA_NEG_X_1", + "nativeSrc": "24723:13:39", + "nodeType": "YulIdentifier", + "src": "24723:13:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24701:6:39", + "nodeType": "YulIdentifier", + "src": "24701:6:39" + }, + "nativeSrc": "24701:36:39", + "nodeType": "YulFunctionCall", + "src": "24701:36:39" + }, + "nativeSrc": "24701:36:39", + "nodeType": "YulExpressionStatement", + "src": "24701:36:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "24761:1:39", + "nodeType": "YulIdentifier", + "src": "24761:1:39" + }, + { + "kind": "number", + "nativeSrc": "24764:5:39", + "nodeType": "YulLiteral", + "src": "24764:5:39", + "type": "", + "value": "0x120" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24757:3:39", + "nodeType": "YulIdentifier", + "src": "24757:3:39" + }, + "nativeSrc": "24757:13:39", + "nodeType": "YulFunctionCall", + "src": "24757:13:39" + }, + { + "name": "DELTA_NEG_X_0", + "nativeSrc": "24772:13:39", + "nodeType": "YulIdentifier", + "src": "24772:13:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24750:6:39", + "nodeType": "YulIdentifier", + "src": "24750:6:39" + }, + "nativeSrc": "24750:36:39", + "nodeType": "YulFunctionCall", + "src": "24750:36:39" + }, + "nativeSrc": "24750:36:39", + "nodeType": "YulExpressionStatement", + "src": "24750:36:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "24810:1:39", + "nodeType": "YulIdentifier", + "src": "24810:1:39" + }, + { + "kind": "number", + "nativeSrc": "24813:5:39", + "nodeType": "YulLiteral", + "src": "24813:5:39", + "type": "", + "value": "0x140" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24806:3:39", + "nodeType": "YulIdentifier", + "src": "24806:3:39" + }, + "nativeSrc": "24806:13:39", + "nodeType": "YulFunctionCall", + "src": "24806:13:39" + }, + { + "name": "DELTA_NEG_Y_1", + "nativeSrc": "24821:13:39", + "nodeType": "YulIdentifier", + "src": "24821:13:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24799:6:39", + "nodeType": "YulIdentifier", + "src": "24799:6:39" + }, + "nativeSrc": "24799:36:39", + "nodeType": "YulFunctionCall", + "src": "24799:36:39" + }, + "nativeSrc": "24799:36:39", + "nodeType": "YulExpressionStatement", + "src": "24799:36:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "24859:1:39", + "nodeType": "YulIdentifier", + "src": "24859:1:39" + }, + { + "kind": "number", + "nativeSrc": "24862:5:39", + "nodeType": "YulLiteral", + "src": "24862:5:39", + "type": "", + "value": "0x160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24855:3:39", + "nodeType": "YulIdentifier", + "src": "24855:3:39" + }, + "nativeSrc": "24855:13:39", + "nodeType": "YulFunctionCall", + "src": "24855:13:39" + }, + { + "name": "DELTA_NEG_Y_0", + "nativeSrc": "24870:13:39", + "nodeType": "YulIdentifier", + "src": "24870:13:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24848:6:39", + "nodeType": "YulIdentifier", + "src": "24848:6:39" + }, + "nativeSrc": "24848:36:39", + "nodeType": "YulFunctionCall", + "src": "24848:36:39" + }, + "nativeSrc": "24848:36:39", + "nodeType": "YulExpressionStatement", + "src": "24848:36:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "24908:1:39", + "nodeType": "YulIdentifier", + "src": "24908:1:39" + }, + { + "kind": "number", + "nativeSrc": "24911:5:39", + "nodeType": "YulLiteral", + "src": "24911:5:39", + "type": "", + "value": "0x180" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24904:3:39", + "nodeType": "YulIdentifier", + "src": "24904:3:39" + }, + "nativeSrc": "24904:13:39", + "nodeType": "YulFunctionCall", + "src": "24904:13:39" + }, + { + "name": "ALPHA_X", + "nativeSrc": "24919:7:39", + "nodeType": "YulIdentifier", + "src": "24919:7:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24897:6:39", + "nodeType": "YulIdentifier", + "src": "24897:6:39" + }, + "nativeSrc": "24897:30:39", + "nodeType": "YulFunctionCall", + "src": "24897:30:39" + }, + "nativeSrc": "24897:30:39", + "nodeType": "YulExpressionStatement", + "src": "24897:30:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "24951:1:39", + "nodeType": "YulIdentifier", + "src": "24951:1:39" + }, + { + "kind": "number", + "nativeSrc": "24954:5:39", + "nodeType": "YulLiteral", + "src": "24954:5:39", + "type": "", + "value": "0x1a0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24947:3:39", + "nodeType": "YulIdentifier", + "src": "24947:3:39" + }, + "nativeSrc": "24947:13:39", + "nodeType": "YulFunctionCall", + "src": "24947:13:39" + }, + { + "name": "ALPHA_Y", + "nativeSrc": "24962:7:39", + "nodeType": "YulIdentifier", + "src": "24962:7:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24940:6:39", + "nodeType": "YulIdentifier", + "src": "24940:6:39" + }, + "nativeSrc": "24940:30:39", + "nodeType": "YulFunctionCall", + "src": "24940:30:39" + }, + "nativeSrc": "24940:30:39", + "nodeType": "YulExpressionStatement", + "src": "24940:30:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "24994:1:39", + "nodeType": "YulIdentifier", + "src": "24994:1:39" + }, + { + "kind": "number", + "nativeSrc": "24997:5:39", + "nodeType": "YulLiteral", + "src": "24997:5:39", + "type": "", + "value": "0x1c0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24990:3:39", + "nodeType": "YulIdentifier", + "src": "24990:3:39" + }, + "nativeSrc": "24990:13:39", + "nodeType": "YulFunctionCall", + "src": "24990:13:39" + }, + { + "name": "BETA_NEG_X_1", + "nativeSrc": "25005:12:39", + "nodeType": "YulIdentifier", + "src": "25005:12:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24983:6:39", + "nodeType": "YulIdentifier", + "src": "24983:6:39" + }, + "nativeSrc": "24983:35:39", + "nodeType": "YulFunctionCall", + "src": "24983:35:39" + }, + "nativeSrc": "24983:35:39", + "nodeType": "YulExpressionStatement", + "src": "24983:35:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "25042:1:39", + "nodeType": "YulIdentifier", + "src": "25042:1:39" + }, + { + "kind": "number", + "nativeSrc": "25045:5:39", + "nodeType": "YulLiteral", + "src": "25045:5:39", + "type": "", + "value": "0x1e0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25038:3:39", + "nodeType": "YulIdentifier", + "src": "25038:3:39" + }, + "nativeSrc": "25038:13:39", + "nodeType": "YulFunctionCall", + "src": "25038:13:39" + }, + { + "name": "BETA_NEG_X_0", + "nativeSrc": "25053:12:39", + "nodeType": "YulIdentifier", + "src": "25053:12:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25031:6:39", + "nodeType": "YulIdentifier", + "src": "25031:6:39" + }, + "nativeSrc": "25031:35:39", + "nodeType": "YulFunctionCall", + "src": "25031:35:39" + }, + "nativeSrc": "25031:35:39", + "nodeType": "YulExpressionStatement", + "src": "25031:35:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "25090:1:39", + "nodeType": "YulIdentifier", + "src": "25090:1:39" + }, + { + "kind": "number", + "nativeSrc": "25093:5:39", + "nodeType": "YulLiteral", + "src": "25093:5:39", + "type": "", + "value": "0x200" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25086:3:39", + "nodeType": "YulIdentifier", + "src": "25086:3:39" + }, + "nativeSrc": "25086:13:39", + "nodeType": "YulFunctionCall", + "src": "25086:13:39" + }, + { + "name": "BETA_NEG_Y_1", + "nativeSrc": "25101:12:39", + "nodeType": "YulIdentifier", + "src": "25101:12:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25079:6:39", + "nodeType": "YulIdentifier", + "src": "25079:6:39" + }, + "nativeSrc": "25079:35:39", + "nodeType": "YulFunctionCall", + "src": "25079:35:39" + }, + "nativeSrc": "25079:35:39", + "nodeType": "YulExpressionStatement", + "src": "25079:35:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "25138:1:39", + "nodeType": "YulIdentifier", + "src": "25138:1:39" + }, + { + "kind": "number", + "nativeSrc": "25141:5:39", + "nodeType": "YulLiteral", + "src": "25141:5:39", + "type": "", + "value": "0x220" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25134:3:39", + "nodeType": "YulIdentifier", + "src": "25134:3:39" + }, + "nativeSrc": "25134:13:39", + "nodeType": "YulFunctionCall", + "src": "25134:13:39" + }, + { + "name": "BETA_NEG_Y_0", + "nativeSrc": "25149:12:39", + "nodeType": "YulIdentifier", + "src": "25149:12:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25127:6:39", + "nodeType": "YulIdentifier", + "src": "25127:6:39" + }, + "nativeSrc": "25127:35:39", + "nodeType": "YulFunctionCall", + "src": "25127:35:39" + }, + "nativeSrc": "25127:35:39", + "nodeType": "YulExpressionStatement", + "src": "25127:35:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "25186:1:39", + "nodeType": "YulIdentifier", + "src": "25186:1:39" + }, + { + "kind": "number", + "nativeSrc": "25189:5:39", + "nodeType": "YulLiteral", + "src": "25189:5:39", + "type": "", + "value": "0x240" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25182:3:39", + "nodeType": "YulIdentifier", + "src": "25182:3:39" + }, + "nativeSrc": "25182:13:39", + "nodeType": "YulFunctionCall", + "src": "25182:13:39" + }, + { + "name": "x", + "nativeSrc": "25197:1:39", + "nodeType": "YulIdentifier", + "src": "25197:1:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25175:6:39", + "nodeType": "YulIdentifier", + "src": "25175:6:39" + }, + "nativeSrc": "25175:24:39", + "nodeType": "YulFunctionCall", + "src": "25175:24:39" + }, + "nativeSrc": "25175:24:39", + "nodeType": "YulExpressionStatement", + "src": "25175:24:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "25223:1:39", + "nodeType": "YulIdentifier", + "src": "25223:1:39" + }, + { + "kind": "number", + "nativeSrc": "25226:5:39", + "nodeType": "YulLiteral", + "src": "25226:5:39", + "type": "", + "value": "0x260" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25219:3:39", + "nodeType": "YulIdentifier", + "src": "25219:3:39" + }, + "nativeSrc": "25219:13:39", + "nodeType": "YulFunctionCall", + "src": "25219:13:39" + }, + { + "name": "y", + "nativeSrc": "25234:1:39", + "nodeType": "YulIdentifier", + "src": "25234:1:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25212:6:39", + "nodeType": "YulIdentifier", + "src": "25212:6:39" + }, + "nativeSrc": "25212:24:39", + "nodeType": "YulFunctionCall", + "src": "25212:24:39" + }, + "nativeSrc": "25212:24:39", + "nodeType": "YulExpressionStatement", + "src": "25212:24:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "25260:1:39", + "nodeType": "YulIdentifier", + "src": "25260:1:39" + }, + { + "kind": "number", + "nativeSrc": "25263:5:39", + "nodeType": "YulLiteral", + "src": "25263:5:39", + "type": "", + "value": "0x280" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25256:3:39", + "nodeType": "YulIdentifier", + "src": "25256:3:39" + }, + "nativeSrc": "25256:13:39", + "nodeType": "YulFunctionCall", + "src": "25256:13:39" + }, + { + "name": "GAMMA_NEG_X_1", + "nativeSrc": "25271:13:39", + "nodeType": "YulIdentifier", + "src": "25271:13:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25249:6:39", + "nodeType": "YulIdentifier", + "src": "25249:6:39" + }, + "nativeSrc": "25249:36:39", + "nodeType": "YulFunctionCall", + "src": "25249:36:39" + }, + "nativeSrc": "25249:36:39", + "nodeType": "YulExpressionStatement", + "src": "25249:36:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "25309:1:39", + "nodeType": "YulIdentifier", + "src": "25309:1:39" + }, + { + "kind": "number", + "nativeSrc": "25312:5:39", + "nodeType": "YulLiteral", + "src": "25312:5:39", + "type": "", + "value": "0x2a0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25305:3:39", + "nodeType": "YulIdentifier", + "src": "25305:3:39" + }, + "nativeSrc": "25305:13:39", + "nodeType": "YulFunctionCall", + "src": "25305:13:39" + }, + { + "name": "GAMMA_NEG_X_0", + "nativeSrc": "25320:13:39", + "nodeType": "YulIdentifier", + "src": "25320:13:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25298:6:39", + "nodeType": "YulIdentifier", + "src": "25298:6:39" + }, + "nativeSrc": "25298:36:39", + "nodeType": "YulFunctionCall", + "src": "25298:36:39" + }, + "nativeSrc": "25298:36:39", + "nodeType": "YulExpressionStatement", + "src": "25298:36:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "25358:1:39", + "nodeType": "YulIdentifier", + "src": "25358:1:39" + }, + { + "kind": "number", + "nativeSrc": "25361:5:39", + "nodeType": "YulLiteral", + "src": "25361:5:39", + "type": "", + "value": "0x2c0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25354:3:39", + "nodeType": "YulIdentifier", + "src": "25354:3:39" + }, + "nativeSrc": "25354:13:39", + "nodeType": "YulFunctionCall", + "src": "25354:13:39" + }, + { + "name": "GAMMA_NEG_Y_1", + "nativeSrc": "25369:13:39", + "nodeType": "YulIdentifier", + "src": "25369:13:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25347:6:39", + "nodeType": "YulIdentifier", + "src": "25347:6:39" + }, + "nativeSrc": "25347:36:39", + "nodeType": "YulFunctionCall", + "src": "25347:36:39" + }, + "nativeSrc": "25347:36:39", + "nodeType": "YulExpressionStatement", + "src": "25347:36:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "f", + "nativeSrc": "25407:1:39", + "nodeType": "YulIdentifier", + "src": "25407:1:39" + }, + { + "kind": "number", + "nativeSrc": "25410:5:39", + "nodeType": "YulLiteral", + "src": "25410:5:39", + "type": "", + "value": "0x2e0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25403:3:39", + "nodeType": "YulIdentifier", + "src": "25403:3:39" + }, + "nativeSrc": "25403:13:39", + "nodeType": "YulFunctionCall", + "src": "25403:13:39" + }, + { + "name": "GAMMA_NEG_Y_0", + "nativeSrc": "25418:13:39", + "nodeType": "YulIdentifier", + "src": "25418:13:39" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25396:6:39", + "nodeType": "YulIdentifier", + "src": "25396:6:39" + }, + "nativeSrc": "25396:36:39", + "nodeType": "YulFunctionCall", + "src": "25396:36:39" + }, + "nativeSrc": "25396:36:39", + "nodeType": "YulExpressionStatement", + "src": "25396:36:39" + }, + { + "nativeSrc": "25485:66:39", + "nodeType": "YulAssignment", + "src": "25485:66:39", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "25507:3:39", + "nodeType": "YulIdentifier", + "src": "25507:3:39" + }, + "nativeSrc": "25507:5:39", + "nodeType": "YulFunctionCall", + "src": "25507:5:39" + }, + { + "name": "PRECOMPILE_VERIFY", + "nativeSrc": "25514:17:39", + "nodeType": "YulIdentifier", + "src": "25514:17:39" + }, + { + "name": "f", + "nativeSrc": "25533:1:39", + "nodeType": "YulIdentifier", + "src": "25533:1:39" + }, + { + "kind": "number", + "nativeSrc": "25536:5:39", + "nodeType": "YulLiteral", + "src": "25536:5:39", + "type": "", + "value": "0x300" + }, + { + "name": "f", + "nativeSrc": "25543:1:39", + "nodeType": "YulIdentifier", + "src": "25543:1:39" + }, + { + "kind": "number", + "nativeSrc": "25546:4:39", + "nodeType": "YulLiteral", + "src": "25546:4:39", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "25496:10:39", + "nodeType": "YulIdentifier", + "src": "25496:10:39" + }, + "nativeSrc": "25496:55:39", + "nodeType": "YulFunctionCall", + "src": "25496:55:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "25485:7:39", + "nodeType": "YulIdentifier", + "src": "25485:7:39" + } + ] + }, + { + "nativeSrc": "25631:33:39", + "nodeType": "YulAssignment", + "src": "25631:33:39", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "25646:7:39", + "nodeType": "YulIdentifier", + "src": "25646:7:39" + }, + { + "arguments": [ + { + "name": "f", + "nativeSrc": "25661:1:39", + "nodeType": "YulIdentifier", + "src": "25661:1:39" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25655:5:39", + "nodeType": "YulIdentifier", + "src": "25655:5:39" + }, + "nativeSrc": "25655:8:39", + "nodeType": "YulFunctionCall", + "src": "25655:8:39" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "25642:3:39", + "nodeType": "YulIdentifier", + "src": "25642:3:39" + }, + "nativeSrc": "25642:22:39", + "nodeType": "YulFunctionCall", + "src": "25642:22:39" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "25631:7:39", + "nodeType": "YulIdentifier", + "src": "25631:7:39" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 32720, + "isOffset": false, + "isSlot": false, + "src": "24919:7:39", + "valueSize": 1 + }, + { + "declaration": 32723, + "isOffset": false, + "isSlot": false, + "src": "24962:7:39", + "valueSize": 1 + }, + { + "declaration": 32726, + "isOffset": false, + "isSlot": false, + "src": "25053:12:39", + "valueSize": 1 + }, + { + "declaration": 32729, + "isOffset": false, + "isSlot": false, + "src": "25005:12:39", + "valueSize": 1 + }, + { + "declaration": 32732, + "isOffset": false, + "isSlot": false, + "src": "25149:12:39", + "valueSize": 1 + }, + { + "declaration": 32735, + "isOffset": false, + "isSlot": false, + "src": "25101:12:39", + "valueSize": 1 + }, + { + "declaration": 32750, + "isOffset": false, + "isSlot": false, + "src": "24772:13:39", + "valueSize": 1 + }, + { + "declaration": 32753, + "isOffset": false, + "isSlot": false, + "src": "24723:13:39", + "valueSize": 1 + }, + { + "declaration": 32756, + "isOffset": false, + "isSlot": false, + "src": "24870:13:39", + "valueSize": 1 + }, + { + "declaration": 32759, + "isOffset": false, + "isSlot": false, + "src": "24821:13:39", + "valueSize": 1 + }, + { + "declaration": 32738, + "isOffset": false, + "isSlot": false, + "src": "25320:13:39", + "valueSize": 1 + }, + { + "declaration": 32741, + "isOffset": false, + "isSlot": false, + "src": "25271:13:39", + "valueSize": 1 + }, + { + "declaration": 32744, + "isOffset": false, + "isSlot": false, + "src": "25418:13:39", + "valueSize": 1 + }, + { + "declaration": 32747, + "isOffset": false, + "isSlot": false, + "src": "25369:13:39", + "valueSize": 1 + }, + { + "declaration": 32696, + "isOffset": false, + "isSlot": false, + "src": "25514:17:39", + "valueSize": 1 + }, + { + "declaration": 33903, + "isOffset": false, + "isSlot": false, + "src": "24408:5:39", + "valueSize": 1 + }, + { + "declaration": 33919, + "isOffset": false, + "isSlot": false, + "src": "25485:7:39", + "valueSize": 1 + }, + { + "declaration": 33919, + "isOffset": false, + "isSlot": false, + "src": "25631:7:39", + "valueSize": 1 + }, + { + "declaration": 33919, + "isOffset": false, + "isSlot": false, + "src": "25646:7:39", + "valueSize": 1 + }, + { + "declaration": 33911, + "isOffset": false, + "isSlot": false, + "src": "25197:1:39", + "valueSize": 1 + }, + { + "declaration": 33913, + "isOffset": false, + "isSlot": false, + "src": "25234:1:39", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 33921, + "nodeType": "InlineAssembly", + "src": "24149:1525:39" + }, + { + "condition": { + "id": 33923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "25687:8:39", + "subExpression": { + "id": 33922, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33919, + "src": "25688:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 33928, + "nodeType": "IfStatement", + "src": "25683:213:39", + "trueBody": { + "id": 33927, + "nodeType": "Block", + "src": "25697:199:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 33924, + "name": "ProofInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32684, + "src": "25871:12:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 33925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25871:14:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33926, + "nodeType": "RevertStatement", + "src": "25864:21:39" + } + ] + } + } + ] + }, + "documentation": { + "id": 33899, + "nodeType": "StructuredDocumentation", + "src": "23247:514:39", + "text": "Verify an uncompressed Groth16 proof.\n @notice Reverts with InvalidProof if the proof is invalid or\n with PublicInputNotInField the public input is not reduced.\n @notice There is no return value. If the function does not revert, the\n proof was succesfully verified.\n @param proof the points (A, B, C) in EIP-197 format matching the output\n of compressProof.\n @param input the public input field elements in the scalar field Fr.\n Elements must be reduced." + }, + "functionSelector": "23572511", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyProof", + "nameLocation": "23775:11:39", + "parameters": { + "id": 33908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 33903, + "mutability": "mutable", + "name": "proof", + "nameLocation": "23816:5:39", + "nodeType": "VariableDeclaration", + "scope": 33930, + "src": "23796:25:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 33900, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23796:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33902, + "length": { + "hexValue": "38", + "id": 33901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23804:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "nodeType": "ArrayTypeName", + "src": "23796:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 33907, + "mutability": "mutable", + "name": "input", + "nameLocation": "23851:5:39", + "nodeType": "VariableDeclaration", + "scope": 33930, + "src": "23831:25:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 33904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23831:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33906, + "length": { + "hexValue": "34", + "id": 33905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23839:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "23831:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "visibility": "internal" + } + ], + "src": "23786:76:39" + }, + "returnParameters": { + "id": 33909, + "nodeType": "ParameterList", + "parameters": [], + "src": "23875:0:39" + }, + "scope": 33931, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "Verifier", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 32678, + "nodeType": "StructuredDocumentation", + "src": "59:324:39", + "text": "@title Groth16 verifier template.\n @author Remco Bloemen\n @notice Supports verifying Groth16 proofs. Proofs can be in uncompressed\n (256 bytes) and compressed (128 bytes) format. A view function is provided\n to compress proofs.\n @notice See for further explanation." + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 33931 + ], + "name": "Verifier", + "nameLocation": "392:8:39", + "scope": 33932, + "usedErrors": [ + 32681, + 32684 + ], + "usedEvents": [] + } + ], + "license": "MIT" + }, + "id": 39 +} \ No newline at end of file diff --git a/sol/SequencerVerifier.json b/sol/SequencerVerifier.json index c1141f77..49d598d5 100644 --- a/sol/SequencerVerifier.json +++ b/sol/SequencerVerifier.json @@ -1,943 +1,739 @@ { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256[2]", - "name": "a", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2][2]", - "name": "b", - "type": "uint256[2][2]" - }, - { - "internalType": "uint256[2]", - "name": "c", - "type": "uint256[2]" - }, - { - "internalType": "uint256[1]", - "name": "input", - "type": "uint256[1]" - } - ], - "name": "verifyProof", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "bytecode": { - "object": "0x608060405234801561001057600080fd5b506102f4806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806343753b4d14610030575b600080fd5b61004361003e3660046101be565b610057565b604051901515815260200160405180910390f35b60006100616100c1565b935061006b6100ee565b855190935061007c9060029061029c565b1580156100b85750815160208601516100b6907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019061029c565b145b95945050505050565b60405180604001604052806002905b6100d86100ee565b8152602001906001900390816100d05790505090565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156101455761014561010c565b60405290565b6040516020810167ffffffffffffffff811182821017156101455761014561010c565b600082601f83011261017f57600080fd5b610187610122565b80604084018581111561019957600080fd5b845b818110156101b357803584526020938401930161019b565b509095945050505050565b6000806000806101208086880312156101d657600080fd5b6101e0878761016e565b9450604087605f8801126101f357600080fd5b6101fb610122565b8060c089018a81111561020d57600080fd5b838a015b81811015610232576102238c8261016e565b84526020909301928401610211565b508197506102408b8261016e565b9650505050508661011f87011261025657600080fd5b61025e61014b565b90860190808883111561027057600080fd5b61010088015b8381101561028e578035835260209283019201610276565b509598949750929550505050565b6000826102b957634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212201e4ef95c1cbbb8e920a7a58b3fb456ece2c2cf65aea725b5346a01ec492ae85d64736f6c63430008130033", - "sourceMap": "305:493:55:-:0;;;;;;;;;;;;;;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c806343753b4d14610030575b600080fd5b61004361003e3660046101be565b610057565b604051901515815260200160405180910390f35b60006100616100c1565b935061006b6100ee565b855190935061007c9060029061029c565b1580156100b85750815160208601516100b6907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019061029c565b145b95945050505050565b60405180604001604052806002905b6100d86100ee565b8152602001906001900390816100d05790505090565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156101455761014561010c565b60405290565b6040516020810167ffffffffffffffff811182821017156101455761014561010c565b600082601f83011261017f57600080fd5b610187610122565b80604084018581111561019957600080fd5b845b818110156101b357803584526020938401930161019b565b509095945050505050565b6000806000806101208086880312156101d657600080fd5b6101e0878761016e565b9450604087605f8801126101f357600080fd5b6101fb610122565b8060c089018a81111561020d57600080fd5b838a015b81811015610232576102238c8261016e565b84526020909301928401610211565b508197506102408b8261016e565b9650505050508661011f87011261025657600080fd5b61025e61014b565b90860190808883111561027057600080fd5b61010088015b8381101561028e578035835260209283019201610276565b509598949750929550505050565b6000826102b957634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212201e4ef95c1cbbb8e920a7a58b3fb456ece2c2cf65aea725b5346a01ec492ae85d64736f6c63430008130033", - "sourceMap": "305:493:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;494:302;;;;;;:::i;:::-;;:::i;:::-;;;2709:14:78;;2702:22;2684:41;;2672:2;2657:18;494:302:55;;;;;;;;676:4;692:8;;:::i;:::-;;;710;;:::i;:::-;735:4;;710:8;;-1:-1:-1;735:8:55;;742:1;;735:8;:::i;:::-;:13;:54;;;;-1:-1:-1;781:8:55;;;752:4;;;:25;;410:77;;752:25;:::i;:::-;:37;735:54;728:61;494:302;-1:-1:-1;;;;;494:302:55:o;-1:-1:-1:-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:127:78:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:251;218:2;212:9;;;248:15;;293:18;278:34;;314:22;;;275:62;272:88;;;340:18;;:::i;:::-;376:2;369:22;146:251;:::o;402:246::-;469:2;463:9;511:2;499:15;;544:18;529:34;;565:22;;;526:62;523:88;;;591:18;;:::i;653:484::-;703:5;756:3;749:4;741:6;737:17;733:27;723:55;;774:1;771;764:12;723:55;798:22;;:::i;:::-;842:3;880:2;872:6;868:15;906:3;898:6;895:15;892:35;;;923:1;920;913:12;892:35;947:6;962:146;978:6;973:3;970:15;962:146;;;1046:17;;1034:30;;1093:4;1084:14;;;;995;962:146;;;-1:-1:-1;1126:5:78;;653:484;-1:-1:-1;;;;;653:484:78:o;1142:1397::-;1343:6;1351;1359;1367;1398:3;1442:2;1430:9;1421:7;1417:23;1413:32;1410:52;;;1458:1;1455;1448:12;1410:52;1481:44;1517:7;1506:9;1481:44;:::i;:::-;1471:54;;1544:2;1589:7;1584:2;1573:9;1569:18;1565:32;1555:60;;1611:1;1608;1601:12;1555:60;1635:22;;:::i;:::-;1679:3;1720;1709:9;1705:19;1747:7;1739:6;1736:19;1733:39;;;1768:1;1765;1758:12;1733:39;1807:2;1796:9;1792:18;1819:165;1835:6;1830:3;1827:15;1819:165;;;1901:38;1931:7;1926:3;1901:38;:::i;:::-;1889:51;;1969:4;1960:14;;;;1852:12;;1819:165;;;1823:3;2003:5;1993:15;;2027:41;2060:7;2052:6;2027:41;:::i;:::-;2017:51;;;;;;2112:7;2106:3;2095:9;2091:19;2087:33;2077:61;;2134:1;2131;2124:12;2077:61;2160:17;;:::i;:::-;2229:18;;;;2199:5;2259:21;;;2256:41;;;2293:1;2290;2283:12;2256:41;2334:3;2323:9;2319:19;2347:162;2365:8;2358:5;2355:19;2347:162;;;2441:19;;2427:34;;2494:4;2483:16;;;;2386;2347:162;;;-1:-1:-1;1142:1397:78;;;;-1:-1:-1;1142:1397:78;;-1:-1:-1;;;;1142:1397:78:o;2868:209::-;2900:1;2926;2916:132;;2970:10;2965:3;2961:20;2958:1;2951:31;3005:4;3002:1;2995:15;3033:4;3030:1;3023:15;2916:132;-1:-1:-1;3062:9:78;;2868:209::o", - "linkReferences": {} - }, - "methodIdentifiers": { - "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[1])": "43753b4d" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"a\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"b\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"c\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[1]\",\"name\":\"input\",\"type\":\"uint256[1]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"kind\":\"dev\",\"methods\":{\"verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[1])\":{\"details\":\"It is highly recommended that the implementation is restricted to `view` if possible.\",\"params\":{\"a\":\"The first G1Point of the proof (ar).\",\"b\":\"The G2Point for the proof (bs).\",\"c\":\"The second G1Point of the proof (kr).\",\"input\":\"The public inputs to the function, reduced such that it is a member of the field `Fr` where `r` is `SNARK_SCALAR_FIELD`.\"},\"returns\":{\"_0\":\"True if the proof verifies successfully, false otherwise.\"}}},\"title\":\"Sequencer Verifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[1])\":{\"notice\":\"Verifies the provided proof data for the provided public inputs.\"}},\"notice\":\"A verifier that matches the success conditions used by the mock prover service in the signup sequencer.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/mock/SequencerVerifier.sol\":\"SequencerVerifier\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x3f980c7fa04a40d3e128a27ac7eb2fba6020a2a81baec4172e3ce809a1189388\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e7cca84723edc4bfffec31b48dcd93bf78b677b80939d97209c57ad8a248f15\",\"dweb:/ipfs/QmSxNKodWF1Fh94b3UmKQS63KE7arLqgdrXyGxVq7gXJHR\"]},\"src/test/mock/SequencerVerifier.sol\":{\"keccak256\":\"0xcdae498d155354b8807d4db538bb09a4bb18d224ef70648052b3c47978e188a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://721c6dbe0a0d8a4f037c92f227fee5da39edd316fa189d623df2ac1b5735e537\",\"dweb:/ipfs/Qmbujh47zQcpfuKuASQthiVFzbx9javXWpozimCL7J75w3\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.19+commit.7dd6d404" + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[8]", + "name": "proof", + "type": "uint256[8]" + }, + { + "internalType": "uint256[1]", + "name": "input", + "type": "uint256[1]" + } + ], + "name": "verifyProof", + "outputs": [], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b5061016c806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631b81f82914610030575b600080fd5b61004361003e3660046100cf565b610045565b005b61005160028335610114565b15801561008b575080356100897f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020850135610114565b145b6100cb5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210283937b7b360991b604482015260640160405180910390fd5b5050565b6000806101208084860312156100e457600080fd5b6101008401858111156100f657600080fd5b84935085828601111561010857600080fd5b80925050509250929050565b60008261013157634e487b7160e01b600052601260045260246000fd5b50069056fea264697066735822122052365dd6994a4a98e85f037d39e5b835d33e286586b1fb45ae2719472036bdad64736f6c63430008150033", + "sourceMap": "305:385:1:-:0;;;;;;;;;;;;;;;;;;;", + "linkReferences": {} }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256[2]", - "name": "a", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2][2]", - "name": "b", - "type": "uint256[2][2]" - }, - { - "internalType": "uint256[2]", - "name": "c", - "type": "uint256[2]" - }, - { - "internalType": "uint256[1]", - "name": "input", - "type": "uint256[1]" + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80631b81f82914610030575b600080fd5b61004361003e3660046100cf565b610045565b005b61005160028335610114565b15801561008b575080356100897f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016020850135610114565b145b6100cb5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210283937b7b360991b604482015260640160405180910390fd5b5050565b6000806101208084860312156100e457600080fd5b6101008401858111156100f657600080fd5b84935085828601111561010857600080fd5b80925050509250929050565b60008261013157634e487b7160e01b600052601260045260246000fd5b50069056fea264697066735822122052365dd6994a4a98e85f037d39e5b835d33e286586b1fb45ae2719472036bdad64736f6c63430008150033", + "sourceMap": "305:385:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;494:194;;;;;;:::i;:::-;;:::i;:::-;;;601:12;612:1;601:8;;:12;:::i;:::-;:17;:62;;;;-1:-1:-1;655:8:1;;622:29;410:77;655:8;622;;;:29;:::i;:::-;:41;601:62;593:88;;;;-1:-1:-1;;;593:88:1;;985:2:2;593:88:1;;;967:21:2;1024:2;1004:18;;;997:30;-1:-1:-1;;;1043:18:2;;;1036:43;1096:18;;593:88:1;;;;;;;;494:194;;:::o;14:418:2:-;132:6;140;171:3;215:2;203:9;194:7;190:23;186:32;183:52;;;231:1;228;221:12;183:52;269:3;258:9;254:19;292:7;288:2;285:15;282:35;;;313:1;310;303:12;282:35;336:9;326:19;;380:7;375:2;364:9;360:18;357:31;354:51;;;401:1;398;391:12;354:51;424:2;414:12;;;;14:418;;;;;:::o;569:209::-;601:1;627;617:132;;671:10;666:3;662:20;659:1;652:31;706:4;703:1;696:15;734:4;731:1;724:15;617:132;-1:-1:-1;763:9:2;;569:209::o", + "linkReferences": {} + }, + "methodIdentifiers": { + "verifyProof(uint256[8],uint256[1])": "1b81f829" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256[1]\",\"name\":\"input\",\"type\":\"uint256[1]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"kind\":\"dev\",\"methods\":{\"verifyProof(uint256[8],uint256[1])\":{\"params\":{\"input\":\"the public input field elements in the scalar field Fr. Elements must be reduced.\",\"proof\":\"the points (A, B, C) in EIP-197 format matching the output of compressProof.\"}}},\"title\":\"Sequencer Verifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verifyProof(uint256[8],uint256[1])\":{\"notice\":\"Verify an uncompressed Groth16 proof.Reverts with InvalidProof if the proof is invalid or with PublicInputNotInField the public input is not reduced.There is no return value. If the function does not revert, the proof was succesfully verified.\"}},\"notice\":\"A verifier that matches the success conditions used by the mock prover service in the signup sequencer.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/mock/SequencerVerifier.sol\":\"SequencerVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/test/mock/SequencerVerifier.sol\":{\"keccak256\":\"0x71e8ade7845e87c5dd546f1e6967f8a6310c5a9c9fab555055be16cc825909b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42f3940b559b390ce9ccb59b5cdba910bee15f3d931df9bb2b6251395bfad7df\",\"dweb:/ipfs/QmdD68CshbDRCzKYtxFveHDdHHKH96sDZJVxGNoEsVJq26\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.21+commit.d9974bed" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[8]", + "name": "proof", + "type": "uint256[8]" + }, + { + "internalType": "uint256[1]", + "name": "input", + "type": "uint256[1]" + } + ], + "stateMutability": "pure", + "type": "function", + "name": "verifyProof" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "verifyProof(uint256[8],uint256[1])": { + "params": { + "input": "the public input field elements in the scalar field Fr. Elements must be reduced.", + "proof": "the points (A, B, C) in EIP-197 format matching the output of compressProof." + } } - ], - "stateMutability": "pure", - "type": "function", - "name": "verifyProof", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "verifyProof(uint256[8],uint256[1])": { + "notice": "Verify an uncompressed Groth16 proof.Reverts with InvalidProof if the proof is invalid or with PublicInputNotInField the public input is not reduced.There is no return value. If the function does not revert, the proof was succesfully verified." } - ] + }, + "version": 1 } - ], - "devdoc": { - "kind": "dev", - "methods": { - "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[1])": { - "details": "It is highly recommended that the implementation is restricted to `view` if possible.", - "params": { - "a": "The first G1Point of the proof (ar).", - "b": "The G2Point for the proof (bs).", - "c": "The second G1Point of the proof (kr).", - "input": "The public inputs to the function, reduced such that it is a member of the field `Fr` where `r` is `SNARK_SCALAR_FIELD`." - }, - "returns": { - "_0": "True if the proof verifies successfully, false otherwise." - } - } - }, - "version": 1 }, - "userdoc": { - "kind": "user", - "methods": { - "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[1])": { - "notice": "Verifies the provided proof data for the provided public inputs." - } + "settings": { + "remappings": [ + "@zk-kit/=lib/zk-kit/packages/", + "contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", + "ds-test/=lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "semaphore/=lib/semaphore/packages/contracts/contracts/", + "solmate/=lib/solmate/src/", + "zk-kit/=lib/zk-kit/" + ], + "optimizer": { + "enabled": true, + "runs": 200 }, - "version": 1 - } - }, - "settings": { - "remappings": [ - ":@zk-kit/=lib/zk-kit/packages/", - ":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", - ":ds-test/=lib/ds-test/src/", - ":forge-std/=lib/forge-std/src/", - ":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", - ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", - ":semaphore/=lib/semaphore/packages/contracts/contracts/", - ":solmate/=lib/solmate/src/", - ":zk-kit/=lib/zk-kit/" - ], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/test/mock/SequencerVerifier.sol": "SequencerVerifier" + }, + "libraries": {} }, - "compilationTarget": { - "src/test/mock/SequencerVerifier.sol": "SequencerVerifier" + "sources": { + "src/interfaces/ITreeVerifier.sol": { + "keccak256": "0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f", + "urls": [ + "bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4", + "dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw" + ], + "license": "MIT" + }, + "src/test/mock/SequencerVerifier.sol": { + "keccak256": "0x71e8ade7845e87c5dd546f1e6967f8a6310c5a9c9fab555055be16cc825909b0", + "urls": [ + "bzz-raw://42f3940b559b390ce9ccb59b5cdba910bee15f3d931df9bb2b6251395bfad7df", + "dweb:/ipfs/QmdD68CshbDRCzKYtxFveHDdHHKH96sDZJVxGNoEsVJq26" + ], + "license": "MIT" + } }, - "libraries": {} + "version": 1 }, - "sources": { - "src/interfaces/ITreeVerifier.sol": { - "keccak256": "0x3f980c7fa04a40d3e128a27ac7eb2fba6020a2a81baec4172e3ce809a1189388", - "urls": [ - "bzz-raw://5e7cca84723edc4bfffec31b48dcd93bf78b677b80939d97209c57ad8a248f15", - "dweb:/ipfs/QmSxNKodWF1Fh94b3UmKQS63KE7arLqgdrXyGxVq7gXJHR" - ], - "license": "MIT" - }, - "src/test/mock/SequencerVerifier.sol": { - "keccak256": "0xcdae498d155354b8807d4db538bb09a4bb18d224ef70648052b3c47978e188a5", - "urls": [ - "bzz-raw://721c6dbe0a0d8a4f037c92f227fee5da39edd316fa189d623df2ac1b5735e537", - "dweb:/ipfs/Qmbujh47zQcpfuKuASQthiVFzbx9javXWpozimCL7J75w3" + "ast": { + "absolutePath": "src/test/mock/SequencerVerifier.sol", + "id": 60, + "exportedSymbols": { + "ITreeVerifier": [ + 15 ], - "license": "MIT" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/test/mock/SequencerVerifier.sol", - "id": 35602, - "exportedSymbols": { - "ITreeVerifier": [ - 26728 - ], - "SequencerVerifier": [ - 35601 - ] - }, - "nodeType": "SourceUnit", - "src": "32:767:55", - "nodes": [ - { - "id": 35543, - "nodeType": "PragmaDirective", - "src": "32:24:55", - "nodes": [], - "literals": [ - "solidity", - "^", - "0.8", - ".19" + "SequencerVerifier": [ + 59 ] }, - { - "id": 35545, - "nodeType": "ImportDirective", - "src": "58:65:55", - "nodes": [], - "absolutePath": "src/interfaces/ITreeVerifier.sol", - "file": "../../interfaces/ITreeVerifier.sol", - "nameLocation": "-1:-1:-1", - "scope": 35602, - "sourceUnit": 26729, - "symbolAliases": [ - { - "foreign": { - "id": 35544, - "name": "ITreeVerifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 26728, - "src": "66:13:55", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35601, - "nodeType": "ContractDefinition", - "src": "305:493:55", - "nodes": [ - { - "id": 35551, - "nodeType": "VariableDeclaration", - "src": "355:132:55", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "SNARK_SCALAR_FIELD", - "nameLocation": "381:18:55", - "scope": 35601, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35549, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "355:7:55", + "nodeType": "SourceUnit", + "src": "32:659:1", + "nodes": [ + { + "id": 17, + "nodeType": "PragmaDirective", + "src": "32:24:1", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".21" + ] + }, + { + "id": 19, + "nodeType": "ImportDirective", + "src": "58:65:1", + "nodes": [], + "absolutePath": "src/interfaces/ITreeVerifier.sol", + "file": "../../interfaces/ITreeVerifier.sol", + "nameLocation": "-1:-1:-1", + "scope": 60, + "sourceUnit": 16, + "symbolAliases": [ + { + "foreign": { + "id": 18, + "name": "ITreeVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "66:13:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 59, + "nodeType": "ContractDefinition", + "src": "305:385:1", + "nodes": [ + { + "id": 25, + "nodeType": "VariableDeclaration", + "src": "355:132:1", + "nodes": [], + "constant": true, + "mutability": "constant", + "name": "SNARK_SCALAR_FIELD", + "nameLocation": "381:18:1", + "scope": 59, + "stateVariable": true, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "value": { - "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137", - "id": 35550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "410:77:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", - "typeString": "int_const 2188...(69 digits omitted)...5617" }, - "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" + "typeName": { + "id": 23, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "355:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137", + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "410:77:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", + "typeString": "int_const 2188...(69 digits omitted)...5617" + }, + "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" + }, + "visibility": "internal" }, - "visibility": "internal" - }, - { - "id": 35600, - "nodeType": "FunctionDefinition", - "src": "494:302:55", - "nodes": [], - "body": { - "id": 35599, - "nodeType": "Block", - "src": "682:114:55", + { + "id": 58, + "nodeType": "FunctionDefinition", + "src": "494:194:1", "nodes": [], - "statements": [ - { - "expression": { - "id": 35576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "692:8:55", - "subExpression": { - "id": 35575, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35561, - "src": "699:1:55", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", - "typeString": "uint256[2] memory[2] memory" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35577, - "nodeType": "ExpressionStatement", - "src": "692:8:55" - }, - { - "expression": { - "id": 35579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "710:8:55", - "subExpression": { - "id": 35578, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35565, - "src": "717:1:55", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35580, - "nodeType": "ExpressionStatement", - "src": "710:8:55" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 35597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 35581, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35555, - "src": "735:1:55", + "body": { + "id": 57, + "nodeType": "Block", + "src": "583:105:1", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 37, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "601:5:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 39, + "indexExpression": { + "hexValue": "30", + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "607:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "601:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "32", + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "612:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "617:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "601:17:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 35583, - "indexExpression": { - "hexValue": "30", - "id": 35582, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 52, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "737:1:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 44, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "622:5:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 46, + "indexExpression": { + "hexValue": "31", + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "628:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "622:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 47, + "name": "SNARK_SCALAR_FIELD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "633:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "622:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "0" + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "baseExpression": { + "id": 49, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33, + "src": "655:5:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_calldata_ptr", + "typeString": "uint256[1] calldata" + } + }, + "id": 51, + "indexExpression": { + "hexValue": "30", + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "661:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "655:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "622:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "735:4:55", + "src": "601:62:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "hexValue": "32", - "id": 35584, + { + "hexValue": "496e76616c69642050726f6f66", + "id": 54, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "742:1:55", + "src": "665:15:1", "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" + "typeIdentifier": "t_stringliteral_d95d531e7ef85c3e7467db7c164ce0d8b7b23d0a5a166a2fc91faa2aab5ab486", + "typeString": "literal_string \"Invalid Proof\"" }, - "value": "2" - }, - "src": "735:8:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "value": "Invalid Proof" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 35586, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "747:1:55", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d95d531e7ef85c3e7467db7c164ce0d8b7b23d0a5a166a2fc91faa2aab5ab486", + "typeString": "literal_string \"Invalid Proof\"" + } + ], + "id": 36, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "593:7:1", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "735:13:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } }, - "id": 35596, + "id": 55, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 35588, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35555, - "src": "752:1:55", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2] memory" - } - }, - "id": 35590, - "indexExpression": { - "hexValue": "31", - "id": 35589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "754:1:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "752:4:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "id": 35591, - "name": "SNARK_SCALAR_FIELD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35551, - "src": "759:18:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "752:25:55", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "593:88:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 56, + "nodeType": "ExpressionStatement", + "src": "593:88:1" + } + ] + }, + "baseFunctions": [ + 14 + ], + "functionSelector": "1b81f829", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyProof", + "nameLocation": "503:11:1", + "parameters": { + "id": 34, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "proof", + "nameLocation": "535:5:1", + "nodeType": "VariableDeclaration", + "scope": 58, + "src": "515:25:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 26, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "515:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "baseExpression": { - "id": 35593, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35569, - "src": "781:5:55", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1] memory" - } - }, - "id": 35595, - "indexExpression": { - "hexValue": "30", - "id": 35594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "787:1:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, + "id": 28, + "length": { + "hexValue": "38", + "id": 27, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "781:8:55", + "nodeType": "Literal", + "src": "523:1:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" }, - "src": "752:37:55", + "nodeType": "ArrayTypeName", + "src": "515:10:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" } }, - "src": "735:54:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "visibility": "internal" }, - "functionReturnParameters": 35574, - "id": 35598, - "nodeType": "Return", - "src": "728:61:55" - } - ] - }, - "baseFunctions": [ - 26727 - ], - "functionSelector": "43753b4d", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifyProof", - "nameLocation": "503:11:55", - "overrides": { - "id": 35571, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "658:8:55" - }, - "parameters": { - "id": 35570, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35555, - "mutability": "mutable", - "name": "a", - "nameLocation": "542:1:55", - "nodeType": "VariableDeclaration", - "scope": 35600, - "src": "524:19:55", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 35552, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "524:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 35554, - "length": { - "hexValue": "32", - "id": 35553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "532:1:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "524:10:55", + { + "constant": false, + "id": 33, + "mutability": "mutable", + "name": "input", + "nameLocation": "562:5:1", + "nodeType": "VariableDeclaration", + "scope": 58, + "src": "542:25:1", + "stateVariable": false, + "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35561, - "mutability": "mutable", - "name": "b", - "nameLocation": "574:1:55", - "nodeType": "VariableDeclaration", - "scope": 35600, - "src": "553:22:55", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", - "typeString": "uint256[2][2]" - }, - "typeName": { - "baseType": { + "typeIdentifier": "t_array$_t_uint256_$1_calldata_ptr", + "typeString": "uint256[1]" + }, + "typeName": { "baseType": { - "id": 35556, + "id": 30, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "553:7:55", + "src": "542:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 35558, + "id": 32, "length": { - "hexValue": "32", - "id": 35557, + "hexValue": "31", + "id": 31, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "561:1:55", + "src": "550:1:1", "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "2" + "value": "1" }, "nodeType": "ArrayTypeName", - "src": "553:10:55", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "id": 35560, - "length": { - "hexValue": "32", - "id": 35559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "564:1:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "553:13:55", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", - "typeString": "uint256[2][2]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35565, - "mutability": "mutable", - "name": "c", - "nameLocation": "603:1:55", - "nodeType": "VariableDeclaration", - "scope": 35600, - "src": "585:19:55", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", - "typeString": "uint256[2]" - }, - "typeName": { - "baseType": { - "id": 35562, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "585:7:55", + "src": "542:10:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", + "typeString": "uint256[1]" } }, - "id": 35564, - "length": { - "hexValue": "32", - "id": 35563, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "593:1:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "585:10:55", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35569, - "mutability": "mutable", - "name": "input", - "nameLocation": "632:5:55", - "nodeType": "VariableDeclaration", - "scope": 35600, - "src": "614:23:55", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_memory_ptr", - "typeString": "uint256[1]" - }, - "typeName": { - "baseType": { - "id": 35566, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "614:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 35568, - "length": { - "hexValue": "31", - "id": 35567, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "622:1:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "614:10:55", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", - "typeString": "uint256[1]" - } - }, - "visibility": "internal" - } - ], - "src": "514:129:55" - }, - "returnParameters": { - "id": 35574, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35573, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 35600, - "src": "676:4:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 35572, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "676:4:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "675:6:55" - }, - "scope": 35601, - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 35547, - "name": "ITreeVerifier", - "nameLocations": [ - "335:13:55" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 26728, - "src": "335:13:55" - }, - "id": 35548, - "nodeType": "InheritanceSpecifier", - "src": "335:13:55" - } - ], - "canonicalName": "SequencerVerifier", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 35546, - "nodeType": "StructuredDocumentation", - "src": "125:180:55", - "text": "@title Sequencer Verifier\n @author Worldcoin\n @notice A verifier that matches the success conditions used by the mock prover service in the\n signup sequencer." - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 35601, - 26728 - ], - "name": "SequencerVerifier", - "nameLocation": "314:17:55", - "scope": 35602, - "usedErrors": [] - } - ], - "license": "MIT" - }, - "id": 55 -} \ No newline at end of file + "visibility": "internal" + } + ], + "src": "514:54:1" + }, + "returnParameters": { + "id": 35, + "nodeType": "ParameterList", + "parameters": [], + "src": "583:0:1" + }, + "scope": 59, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 21, + "name": "ITreeVerifier", + "nameLocations": [ + "335:13:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 15, + "src": "335:13:1" + }, + "id": 22, + "nodeType": "InheritanceSpecifier", + "src": "335:13:1" + } + ], + "canonicalName": "SequencerVerifier", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 20, + "nodeType": "StructuredDocumentation", + "src": "125:180:1", + "text": "@title Sequencer Verifier\n @author Worldcoin\n @notice A verifier that matches the success conditions used by the mock prover service in the\n signup sequencer." + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 59, + 15 + ], + "name": "SequencerVerifier", + "nameLocation": "314:17:1", + "scope": 60, + "usedErrors": [], + "usedEvents": [] + } + ], + "license": "MIT" + }, + "id": 1 + } diff --git a/sol/WorldIDIdentityManagerImplV1.json b/sol/WorldIDIdentityManagerImplV1.json index 0705831a..775045c9 100644 --- a/sol/WorldIDIdentityManagerImplV1.json +++ b/sol/WorldIDIdentityManagerImplV1.json @@ -788,13 +788,13 @@ } ], "bytecode": { - "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161299f62000200600039600081816104ad015281816104f6015281816105fb0152818161063b015281816109060152818161094601528181610a2201528181610a6201528181610b6c01528181610bac01528181610e9301528181610ed30152818161102901528181611069015281816110f501528181611135015281816111b1015281816112fb0152818161133b015281816113fe0152818161143e015281816114d501528181611515015281816115ab015281816115eb015281816116cb0152818161170b0152818161182201528181611862015281816118ef0152818161192f015281816119c501528181611a0501528181611a9901528181611ad901528181611cbf0152611cff015261299f6000f3fe6080604052600436106101665760003560e01c806379ba5097116100d1578063c70aa7271161008a578063f134b6ca11610064578063f134b6ca14610439578063f2038f951461044e578063f2358e1d14610463578063f2fde38b1461048357600080fd5b8063c70aa727146103e6578063d7b0fef114610406578063e30c39781461041b57600080fd5b806379ba5097146103235780638c76a909146103385780638da5cb5b146103585780638e5cdd501461038a5780638fc22e9f146103b1578063a7bba582146103c657600080fd5b80633f7c178d116101235780633f7c178d1461022d57806343f974cb1461027f5780634f1ef286146102a257806352d1902d146102b5578063561f204b146102ca578063715018a61461030e57600080fd5b80630e3a12f31461016b5780632217b2111461018d5780632f059fca146101ad578063354ca120146101cd5780633659cfe6146101ed57806338c870651461020d575b600080fd5b34801561017757600080fd5b5061018b6101863660046122bc565b6104a3565b005b34801561019957600080fd5b5061018b6101a836600461234b565b6105f1565b3480156101b957600080fd5b5061018b6101c83660046122bc565b6108fc565b3480156101d957600080fd5b5061018b6101e83660046123c8565b610a18565b3480156101f957600080fd5b5061018b6102083660046122bc565b610b62565b34801561021957600080fd5b5061018b610228366004612413565b610c2a565b34801561023957600080fd5b5061024d610248366004612481565b610e6c565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b34801561028b57600080fd5b5061029461101d565b604051908152602001610276565b61018b6102b03660046124dd565b6110eb565b3480156102c157600080fd5b506102946111a4565b3480156102d657600080fd5b50604080516060808201835260008083526020808401829052928401819052835191820184528082529181018290529182015261024d565b34801561031a57600080fd5b5061018b611257565b34801561032f57600080fd5b5061018b611278565b34801561034457600080fd5b50610294610353366004612589565b6112ef565b34801561036457600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561039657600080fd5b5061039f6113f2565b60405160ff9091168152602001610276565b3480156103bd57600080fd5b506103726114c9565b3480156103d257600080fd5b506103726103e13660046122bc565b61159f565b3480156103f257600080fd5b5061018b610401366004612481565b6116c1565b34801561041257600080fd5b50610294611816565b34801561042757600080fd5b506065546001600160a01b0316610372565b34801561044557600080fd5b506103726118e3565b34801561045a57600080fd5b506103726119b9565b34801561046f57600080fd5b5061018b61047e366004612481565b611a8f565b34801561048f57600080fd5b5061018b61049e3660046122bc565b611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104f45760405162461bcd60e51b81526004016104eb906125f1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610526611c3d565b6001600160a01b03161461054c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661056f57604051630103019560e11b815260040160405180910390fd5b610577611c59565b6001600160a01b03811661059e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066b611c3d565b6001600160a01b0316146106915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166106b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146106e25760405163472511eb60e11b81523360048201526024016104eb565b61012e5485146107145761012e5460405163542fced960e11b81526104eb918791600401918252602082015260400190565b600061072385878487876112ef565b905060006107517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612689565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c591906126ab565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610801918d91906004016126c8565b600060405180830381600087803b15801561081b57600080fd5b505af192505050801561082c575060015b61088c57610838612703565b806308c379a003610871575061084c61271e565b806108575750610873565b8060405162461bcd60e51b81526004016104eb91906127cc565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546fffffffffffffffffffffffffffffffff1916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109445760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610976611c3d565b6001600160a01b03161461099c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166109bf57604051630103019560e11b815260040160405180910390fd5b6109c7611c59565b6001600160a01b0381166109ee57604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016105c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a92611c3d565b6001600160a01b031614610ab85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610adb57604051630103019560e11b815260040160405180910390fd5b610ae485611a8f565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610b36918591906004016127ff565b60006040518083038186803b158015610b4e57600080fd5b505afa1580156108f1573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610baa5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611c3d565b6001600160a01b031614610c025760405162461bcd60e51b81526004016104eb9061263d565b610c0b81611cb5565b60408051600080825260208201909252610c2791839190611d5d565b50565b600054600190610100900460ff16158015610c4c575060005460ff8083169116105b610caf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104eb565b6000805461ffff191660ff8316176101001790556001600160a01b038416610cea57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610d1157604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610d385760405163baa3de5f60e01b815260040160405180910390fd5b610d40611ecd565b610d4986611efc565b610d6b57604051630220cee360e61b815260ff871660048201526024016104eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055610de7611f23565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ed15760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f03611c3d565b6001600160a01b031614610f295760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610f4c57604051630103019560e11b815260040160405180910390fd5b61012e548203610f7b5750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b031690819003610fd65760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b61013054600090610ff06001600160801b03841642612830565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110675760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611099611c3d565b6001600160a01b0316146110bf5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166110e257604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111335760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611165611c3d565b6001600160a01b03161461118b5760405162461bcd60e51b81526004016104eb9061263d565b61119482611cb5565b6111a082826001611d5d565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104eb565b5060008051602061292383398151915290565b61125f611c59565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146112e65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104eb565b610c2781611f59565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661136b611c3d565b6001600160a01b0316146113915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166113b457604051630103019560e11b815260040160405180910390fd5b600086868686866040516020016113cf959493929190612851565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361143c5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661146e611c3d565b6001600160a01b0316146114945760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166114b757604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115135760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611545611c3d565b6001600160a01b03161461156b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661158e57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115e95760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661161b611c3d565b6001600160a01b0316146116415760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661166457604051630103019560e11b815260040160405180910390fd5b61166c611c59565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117095760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661173b611c3d565b6001600160a01b0316146117615760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661178457604051630103019560e11b815260040160405180910390fd5b61178c611c59565b806000036117dc5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016104eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611892611c3d565b6001600160a01b0316146118b85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166118db57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361192d5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661195f611c3d565b6001600160a01b0316146119855760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166119a857604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a035760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a35611c3d565b6001600160a01b031614611a5b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611a7e57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ad75760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b09611c3d565b6001600160a01b031614611b2f5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611b5257604051630103019560e11b815260040160405180910390fd5b61012e548114610c2757600081815261012f60205260408120546001600160801b031690819003611b965760405163ddae3b7160e01b815260040160405180910390fd5b61013054611bad6001600160801b03831642612830565b11156111a057604051631d739acf60e11b815260040160405180910390fd5b611bd4611c59565b606580546001600160a01b0383166001600160a01b03199091168117909155611c056033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612923833981519152546001600160a01b031690565b6033546001600160a01b03163314611cb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104eb565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cfd5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d2f611c3d565b6001600160a01b031614611d555760405162461bcd60e51b81526004016104eb9061263d565b610c27611c59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d9557611d9083611f72565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611def575060408051601f3d908101601f19168201909252611dec918101906128a2565b60015b611e525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104eb565b6000805160206129238339815191528114611ec15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104eb565b50611d9083838361200e565b600054610100900460ff16611ef45760405162461bcd60e51b81526004016104eb906128bb565b611cb3612039565b60006010602060ff84168211801590611f1b57508060ff168460ff1611155b949350505050565b600054610100900460ff16611f4a5760405162461bcd60e51b81526004016104eb906128bb565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610c2781612070565b6001600160a01b0381163b611fdf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104eb565b60008051602061292383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612017836120c2565b6000825111806120245750805b15611d90576120338383612102565b50505050565b600054610100900460ff166120605760405162461bcd60e51b81526004016104eb906128bb565b6120686121f8565b611cb3612227565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120cb81611f72565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61216a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104eb565b600080846001600160a01b0316846040516121859190612906565b600060405180830381855af49150503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121ed82826040518060600160405280602781526020016129436027913961224e565b925050505b92915050565b600054610100900460ff1661221f5760405162461bcd60e51b81526004016104eb906128bb565b611cb3612267565b600054610100900460ff16611cb35760405162461bcd60e51b81526004016104eb906128bb565b6060831561225d575081610fcf565b610fcf8383612297565b600054610100900460ff1661228e5760405162461bcd60e51b81526004016104eb906128bb565b611cb333611f59565b8151156108575781518083602001fd5b6001600160a01b0381168114610c2757600080fd5b6000602082840312156122ce57600080fd5b8135610fcf816122a7565b8061010081018310156121f257600080fd5b803563ffffffff8116811461101857600080fd5b60008083601f84011261231157600080fd5b50813567ffffffffffffffff81111561232957600080fd5b6020830191508360208260051b850101111561234457600080fd5b9250929050565b600080600080600080610180878903121561236557600080fd5b61236f88886122d9565b9550610100870135945061238661012088016122eb565b935061014087013567ffffffffffffffff8111156123a357600080fd5b6123af89828a016122ff565b979a969950949794969561016090950135949350505050565b600080600080600061018086880312156123e157600080fd5b8535945060208601359350604086013592506060860135915061240787608088016122d9565b90509295509295909350565b600080600080600060a0868803121561242b57600080fd5b853560ff8116811461243c57600080fd5b9450602086013593506040860135612453816122a7565b92506060860135612463816122a7565b91506080860135612473816122a7565b809150509295509295909350565b60006020828403121561249357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156124d6576124d661249a565b6040525050565b600080604083850312156124f057600080fd5b82356124fb816122a7565b915060208381013567ffffffffffffffff8082111561251957600080fd5b818601915086601f83011261252d57600080fd5b81358181111561253f5761253f61249a565b6040519150612557601f8201601f19168501836124b0565b808252878482850101111561256b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806000608086880312156125a157600080fd5b6125aa866122eb565b94506020860135935060408601359250606086013567ffffffffffffffff8111156125d457600080fd5b6125e0888289016122ff565b969995985093965092949392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826126a657634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156126bd57600080fd5b8151610fcf816122a7565b61012081016101008085843782018360005b60018110156126f95781518352602092830192909101906001016126da565b5050509392505050565b600060033d11156110e85760046000803e5060005160e01c90565b600060443d101561272c5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561275c57505050505090565b82850191508151818111156127745750505050505090565b843d870101602082850101111561278e5750505050505090565b61279d602082860101876124b0565b509095945050505050565b60005b838110156127c35781810151838201526020016127ab565b50506000910152565b60208152600082518060208401526127eb8160408501602087016127a8565b601f01601f19169190910160400192915050565b61018081016101008085843782018360005b60048110156126f9578151835260209283019290910190600101612811565b818103818111156121f257634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561288657600080fd5b8260051b80856044850137919091016044019695505050505050565b6000602082840312156128b457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516129188184602087016127a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220773b014bcc7e739553d343f4e60ab5a377632dc6ff4f71e3d2a07d476a370d0b64736f6c63430008150033", - "sourceMap": "879:31345:43:-:0;;;1332:4:23;1289:48;;13484:281:43;;;;;;;;;-1:-1:-1;13736:22:43;:20;:22::i;:::-;879:31345;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:77;5987:66:22;;;198:21:77;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:77;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:77;;;6162:28:22;;552:2:77;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:77:-;879:31345:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161299f62000200600039600081816104ad015281816104f6015281816105fb0152818161063b015281816109060152818161094601528181610a2201528181610a6201528181610b6c01528181610bac01528181610e9301528181610ed30152818161102901528181611069015281816110f501528181611135015281816111b1015281816112fb0152818161133b015281816113fe0152818161143e015281816114d501528181611515015281816115ab015281816115eb015281816116cb0152818161170b0152818161182201528181611862015281816118ef0152818161192f015281816119c501528181611a0501528181611a9901528181611ad901528181611cbf0152611cff015261299f6000f3fe6080604052600436106101665760003560e01c806379ba5097116100d1578063c70aa7271161008a578063f134b6ca11610064578063f134b6ca14610439578063f2038f951461044e578063f2358e1d14610463578063f2fde38b1461048357600080fd5b8063c70aa727146103e6578063d7b0fef114610406578063e30c39781461041b57600080fd5b806379ba5097146103235780638c76a909146103385780638da5cb5b146103585780638e5cdd501461038a5780638fc22e9f146103b1578063a7bba582146103c657600080fd5b80633f7c178d116101235780633f7c178d1461022d57806343f974cb1461027f5780634f1ef286146102a257806352d1902d146102b5578063561f204b146102ca578063715018a61461030e57600080fd5b80630e3a12f31461016b5780632217b2111461018d5780632f059fca146101ad578063354ca120146101cd5780633659cfe6146101ed57806338c870651461020d575b600080fd5b34801561017757600080fd5b5061018b6101863660046122bc565b6104a3565b005b34801561019957600080fd5b5061018b6101a836600461234b565b6105f1565b3480156101b957600080fd5b5061018b6101c83660046122bc565b6108fc565b3480156101d957600080fd5b5061018b6101e83660046123c8565b610a18565b3480156101f957600080fd5b5061018b6102083660046122bc565b610b62565b34801561021957600080fd5b5061018b610228366004612413565b610c2a565b34801561023957600080fd5b5061024d610248366004612481565b610e6c565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b34801561028b57600080fd5b5061029461101d565b604051908152602001610276565b61018b6102b03660046124dd565b6110eb565b3480156102c157600080fd5b506102946111a4565b3480156102d657600080fd5b50604080516060808201835260008083526020808401829052928401819052835191820184528082529181018290529182015261024d565b34801561031a57600080fd5b5061018b611257565b34801561032f57600080fd5b5061018b611278565b34801561034457600080fd5b50610294610353366004612589565b6112ef565b34801561036457600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561039657600080fd5b5061039f6113f2565b60405160ff9091168152602001610276565b3480156103bd57600080fd5b506103726114c9565b3480156103d257600080fd5b506103726103e13660046122bc565b61159f565b3480156103f257600080fd5b5061018b610401366004612481565b6116c1565b34801561041257600080fd5b50610294611816565b34801561042757600080fd5b506065546001600160a01b0316610372565b34801561044557600080fd5b506103726118e3565b34801561045a57600080fd5b506103726119b9565b34801561046f57600080fd5b5061018b61047e366004612481565b611a8f565b34801561048f57600080fd5b5061018b61049e3660046122bc565b611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104f45760405162461bcd60e51b81526004016104eb906125f1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610526611c3d565b6001600160a01b03161461054c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661056f57604051630103019560e11b815260040160405180910390fd5b610577611c59565b6001600160a01b03811661059e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066b611c3d565b6001600160a01b0316146106915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166106b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146106e25760405163472511eb60e11b81523360048201526024016104eb565b61012e5485146107145761012e5460405163542fced960e11b81526104eb918791600401918252602082015260400190565b600061072385878487876112ef565b905060006107517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612689565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c591906126ab565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610801918d91906004016126c8565b600060405180830381600087803b15801561081b57600080fd5b505af192505050801561082c575060015b61088c57610838612703565b806308c379a003610871575061084c61271e565b806108575750610873565b8060405162461bcd60e51b81526004016104eb91906127cc565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546fffffffffffffffffffffffffffffffff1916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109445760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610976611c3d565b6001600160a01b03161461099c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166109bf57604051630103019560e11b815260040160405180910390fd5b6109c7611c59565b6001600160a01b0381166109ee57604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016105c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a92611c3d565b6001600160a01b031614610ab85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610adb57604051630103019560e11b815260040160405180910390fd5b610ae485611a8f565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610b36918591906004016127ff565b60006040518083038186803b158015610b4e57600080fd5b505afa1580156108f1573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610baa5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611c3d565b6001600160a01b031614610c025760405162461bcd60e51b81526004016104eb9061263d565b610c0b81611cb5565b60408051600080825260208201909252610c2791839190611d5d565b50565b600054600190610100900460ff16158015610c4c575060005460ff8083169116105b610caf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104eb565b6000805461ffff191660ff8316176101001790556001600160a01b038416610cea57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610d1157604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610d385760405163baa3de5f60e01b815260040160405180910390fd5b610d40611ecd565b610d4986611efc565b610d6b57604051630220cee360e61b815260ff871660048201526024016104eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055610de7611f23565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ed15760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f03611c3d565b6001600160a01b031614610f295760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610f4c57604051630103019560e11b815260040160405180910390fd5b61012e548203610f7b5750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b031690819003610fd65760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b61013054600090610ff06001600160801b03841642612830565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110675760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611099611c3d565b6001600160a01b0316146110bf5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166110e257604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111335760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611165611c3d565b6001600160a01b03161461118b5760405162461bcd60e51b81526004016104eb9061263d565b61119482611cb5565b6111a082826001611d5d565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104eb565b5060008051602061292383398151915290565b61125f611c59565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146112e65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104eb565b610c2781611f59565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661136b611c3d565b6001600160a01b0316146113915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166113b457604051630103019560e11b815260040160405180910390fd5b600086868686866040516020016113cf959493929190612851565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361143c5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661146e611c3d565b6001600160a01b0316146114945760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166114b757604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115135760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611545611c3d565b6001600160a01b03161461156b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661158e57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115e95760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661161b611c3d565b6001600160a01b0316146116415760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661166457604051630103019560e11b815260040160405180910390fd5b61166c611c59565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117095760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661173b611c3d565b6001600160a01b0316146117615760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661178457604051630103019560e11b815260040160405180910390fd5b61178c611c59565b806000036117dc5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016104eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611892611c3d565b6001600160a01b0316146118b85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166118db57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361192d5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661195f611c3d565b6001600160a01b0316146119855760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166119a857604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a035760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a35611c3d565b6001600160a01b031614611a5b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611a7e57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ad75760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b09611c3d565b6001600160a01b031614611b2f5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611b5257604051630103019560e11b815260040160405180910390fd5b61012e548114610c2757600081815261012f60205260408120546001600160801b031690819003611b965760405163ddae3b7160e01b815260040160405180910390fd5b61013054611bad6001600160801b03831642612830565b11156111a057604051631d739acf60e11b815260040160405180910390fd5b611bd4611c59565b606580546001600160a01b0383166001600160a01b03199091168117909155611c056033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612923833981519152546001600160a01b031690565b6033546001600160a01b03163314611cb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104eb565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cfd5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d2f611c3d565b6001600160a01b031614611d555760405162461bcd60e51b81526004016104eb9061263d565b610c27611c59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d9557611d9083611f72565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611def575060408051601f3d908101601f19168201909252611dec918101906128a2565b60015b611e525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104eb565b6000805160206129238339815191528114611ec15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104eb565b50611d9083838361200e565b600054610100900460ff16611ef45760405162461bcd60e51b81526004016104eb906128bb565b611cb3612039565b60006010602060ff84168211801590611f1b57508060ff168460ff1611155b949350505050565b600054610100900460ff16611f4a5760405162461bcd60e51b81526004016104eb906128bb565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610c2781612070565b6001600160a01b0381163b611fdf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104eb565b60008051602061292383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612017836120c2565b6000825111806120245750805b15611d90576120338383612102565b50505050565b600054610100900460ff166120605760405162461bcd60e51b81526004016104eb906128bb565b6120686121f8565b611cb3612227565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120cb81611f72565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61216a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104eb565b600080846001600160a01b0316846040516121859190612906565b600060405180830381855af49150503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121ed82826040518060600160405280602781526020016129436027913961224e565b925050505b92915050565b600054610100900460ff1661221f5760405162461bcd60e51b81526004016104eb906128bb565b611cb3612267565b600054610100900460ff16611cb35760405162461bcd60e51b81526004016104eb906128bb565b6060831561225d575081610fcf565b610fcf8383612297565b600054610100900460ff1661228e5760405162461bcd60e51b81526004016104eb906128bb565b611cb333611f59565b8151156108575781518083602001fd5b6001600160a01b0381168114610c2757600080fd5b6000602082840312156122ce57600080fd5b8135610fcf816122a7565b8061010081018310156121f257600080fd5b803563ffffffff8116811461101857600080fd5b60008083601f84011261231157600080fd5b50813567ffffffffffffffff81111561232957600080fd5b6020830191508360208260051b850101111561234457600080fd5b9250929050565b600080600080600080610180878903121561236557600080fd5b61236f88886122d9565b9550610100870135945061238661012088016122eb565b935061014087013567ffffffffffffffff8111156123a357600080fd5b6123af89828a016122ff565b979a969950949794969561016090950135949350505050565b600080600080600061018086880312156123e157600080fd5b8535945060208601359350604086013592506060860135915061240787608088016122d9565b90509295509295909350565b600080600080600060a0868803121561242b57600080fd5b853560ff8116811461243c57600080fd5b9450602086013593506040860135612453816122a7565b92506060860135612463816122a7565b91506080860135612473816122a7565b809150509295509295909350565b60006020828403121561249357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156124d6576124d661249a565b6040525050565b600080604083850312156124f057600080fd5b82356124fb816122a7565b915060208381013567ffffffffffffffff8082111561251957600080fd5b818601915086601f83011261252d57600080fd5b81358181111561253f5761253f61249a565b6040519150612557601f8201601f19168501836124b0565b808252878482850101111561256b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806000608086880312156125a157600080fd5b6125aa866122eb565b94506020860135935060408601359250606086013567ffffffffffffffff8111156125d457600080fd5b6125e0888289016122ff565b969995985093965092949392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826126a657634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156126bd57600080fd5b8151610fcf816122a7565b61012081016101008085843782018360005b60018110156126f95781518352602092830192909101906001016126da565b5050509392505050565b600060033d11156110e85760046000803e5060005160e01c90565b600060443d101561272c5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561275c57505050505090565b82850191508151818111156127745750505050505090565b843d870101602082850101111561278e5750505050505090565b61279d602082860101876124b0565b509095945050505050565b60005b838110156127c35781810151838201526020016127ab565b50506000910152565b60208152600082518060208401526127eb8160408501602087016127a8565b601f01601f19169190910160400192915050565b61018081016101008085843782018360005b60048110156126f9578151835260209283019290910190600101612811565b818103818111156121f257634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561288657600080fd5b8260051b80856044850137919091016044019695505050505050565b6000602082840312156128b457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516129188184602087016127a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122007672aade5deb7682ae55653751ac09c246fe87ab8c3cc282a427d1db95c090d64736f6c63430008150033", + "sourceMap": "879:31345:43:-:0;;;1332:4:23;1289:48;;13484:281:43;;;;;;;;;-1:-1:-1;13736:22:43;:20;:22::i;:::-;879:31345;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:82;5987:66:22;;;198:21:82;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:82;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:82;;;6162:28:22;;552:2:82;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:82:-;879:31345:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6080604052600436106101665760003560e01c806379ba5097116100d1578063c70aa7271161008a578063f134b6ca11610064578063f134b6ca14610439578063f2038f951461044e578063f2358e1d14610463578063f2fde38b1461048357600080fd5b8063c70aa727146103e6578063d7b0fef114610406578063e30c39781461041b57600080fd5b806379ba5097146103235780638c76a909146103385780638da5cb5b146103585780638e5cdd501461038a5780638fc22e9f146103b1578063a7bba582146103c657600080fd5b80633f7c178d116101235780633f7c178d1461022d57806343f974cb1461027f5780634f1ef286146102a257806352d1902d146102b5578063561f204b146102ca578063715018a61461030e57600080fd5b80630e3a12f31461016b5780632217b2111461018d5780632f059fca146101ad578063354ca120146101cd5780633659cfe6146101ed57806338c870651461020d575b600080fd5b34801561017757600080fd5b5061018b6101863660046122bc565b6104a3565b005b34801561019957600080fd5b5061018b6101a836600461234b565b6105f1565b3480156101b957600080fd5b5061018b6101c83660046122bc565b6108fc565b3480156101d957600080fd5b5061018b6101e83660046123c8565b610a18565b3480156101f957600080fd5b5061018b6102083660046122bc565b610b62565b34801561021957600080fd5b5061018b610228366004612413565b610c2a565b34801561023957600080fd5b5061024d610248366004612481565b610e6c565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b34801561028b57600080fd5b5061029461101d565b604051908152602001610276565b61018b6102b03660046124dd565b6110eb565b3480156102c157600080fd5b506102946111a4565b3480156102d657600080fd5b50604080516060808201835260008083526020808401829052928401819052835191820184528082529181018290529182015261024d565b34801561031a57600080fd5b5061018b611257565b34801561032f57600080fd5b5061018b611278565b34801561034457600080fd5b50610294610353366004612589565b6112ef565b34801561036457600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561039657600080fd5b5061039f6113f2565b60405160ff9091168152602001610276565b3480156103bd57600080fd5b506103726114c9565b3480156103d257600080fd5b506103726103e13660046122bc565b61159f565b3480156103f257600080fd5b5061018b610401366004612481565b6116c1565b34801561041257600080fd5b50610294611816565b34801561042757600080fd5b506065546001600160a01b0316610372565b34801561044557600080fd5b506103726118e3565b34801561045a57600080fd5b506103726119b9565b34801561046f57600080fd5b5061018b61047e366004612481565b611a8f565b34801561048f57600080fd5b5061018b61049e3660046122bc565b611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104f45760405162461bcd60e51b81526004016104eb906125f1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610526611c3d565b6001600160a01b03161461054c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661056f57604051630103019560e11b815260040160405180910390fd5b610577611c59565b6001600160a01b03811661059e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066b611c3d565b6001600160a01b0316146106915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166106b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146106e25760405163472511eb60e11b81523360048201526024016104eb565b61012e5485146107145761012e5460405163542fced960e11b81526104eb918791600401918252602082015260400190565b600061072385878487876112ef565b905060006107517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612689565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c591906126ab565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610801918d91906004016126c8565b600060405180830381600087803b15801561081b57600080fd5b505af192505050801561082c575060015b61088c57610838612703565b806308c379a003610871575061084c61271e565b806108575750610873565b8060405162461bcd60e51b81526004016104eb91906127cc565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546fffffffffffffffffffffffffffffffff1916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109445760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610976611c3d565b6001600160a01b03161461099c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166109bf57604051630103019560e11b815260040160405180910390fd5b6109c7611c59565b6001600160a01b0381166109ee57604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016105c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a92611c3d565b6001600160a01b031614610ab85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610adb57604051630103019560e11b815260040160405180910390fd5b610ae485611a8f565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610b36918591906004016127ff565b60006040518083038186803b158015610b4e57600080fd5b505afa1580156108f1573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610baa5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611c3d565b6001600160a01b031614610c025760405162461bcd60e51b81526004016104eb9061263d565b610c0b81611cb5565b60408051600080825260208201909252610c2791839190611d5d565b50565b600054600190610100900460ff16158015610c4c575060005460ff8083169116105b610caf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104eb565b6000805461ffff191660ff8316176101001790556001600160a01b038416610cea57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610d1157604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610d385760405163baa3de5f60e01b815260040160405180910390fd5b610d40611ecd565b610d4986611efc565b610d6b57604051630220cee360e61b815260ff871660048201526024016104eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055610de7611f23565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ed15760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f03611c3d565b6001600160a01b031614610f295760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610f4c57604051630103019560e11b815260040160405180910390fd5b61012e548203610f7b5750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b031690819003610fd65760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b61013054600090610ff06001600160801b03841642612830565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110675760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611099611c3d565b6001600160a01b0316146110bf5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166110e257604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111335760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611165611c3d565b6001600160a01b03161461118b5760405162461bcd60e51b81526004016104eb9061263d565b61119482611cb5565b6111a082826001611d5d565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104eb565b5060008051602061292383398151915290565b61125f611c59565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146112e65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104eb565b610c2781611f59565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661136b611c3d565b6001600160a01b0316146113915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166113b457604051630103019560e11b815260040160405180910390fd5b600086868686866040516020016113cf959493929190612851565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361143c5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661146e611c3d565b6001600160a01b0316146114945760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166114b757604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115135760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611545611c3d565b6001600160a01b03161461156b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661158e57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115e95760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661161b611c3d565b6001600160a01b0316146116415760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661166457604051630103019560e11b815260040160405180910390fd5b61166c611c59565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117095760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661173b611c3d565b6001600160a01b0316146117615760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661178457604051630103019560e11b815260040160405180910390fd5b61178c611c59565b806000036117dc5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016104eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611892611c3d565b6001600160a01b0316146118b85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166118db57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361192d5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661195f611c3d565b6001600160a01b0316146119855760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166119a857604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a035760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a35611c3d565b6001600160a01b031614611a5b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611a7e57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ad75760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b09611c3d565b6001600160a01b031614611b2f5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611b5257604051630103019560e11b815260040160405180910390fd5b61012e548114610c2757600081815261012f60205260408120546001600160801b031690819003611b965760405163ddae3b7160e01b815260040160405180910390fd5b61013054611bad6001600160801b03831642612830565b11156111a057604051631d739acf60e11b815260040160405180910390fd5b611bd4611c59565b606580546001600160a01b0383166001600160a01b03199091168117909155611c056033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612923833981519152546001600160a01b031690565b6033546001600160a01b03163314611cb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104eb565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cfd5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d2f611c3d565b6001600160a01b031614611d555760405162461bcd60e51b81526004016104eb9061263d565b610c27611c59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d9557611d9083611f72565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611def575060408051601f3d908101601f19168201909252611dec918101906128a2565b60015b611e525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104eb565b6000805160206129238339815191528114611ec15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104eb565b50611d9083838361200e565b600054610100900460ff16611ef45760405162461bcd60e51b81526004016104eb906128bb565b611cb3612039565b60006010602060ff84168211801590611f1b57508060ff168460ff1611155b949350505050565b600054610100900460ff16611f4a5760405162461bcd60e51b81526004016104eb906128bb565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610c2781612070565b6001600160a01b0381163b611fdf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104eb565b60008051602061292383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612017836120c2565b6000825111806120245750805b15611d90576120338383612102565b50505050565b600054610100900460ff166120605760405162461bcd60e51b81526004016104eb906128bb565b6120686121f8565b611cb3612227565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120cb81611f72565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61216a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104eb565b600080846001600160a01b0316846040516121859190612906565b600060405180830381855af49150503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121ed82826040518060600160405280602781526020016129436027913961224e565b925050505b92915050565b600054610100900460ff1661221f5760405162461bcd60e51b81526004016104eb906128bb565b611cb3612267565b600054610100900460ff16611cb35760405162461bcd60e51b81526004016104eb906128bb565b6060831561225d575081610fcf565b610fcf8383612297565b600054610100900460ff1661228e5760405162461bcd60e51b81526004016104eb906128bb565b611cb333611f59565b8151156108575781518083602001fd5b6001600160a01b0381168114610c2757600080fd5b6000602082840312156122ce57600080fd5b8135610fcf816122a7565b8061010081018310156121f257600080fd5b803563ffffffff8116811461101857600080fd5b60008083601f84011261231157600080fd5b50813567ffffffffffffffff81111561232957600080fd5b6020830191508360208260051b850101111561234457600080fd5b9250929050565b600080600080600080610180878903121561236557600080fd5b61236f88886122d9565b9550610100870135945061238661012088016122eb565b935061014087013567ffffffffffffffff8111156123a357600080fd5b6123af89828a016122ff565b979a969950949794969561016090950135949350505050565b600080600080600061018086880312156123e157600080fd5b8535945060208601359350604086013592506060860135915061240787608088016122d9565b90509295509295909350565b600080600080600060a0868803121561242b57600080fd5b853560ff8116811461243c57600080fd5b9450602086013593506040860135612453816122a7565b92506060860135612463816122a7565b91506080860135612473816122a7565b809150509295509295909350565b60006020828403121561249357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156124d6576124d661249a565b6040525050565b600080604083850312156124f057600080fd5b82356124fb816122a7565b915060208381013567ffffffffffffffff8082111561251957600080fd5b818601915086601f83011261252d57600080fd5b81358181111561253f5761253f61249a565b6040519150612557601f8201601f19168501836124b0565b808252878482850101111561256b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806000608086880312156125a157600080fd5b6125aa866122eb565b94506020860135935060408601359250606086013567ffffffffffffffff8111156125d457600080fd5b6125e0888289016122ff565b969995985093965092949392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826126a657634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156126bd57600080fd5b8151610fcf816122a7565b61012081016101008085843782018360005b60018110156126f95781518352602092830192909101906001016126da565b5050509392505050565b600060033d11156110e85760046000803e5060005160e01c90565b600060443d101561272c5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561275c57505050505090565b82850191508151818111156127745750505050505090565b843d870101602082850101111561278e5750505050505090565b61279d602082860101876124b0565b509095945050505050565b60005b838110156127c35781810151838201526020016127ab565b50506000910152565b60208152600082518060208401526127eb8160408501602087016127a8565b601f01601f19169190910160400192915050565b61018081016101008085843782018360005b60048110156126f9578151835260209283019290910190600101612811565b818103818111156121f257634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561288657600080fd5b8260051b80856044850137919091016044019695505050505050565b6000602082840312156128b457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516129188184602087016127a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220773b014bcc7e739553d343f4e60ab5a377632dc6ff4f71e3d2a07d476a370d0b64736f6c63430008150033", - "sourceMap": "879:31345:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27467:492;;;;;;;;;;-1:-1:-1;27467:492:43;;;;;:::i;:::-;;:::i;:::-;;19237:2122;;;;;;;;;;-1:-1:-1;19237:2122:43;;;;;:::i;:::-;;:::i;26170:522::-;;;;;;;;;;-1:-1:-1;26170:522:43;;;;;:::i;:::-;;:::i;31087:499::-;;;;;;;;;;-1:-1:-1;31087:499:43;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;15263:1346:43:-;;;;;;;;;;-1:-1:-1;15263:1346:43;;;;;:::i;:::-;;:::i;23647:567::-;;;;;;;;;;-1:-1:-1;23647:567:43;;;;;:::i;:::-;;:::i;:::-;;;;4356:13:77;;4338:32;;4430:4;4418:17;;;4412:24;-1:-1:-1;;;;;4408:65:77;4386:20;;;4379:95;4532:17;;;4526:24;4519:32;4512:40;4490:20;;;4483:70;4326:2;4311:18;23647:567:43;;;;;;;;28135:189;;;;;;;;;;;;;:::i;:::-;;;4710:25:77;;;4698:2;4683:18;28135:189:43;4564:177:77;3763:222:23;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;7325:120:43:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;7325:120;;4649:109:45;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;22489:413:43:-;;;;;;;;;;-1:-1:-1;22489:413:43;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;;-1:-1:-1;;;;;7087:32:77;;;7069:51;;7057:2;7042:18;1441:85:18;6923:203:77;29102:119:43;;;;;;;;;;;;;:::i;:::-;;;7303:4:77;7291:17;;;7273:36;;7261:2;7246:18;29102:119:43;7131:184:77;25527:231:43;;;;;;;;;;;;;:::i;29868:384::-;;;;;;;;;;-1:-1:-1;29868:384:43;;;;;:::i;:::-;;:::i;28556:402::-;;;;;;;;;;-1:-1:-1;28556:402:43;;;;;:::i;:::-;;:::i;23030:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;29442:133:43;;;;;;;;;;;;;:::i;26875:205::-;;;;;;;;;;;;;:::i;24657:638::-;;;;;;;;;;-1:-1:-1;24657:638:43;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;27467:492:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;27638:34:43;::::3;27634:89;;27695:17;;-1:-1:-1::0;;;27695:17:43::3;;;;;;;;;;;27634:89;27766:17;::::0;;-1:-1:-1;;;;;27793:31:43;;::::3;-1:-1:-1::0;;;;;;27793:31:43;::::3;::::0;::::3;::::0;;;27766:17:::3;::::0;;27870:28:::3;27839:113;;::::0;::::3;::::0;;;::::3;27624:335;27467:492:::0;:::o;19237:2122::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;32129:17:43::2;::::0;-1:-1:-1;;;;;32129:17:43::2;32115:10;:31;32111:93;;32169:24;::::0;-1:-1:-1;;;32169:24:43;;32182:10:::2;32169:24;::::0;::::2;7069:51:77::0;7042:18;;32169:24:43::2;6923:203:77::0;32111:93:43::2;19528:11:::3;;19517:7;:22;19513:95;;19585:11;::::0;19562:35:::3;::::0;-1:-1:-1;;;19562:35:43;;::::3;::::0;19576:7;;19562:35:::3;;8452:25:77::0;;;8508:2;8493:18;;8486:34;8440:2;8425:18;;8278:248;19513:95:43::3;19698:17;19718:112;19770:10;19782:7;19791:8;19801:19;;19718:38;:112::i;:::-;19698:132:::0;-1:-1:-1;20129:22:43::3;20154:39;4362:77;19698:132:::0;20154:39:::3;:::i;:::-;20323:23;::::0;:66:::3;::::0;-1:-1:-1;;;20323:66:43;;::::3;::::0;::::3;4710:25:77::0;;;20129:64:43;;-1:-1:-1;20277:31:43::3;::::0;-1:-1:-1;;;;;20323:23:43;;::::3;::::0;:38:::3;::::0;4683:18:77;;20323:66:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20458:63;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;20458:63:43;;20277:112;;-1:-1:-1;;;;;;20458:29:43;::::3;::::0;::::3;::::0;:63:::3;::::0;20488:14;;20458:63;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;20454:899;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;21105:9;21098:17;;-1:-1:-1::0;;;21098:17:43::3;;;;;;;;:::i;20454:899::-;;;21318:24;;-1:-1:-1::0;;;21318:24:43::3;;;;;;;;;;;20454:899;20690:11;:22:::0;;;20858:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;20858:47:43::3;20889:15;-1:-1:-1::0;;;;;20858:47:43::3;;::::0;;20690:22;;20925:52:::3;::::0;20937:7;;20925:52:::3;::::0;;;::::3;20454:899;19503:1856;;;19237:2122:::0;;;;;;:::o;26170:522::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;26359:31:43;::::3;26355:89;;26413:20;;-1:-1:-1::0;;;26413:20:43::3;;;;;;;;;;;26355:89;26485:23;::::0;;-1:-1:-1;;;;;26518:34:43;;::::3;-1:-1:-1::0;;;;;;26518:34:43;::::3;::::0;::::3;::::0;;;26485:23:::3;::::0;;;26567:118:::3;::::0;31087:499;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;31375:22:43::2;31392:4;31375:16;:22::i;:::-;31463:17;::::0;:116:::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;31463:116:43;;-1:-1:-1;;;;;31463:17:43;;::::2;::::0;:29:::2;::::0;:116:::2;::::0;31506:5;;31463:116;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;15263:1346:43:-;4871:13:22;;15517:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;12061:2:77;4862:99:22;;;12043:21:77;12100:2;12080:18;;;12073:30;12139:34;12119:18;;;12112:62;-1:-1:-1;;;12190:18:77;;;12183:44;12244:19;;4862:99:22;11859:410:77;4862:99:22;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;15534:47:43;::::1;15530:105;;15604:20;;-1:-1:-1::0;;;15604:20:43::1;;;;;;;;;;;15530:105;-1:-1:-1::0;;;;;15649:44:43;::::1;15645:102;;15716:20;;-1:-1:-1::0;;;15716:20:43::1;;;;;;;;;;;15645:102;-1:-1:-1::0;;;;;15761:41:43;::::1;15757:96;;15825:17;;-1:-1:-1::0;;;15825:17:43::1;;;;;;;;;;;15757:96;15937:16;:14;:16::i;:::-;15969:48;16006:10;15969:36;:48::i;:::-;15964:119;;16040:32;::::0;-1:-1:-1;;;16040:32:43;;7303:4:77;7291:17;;16040:32:43::1;::::0;::::1;7273:36:77::0;7246:18;;16040:32:43::1;7131:184:77::0;15964:119:43::1;16150:9;:22:::0;;-1:-1:-1;;;;16150:22:43::1;-1:-1:-1::0;;;16150:22:43::1;::::0;::::1;;;::::0;;16202:7:::1;16182:17;:27:::0;16219:11:::1;:25:::0;;;16254:23:::1;:50:::0;;-1:-1:-1;;;;;;16254:50:43;;::::1;-1:-1:-1::0;;;;;16254:50:43;;::::1;::::0;;;::::1;::::0;;;16314:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;16371:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;16419:17:43::1;:27:::0;;1513:6:18;;;;16419:27:43;::::1;;::::0;;16506:18:::1;:16;:18::i;:::-;16540:62;::::0;;12474:4:77;12462:17;;12444:36;;12511:2;12496:18;;12489:34;;;16540:62:43::1;::::0;12417:18:77;16540:62:43::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;7303:4:77;7291:17;;7273:36;;5080:20:22;;7261:2:77;7246:18;5080:20:22;;;;;;;15263:1346:43;;;;;;:::o;23647:567::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;23826:11:43::2;;23818:4;:19:::0;23814:394:::2;;-1:-1:-1::0;;23860:30:43::2;::::0;;::::2;::::0;::::2;::::0;;23869:11:::2;::::0;23860:30;;-1:-1:-1;23860:30:43::2;::::0;::::2;::::0;23885:4:::2;23860:30:::0;;;;;;;;23647:567::o;23814:394::-:2;23921:21;23945:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;23945:17:43::2;::::0;23981:18;;;23977:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;24026:14:::2;24019:21:::0;23647:567;-1:-1:-1;;;23647:567:43:o;23977:78::-:2;24120:17;::::0;24069:12:::2;::::0;24086:31:::2;-1:-1:-1::0;;;;;24086:31:43;::::2;:15;:31;:::i;:::-;24159:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;24159:38:43;;::::2;;::::0;::::2;::::0;24086:51;-1:-1:-1;24084:54:43::2;24159:38:::0;;;;-1:-1:-1;24159:38:43;-1:-1:-1;23814:394:43::2;23647:567:::0;;;:::o;28135:189::-;28270:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;28300:17:43::2;::::0;1144:1:74::2;28135:189:43::0;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;12966:2:77;2308:92:23;;;12948:21:77;13005:2;12985:18;;;12978:30;13044:34;13024:18;;;13017:62;13115:26;13095:18;;;13088:54;13159:19;;2308:92:23;12764:420:77;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;4649:109:45:-;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;13391:2:77;2095:78:17;;;13373:21:77;13430:2;13410:18;;;13403:30;13469:34;13449:18;;;13442:62;-1:-1:-1;;;13520:18:77;;;13513:39;13569:19;;2095:78:17;13189:405:77;2095:78:17;2183:26;2202:6;2183:18;:26::i;22489:413:43:-;22724:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;22748:24:43::2;22804:10;22816:7;22825:8;22835:19;;22787:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22787:68:43;;::::2;::::0;;;;;;22873:22;;22787:68:::2;22873:22:::0;;::::2;::::0;;22489:413;-1:-1:-1;;;;;;;22489:413:43:o;29102:119::-;29181:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29205:9:43::2;::::0;-1:-1:-1;;;29205:9:43;::::2;;;::::0;29102:119::o;25527:231::-;25689:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;25727:23:43::2;::::0;-1:-1:-1;;;;;25727:23:43::2;25527:231:::0;:::o;29868:384::-;30034:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;30079:17:43::3;::::0;;-1:-1:-1;;;;;30106:39:43;;::::3;-1:-1:-1::0;;;;;;30106:39:43;::::3;::::0;::::3;::::0;;;30160:57:::3;::::0;30079:17;::::3;::::0;30106:39;30079:17;;30160:57:::3;::::0;30057:19:::3;::::0;30160:57:::3;30234:11:::0;29868:384;-1:-1:-1;;29868:384:43:o;28556:402::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;28718::43::3;28735:1;28718:18:::0;28714:86:::3;;28752:37;::::0;-1:-1:-1;;;28752:37:43;;14401:2:77;28752:37:43::3;::::0;::::3;14383:21:77::0;14440:2;14420:18;;;14413:30;14479:29;14459:18;;;14452:57;14526:18;;28752:37:43::3;14199:351:77::0;28714:86:43::3;28829:17;::::0;;28856:33;;;;28905:46:::3;::::0;28876:13;;28829:17;;28905:46:::3;::::0;28809:17:::3;::::0;28905:46:::3;28704:254;28556:402:::0;:::o;23030:121::-;23107:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;23133:11:43::2;::::0;23030:121;:::o;29442:133::-;29525:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29551:17:43::2;::::0;-1:-1:-1;;;;;29551:17:43::2;29442:133:::0;:::o;26875:205::-;27017:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;27055:17:43::2;::::0;-1:-1:-1;;;;;27055:17:43::2;26875:205:::0;:::o;24657:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;24809:11:43::2;::::0;24797:56;;24836:7:::2;24797:56;24928:21;24952:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;24952:17:43::2;::::0;25052:18;;;25048:73:::2;;25093:17;;-1:-1:-1::0;;;25093:17:43::2;;;;;;;;;;;25048:73;25225:17;::::0;25191:31:::2;-1:-1:-1::0;;;;;25191:31:43;::::2;:15;:31;:::i;:::-;:51;25187:102;;;25265:13;;-1:-1:-1::0;;;25265:13:43::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;14757:2:77;1654:68:18;;;14739:21:77;;;14776:18;;;14769:30;14835:34;14815:18;;;14808:62;14887:18;;1654:68:18;14555:356:77;1654:68:18;1599:130::o;4067:204:45:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;15307:2:77;3758:56:20;;;15289:21:77;15346:2;15326:18;;;15319:30;15385:34;15365:18;;;15358:62;-1:-1:-1;;;15436:18:77;;;15429:44;15490:19;;3758:56:20;15105:410:77;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;15722:2:77;3636:82:20;;;15704:21:77;15761:2;15741:18;;;15734:30;15800:34;15780:18;;;15773:62;-1:-1:-1;;;15851:18:77;;;15844:39;15900:19;;3636:82:20;15520:405:77;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;16943:97:43:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;17013:20:43::1;:18;:20::i;434:207:75:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:75;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:75:o;794:90:74:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:74::1;:19:::0;;-1:-1:-1;;858:19:74::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;16544:2:77;1878:106:20;;;16526:21:77;16583:2;16563:18;;;16556:30;16622:34;16602:18;;;16595:62;-1:-1:-1;;;16673:18:77;;;16666:43;16726:19;;1878:106:20;16342:409:77;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;16958:2:77;7195:88:20;;;16940:21:77;16997:2;16977:18;;;16970:30;17036:34;17016:18;;;17009:62;-1:-1:-1;;;17087:18:77;;;17080:36;17133:19;;7195:88:20;16756:402:77;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:77;-1:-1:-1;;;;;109:31:77;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:77;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:77;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:77;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:77:o;2254:509::-;2374:6;2382;2390;2398;2406;2459:3;2447:9;2438:7;2434:23;2430:33;2427:53;;;2476:1;2473;2466:12;2427:53;2512:9;2499:23;2489:33;;2569:2;2558:9;2554:18;2541:32;2531:42;;2620:2;2609:9;2605:18;2592:32;2582:42;;2671:2;2660:9;2656:18;2643:32;2633:42;;2694:63;2749:7;2743:3;2732:9;2728:19;2694:63;:::i;:::-;2684:73;;2254:509;;;;;;;;:::o;3040:908::-;3219:6;3227;3235;3243;3251;3304:3;3292:9;3283:7;3279:23;3275:33;3272:53;;;3321:1;3318;3311:12;3272:53;3360:9;3347:23;3410:4;3403:5;3399:16;3392:5;3389:27;3379:55;;3430:1;3427;3420:12;3379:55;3453:5;-1:-1:-1;3505:2:77;3490:18;;3477:32;;-1:-1:-1;3561:2:77;3546:18;;3533:32;3574:53;3533:32;3574:53;:::i;:::-;3646:7;-1:-1:-1;3705:2:77;3690:18;;3677:32;3718:53;3677:32;3718:53;:::i;:::-;3790:7;-1:-1:-1;3849:3:77;3834:19;;3821:33;3863:53;3821:33;3863:53;:::i;:::-;3935:7;3925:17;;;3040:908;;;;;;;;:::o;3953:180::-;4012:6;4065:2;4053:9;4044:7;4040:23;4036:32;4033:52;;;4081:1;4078;4071:12;4033:52;-1:-1:-1;4104:23:77;;3953:180;-1:-1:-1;3953:180:77:o;4746:127::-;4807:10;4802:3;4798:20;4795:1;4788:31;4838:4;4835:1;4828:15;4862:4;4859:1;4852:15;4878:249;4988:2;4969:13;;-1:-1:-1;;4965:27:77;4953:40;;5023:18;5008:34;;5044:22;;;5005:62;5002:88;;;5070:18;;:::i;:::-;5106:2;5099:22;-1:-1:-1;;4878:249:77:o;5132:953::-;5209:6;5217;5270:2;5258:9;5249:7;5245:23;5241:32;5238:52;;;5286:1;5283;5276:12;5238:52;5325:9;5312:23;5344:51;5389:5;5344:51;:::i;:::-;5414:5;-1:-1:-1;5438:2:77;5476:18;;;5463:32;5514:18;5544:14;;;5541:34;;;5571:1;5568;5561:12;5541:34;5609:6;5598:9;5594:22;5584:32;;5654:7;5647:4;5643:2;5639:13;5635:27;5625:55;;5676:1;5673;5666:12;5625:55;5712:2;5699:16;5734:2;5730;5727:10;5724:36;;;5740:18;;:::i;:::-;5789:2;5783:9;;-1:-1:-1;5801:65:77;5856:2;5837:13;;-1:-1:-1;;5833:27:77;5829:36;;5783:9;5801:65;:::i;:::-;5890:2;5882:6;5875:18;5930:7;5925:2;5920;5916;5912:11;5908:20;5905:33;5902:53;;;5951:1;5948;5941:12;5902:53;6007:2;6002;5998;5994:11;5989:2;5981:6;5977:15;5964:46;6052:1;6047:2;6042;6034:6;6030:15;6026:24;6019:35;;6073:6;6063:16;;;;;5132:953;;;;;:::o;6272:646::-;6384:6;6392;6400;6408;6416;6469:3;6457:9;6448:7;6444:23;6440:33;6437:53;;;6486:1;6483;6476:12;6437:53;6509:28;6527:9;6509:28;:::i;:::-;6499:38;;6584:2;6573:9;6569:18;6556:32;6546:42;;6635:2;6624:9;6620:18;6607:32;6597:42;;6690:2;6679:9;6675:18;6662:32;6717:18;6709:6;6706:30;6703:50;;;6749:1;6746;6739:12;6703:50;6788:70;6850:7;6841:6;6830:9;6826:22;6788:70;:::i;:::-;6272:646;;;;-1:-1:-1;6272:646:77;;-1:-1:-1;6877:8:77;;6762:96;6272:646;-1:-1:-1;;;6272:646:77:o;7320:408::-;7522:2;7504:21;;;7561:2;7541:18;;;7534:30;7600:34;7595:2;7580:18;;7573:62;-1:-1:-1;;;7666:2:77;7651:18;;7644:42;7718:3;7703:19;;7320:408::o;7733:::-;7935:2;7917:21;;;7974:2;7954:18;;;7947:30;8013:34;8008:2;7993:18;;7986:62;-1:-1:-1;;;8079:2:77;8064:18;;8057:42;8131:3;8116:19;;7733:408::o;8531:209::-;8563:1;8589;8579:132;;8633:10;8628:3;8624:20;8621:1;8614:31;8668:4;8665:1;8658:15;8696:4;8693:1;8686:15;8579:132;-1:-1:-1;8725:9:77;;8531:209::o;8745:294::-;8838:6;8891:2;8879:9;8870:7;8866:23;8862:32;8859:52;;;8907:1;8904;8897:12;8859:52;8939:9;8933:16;8958:51;9003:5;8958:51;:::i;9044:646::-;9300:3;9285:19;;9323:6;;9362;9289:9;9338:35;9393:18;;9453:6;9477:1;9487:197;9501:4;9498:1;9495:11;9487:197;;;9563:13;;9551:26;;9600:4;9624:12;;;;9659:15;;;;9521:4;9514:12;9487:197;;;9491:3;;;9044:646;;;;;:::o;9695:179::-;9730:3;9772:1;9754:16;9751:23;9748:120;;;9818:1;9815;9812;9797:23;-1:-1:-1;9855:1:77;9849:8;9844:3;9840:18;9695:179;:::o;9879:671::-;9918:3;9960:4;9942:16;9939:26;9936:39;;;9879:671;:::o;9936:39::-;10002:2;9996:9;-1:-1:-1;;10067:16:77;10063:25;;10060:1;9996:9;10039:50;10118:4;10112:11;10142:16;10177:18;10248:2;10241:4;10233:6;10229:17;10226:25;10221:2;10213:6;10210:14;10207:45;10204:58;;;10255:5;;;;;9879:671;:::o;10204:58::-;10292:6;10286:4;10282:17;10271:28;;10328:3;10322:10;10355:2;10347:6;10344:14;10341:27;;;10361:5;;;;;;9879:671;:::o;10341:27::-;10445:2;10426:16;10420:4;10416:27;10412:36;10405:4;10396:6;10391:3;10387:16;10383:27;10380:69;10377:82;;;10452:5;;;;;;9879:671;:::o;10377:82::-;10468:57;10519:4;10510:6;10502;10498:19;10494:30;10488:4;10468:57;:::i;:::-;-1:-1:-1;10541:3:77;;9879:671;-1:-1:-1;;;;;9879:671:77:o;10555:250::-;10640:1;10650:113;10664:6;10661:1;10658:13;10650:113;;;10740:11;;;10734:18;10721:11;;;10714:39;10686:2;10679:10;10650:113;;;-1:-1:-1;;10797:1:77;10779:16;;10772:27;10555:250::o;10810:396::-;10959:2;10948:9;10941:21;10922:4;10991:6;10985:13;11034:6;11029:2;11018:9;11014:18;11007:34;11050:79;11122:6;11117:2;11106:9;11102:18;11097:2;11089:6;11085:15;11050:79;:::i;:::-;11190:2;11169:15;-1:-1:-1;;11165:29:77;11150:45;;;;11197:2;11146:54;;10810:396;-1:-1:-1;;10810:396:77:o;11211:643::-;11467:3;11452:19;;11490:6;;11529;11456:9;11505:35;11560:18;;11620:6;11644:1;11654:194;11668:4;11665:1;11662:11;11654:194;;;11727:13;;11715:26;;11764:4;11788:12;;;;11823:15;;;;11688:1;11681:9;11654:194;;12534:225;12601:9;;;12622:11;;;12619:134;;;12675:10;12670:3;12666:20;12663:1;12656:31;12710:4;12707:1;12700:15;12738:4;12735:1;12728:15;13599:595;13908:3;13886:16;;;-1:-1:-1;;;;;;13882:43:77;13870:56;;13951:1;13942:11;;13935:27;;;13987:2;13978:12;;13971:28;;;-1:-1:-1;;;;;;14011:31:77;;14008:51;;;14055:1;14052;14045:12;14008:51;14089:6;14086:1;14082:14;14140:6;14132;14127:2;14122:3;14118:12;14105:42;14167:16;;;;14185:2;14163:25;;13599:595;-1:-1:-1;;;;;;13599:595:77:o;14916:184::-;14986:6;15039:2;15027:9;15018:7;15014:23;15010:32;15007:52;;;15055:1;15052;15045:12;15007:52;-1:-1:-1;15078:16:77;;14916:184;-1:-1:-1;14916:184:77:o;15930:407::-;16132:2;16114:21;;;16171:2;16151:18;;;16144:30;16210:34;16205:2;16190:18;;16183:62;-1:-1:-1;;;16276:2:77;16261:18;;16254:41;16327:3;16312:19;;15930:407::o;17163:287::-;17292:3;17330:6;17324:13;17346:66;17405:6;17400:3;17393:4;17385:6;17381:17;17346:66;:::i;:::-;17428:16;;;;;17163:287;-1:-1:-1;;17163:287:77:o", + "object": "0x6080604052600436106101665760003560e01c806379ba5097116100d1578063c70aa7271161008a578063f134b6ca11610064578063f134b6ca14610439578063f2038f951461044e578063f2358e1d14610463578063f2fde38b1461048357600080fd5b8063c70aa727146103e6578063d7b0fef114610406578063e30c39781461041b57600080fd5b806379ba5097146103235780638c76a909146103385780638da5cb5b146103585780638e5cdd501461038a5780638fc22e9f146103b1578063a7bba582146103c657600080fd5b80633f7c178d116101235780633f7c178d1461022d57806343f974cb1461027f5780634f1ef286146102a257806352d1902d146102b5578063561f204b146102ca578063715018a61461030e57600080fd5b80630e3a12f31461016b5780632217b2111461018d5780632f059fca146101ad578063354ca120146101cd5780633659cfe6146101ed57806338c870651461020d575b600080fd5b34801561017757600080fd5b5061018b6101863660046122bc565b6104a3565b005b34801561019957600080fd5b5061018b6101a836600461234b565b6105f1565b3480156101b957600080fd5b5061018b6101c83660046122bc565b6108fc565b3480156101d957600080fd5b5061018b6101e83660046123c8565b610a18565b3480156101f957600080fd5b5061018b6102083660046122bc565b610b62565b34801561021957600080fd5b5061018b610228366004612413565b610c2a565b34801561023957600080fd5b5061024d610248366004612481565b610e6c565b60408051825181526020808401516001600160801b031690820152918101511515908201526060015b60405180910390f35b34801561028b57600080fd5b5061029461101d565b604051908152602001610276565b61018b6102b03660046124dd565b6110eb565b3480156102c157600080fd5b506102946111a4565b3480156102d657600080fd5b50604080516060808201835260008083526020808401829052928401819052835191820184528082529181018290529182015261024d565b34801561031a57600080fd5b5061018b611257565b34801561032f57600080fd5b5061018b611278565b34801561034457600080fd5b50610294610353366004612589565b6112ef565b34801561036457600080fd5b506033546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561039657600080fd5b5061039f6113f2565b60405160ff9091168152602001610276565b3480156103bd57600080fd5b506103726114c9565b3480156103d257600080fd5b506103726103e13660046122bc565b61159f565b3480156103f257600080fd5b5061018b610401366004612481565b6116c1565b34801561041257600080fd5b50610294611816565b34801561042757600080fd5b506065546001600160a01b0316610372565b34801561044557600080fd5b506103726118e3565b34801561045a57600080fd5b506103726119b9565b34801561046f57600080fd5b5061018b61047e366004612481565b611a8f565b34801561048f57600080fd5b5061018b61049e3660046122bc565b611bcc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104f45760405162461bcd60e51b81526004016104eb906125f1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610526611c3d565b6001600160a01b03161461054c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661056f57604051630103019560e11b815260040160405180910390fd5b610577611c59565b6001600160a01b03811661059e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066b611c3d565b6001600160a01b0316146106915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166106b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146106e25760405163472511eb60e11b81523360048201526024016104eb565b61012e5485146107145761012e5460405163542fced960e11b81526104eb918791600401918252602082015260400190565b600061072385878487876112ef565b905060006107517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612689565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c591906126ab565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610801918d91906004016126c8565b600060405180830381600087803b15801561081b57600080fd5b505af192505050801561082c575060015b61088c57610838612703565b806308c379a003610871575061084c61271e565b806108575750610873565b8060405162461bcd60e51b81526004016104eb91906127cc565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546fffffffffffffffffffffffffffffffff1916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109445760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610976611c3d565b6001600160a01b03161461099c5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166109bf57604051630103019560e11b815260040160405180910390fd5b6109c7611c59565b6001600160a01b0381166109ee57604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016105c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a92611c3d565b6001600160a01b031614610ab85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610adb57604051630103019560e11b815260040160405180910390fd5b610ae485611a8f565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610b36918591906004016127ff565b60006040518083038186803b158015610b4e57600080fd5b505afa1580156108f1573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610baa5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611c3d565b6001600160a01b031614610c025760405162461bcd60e51b81526004016104eb9061263d565b610c0b81611cb5565b60408051600080825260208201909252610c2791839190611d5d565b50565b600054600190610100900460ff16158015610c4c575060005460ff8083169116105b610caf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104eb565b6000805461ffff191660ff8316176101001790556001600160a01b038416610cea57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610d1157604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610d385760405163baa3de5f60e01b815260040160405180910390fd5b610d40611ecd565b610d4986611efc565b610d6b57604051630220cee360e61b815260ff871660048201526024016104eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d8054919093169116179055610de7611f23565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ed15760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f03611c3d565b6001600160a01b031614610f295760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16610f4c57604051630103019560e11b815260040160405180910390fd5b61012e548203610f7b5750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b031690819003610fd65760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b61013054600090610ff06001600160801b03841642612830565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110675760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611099611c3d565b6001600160a01b0316146110bf5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166110e257604051630103019560e11b815260040160405180910390fd5b50610130545b90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111335760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611165611c3d565b6001600160a01b03161461118b5760405162461bcd60e51b81526004016104eb9061263d565b61119482611cb5565b6111a082826001611d5d565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112445760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104eb565b5060008051602061292383398151915290565b61125f611c59565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b031681146112e65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104eb565b610c2781611f59565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113395760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661136b611c3d565b6001600160a01b0316146113915760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166113b457604051630103019560e11b815260040160405180910390fd5b600086868686866040516020016113cf959493929190612851565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361143c5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661146e611c3d565b6001600160a01b0316146114945760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166114b757604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115135760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611545611c3d565b6001600160a01b03161461156b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661158e57604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115e95760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661161b611c3d565b6001600160a01b0316146116415760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661166457604051630103019560e11b815260040160405180910390fd5b61166c611c59565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117095760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661173b611c3d565b6001600160a01b0316146117615760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff1661178457604051630103019560e11b815260040160405180910390fd5b61178c611c59565b806000036117dc5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016104eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118605760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611892611c3d565b6001600160a01b0316146118b85760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166118db57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361192d5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661195f611c3d565b6001600160a01b0316146119855760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff166119a857604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a035760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a35611c3d565b6001600160a01b031614611a5b5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611a7e57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ad75760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b09611c3d565b6001600160a01b031614611b2f5760405162461bcd60e51b81526004016104eb9061263d565b60fb5460ff16611b5257604051630103019560e11b815260040160405180910390fd5b61012e548114610c2757600081815261012f60205260408120546001600160801b031690819003611b965760405163ddae3b7160e01b815260040160405180910390fd5b61013054611bad6001600160801b03831642612830565b11156111a057604051631d739acf60e11b815260040160405180910390fd5b611bd4611c59565b606580546001600160a01b0383166001600160a01b03199091168117909155611c056033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020612923833981519152546001600160a01b031690565b6033546001600160a01b03163314611cb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104eb565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cfd5760405162461bcd60e51b81526004016104eb906125f1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d2f611c3d565b6001600160a01b031614611d555760405162461bcd60e51b81526004016104eb9061263d565b610c27611c59565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d9557611d9083611f72565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611def575060408051601f3d908101601f19168201909252611dec918101906128a2565b60015b611e525760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104eb565b6000805160206129238339815191528114611ec15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104eb565b50611d9083838361200e565b600054610100900460ff16611ef45760405162461bcd60e51b81526004016104eb906128bb565b611cb3612039565b60006010602060ff84168211801590611f1b57508060ff168460ff1611155b949350505050565b600054610100900460ff16611f4a5760405162461bcd60e51b81526004016104eb906128bb565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610c2781612070565b6001600160a01b0381163b611fdf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104eb565b60008051602061292383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612017836120c2565b6000825111806120245750805b15611d90576120338383612102565b50505050565b600054610100900460ff166120605760405162461bcd60e51b81526004016104eb906128bb565b6120686121f8565b611cb3612227565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120cb81611f72565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61216a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104eb565b600080846001600160a01b0316846040516121859190612906565b600060405180830381855af49150503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50915091506121ed82826040518060600160405280602781526020016129436027913961224e565b925050505b92915050565b600054610100900460ff1661221f5760405162461bcd60e51b81526004016104eb906128bb565b611cb3612267565b600054610100900460ff16611cb35760405162461bcd60e51b81526004016104eb906128bb565b6060831561225d575081610fcf565b610fcf8383612297565b600054610100900460ff1661228e5760405162461bcd60e51b81526004016104eb906128bb565b611cb333611f59565b8151156108575781518083602001fd5b6001600160a01b0381168114610c2757600080fd5b6000602082840312156122ce57600080fd5b8135610fcf816122a7565b8061010081018310156121f257600080fd5b803563ffffffff8116811461101857600080fd5b60008083601f84011261231157600080fd5b50813567ffffffffffffffff81111561232957600080fd5b6020830191508360208260051b850101111561234457600080fd5b9250929050565b600080600080600080610180878903121561236557600080fd5b61236f88886122d9565b9550610100870135945061238661012088016122eb565b935061014087013567ffffffffffffffff8111156123a357600080fd5b6123af89828a016122ff565b979a969950949794969561016090950135949350505050565b600080600080600061018086880312156123e157600080fd5b8535945060208601359350604086013592506060860135915061240787608088016122d9565b90509295509295909350565b600080600080600060a0868803121561242b57600080fd5b853560ff8116811461243c57600080fd5b9450602086013593506040860135612453816122a7565b92506060860135612463816122a7565b91506080860135612473816122a7565b809150509295509295909350565b60006020828403121561249357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156124d6576124d661249a565b6040525050565b600080604083850312156124f057600080fd5b82356124fb816122a7565b915060208381013567ffffffffffffffff8082111561251957600080fd5b818601915086601f83011261252d57600080fd5b81358181111561253f5761253f61249a565b6040519150612557601f8201601f19168501836124b0565b808252878482850101111561256b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806000608086880312156125a157600080fd5b6125aa866122eb565b94506020860135935060408601359250606086013567ffffffffffffffff8111156125d457600080fd5b6125e0888289016122ff565b969995985093965092949392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000826126a657634e487b7160e01b600052601260045260246000fd5b500690565b6000602082840312156126bd57600080fd5b8151610fcf816122a7565b61012081016101008085843782018360005b60018110156126f95781518352602092830192909101906001016126da565b5050509392505050565b600060033d11156110e85760046000803e5060005160e01c90565b600060443d101561272c5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561275c57505050505090565b82850191508151818111156127745750505050505090565b843d870101602082850101111561278e5750505050505090565b61279d602082860101876124b0565b509095945050505050565b60005b838110156127c35781810151838201526020016127ab565b50506000910152565b60208152600082518060208401526127eb8160408501602087016127a8565b601f01601f19169190910160400192915050565b61018081016101008085843782018360005b60048110156126f9578151835260209283019290910190600101612811565b818103818111156121f257634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561288657600080fd5b8260051b80856044850137919091016044019695505050505050565b6000602082840312156128b457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516129188184602087016127a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122007672aade5deb7682ae55653751ac09c246fe87ab8c3cc282a427d1db95c090d64736f6c63430008150033", + "sourceMap": "879:31345:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27467:492;;;;;;;;;;-1:-1:-1;27467:492:43;;;;;:::i;:::-;;:::i;:::-;;19237:2122;;;;;;;;;;-1:-1:-1;19237:2122:43;;;;;:::i;:::-;;:::i;26170:522::-;;;;;;;;;;-1:-1:-1;26170:522:43;;;;;:::i;:::-;;:::i;31087:499::-;;;;;;;;;;-1:-1:-1;31087:499:43;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;15263:1346:43:-;;;;;;;;;;-1:-1:-1;15263:1346:43;;;;;:::i;:::-;;:::i;23647:567::-;;;;;;;;;;-1:-1:-1;23647:567:43;;;;;:::i;:::-;;:::i;:::-;;;;4356:13:82;;4338:32;;4430:4;4418:17;;;4412:24;-1:-1:-1;;;;;4408:65:82;4386:20;;;4379:95;4532:17;;;4526:24;4519:32;4512:40;4490:20;;;4483:70;4326:2;4311:18;23647:567:43;;;;;;;;28135:189;;;;;;;;;;;;;:::i;:::-;;;4710:25:82;;;4698:2;4683:18;28135:189:43;4564:177:82;3763:222:23;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;7325:120:43:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;7325:120;;4649:109:45;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;22489:413:43:-;;;;;;;;;;-1:-1:-1;22489:413:43;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;;-1:-1:-1;;;;;7087:32:82;;;7069:51;;7057:2;7042:18;1441:85:18;6923:203:82;29102:119:43;;;;;;;;;;;;;:::i;:::-;;;7303:4:82;7291:17;;;7273:36;;7261:2;7246:18;29102:119:43;7131:184:82;25527:231:43;;;;;;;;;;;;;:::i;29868:384::-;;;;;;;;;;-1:-1:-1;29868:384:43;;;;;:::i;:::-;;:::i;28556:402::-;;;;;;;;;;-1:-1:-1;28556:402:43;;;;;:::i;:::-;;:::i;23030:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;29442:133:43;;;;;;;;;;;;;:::i;26875:205::-;;;;;;;;;;;;;:::i;24657:638::-;;;;;;;;;;-1:-1:-1;24657:638:43;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;27467:492:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;27638:34:43;::::3;27634:89;;27695:17;;-1:-1:-1::0;;;27695:17:43::3;;;;;;;;;;;27634:89;27766:17;::::0;;-1:-1:-1;;;;;27793:31:43;;::::3;-1:-1:-1::0;;;;;;27793:31:43;::::3;::::0;::::3;::::0;;;27766:17:::3;::::0;;27870:28:::3;27839:113;;::::0;::::3;::::0;;;::::3;27624:335;27467:492:::0;:::o;19237:2122::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;32129:17:43::2;::::0;-1:-1:-1;;;;;32129:17:43::2;32115:10;:31;32111:93;;32169:24;::::0;-1:-1:-1;;;32169:24:43;;32182:10:::2;32169:24;::::0;::::2;7069:51:82::0;7042:18;;32169:24:43::2;6923:203:82::0;32111:93:43::2;19528:11:::3;;19517:7;:22;19513:95;;19585:11;::::0;19562:35:::3;::::0;-1:-1:-1;;;19562:35:43;;::::3;::::0;19576:7;;19562:35:::3;;8452:25:82::0;;;8508:2;8493:18;;8486:34;8440:2;8425:18;;8278:248;19513:95:43::3;19698:17;19718:112;19770:10;19782:7;19791:8;19801:19;;19718:38;:112::i;:::-;19698:132:::0;-1:-1:-1;20129:22:43::3;20154:39;4362:77;19698:132:::0;20154:39:::3;:::i;:::-;20323:23;::::0;:66:::3;::::0;-1:-1:-1;;;20323:66:43;;::::3;::::0;::::3;4710:25:82::0;;;20129:64:43;;-1:-1:-1;20277:31:43::3;::::0;-1:-1:-1;;;;;20323:23:43;;::::3;::::0;:38:::3;::::0;4683:18:82;;20323:66:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20458:63;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;20458:63:43;;20277:112;;-1:-1:-1;;;;;;20458:29:43;::::3;::::0;::::3;::::0;:63:::3;::::0;20488:14;;20458:63;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;20454:899;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;21105:9;21098:17;;-1:-1:-1::0;;;21098:17:43::3;;;;;;;;:::i;20454:899::-;;;21318:24;;-1:-1:-1::0;;;21318:24:43::3;;;;;;;;;;;20454:899;20690:11;:22:::0;;;20858:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;20858:47:43::3;20889:15;-1:-1:-1::0;;;;;20858:47:43::3;;::::0;;20690:22;;20925:52:::3;::::0;20937:7;;20925:52:::3;::::0;;;::::3;20454:899;19503:1856;;;19237:2122:::0;;;;;;:::o;26170:522::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;26359:31:43;::::3;26355:89;;26413:20;;-1:-1:-1::0;;;26413:20:43::3;;;;;;;;;;;26355:89;26485:23;::::0;;-1:-1:-1;;;;;26518:34:43;;::::3;-1:-1:-1::0;;;;;;26518:34:43;::::3;::::0;::::3;::::0;;;26485:23:::3;::::0;;;26567:118:::3;::::0;31087:499;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;31375:22:43::2;31392:4;31375:16;:22::i;:::-;31463:17;::::0;:116:::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;31463:116:43;;-1:-1:-1;;;;;31463:17:43;;::::2;::::0;:29:::2;::::0;:116:::2;::::0;31506:5;;31463:116;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;15263:1346:43:-;4871:13:22;;15517:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;12061:2:82;4862:99:22;;;12043:21:82;12100:2;12080:18;;;12073:30;12139:34;12119:18;;;12112:62;-1:-1:-1;;;12190:18:82;;;12183:44;12244:19;;4862:99:22;11859:410:82;4862:99:22;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;15534:47:43;::::1;15530:105;;15604:20;;-1:-1:-1::0;;;15604:20:43::1;;;;;;;;;;;15530:105;-1:-1:-1::0;;;;;15649:44:43;::::1;15645:102;;15716:20;;-1:-1:-1::0;;;15716:20:43::1;;;;;;;;;;;15645:102;-1:-1:-1::0;;;;;15761:41:43;::::1;15757:96;;15825:17;;-1:-1:-1::0;;;15825:17:43::1;;;;;;;;;;;15757:96;15937:16;:14;:16::i;:::-;15969:48;16006:10;15969:36;:48::i;:::-;15964:119;;16040:32;::::0;-1:-1:-1;;;16040:32:43;;7303:4:82;7291:17;;16040:32:43::1;::::0;::::1;7273:36:82::0;7246:18;;16040:32:43::1;7131:184:82::0;15964:119:43::1;16150:9;:22:::0;;-1:-1:-1;;;;16150:22:43::1;-1:-1:-1::0;;;16150:22:43::1;::::0;::::1;;;::::0;;16202:7:::1;16182:17;:27:::0;16219:11:::1;:25:::0;;;16254:23:::1;:50:::0;;-1:-1:-1;;;;;;16254:50:43;;::::1;-1:-1:-1::0;;;;;16254:50:43;;::::1;::::0;;;::::1;::::0;;;16314:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;16371:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;16419:17:43::1;:27:::0;;1513:6:18;;;;16419:27:43;::::1;;::::0;;16506:18:::1;:16;:18::i;:::-;16540:62;::::0;;12474:4:82;12462:17;;12444:36;;12511:2;12496:18;;12489:34;;;16540:62:43::1;::::0;12417:18:82;16540:62:43::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;7303:4:82;7291:17;;7273:36;;5080:20:22;;7261:2:82;7246:18;5080:20:22;;;;;;;15263:1346:43;;;;;;:::o;23647:567::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;23826:11:43::2;;23818:4;:19:::0;23814:394:::2;;-1:-1:-1::0;;23860:30:43::2;::::0;;::::2;::::0;::::2;::::0;;23869:11:::2;::::0;23860:30;;-1:-1:-1;23860:30:43::2;::::0;::::2;::::0;23885:4:::2;23860:30:::0;;;;;;;;23647:567::o;23814:394::-:2;23921:21;23945:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;23945:17:43::2;::::0;23981:18;;;23977:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;24026:14:::2;24019:21:::0;23647:567;-1:-1:-1;;;23647:567:43:o;23977:78::-:2;24120:17;::::0;24069:12:::2;::::0;24086:31:::2;-1:-1:-1::0;;;;;24086:31:43;::::2;:15;:31;:::i;:::-;24159:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;24159:38:43;;::::2;;::::0;::::2;::::0;24086:51;-1:-1:-1;24084:54:43::2;24159:38:::0;;;;-1:-1:-1;24159:38:43;-1:-1:-1;23814:394:43::2;23647:567:::0;;;:::o;28135:189::-;28270:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;28300:17:43::2;::::0;1144:1:79::2;28135:189:43::0;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;12966:2:82;2308:92:23;;;12948:21:82;13005:2;12985:18;;;12978:30;13044:34;13024:18;;;13017:62;13115:26;13095:18;;;13088:54;13159:19;;2308:92:23;12764:420:82;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;4649:109:45:-;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;13391:2:82;2095:78:17;;;13373:21:82;13430:2;13410:18;;;13403:30;13469:34;13449:18;;;13442:62;-1:-1:-1;;;13520:18:82;;;13513:39;13569:19;;2095:78:17;13189:405:82;2095:78:17;2183:26;2202:6;2183:18;:26::i;22489:413:43:-;22724:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;22748:24:43::2;22804:10;22816:7;22825:8;22835:19;;22787:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22787:68:43;;::::2;::::0;;;;;;22873:22;;22787:68:::2;22873:22:::0;;::::2;::::0;;22489:413;-1:-1:-1;;;;;;;22489:413:43:o;29102:119::-;29181:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29205:9:43::2;::::0;-1:-1:-1;;;29205:9:43;::::2;;;::::0;29102:119::o;25527:231::-;25689:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;25727:23:43::2;::::0;-1:-1:-1;;;;;25727:23:43::2;25527:231:::0;:::o;29868:384::-;30034:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;30079:17:43::3;::::0;;-1:-1:-1;;;;;30106:39:43;;::::3;-1:-1:-1::0;;;;;;30106:39:43;::::3;::::0;::::3;::::0;;;30160:57:::3;::::0;30079:17;::::3;::::0;30106:39;30079:17;;30160:57:::3;::::0;30057:19:::3;::::0;30160:57:::3;30234:11:::0;29868:384;-1:-1:-1;;29868:384:43:o;28556:402::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;28718::43::3;28735:1;28718:18:::0;28714:86:::3;;28752:37;::::0;-1:-1:-1;;;28752:37:43;;14401:2:82;28752:37:43::3;::::0;::::3;14383:21:82::0;14440:2;14420:18;;;14413:30;14479:29;14459:18;;;14452:57;14526:18;;28752:37:43::3;14199:351:82::0;28714:86:43::3;28829:17;::::0;;28856:33;;;;28905:46:::3;::::0;28876:13;;28829:17;;28905:46:::3;::::0;28809:17:::3;::::0;28905:46:::3;28704:254;28556:402:::0;:::o;23030:121::-;23107:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;23133:11:43::2;::::0;23030:121;:::o;29442:133::-;29525:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29551:17:43::2;::::0;-1:-1:-1;;;;;29551:17:43::2;29442:133:::0;:::o;26875:205::-;27017:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;27055:17:43::2;::::0;-1:-1:-1;;;;;27055:17:43::2;26875:205:::0;:::o;24657:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;24809:11:43::2;::::0;24797:56;;24836:7:::2;24797:56;24928:21;24952:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;24952:17:43::2;::::0;25052:18;;;25048:73:::2;;25093:17;;-1:-1:-1::0;;;25093:17:43::2;;;;;;;;;;;25048:73;25225:17;::::0;25191:31:::2;-1:-1:-1::0;;;;;25191:31:43;::::2;:15;:31;:::i;:::-;:51;25187:102;;;25265:13;;-1:-1:-1::0;;;25265:13:43::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;14757:2:82;1654:68:18;;;14739:21:82;;;14776:18;;;14769:30;14835:34;14815:18;;;14808:62;14887:18;;1654:68:18;14555:356:82;1654:68:18;1599:130::o;4067:204:45:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;15307:2:82;3758:56:20;;;15289:21:82;15346:2;15326:18;;;15319:30;15385:34;15365:18;;;15358:62;-1:-1:-1;;;15436:18:82;;;15429:44;15490:19;;3758:56:20;15105:410:82;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;15722:2:82;3636:82:20;;;15704:21:82;15761:2;15741:18;;;15734:30;15800:34;15780:18;;;15773:62;-1:-1:-1;;;15851:18:82;;;15844:39;15900:19;;3636:82:20;15520:405:82;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;16943:97:43:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;17013:20:43::1;:18;:20::i;434:207:80:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:80;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:80:o;794:90:79:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:79::1;:19:::0;;-1:-1:-1;;858:19:79::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;16544:2:82;1878:106:20;;;16526:21:82;16583:2;16563:18;;;16556:30;16622:34;16602:18;;;16595:62;-1:-1:-1;;;16673:18:82;;;16666:43;16726:19;;1878:106:20;16342:409:82;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;16958:2:82;7195:88:20;;;16940:21:82;16997:2;16977:18;;;16970:30;17036:34;17016:18;;;17009:62;-1:-1:-1;;;17087:18:82;;;17080:36;17133:19;;7195:88:20;16756:402:82;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:82;-1:-1:-1;;;;;109:31:82;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:82;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:82;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:82;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:82:o;2254:509::-;2374:6;2382;2390;2398;2406;2459:3;2447:9;2438:7;2434:23;2430:33;2427:53;;;2476:1;2473;2466:12;2427:53;2512:9;2499:23;2489:33;;2569:2;2558:9;2554:18;2541:32;2531:42;;2620:2;2609:9;2605:18;2592:32;2582:42;;2671:2;2660:9;2656:18;2643:32;2633:42;;2694:63;2749:7;2743:3;2732:9;2728:19;2694:63;:::i;:::-;2684:73;;2254:509;;;;;;;;:::o;3040:908::-;3219:6;3227;3235;3243;3251;3304:3;3292:9;3283:7;3279:23;3275:33;3272:53;;;3321:1;3318;3311:12;3272:53;3360:9;3347:23;3410:4;3403:5;3399:16;3392:5;3389:27;3379:55;;3430:1;3427;3420:12;3379:55;3453:5;-1:-1:-1;3505:2:82;3490:18;;3477:32;;-1:-1:-1;3561:2:82;3546:18;;3533:32;3574:53;3533:32;3574:53;:::i;:::-;3646:7;-1:-1:-1;3705:2:82;3690:18;;3677:32;3718:53;3677:32;3718:53;:::i;:::-;3790:7;-1:-1:-1;3849:3:82;3834:19;;3821:33;3863:53;3821:33;3863:53;:::i;:::-;3935:7;3925:17;;;3040:908;;;;;;;;:::o;3953:180::-;4012:6;4065:2;4053:9;4044:7;4040:23;4036:32;4033:52;;;4081:1;4078;4071:12;4033:52;-1:-1:-1;4104:23:82;;3953:180;-1:-1:-1;3953:180:82:o;4746:127::-;4807:10;4802:3;4798:20;4795:1;4788:31;4838:4;4835:1;4828:15;4862:4;4859:1;4852:15;4878:249;4988:2;4969:13;;-1:-1:-1;;4965:27:82;4953:40;;5023:18;5008:34;;5044:22;;;5005:62;5002:88;;;5070:18;;:::i;:::-;5106:2;5099:22;-1:-1:-1;;4878:249:82:o;5132:953::-;5209:6;5217;5270:2;5258:9;5249:7;5245:23;5241:32;5238:52;;;5286:1;5283;5276:12;5238:52;5325:9;5312:23;5344:51;5389:5;5344:51;:::i;:::-;5414:5;-1:-1:-1;5438:2:82;5476:18;;;5463:32;5514:18;5544:14;;;5541:34;;;5571:1;5568;5561:12;5541:34;5609:6;5598:9;5594:22;5584:32;;5654:7;5647:4;5643:2;5639:13;5635:27;5625:55;;5676:1;5673;5666:12;5625:55;5712:2;5699:16;5734:2;5730;5727:10;5724:36;;;5740:18;;:::i;:::-;5789:2;5783:9;;-1:-1:-1;5801:65:82;5856:2;5837:13;;-1:-1:-1;;5833:27:82;5829:36;;5783:9;5801:65;:::i;:::-;5890:2;5882:6;5875:18;5930:7;5925:2;5920;5916;5912:11;5908:20;5905:33;5902:53;;;5951:1;5948;5941:12;5902:53;6007:2;6002;5998;5994:11;5989:2;5981:6;5977:15;5964:46;6052:1;6047:2;6042;6034:6;6030:15;6026:24;6019:35;;6073:6;6063:16;;;;;5132:953;;;;;:::o;6272:646::-;6384:6;6392;6400;6408;6416;6469:3;6457:9;6448:7;6444:23;6440:33;6437:53;;;6486:1;6483;6476:12;6437:53;6509:28;6527:9;6509:28;:::i;:::-;6499:38;;6584:2;6573:9;6569:18;6556:32;6546:42;;6635:2;6624:9;6620:18;6607:32;6597:42;;6690:2;6679:9;6675:18;6662:32;6717:18;6709:6;6706:30;6703:50;;;6749:1;6746;6739:12;6703:50;6788:70;6850:7;6841:6;6830:9;6826:22;6788:70;:::i;:::-;6272:646;;;;-1:-1:-1;6272:646:82;;-1:-1:-1;6877:8:82;;6762:96;6272:646;-1:-1:-1;;;6272:646:82:o;7320:408::-;7522:2;7504:21;;;7561:2;7541:18;;;7534:30;7600:34;7595:2;7580:18;;7573:62;-1:-1:-1;;;7666:2:82;7651:18;;7644:42;7718:3;7703:19;;7320:408::o;7733:::-;7935:2;7917:21;;;7974:2;7954:18;;;7947:30;8013:34;8008:2;7993:18;;7986:62;-1:-1:-1;;;8079:2:82;8064:18;;8057:42;8131:3;8116:19;;7733:408::o;8531:209::-;8563:1;8589;8579:132;;8633:10;8628:3;8624:20;8621:1;8614:31;8668:4;8665:1;8658:15;8696:4;8693:1;8686:15;8579:132;-1:-1:-1;8725:9:82;;8531:209::o;8745:294::-;8838:6;8891:2;8879:9;8870:7;8866:23;8862:32;8859:52;;;8907:1;8904;8897:12;8859:52;8939:9;8933:16;8958:51;9003:5;8958:51;:::i;9044:646::-;9300:3;9285:19;;9323:6;;9362;9289:9;9338:35;9393:18;;9453:6;9477:1;9487:197;9501:4;9498:1;9495:11;9487:197;;;9563:13;;9551:26;;9600:4;9624:12;;;;9659:15;;;;9521:4;9514:12;9487:197;;;9491:3;;;9044:646;;;;;:::o;9695:179::-;9730:3;9772:1;9754:16;9751:23;9748:120;;;9818:1;9815;9812;9797:23;-1:-1:-1;9855:1:82;9849:8;9844:3;9840:18;9695:179;:::o;9879:671::-;9918:3;9960:4;9942:16;9939:26;9936:39;;;9879:671;:::o;9936:39::-;10002:2;9996:9;-1:-1:-1;;10067:16:82;10063:25;;10060:1;9996:9;10039:50;10118:4;10112:11;10142:16;10177:18;10248:2;10241:4;10233:6;10229:17;10226:25;10221:2;10213:6;10210:14;10207:45;10204:58;;;10255:5;;;;;9879:671;:::o;10204:58::-;10292:6;10286:4;10282:17;10271:28;;10328:3;10322:10;10355:2;10347:6;10344:14;10341:27;;;10361:5;;;;;;9879:671;:::o;10341:27::-;10445:2;10426:16;10420:4;10416:27;10412:36;10405:4;10396:6;10391:3;10387:16;10383:27;10380:69;10377:82;;;10452:5;;;;;;9879:671;:::o;10377:82::-;10468:57;10519:4;10510:6;10502;10498:19;10494:30;10488:4;10468:57;:::i;:::-;-1:-1:-1;10541:3:82;;9879:671;-1:-1:-1;;;;;9879:671:82:o;10555:250::-;10640:1;10650:113;10664:6;10661:1;10658:13;10650:113;;;10740:11;;;10734:18;10721:11;;;10714:39;10686:2;10679:10;10650:113;;;-1:-1:-1;;10797:1:82;10779:16;;10772:27;10555:250::o;10810:396::-;10959:2;10948:9;10941:21;10922:4;10991:6;10985:13;11034:6;11029:2;11018:9;11014:18;11007:34;11050:79;11122:6;11117:2;11106:9;11102:18;11097:2;11089:6;11085:15;11050:79;:::i;:::-;11190:2;11169:15;-1:-1:-1;;11165:29:82;11150:45;;;;11197:2;11146:54;;10810:396;-1:-1:-1;;10810:396:82:o;11211:643::-;11467:3;11452:19;;11490:6;;11529;11456:9;11505:35;11560:18;;11620:6;11644:1;11654:194;11668:4;11665:1;11662:11;11654:194;;;11727:13;;11715:26;;11764:4;11788:12;;;;11823:15;;;;11688:1;11681:9;11654:194;;12534:225;12601:9;;;12622:11;;;12619:134;;;12675:10;12670:3;12666:20;12663:1;12656:31;12710:4;12707:1;12700:15;12738:4;12735:1;12728:15;13599:595;13908:3;13886:16;;;-1:-1:-1;;;;;;13882:43:82;13870:56;;13951:1;13942:11;;13935:27;;;13987:2;13978:12;;13971:28;;;-1:-1:-1;;;;;;14011:31:82;;14008:51;;;14055:1;14052;14045:12;14008:51;14089:6;14086:1;14082:14;14140:6;14132;14127:2;14122:3;14118:12;14105:42;14167:16;;;;14185:2;14163:25;;13599:595;-1:-1:-1;;;;;;13599:595:82:o;14916:184::-;14986:6;15039:2;15027:9;15018:7;15014:23;15010:32;15007:52;;;15055:1;15052;15045:12;15007:52;-1:-1:-1;15078:16:82;;14916:184;-1:-1:-1;14916:184:82:o;15930:407::-;16132:2;16114:21;;;16171:2;16151:18;;;16144:30;16210:34;16205:2;16190:18;;16183:62;-1:-1:-1;;;16276:2:82;16261:18;;16254:41;16327:3;16312:19;;15930:407::o;17163:287::-;17292:3;17330:6;17324:13;17346:66;17405:6;17400:3;17393:4;17385:6;17381:17;17346:66;:::i;:::-;17428:16;;;;;17163:287;-1:-1:-1;;17163:287:82:o", "linkReferences": {}, "immutableReferences": { "29832": [ @@ -976,7 +976,7 @@ "upgradeToAndCall(address,bytes)": "4f1ef286", "verifyProof(uint256,uint256,uint256,uint256,uint256[8])": "354ca120" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierLUT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the insertions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"details\":\"This error is no longer in use as we now verify the commitments off-chain within the circuit no need to check for reduced elements or invalid commitments.preserved for ABI backwards compatibility with V1, no longer used, all elements are validated by the circuit\",\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"InvalidStateBridgeAddress()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"MismatchedInputLengths()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"StateBridgeAlreadyDisabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"StateBridgeAlreadyEnabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.preserved for ABI backwards compatibility with V1, no longer used, all elements come out reduced from the circuit\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\",\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.InvalidVerifierLUT if `_batchInsertionVerifiers` or `_batchUpdateVerifiers` is set to the zero addressInvalidVerifier if `_semaphoreVerifier` is set to the zero address\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `newTable` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"custom:reverts\":\"InvalidVerifier if `newVerifier` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"stateVariables\":{\"SNARK_SCALAR_FIELD\":{\"details\":\"Used internally to ensure that the proof input is scaled to within the field `Fr`.\"},\"_identityOperator\":{\"details\":\"The identity operator defaults to being the same as the owner.\"},\"_stateBridge\":{\"details\":\"preserved for storage reasons, no longer used\"},\"identityUpdateVerifiers\":{\"details\":\"preserved for storage reasons, no longer used\"},\"rootHistoryExpiry\":{\"details\":\"This prevents proofs getting invalidated in the mempool by another tx modifying the group.\"}},\"title\":\"WorldID Identity Manager Implementation Version 1\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"InvalidVerifier()\":[{\"notice\":\"Thrown when a verifier is initialized to be the zero address\"}],\"InvalidVerifierLUT()\":[{\"notice\":\"Thrown when a verifier lookup table is initialized to be the zero address\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"constructor\":{\"notice\":\"Constructs the contract.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV1.sol\":\"WorldIDIdentityManagerImplV1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x75e9235f2cda58708d4a8b00c101fa7da4ae1627435569a933ca6cc0d4a0783e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67a1a9a738074036270f02e42fcc4548413e3c821da3f59bc8b42ad0e49e4dcc\",\"dweb:/ipfs/QmcCroTkesx2yMbmCFJ7NiNL8xY4zqLStQzSETetCGVsCK\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b\",\"dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierLUT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the insertions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"details\":\"This error is no longer in use as we now verify the commitments off-chain within the circuit no need to check for reduced elements or invalid commitments.preserved for ABI backwards compatibility with V1, no longer used, all elements are validated by the circuit\",\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"InvalidStateBridgeAddress()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"MismatchedInputLengths()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"StateBridgeAlreadyDisabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"StateBridgeAlreadyEnabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.preserved for ABI backwards compatibility with V1, no longer used, all elements come out reduced from the circuit\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\",\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.InvalidVerifierLUT if `_batchInsertionVerifiers` or `_batchUpdateVerifiers` is set to the zero addressInvalidVerifier if `_semaphoreVerifier` is set to the zero address\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `newTable` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"custom:reverts\":\"InvalidVerifier if `newVerifier` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"stateVariables\":{\"SNARK_SCALAR_FIELD\":{\"details\":\"Used internally to ensure that the proof input is scaled to within the field `Fr`.\"},\"_identityOperator\":{\"details\":\"The identity operator defaults to being the same as the owner.\"},\"_stateBridge\":{\"details\":\"preserved for storage reasons, no longer used\"},\"identityUpdateVerifiers\":{\"details\":\"preserved for storage reasons, no longer used\"},\"rootHistoryExpiry\":{\"details\":\"This prevents proofs getting invalidated in the mempool by another tx modifying the group.\"}},\"title\":\"WorldID Identity Manager Implementation Version 1\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"InvalidVerifier()\":[{\"notice\":\"Thrown when a verifier is initialized to be the zero address\"}],\"InvalidVerifierLUT()\":[{\"notice\":\"Thrown when a verifier lookup table is initialized to be the zero address\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"constructor\":{\"notice\":\"Constructs the contract.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV1.sol\":\"WorldIDIdentityManagerImplV1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x75e9235f2cda58708d4a8b00c101fa7da4ae1627435569a933ca6cc0d4a0783e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67a1a9a738074036270f02e42fcc4548413e3c821da3f59bc8b42ad0e49e4dcc\",\"dweb:/ipfs/QmcCroTkesx2yMbmCFJ7NiNL8xY4zqLStQzSETetCGVsCK\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b\",\"dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.21+commit.d9974bed" @@ -1974,6 +1974,7 @@ "@zk-kit/=lib/zk-kit/packages/", "contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "ds-test/=lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", @@ -2199,7 +2200,7 @@ 35497 ], "SemaphoreTreeDepthValidator": [ - 48535 + 49392 ], "VerifierLookupTable": [ 35416 @@ -2365,7 +2366,7 @@ "file": "./utils/SemaphoreTreeDepthValidator.sol", "nameLocation": "-1:-1:-1", "scope": 34870, - "sourceUnit": 48536, + "sourceUnit": 49393, "symbolAliases": [ { "foreign": { @@ -2373,7 +2374,7 @@ "name": "SemaphoreTreeDepthValidator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48535, + "referencedDeclaration": 49392, "src": "362:27:43", "typeDescriptions": {} }, @@ -5001,10 +5002,10 @@ "name": "SemaphoreTreeDepthValidator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48535, + "referencedDeclaration": 49392, "src": "15969:27:43", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SemaphoreTreeDepthValidator_$48535_$", + "typeIdentifier": "t_type$_t_contract$_SemaphoreTreeDepthValidator_$49392_$", "typeString": "type(library SemaphoreTreeDepthValidator)" } }, @@ -5016,7 +5017,7 @@ "memberLocation": "15997:8:43", "memberName": "validate", "nodeType": "MemberAccess", - "referencedDeclaration": 48534, + "referencedDeclaration": 49391, "src": "15969:36:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", @@ -5443,7 +5444,7 @@ "name": "__setInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 48488, + "referencedDeclaration": 49345, "src": "16506:16:43", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -6968,7 +6969,7 @@ "19466:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "19466:15:43" }, "nodeType": "ModifierInvocation", @@ -7458,7 +7459,7 @@ "22699:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "22699:15:43" }, "nodeType": "ModifierInvocation", @@ -7697,7 +7698,7 @@ "23082:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "23082:15:43" }, "nodeType": "ModifierInvocation", @@ -8367,7 +8368,7 @@ "23750:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "23750:15:43" }, "nodeType": "ModifierInvocation", @@ -8871,7 +8872,7 @@ "24727:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "24727:15:43" }, "nodeType": "ModifierInvocation", @@ -9037,7 +9038,7 @@ "25656:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "25656:15:43" }, "nodeType": "ModifierInvocation", @@ -9619,7 +9620,7 @@ "26307:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "26307:15:43" }, "nodeType": "ModifierInvocation", @@ -9811,7 +9812,7 @@ "26984:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "26984:15:43" }, "nodeType": "ModifierInvocation", @@ -10393,7 +10394,7 @@ "27586:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "27586:15:43" }, "nodeType": "ModifierInvocation", @@ -10540,7 +10541,7 @@ "28237:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "28237:15:43" }, "nodeType": "ModifierInvocation", @@ -10924,7 +10925,7 @@ "28666:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "28666:15:43" }, "nodeType": "ModifierInvocation", @@ -11061,7 +11062,7 @@ "29156:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "29156:15:43" }, "nodeType": "ModifierInvocation", @@ -11182,7 +11183,7 @@ "29500:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "29500:15:43" }, "nodeType": "ModifierInvocation", @@ -11467,7 +11468,7 @@ "29983:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "29983:15:43" }, "nodeType": "ModifierInvocation", @@ -11811,7 +11812,7 @@ "31299:15:43" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "31299:15:43" }, "nodeType": "ModifierInvocation", @@ -12220,7 +12221,7 @@ 35497, 35426, 35181, - 48506, + 49363, 29937, 29622, 29253, @@ -12248,7 +12249,7 @@ 35157, 35422, 35425, - 48477 + 49334 ], "usedEvents": [ 29037, diff --git a/sol/WorldIDIdentityManagerImplV2.json b/sol/WorldIDIdentityManagerImplV2.json index 7bde4cfe..2b471d8f 100644 --- a/sol/WorldIDIdentityManagerImplV2.json +++ b/sol/WorldIDIdentityManagerImplV2.json @@ -895,13 +895,13 @@ } ], "bytecode": { - "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161328e62000238600039600081816105ad015281816105f6015281816106fb0152818161073b01528181610b0001528181610b4001528181610c1e01528181610c5e01528181610d0a01528181610d4a01528181610e5401528181610e9401528181611119015281816111590152818161120b0152818161124b015281816113a1015281816113e10152818161146c015281816114ac0152818161152801528181611672015281816116b201528181611775015281816117b50152818161184c0152818161188c015281816119220152818161196201528181611a4201528181611a8201528181611b5e01528181611b9e01528181611cb501528181611cf501528181611d8001528181611dc00152818161206d015281816120ad015281816121430152818161218301528181612217015281816122570152818161243d015261247d015261328e6000f3fe6080604052600436106101cd5760003560e01c806379ba5097116100f7578063c70aa72711610095578063f134b6ca11610064578063f134b6ca14610539578063f2038f951461054e578063f2358e1d14610563578063f2fde38b1461058357600080fd5b8063c70aa727146104c6578063d7b0fef1146104e6578063e30c3978146104fb578063ea10fbbe1461051957600080fd5b80638e5cdd50116100d15780638e5cdd501461044a5780638fc22e9f14610471578063a7bba58214610486578063aa4a729e146104a657600080fd5b806379ba5097146103f75780638c76a9091461040c5780638da5cb5b1461042c57600080fd5b806338c870651161016f5780634f1ef2861161013e5780634f1ef2861461037657806352d1902d14610389578063561f204b1461039e578063715018a6146103e257600080fd5b806338c87065146102c75780633e8919b6146102e75780633f7c178d1461031457806343f974cb1461036157600080fd5b80632f059fca116101ab5780632f059fca1461023457806331e4e99214610254578063354ca120146102875780633659cfe6146102a757600080fd5b80630e3a12f3146101d25780632217b211146101f457806329b6eca914610214575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612a3a565b6105a3565b005b34801561020057600080fd5b506101f261020f366004612ac9565b6106f1565b34801561022057600080fd5b506101f261022f366004612a3a565b6109f3565b34801561024057600080fd5b506101f261024f366004612a3a565b610af6565b34801561026057600080fd5b5061027461026f366004612b88565b610c12565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506101f26102a2366004612bef565b610d00565b3480156102b357600080fd5b506101f26102c2366004612a3a565b610e4a565b3480156102d357600080fd5b506101f26102e2366004612c2e565b610f12565b3480156102f357600080fd5b506102fc61110d565b6040516001600160a01b03909116815260200161027e565b34801561032057600080fd5b5061033461032f366004612c9c565b6111e4565b60408051825181526020808401516001600160801b0316908201529181015115159082015260600161027e565b34801561036d57600080fd5b50610274611395565b6101f2610384366004612cf8565b611462565b34801561039557600080fd5b5061027461151b565b3480156103aa57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610334565b3480156103ee57600080fd5b506101f26115ce565b34801561040357600080fd5b506101f26115ef565b34801561041857600080fd5b50610274610427366004612da4565b611666565b34801561043857600080fd5b506033546001600160a01b03166102fc565b34801561045657600080fd5b5061045f611769565b60405160ff909116815260200161027e565b34801561047d57600080fd5b506102fc611840565b34801561049257600080fd5b506102fc6104a1366004612a3a565b611916565b3480156104b257600080fd5b506101f26104c1366004612a3a565b611a38565b3480156104d257600080fd5b506101f26104e1366004612c9c565b611b54565b3480156104f257600080fd5b50610274611ca9565b34801561050757600080fd5b506065546001600160a01b03166102fc565b34801561052557600080fd5b506101f2610534366004612e0c565b611d76565b34801561054557600080fd5b506102fc612061565b34801561055a57600080fd5b506102fc612137565b34801561056f57600080fd5b506101f261057e366004612c9c565b61220d565b34801561058f57600080fd5b506101f261059e366004612a3a565b61234a565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f45760405162461bcd60e51b81526004016105eb90612e76565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106266123bb565b6001600160a01b03161461064c5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661066f57604051630103019560e11b815260040160405180910390fd5b6106776123d7565b6001600160a01b03811661069e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107395760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661076b6123bb565b6001600160a01b0316146107915760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166107b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146107e25760405163472511eb60e11b81523360048201526024016105eb565b61012e5485146108145761012e5460405163542fced960e11b81526105eb918791600401918252602082015260400190565b60006108238587848787611666565b905060006108517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610901918d9190600401612f55565b600060405180830381600087803b15801561091b57600080fd5b505af192505050801561092c575060015b61098c57610938612f90565b806308c379a003610971575061094c612fab565b806109575750610973565b8060405162461bcd60e51b81526004016105eb9190613059565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546001600160801b031916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b600054600290610100900460ff16158015610a15575060005460ff8083169116105b610a315760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038216610a6c57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b0384161790556040517fe416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a90600090a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b706123bb565b6001600160a01b031614610b965760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610bb957604051630103019560e11b815260040160405180910390fd5b610bc16123d7565b6001600160a01b038116610be857604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106c4565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c5c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c8e6123bb565b6001600160a01b031614610cb45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610cd757604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d485760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7a6123bb565b6001600160a01b031614610da05760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610dc357604051630103019560e11b815260040160405180910390fd5b610dcc8561220d565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610e1e918591906004016130da565b60006040518083038186803b158015610e3657600080fd5b505afa1580156109e8573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e925760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ec46123bb565b6001600160a01b031614610eea5760405162461bcd60e51b81526004016105eb90612ec2565b610ef381612433565b60408051600080825260208201909252610f0f918391906124db565b50565b600054600190610100900460ff16158015610f34575060005460ff8083169116105b610f505760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038416610f8b57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610fb257604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610fd95760405163baa3de5f60e01b815260040160405180910390fd5b610fe161264b565b610fea8661267a565b61100c57604051630220cee360e61b815260ff871660048201526024016105eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d80549190931691161790556110886126a1565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111575760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111896123bb565b6001600160a01b0316146111af5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166111d257604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112495760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127b6123bb565b6001600160a01b0316146112a15760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166112c457604051630103019560e11b815260040160405180910390fd5b61012e5482036112f35750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b03169081900361134e5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906113686001600160801b0384164261310b565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113df5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114116123bb565b6001600160a01b0316146114375760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661145a57604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114aa5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114dc6123bb565b6001600160a01b0316146115025760405162461bcd60e51b81526004016105eb90612ec2565b61150b82612433565b611517828260016124db565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115bb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105eb565b5060008051602061321283398151915290565b6115d66123d7565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b0316811461165d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105eb565b610f0f816126d7565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116b05760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e26123bb565b6001600160a01b0316146117085760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661172b57604051630103019560e11b815260040160405180910390fd5b6000868686868660405160200161174695949392919061312c565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117b35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117e56123bb565b6001600160a01b03161461180b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661182e57604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361188a5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118bc6123bb565b6001600160a01b0316146118e25760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661190557604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119605760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119926123bb565b6001600160a01b0316146119b85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166119db57604051630103019560e11b815260040160405180910390fd5b6119e36123d7565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a805760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab26123bb565b6001600160a01b031614611ad85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611afb57604051630103019560e11b815260040160405180910390fd5b611b036123d7565b6001600160a01b038116611b2a57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b038381166001600160a01b03198316811790935516908160026106c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b9c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bce6123bb565b6001600160a01b031614611bf45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611c1757604051630103019560e11b815260040160405180910390fd5b611c1f6123d7565b80600003611c6f5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016105eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cf35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d256123bb565b6001600160a01b031614611d4b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611d6e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dbe5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611df06123bb565b6001600160a01b031614611e165760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611e3957604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e675760405163472511eb60e11b81523360048201526024016105eb565b611e72600484612f24565b15611e90576040516308f3ed5160e41b815260040160405180910390fd5b6000611e9d60048561317d565b905061012e548314611ed15761012e5460405163542fced960e11b81526105eb918591600401918252602082015260400190565b6000611ee08686868686610c12565b90506000611f0e7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013554604051638a283fc360e01b815263ffffffff861660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991611fc3918d9190600401612f55565b600060405180830381600087803b158015611fdd57600080fd5b505af1925050508015611fee575060015b611ffa57610938612f90565b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120ab5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120dd6123bb565b6001600160a01b0316146121035760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661212657604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121815760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121b36123bb565b6001600160a01b0316146121d95760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166121fc57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122555760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122876123bb565b6001600160a01b0316146122ad5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166122d057604051630103019560e11b815260040160405180910390fd5b61012e548114610f0f57600081815261012f60205260408120546001600160801b0316908190036123145760405163ddae3b7160e01b815260040160405180910390fd5b6101305461232b6001600160801b0383164261310b565b111561151757604051631d739acf60e11b815260040160405180910390fd5b6123526123d7565b606580546001600160a01b0383166001600160a01b031990911681179091556123836033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020613212833981519152546001600160a01b031690565b6033546001600160a01b031633146124315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105eb565b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361247b5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124ad6123bb565b6001600160a01b0316146124d35760405162461bcd60e51b81526004016105eb90612ec2565b610f0f6123d7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125135761250e836126f0565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561256d575060408051601f3d908101601f1916820190925261256a91810190613191565b60015b6125d05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105eb565b600080516020613212833981519152811461263f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105eb565b5061250e83838361278c565b600054610100900460ff166126725760405162461bcd60e51b81526004016105eb906131aa565b6124316127b7565b60006010602060ff8416821180159061269957508060ff168460ff1611155b949350505050565b600054610100900460ff166126c85760405162461bcd60e51b81526004016105eb906131aa565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610f0f816127ee565b6001600160a01b0381163b61275d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105eb565b60008051602061321283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61279583612840565b6000825111806127a25750805b1561250e576127b18383612880565b50505050565b600054610100900460ff166127de5760405162461bcd60e51b81526004016105eb906131aa565b6127e6612976565b6124316129a5565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612849816126f0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6128e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105eb565b600080846001600160a01b03168460405161290391906131f5565b600060405180830381855af49150503d806000811461293e576040519150601f19603f3d011682016040523d82523d6000602084013e612943565b606091505b509150915061296b8282604051806060016040528060278152602001613232602791396129cc565b925050505b92915050565b600054610100900460ff1661299d5760405162461bcd60e51b81526004016105eb906131aa565b6124316129e5565b600054610100900460ff166124315760405162461bcd60e51b81526004016105eb906131aa565b606083156129db575081611347565b6113478383612a15565b600054610100900460ff16612a0c5760405162461bcd60e51b81526004016105eb906131aa565b612431336126d7565b8151156109575781518083602001fd5b6001600160a01b0381168114610f0f57600080fd5b600060208284031215612a4c57600080fd5b813561134781612a25565b80610100810183101561297057600080fd5b803563ffffffff8116811461139057600080fd5b60008083601f840112612a8f57600080fd5b50813567ffffffffffffffff811115612aa757600080fd5b6020830191508360208260051b8501011115612ac257600080fd5b9250929050565b6000806000806000806101808789031215612ae357600080fd5b612aed8888612a57565b95506101008701359450612b046101208801612a69565b935061014087013567ffffffffffffffff811115612b2157600080fd5b612b2d89828a01612a7d565b979a969950949794969561016090950135949350505050565b60008083601f840112612b5857600080fd5b50813567ffffffffffffffff811115612b7057600080fd5b602083019150836020828501011115612ac257600080fd5b600080600080600060808688031215612ba057600080fd5b853567ffffffffffffffff811115612bb757600080fd5b612bc388828901612b46565b9096509450506020860135925060408601359150612be360608701612a69565b90509295509295909350565b60008060008060006101808688031215612c0857600080fd5b85359450602086013593506040860135925060608601359150612be38760808801612a57565b600080600080600060a08688031215612c4657600080fd5b853560ff81168114612c5757600080fd5b9450602086013593506040860135612c6e81612a25565b92506060860135612c7e81612a25565b91506080860135612c8e81612a25565b809150509295509295909350565b600060208284031215612cae57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612cf157612cf1612cb5565b6040525050565b60008060408385031215612d0b57600080fd5b8235612d1681612a25565b915060208381013567ffffffffffffffff80821115612d3457600080fd5b818601915086601f830112612d4857600080fd5b813581811115612d5a57612d5a612cb5565b6040519150612d72601f8201601f1916850183612ccb565b8082528784828501011115612d8657600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600080600060808688031215612dbc57600080fd5b612dc586612a69565b94506020860135935060408601359250606086013567ffffffffffffffff811115612def57600080fd5b612dfb88828901612a7d565b969995985093965092949392505050565b60008060008060006101608688031215612e2557600080fd5b612e2f8787612a57565b945061010086013567ffffffffffffffff811115612e4c57600080fd5b612e5888828901612b46565b96999098509596610120810135966101409091013595509350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082612f3357612f33612f0e565b500690565b600060208284031215612f4a57600080fd5b815161134781612a25565b61012081016101008085843782018360005b6001811015612f86578151835260209283019290910190600101612f67565b5050509392505050565b600060033d11156111e15760046000803e5060005160e01c90565b600060443d1015612fb95790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612fe957505050505090565b82850191508151818111156130015750505050505090565b843d870101602082850101111561301b5750505050505090565b61302a60208286010187612ccb565b509095945050505050565b60005b83811015613050578181015183820152602001613038565b50506000910152565b6020815260008251806020840152613078816040850160208701613035565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b61018081016101008085843782018360005b6004811015612f865781518352602092830192909101906001016130ec565b8181038181111561297057634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561316157600080fd5b8260051b80856044850137919091016044019695505050505050565b60008261318c5761318c612f0e565b500490565b6000602082840312156131a357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613207818460208701613035565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200c1f878bc397d9918c135c7b89e86999234f14244cede0aad31ed2828432cd2564736f6c63430008150033", - "sourceMap": "442:11955:44:-:0;;;1332:4:23;1289:48;;442:11955:44;;;;;;;;;-1:-1:-1;13736:22:43;:20;:22::i;:::-;442:11955:44;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:77;5987:66:22;;;198:21:77;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:77;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:77;;;6162:28:22;;552:2:77;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:77:-;442:11955:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161328e62000238600039600081816105ad015281816105f6015281816106fb0152818161073b01528181610b0001528181610b4001528181610c1e01528181610c5e01528181610d0a01528181610d4a01528181610e5401528181610e9401528181611119015281816111590152818161120b0152818161124b015281816113a1015281816113e10152818161146c015281816114ac0152818161152801528181611672015281816116b201528181611775015281816117b50152818161184c0152818161188c015281816119220152818161196201528181611a4201528181611a8201528181611b5e01528181611b9e01528181611cb501528181611cf501528181611d8001528181611dc00152818161206d015281816120ad015281816121430152818161218301528181612217015281816122570152818161243d015261247d015261328e6000f3fe6080604052600436106101cd5760003560e01c806379ba5097116100f7578063c70aa72711610095578063f134b6ca11610064578063f134b6ca14610539578063f2038f951461054e578063f2358e1d14610563578063f2fde38b1461058357600080fd5b8063c70aa727146104c6578063d7b0fef1146104e6578063e30c3978146104fb578063ea10fbbe1461051957600080fd5b80638e5cdd50116100d15780638e5cdd501461044a5780638fc22e9f14610471578063a7bba58214610486578063aa4a729e146104a657600080fd5b806379ba5097146103f75780638c76a9091461040c5780638da5cb5b1461042c57600080fd5b806338c870651161016f5780634f1ef2861161013e5780634f1ef2861461037657806352d1902d14610389578063561f204b1461039e578063715018a6146103e257600080fd5b806338c87065146102c75780633e8919b6146102e75780633f7c178d1461031457806343f974cb1461036157600080fd5b80632f059fca116101ab5780632f059fca1461023457806331e4e99214610254578063354ca120146102875780633659cfe6146102a757600080fd5b80630e3a12f3146101d25780632217b211146101f457806329b6eca914610214575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612a3a565b6105a3565b005b34801561020057600080fd5b506101f261020f366004612ac9565b6106f1565b34801561022057600080fd5b506101f261022f366004612a3a565b6109f3565b34801561024057600080fd5b506101f261024f366004612a3a565b610af6565b34801561026057600080fd5b5061027461026f366004612b88565b610c12565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506101f26102a2366004612bef565b610d00565b3480156102b357600080fd5b506101f26102c2366004612a3a565b610e4a565b3480156102d357600080fd5b506101f26102e2366004612c2e565b610f12565b3480156102f357600080fd5b506102fc61110d565b6040516001600160a01b03909116815260200161027e565b34801561032057600080fd5b5061033461032f366004612c9c565b6111e4565b60408051825181526020808401516001600160801b0316908201529181015115159082015260600161027e565b34801561036d57600080fd5b50610274611395565b6101f2610384366004612cf8565b611462565b34801561039557600080fd5b5061027461151b565b3480156103aa57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610334565b3480156103ee57600080fd5b506101f26115ce565b34801561040357600080fd5b506101f26115ef565b34801561041857600080fd5b50610274610427366004612da4565b611666565b34801561043857600080fd5b506033546001600160a01b03166102fc565b34801561045657600080fd5b5061045f611769565b60405160ff909116815260200161027e565b34801561047d57600080fd5b506102fc611840565b34801561049257600080fd5b506102fc6104a1366004612a3a565b611916565b3480156104b257600080fd5b506101f26104c1366004612a3a565b611a38565b3480156104d257600080fd5b506101f26104e1366004612c9c565b611b54565b3480156104f257600080fd5b50610274611ca9565b34801561050757600080fd5b506065546001600160a01b03166102fc565b34801561052557600080fd5b506101f2610534366004612e0c565b611d76565b34801561054557600080fd5b506102fc612061565b34801561055a57600080fd5b506102fc612137565b34801561056f57600080fd5b506101f261057e366004612c9c565b61220d565b34801561058f57600080fd5b506101f261059e366004612a3a565b61234a565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f45760405162461bcd60e51b81526004016105eb90612e76565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106266123bb565b6001600160a01b03161461064c5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661066f57604051630103019560e11b815260040160405180910390fd5b6106776123d7565b6001600160a01b03811661069e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107395760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661076b6123bb565b6001600160a01b0316146107915760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166107b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146107e25760405163472511eb60e11b81523360048201526024016105eb565b61012e5485146108145761012e5460405163542fced960e11b81526105eb918791600401918252602082015260400190565b60006108238587848787611666565b905060006108517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610901918d9190600401612f55565b600060405180830381600087803b15801561091b57600080fd5b505af192505050801561092c575060015b61098c57610938612f90565b806308c379a003610971575061094c612fab565b806109575750610973565b8060405162461bcd60e51b81526004016105eb9190613059565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546001600160801b031916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b600054600290610100900460ff16158015610a15575060005460ff8083169116105b610a315760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038216610a6c57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b0384161790556040517fe416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a90600090a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b706123bb565b6001600160a01b031614610b965760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610bb957604051630103019560e11b815260040160405180910390fd5b610bc16123d7565b6001600160a01b038116610be857604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106c4565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c5c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c8e6123bb565b6001600160a01b031614610cb45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610cd757604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d485760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7a6123bb565b6001600160a01b031614610da05760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610dc357604051630103019560e11b815260040160405180910390fd5b610dcc8561220d565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610e1e918591906004016130da565b60006040518083038186803b158015610e3657600080fd5b505afa1580156109e8573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e925760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ec46123bb565b6001600160a01b031614610eea5760405162461bcd60e51b81526004016105eb90612ec2565b610ef381612433565b60408051600080825260208201909252610f0f918391906124db565b50565b600054600190610100900460ff16158015610f34575060005460ff8083169116105b610f505760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038416610f8b57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610fb257604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610fd95760405163baa3de5f60e01b815260040160405180910390fd5b610fe161264b565b610fea8661267a565b61100c57604051630220cee360e61b815260ff871660048201526024016105eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d80549190931691161790556110886126a1565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111575760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111896123bb565b6001600160a01b0316146111af5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166111d257604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112495760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127b6123bb565b6001600160a01b0316146112a15760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166112c457604051630103019560e11b815260040160405180910390fd5b61012e5482036112f35750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b03169081900361134e5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906113686001600160801b0384164261310b565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113df5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114116123bb565b6001600160a01b0316146114375760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661145a57604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114aa5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114dc6123bb565b6001600160a01b0316146115025760405162461bcd60e51b81526004016105eb90612ec2565b61150b82612433565b611517828260016124db565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115bb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105eb565b5060008051602061321283398151915290565b6115d66123d7565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b0316811461165d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105eb565b610f0f816126d7565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116b05760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e26123bb565b6001600160a01b0316146117085760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661172b57604051630103019560e11b815260040160405180910390fd5b6000868686868660405160200161174695949392919061312c565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117b35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117e56123bb565b6001600160a01b03161461180b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661182e57604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361188a5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118bc6123bb565b6001600160a01b0316146118e25760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661190557604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119605760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119926123bb565b6001600160a01b0316146119b85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166119db57604051630103019560e11b815260040160405180910390fd5b6119e36123d7565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a805760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab26123bb565b6001600160a01b031614611ad85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611afb57604051630103019560e11b815260040160405180910390fd5b611b036123d7565b6001600160a01b038116611b2a57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b038381166001600160a01b03198316811790935516908160026106c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b9c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bce6123bb565b6001600160a01b031614611bf45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611c1757604051630103019560e11b815260040160405180910390fd5b611c1f6123d7565b80600003611c6f5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016105eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cf35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d256123bb565b6001600160a01b031614611d4b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611d6e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dbe5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611df06123bb565b6001600160a01b031614611e165760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611e3957604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e675760405163472511eb60e11b81523360048201526024016105eb565b611e72600484612f24565b15611e90576040516308f3ed5160e41b815260040160405180910390fd5b6000611e9d60048561317d565b905061012e548314611ed15761012e5460405163542fced960e11b81526105eb918591600401918252602082015260400190565b6000611ee08686868686610c12565b90506000611f0e7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013554604051638a283fc360e01b815263ffffffff861660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991611fc3918d9190600401612f55565b600060405180830381600087803b158015611fdd57600080fd5b505af1925050508015611fee575060015b611ffa57610938612f90565b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120ab5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120dd6123bb565b6001600160a01b0316146121035760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661212657604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121815760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121b36123bb565b6001600160a01b0316146121d95760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166121fc57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122555760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122876123bb565b6001600160a01b0316146122ad5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166122d057604051630103019560e11b815260040160405180910390fd5b61012e548114610f0f57600081815261012f60205260408120546001600160801b0316908190036123145760405163ddae3b7160e01b815260040160405180910390fd5b6101305461232b6001600160801b0383164261310b565b111561151757604051631d739acf60e11b815260040160405180910390fd5b6123526123d7565b606580546001600160a01b0383166001600160a01b031990911681179091556123836033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020613212833981519152546001600160a01b031690565b6033546001600160a01b031633146124315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105eb565b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361247b5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124ad6123bb565b6001600160a01b0316146124d35760405162461bcd60e51b81526004016105eb90612ec2565b610f0f6123d7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125135761250e836126f0565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561256d575060408051601f3d908101601f1916820190925261256a91810190613191565b60015b6125d05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105eb565b600080516020613212833981519152811461263f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105eb565b5061250e83838361278c565b600054610100900460ff166126725760405162461bcd60e51b81526004016105eb906131aa565b6124316127b7565b60006010602060ff8416821180159061269957508060ff168460ff1611155b949350505050565b600054610100900460ff166126c85760405162461bcd60e51b81526004016105eb906131aa565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610f0f816127ee565b6001600160a01b0381163b61275d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105eb565b60008051602061321283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61279583612840565b6000825111806127a25750805b1561250e576127b18383612880565b50505050565b600054610100900460ff166127de5760405162461bcd60e51b81526004016105eb906131aa565b6127e6612976565b6124316129a5565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612849816126f0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6128e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105eb565b600080846001600160a01b03168460405161290391906131f5565b600060405180830381855af49150503d806000811461293e576040519150601f19603f3d011682016040523d82523d6000602084013e612943565b606091505b509150915061296b8282604051806060016040528060278152602001613232602791396129cc565b925050505b92915050565b600054610100900460ff1661299d5760405162461bcd60e51b81526004016105eb906131aa565b6124316129e5565b600054610100900460ff166124315760405162461bcd60e51b81526004016105eb906131aa565b606083156129db575081611347565b6113478383612a15565b600054610100900460ff16612a0c5760405162461bcd60e51b81526004016105eb906131aa565b612431336126d7565b8151156109575781518083602001fd5b6001600160a01b0381168114610f0f57600080fd5b600060208284031215612a4c57600080fd5b813561134781612a25565b80610100810183101561297057600080fd5b803563ffffffff8116811461139057600080fd5b60008083601f840112612a8f57600080fd5b50813567ffffffffffffffff811115612aa757600080fd5b6020830191508360208260051b8501011115612ac257600080fd5b9250929050565b6000806000806000806101808789031215612ae357600080fd5b612aed8888612a57565b95506101008701359450612b046101208801612a69565b935061014087013567ffffffffffffffff811115612b2157600080fd5b612b2d89828a01612a7d565b979a969950949794969561016090950135949350505050565b60008083601f840112612b5857600080fd5b50813567ffffffffffffffff811115612b7057600080fd5b602083019150836020828501011115612ac257600080fd5b600080600080600060808688031215612ba057600080fd5b853567ffffffffffffffff811115612bb757600080fd5b612bc388828901612b46565b9096509450506020860135925060408601359150612be360608701612a69565b90509295509295909350565b60008060008060006101808688031215612c0857600080fd5b85359450602086013593506040860135925060608601359150612be38760808801612a57565b600080600080600060a08688031215612c4657600080fd5b853560ff81168114612c5757600080fd5b9450602086013593506040860135612c6e81612a25565b92506060860135612c7e81612a25565b91506080860135612c8e81612a25565b809150509295509295909350565b600060208284031215612cae57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612cf157612cf1612cb5565b6040525050565b60008060408385031215612d0b57600080fd5b8235612d1681612a25565b915060208381013567ffffffffffffffff80821115612d3457600080fd5b818601915086601f830112612d4857600080fd5b813581811115612d5a57612d5a612cb5565b6040519150612d72601f8201601f1916850183612ccb565b8082528784828501011115612d8657600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600080600060808688031215612dbc57600080fd5b612dc586612a69565b94506020860135935060408601359250606086013567ffffffffffffffff811115612def57600080fd5b612dfb88828901612a7d565b969995985093965092949392505050565b60008060008060006101608688031215612e2557600080fd5b612e2f8787612a57565b945061010086013567ffffffffffffffff811115612e4c57600080fd5b612e5888828901612b46565b96999098509596610120810135966101409091013595509350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082612f3357612f33612f0e565b500690565b600060208284031215612f4a57600080fd5b815161134781612a25565b61012081016101008085843782018360005b6001811015612f86578151835260209283019290910190600101612f67565b5050509392505050565b600060033d11156111e15760046000803e5060005160e01c90565b600060443d1015612fb95790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612fe957505050505090565b82850191508151818111156130015750505050505090565b843d870101602082850101111561301b5750505050505090565b61302a60208286010187612ccb565b509095945050505050565b60005b83811015613050578181015183820152602001613038565b50506000910152565b6020815260008251806020840152613078816040850160208701613035565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b61018081016101008085843782018360005b6004811015612f865781518352602092830192909101906001016130ec565b8181038181111561297057634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561316157600080fd5b8260051b80856044850137919091016044019695505050505050565b60008261318c5761318c612f0e565b500490565b6000602082840312156131a357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613207818460208701613035565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122045f3409e9e11024eb02a657a4174c22e71e9c39e7c93448be310b7d93cd5358264736f6c63430008150033", + "sourceMap": "442:11955:44:-:0;;;1332:4:23;1289:48;;442:11955:44;;;;;;;;;-1:-1:-1;13736:22:43;:20;:22::i;:::-;442:11955:44;;5928:279:22;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:22;;216:2:82;5987:66:22;;;198:21:82;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:82;;;338:37;392:19;;5987:66:22;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:22;6128:15;6113:30;;;;;;6162:28;;564:36:82;;;6162:28:22;;552:2:82;537:18;6162:28:22;;;;;;;6063:138;5928:279::o;422:184:82:-;442:11955:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6080604052600436106101cd5760003560e01c806379ba5097116100f7578063c70aa72711610095578063f134b6ca11610064578063f134b6ca14610539578063f2038f951461054e578063f2358e1d14610563578063f2fde38b1461058357600080fd5b8063c70aa727146104c6578063d7b0fef1146104e6578063e30c3978146104fb578063ea10fbbe1461051957600080fd5b80638e5cdd50116100d15780638e5cdd501461044a5780638fc22e9f14610471578063a7bba58214610486578063aa4a729e146104a657600080fd5b806379ba5097146103f75780638c76a9091461040c5780638da5cb5b1461042c57600080fd5b806338c870651161016f5780634f1ef2861161013e5780634f1ef2861461037657806352d1902d14610389578063561f204b1461039e578063715018a6146103e257600080fd5b806338c87065146102c75780633e8919b6146102e75780633f7c178d1461031457806343f974cb1461036157600080fd5b80632f059fca116101ab5780632f059fca1461023457806331e4e99214610254578063354ca120146102875780633659cfe6146102a757600080fd5b80630e3a12f3146101d25780632217b211146101f457806329b6eca914610214575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612a3a565b6105a3565b005b34801561020057600080fd5b506101f261020f366004612ac9565b6106f1565b34801561022057600080fd5b506101f261022f366004612a3a565b6109f3565b34801561024057600080fd5b506101f261024f366004612a3a565b610af6565b34801561026057600080fd5b5061027461026f366004612b88565b610c12565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506101f26102a2366004612bef565b610d00565b3480156102b357600080fd5b506101f26102c2366004612a3a565b610e4a565b3480156102d357600080fd5b506101f26102e2366004612c2e565b610f12565b3480156102f357600080fd5b506102fc61110d565b6040516001600160a01b03909116815260200161027e565b34801561032057600080fd5b5061033461032f366004612c9c565b6111e4565b60408051825181526020808401516001600160801b0316908201529181015115159082015260600161027e565b34801561036d57600080fd5b50610274611395565b6101f2610384366004612cf8565b611462565b34801561039557600080fd5b5061027461151b565b3480156103aa57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610334565b3480156103ee57600080fd5b506101f26115ce565b34801561040357600080fd5b506101f26115ef565b34801561041857600080fd5b50610274610427366004612da4565b611666565b34801561043857600080fd5b506033546001600160a01b03166102fc565b34801561045657600080fd5b5061045f611769565b60405160ff909116815260200161027e565b34801561047d57600080fd5b506102fc611840565b34801561049257600080fd5b506102fc6104a1366004612a3a565b611916565b3480156104b257600080fd5b506101f26104c1366004612a3a565b611a38565b3480156104d257600080fd5b506101f26104e1366004612c9c565b611b54565b3480156104f257600080fd5b50610274611ca9565b34801561050757600080fd5b506065546001600160a01b03166102fc565b34801561052557600080fd5b506101f2610534366004612e0c565b611d76565b34801561054557600080fd5b506102fc612061565b34801561055a57600080fd5b506102fc612137565b34801561056f57600080fd5b506101f261057e366004612c9c565b61220d565b34801561058f57600080fd5b506101f261059e366004612a3a565b61234a565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f45760405162461bcd60e51b81526004016105eb90612e76565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106266123bb565b6001600160a01b03161461064c5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661066f57604051630103019560e11b815260040160405180910390fd5b6106776123d7565b6001600160a01b03811661069e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107395760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661076b6123bb565b6001600160a01b0316146107915760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166107b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146107e25760405163472511eb60e11b81523360048201526024016105eb565b61012e5485146108145761012e5460405163542fced960e11b81526105eb918791600401918252602082015260400190565b60006108238587848787611666565b905060006108517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610901918d9190600401612f55565b600060405180830381600087803b15801561091b57600080fd5b505af192505050801561092c575060015b61098c57610938612f90565b806308c379a003610971575061094c612fab565b806109575750610973565b8060405162461bcd60e51b81526004016105eb9190613059565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546001600160801b031916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b600054600290610100900460ff16158015610a15575060005460ff8083169116105b610a315760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038216610a6c57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b0384161790556040517fe416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a90600090a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b706123bb565b6001600160a01b031614610b965760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610bb957604051630103019560e11b815260040160405180910390fd5b610bc16123d7565b6001600160a01b038116610be857604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106c4565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c5c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c8e6123bb565b6001600160a01b031614610cb45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610cd757604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d485760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7a6123bb565b6001600160a01b031614610da05760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610dc357604051630103019560e11b815260040160405180910390fd5b610dcc8561220d565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610e1e918591906004016130da565b60006040518083038186803b158015610e3657600080fd5b505afa1580156109e8573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e925760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ec46123bb565b6001600160a01b031614610eea5760405162461bcd60e51b81526004016105eb90612ec2565b610ef381612433565b60408051600080825260208201909252610f0f918391906124db565b50565b600054600190610100900460ff16158015610f34575060005460ff8083169116105b610f505760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038416610f8b57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610fb257604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610fd95760405163baa3de5f60e01b815260040160405180910390fd5b610fe161264b565b610fea8661267a565b61100c57604051630220cee360e61b815260ff871660048201526024016105eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d80549190931691161790556110886126a1565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111575760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111896123bb565b6001600160a01b0316146111af5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166111d257604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112495760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127b6123bb565b6001600160a01b0316146112a15760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166112c457604051630103019560e11b815260040160405180910390fd5b61012e5482036112f35750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b03169081900361134e5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906113686001600160801b0384164261310b565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113df5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114116123bb565b6001600160a01b0316146114375760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661145a57604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114aa5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114dc6123bb565b6001600160a01b0316146115025760405162461bcd60e51b81526004016105eb90612ec2565b61150b82612433565b611517828260016124db565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115bb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105eb565b5060008051602061321283398151915290565b6115d66123d7565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b0316811461165d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105eb565b610f0f816126d7565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116b05760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e26123bb565b6001600160a01b0316146117085760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661172b57604051630103019560e11b815260040160405180910390fd5b6000868686868660405160200161174695949392919061312c565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117b35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117e56123bb565b6001600160a01b03161461180b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661182e57604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361188a5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118bc6123bb565b6001600160a01b0316146118e25760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661190557604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119605760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119926123bb565b6001600160a01b0316146119b85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166119db57604051630103019560e11b815260040160405180910390fd5b6119e36123d7565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a805760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab26123bb565b6001600160a01b031614611ad85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611afb57604051630103019560e11b815260040160405180910390fd5b611b036123d7565b6001600160a01b038116611b2a57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b038381166001600160a01b03198316811790935516908160026106c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b9c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bce6123bb565b6001600160a01b031614611bf45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611c1757604051630103019560e11b815260040160405180910390fd5b611c1f6123d7565b80600003611c6f5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016105eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cf35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d256123bb565b6001600160a01b031614611d4b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611d6e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dbe5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611df06123bb565b6001600160a01b031614611e165760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611e3957604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e675760405163472511eb60e11b81523360048201526024016105eb565b611e72600484612f24565b15611e90576040516308f3ed5160e41b815260040160405180910390fd5b6000611e9d60048561317d565b905061012e548314611ed15761012e5460405163542fced960e11b81526105eb918591600401918252602082015260400190565b6000611ee08686868686610c12565b90506000611f0e7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013554604051638a283fc360e01b815263ffffffff861660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991611fc3918d9190600401612f55565b600060405180830381600087803b158015611fdd57600080fd5b505af1925050508015611fee575060015b611ffa57610938612f90565b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120ab5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120dd6123bb565b6001600160a01b0316146121035760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661212657604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121815760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121b36123bb565b6001600160a01b0316146121d95760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166121fc57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122555760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122876123bb565b6001600160a01b0316146122ad5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166122d057604051630103019560e11b815260040160405180910390fd5b61012e548114610f0f57600081815261012f60205260408120546001600160801b0316908190036123145760405163ddae3b7160e01b815260040160405180910390fd5b6101305461232b6001600160801b0383164261310b565b111561151757604051631d739acf60e11b815260040160405180910390fd5b6123526123d7565b606580546001600160a01b0383166001600160a01b031990911681179091556123836033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020613212833981519152546001600160a01b031690565b6033546001600160a01b031633146124315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105eb565b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361247b5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124ad6123bb565b6001600160a01b0316146124d35760405162461bcd60e51b81526004016105eb90612ec2565b610f0f6123d7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125135761250e836126f0565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561256d575060408051601f3d908101601f1916820190925261256a91810190613191565b60015b6125d05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105eb565b600080516020613212833981519152811461263f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105eb565b5061250e83838361278c565b600054610100900460ff166126725760405162461bcd60e51b81526004016105eb906131aa565b6124316127b7565b60006010602060ff8416821180159061269957508060ff168460ff1611155b949350505050565b600054610100900460ff166126c85760405162461bcd60e51b81526004016105eb906131aa565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610f0f816127ee565b6001600160a01b0381163b61275d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105eb565b60008051602061321283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61279583612840565b6000825111806127a25750805b1561250e576127b18383612880565b50505050565b600054610100900460ff166127de5760405162461bcd60e51b81526004016105eb906131aa565b6127e6612976565b6124316129a5565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612849816126f0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6128e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105eb565b600080846001600160a01b03168460405161290391906131f5565b600060405180830381855af49150503d806000811461293e576040519150601f19603f3d011682016040523d82523d6000602084013e612943565b606091505b509150915061296b8282604051806060016040528060278152602001613232602791396129cc565b925050505b92915050565b600054610100900460ff1661299d5760405162461bcd60e51b81526004016105eb906131aa565b6124316129e5565b600054610100900460ff166124315760405162461bcd60e51b81526004016105eb906131aa565b606083156129db575081611347565b6113478383612a15565b600054610100900460ff16612a0c5760405162461bcd60e51b81526004016105eb906131aa565b612431336126d7565b8151156109575781518083602001fd5b6001600160a01b0381168114610f0f57600080fd5b600060208284031215612a4c57600080fd5b813561134781612a25565b80610100810183101561297057600080fd5b803563ffffffff8116811461139057600080fd5b60008083601f840112612a8f57600080fd5b50813567ffffffffffffffff811115612aa757600080fd5b6020830191508360208260051b8501011115612ac257600080fd5b9250929050565b6000806000806000806101808789031215612ae357600080fd5b612aed8888612a57565b95506101008701359450612b046101208801612a69565b935061014087013567ffffffffffffffff811115612b2157600080fd5b612b2d89828a01612a7d565b979a969950949794969561016090950135949350505050565b60008083601f840112612b5857600080fd5b50813567ffffffffffffffff811115612b7057600080fd5b602083019150836020828501011115612ac257600080fd5b600080600080600060808688031215612ba057600080fd5b853567ffffffffffffffff811115612bb757600080fd5b612bc388828901612b46565b9096509450506020860135925060408601359150612be360608701612a69565b90509295509295909350565b60008060008060006101808688031215612c0857600080fd5b85359450602086013593506040860135925060608601359150612be38760808801612a57565b600080600080600060a08688031215612c4657600080fd5b853560ff81168114612c5757600080fd5b9450602086013593506040860135612c6e81612a25565b92506060860135612c7e81612a25565b91506080860135612c8e81612a25565b809150509295509295909350565b600060208284031215612cae57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612cf157612cf1612cb5565b6040525050565b60008060408385031215612d0b57600080fd5b8235612d1681612a25565b915060208381013567ffffffffffffffff80821115612d3457600080fd5b818601915086601f830112612d4857600080fd5b813581811115612d5a57612d5a612cb5565b6040519150612d72601f8201601f1916850183612ccb565b8082528784828501011115612d8657600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600080600060808688031215612dbc57600080fd5b612dc586612a69565b94506020860135935060408601359250606086013567ffffffffffffffff811115612def57600080fd5b612dfb88828901612a7d565b969995985093965092949392505050565b60008060008060006101608688031215612e2557600080fd5b612e2f8787612a57565b945061010086013567ffffffffffffffff811115612e4c57600080fd5b612e5888828901612b46565b96999098509596610120810135966101409091013595509350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082612f3357612f33612f0e565b500690565b600060208284031215612f4a57600080fd5b815161134781612a25565b61012081016101008085843782018360005b6001811015612f86578151835260209283019290910190600101612f67565b5050509392505050565b600060033d11156111e15760046000803e5060005160e01c90565b600060443d1015612fb95790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612fe957505050505090565b82850191508151818111156130015750505050505090565b843d870101602082850101111561301b5750505050505090565b61302a60208286010187612ccb565b509095945050505050565b60005b83811015613050578181015183820152602001613038565b50506000910152565b6020815260008251806020840152613078816040850160208701613035565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b61018081016101008085843782018360005b6004811015612f865781518352602092830192909101906001016130ec565b8181038181111561297057634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561316157600080fd5b8260051b80856044850137919091016044019695505050505050565b60008261318c5761318c612f0e565b500490565b6000602082840312156131a357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613207818460208701613035565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200c1f878bc397d9918c135c7b89e86999234f14244cede0aad31ed2828432cd2564736f6c63430008150033", - "sourceMap": "442:11955:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27467:492:43;;;;;;;;;;-1:-1:-1;27467:492:43;;;;;:::i;:::-;;:::i;:::-;;19237:2122;;;;;;;;;;-1:-1:-1;19237:2122:43;;;;;:::i;:::-;;:::i;4309:327:44:-;;;;;;;;;;-1:-1:-1;4309:327:44;;;;;:::i;:::-;;:::i;26170:522:43:-;;;;;;;;;;-1:-1:-1;26170:522:43;;;;;:::i;:::-;;:::i;11710:685:44:-;;;;;;;;;;-1:-1:-1;11710:685:44;;;;;:::i;:::-;;:::i;:::-;;;3375:25:77;;;3363:2;3348:18;11710:685:44;;;;;;;;31087:499:43;;;;;;;;;;-1:-1:-1;31087:499:43;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;15263:1346:43:-;;;;;;;;;;-1:-1:-1;15263:1346:43;;;;;:::i;:::-;;:::i;9322:228:44:-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;5274:32:77;;;5256:51;;5244:2;5229:18;9322:228:44;5110:203:77;23647:567:43;;;;;;;;;;-1:-1:-1;23647:567:43;;;;;:::i;:::-;;:::i;:::-;;;;5721:13:77;;5703:32;;5795:4;5783:17;;;5777:24;-1:-1:-1;;;;;5773:65:77;5751:20;;;5744:95;5897:17;;;5891:24;5884:32;5877:40;5855:20;;;5848:70;5691:2;5676:18;23647:567:43;5503:421:77;28135:189:43;;;;;;;;;;;;;:::i;3763:222:23:-;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;7325:120:43:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;7325:120;;4649:109:45;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;22489:413:43:-;;;;;;;;;;-1:-1:-1;22489:413:43;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;29102:119:43;;;;;;;;;;;;;:::i;:::-;;;8278:4:77;8266:17;;;8248:36;;8236:2;8221:18;29102:119:43;8106:184:77;25527:231:43;;;;;;;;;;;;;:::i;29868:384::-;;;;;;;;;;-1:-1:-1;29868:384:43;;;;;:::i;:::-;;:::i;9954:517:44:-;;;;;;;;;;-1:-1:-1;9954:517:44;;;;;:::i;:::-;;:::i;28556:402:43:-;;;;;;;;;;-1:-1:-1;28556:402:43;;;;;:::i;:::-;;:::i;23030:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;6762:2222:44;;;;;;;;;;-1:-1:-1;6762:2222:44;;;;;:::i;:::-;;:::i;29442:133:43:-;;;;;;;;;;;;;:::i;26875:205::-;;;;;;;;;;;;;:::i;24657:638::-;;;;;;;;;;-1:-1:-1;24657:638:43;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;27467:492:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;27638:34:43;::::3;27634:89;;27695:17;;-1:-1:-1::0;;;27695:17:43::3;;;;;;;;;;;27634:89;27766:17;::::0;;-1:-1:-1;;;;;27793:31:43;;::::3;-1:-1:-1::0;;;;;;27793:31:43;::::3;::::0;::::3;::::0;;;27766:17:::3;::::0;;27870:28:::3;27839:113;;::::0;::::3;::::0;;;::::3;27624:335;27467:492:::0;:::o;19237:2122::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;32129:17:43::2;::::0;-1:-1:-1;;;;;32129:17:43::2;32115:10;:31;32111:93;;32169:24;::::0;-1:-1:-1;;;32169:24:43;;32182:10:::2;32169:24;::::0;::::2;5256:51:77::0;5229:18;;32169:24:43::2;5110:203:77::0;32111:93:43::2;19528:11:::3;;19517:7;:22;19513:95;;19585:11;::::0;19562:35:::3;::::0;-1:-1:-1;;;19562:35:43;;::::3;::::0;19576:7;;19562:35:::3;;10104:25:77::0;;;10160:2;10145:18;;10138:34;10092:2;10077:18;;9930:248;19513:95:43::3;19698:17;19718:112;19770:10;19782:7;19791:8;19801:19;;19718:38;:112::i;:::-;19698:132:::0;-1:-1:-1;20129:22:43::3;20154:39;4362:77;19698:132:::0;20154:39:::3;:::i;:::-;20323:23;::::0;:66:::3;::::0;-1:-1:-1;;;20323:66:43;;::::3;::::0;::::3;3375:25:77::0;;;20129:64:43;;-1:-1:-1;20277:31:43::3;::::0;-1:-1:-1;;;;;20323:23:43;;::::3;::::0;:38:::3;::::0;3348:18:77;;20323:66:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20458:63;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;20458:63:43;;20277:112;;-1:-1:-1;;;;;;20458:29:43;::::3;::::0;::::3;::::0;:63:::3;::::0;20488:14;;20458:63;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;20454:899;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;21105:9;21098:17;;-1:-1:-1::0;;;21098:17:43::3;;;;;;;;:::i;20454:899::-;;;21318:24;;-1:-1:-1::0;;;21318:24:43::3;;;;;;;;;;;20454:899;20690:11;:22:::0;;;20858:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;20858:47:43::3;20889:15;-1:-1:-1::0;;;;;20858:47:43::3;;::::0;;20690:22;;20925:52:::3;::::0;20937:7;;20925:52:::3;::::0;;;::::3;20454:899;19503:1856;;;19237:2122:::0;;;;;;:::o;4309:327:44:-;4871:13:22;;4397:1:44;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;4414:46:44;::::1;4410:104;;4483:20;;-1:-1:-1::0;;;4483:20:44::1;;;;;;;;;;;4410:104;4524:22;:48:::0;;-1:-1:-1;;;;;;4524:48:44::1;-1:-1:-1::0;;;;;4524:48:44;::::1;;::::0;;4588:41:::1;::::0;::::1;::::0;-1:-1:-1;;4588:41:44::1;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;8278:4:77;8266:17;;8248:36;;5080:20:22;;8236:2:77;8221:18;5080:20:22;;;;;;;4309:327:44;;:::o;26170:522:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;26359:31:43;::::3;26355:89;;26413:20;;-1:-1:-1::0;;;26413:20:43::3;;;;;;;;;;;26355:89;26485:23;::::0;;-1:-1:-1;;;;;26518:34:43;;::::3;-1:-1:-1::0;;;;;;26518:34:43;::::3;::::0;::::3;::::0;;;26485:23:::3;::::0;;;26567:118:::3;::::0;11710:685:44;11938:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;12010:4:44::2;12004:11;12066:1;12055:9;12051:17;12137:15;12107:28;12094:11;12081:72;12185:33:::0;;::::2;12231:28:::0;;;12296:2:::2;12279:20:::0;;::::2;12272:38:::0;;;;-1:-1:-1;;12358:2:44::2;12354:24:::0;;::::2;12331:48:::0;;;11710:685;-1:-1:-1;;11710:685:44:o;31087:499:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;31375:22:43::2;31392:4;31375:16;:22::i;:::-;31463:17;::::0;:116:::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;31463:116:43;;-1:-1:-1;;;;;31463:17:43;;::::2;::::0;:29:::2;::::0;:116:::2;::::0;31506:5;;31463:116;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;15263:1346:43:-;4871:13:22;;15517:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;15534:47:43;::::1;15530:105;;15604:20;;-1:-1:-1::0;;;15604:20:43::1;;;;;;;;;;;15530:105;-1:-1:-1::0;;;;;15649:44:43;::::1;15645:102;;15716:20;;-1:-1:-1::0;;;15716:20:43::1;;;;;;;;;;;15645:102;-1:-1:-1::0;;;;;15761:41:43;::::1;15757:96;;15825:17;;-1:-1:-1::0;;;15825:17:43::1;;;;;;;;;;;15757:96;15937:16;:14;:16::i;:::-;15969:48;16006:10;15969:36;:48::i;:::-;15964:119;;16040:32;::::0;-1:-1:-1;;;16040:32:43;;8278:4:77;8266:17;;16040:32:43::1;::::0;::::1;8248:36:77::0;8221:18;;16040:32:43::1;8106:184:77::0;15964:119:43::1;16150:9;:22:::0;;-1:-1:-1;;;;16150:22:43::1;-1:-1:-1::0;;;16150:22:43::1;::::0;::::1;;;::::0;;16202:7:::1;16182:17;:27:::0;16219:11:::1;:25:::0;;;16254:23:::1;:50:::0;;-1:-1:-1;;;;;;16254:50:43;;::::1;-1:-1:-1::0;;;;;16254:50:43;;::::1;::::0;;;::::1;::::0;;;16314:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;16371:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;16419:17:43::1;:27:::0;;1513:6:18;;;;16419:27:43;::::1;;::::0;;16506:18:::1;:16;:18::i;:::-;16540:62;::::0;;14161:4:77;14149:17;;14131:36;;14198:2;14183:18;;14176:34;;;16540:62:43::1;::::0;14104:18:77;16540:62:43::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;8278:4:77;8266:17;;8248:36;;5080:20:22;;8236:2:77;8221:18;5080:20:22;;;;;;;15263:1346:43;;;;;;:::o;9322:228:44:-;9482:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;9520:22:44::2;::::0;-1:-1:-1;;;;;9520:22:44::2;1144:1:74;9322:228:44::0;:::o;23647:567:43:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;23826:11:43::2;;23818:4;:19:::0;23814:394:::2;;-1:-1:-1::0;;23860:30:43::2;::::0;;::::2;::::0;::::2;::::0;;23869:11:::2;::::0;23860:30;;-1:-1:-1;23860:30:43::2;::::0;::::2;::::0;23885:4:::2;23860:30:::0;;;;;;;;23647:567::o;23814:394::-:2;23921:21;23945:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;23945:17:43::2;::::0;23981:18;;;23977:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;24026:14:::2;24019:21:::0;23647:567;-1:-1:-1;;;23647:567:43:o;23977:78::-:2;24120:17;::::0;24069:12:::2;::::0;24086:31:::2;-1:-1:-1::0;;;;;24086:31:43;::::2;:15;:31;:::i;:::-;24159:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;24159:38:43;;::::2;;::::0;::::2;::::0;24086:51;-1:-1:-1;24084:54:43::2;24159:38:::0;;;;-1:-1:-1;24159:38:43;-1:-1:-1;23814:394:43::2;23647:567:::0;;;:::o;28135:189::-;28270:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;28300:17:43::2;::::0;28135:189;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;14653:2:77;2308:92:23;;;14635:21:77;14692:2;14672:18;;;14665:30;14731:34;14711:18;;;14704:62;14802:26;14782:18;;;14775:54;14846:19;;2308:92:23;14451:420:77;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;4649:109:45:-;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;15078:2:77;2095:78:17;;;15060:21:77;15117:2;15097:18;;;15090:30;15156:34;15136:18;;;15129:62;-1:-1:-1;;;15207:18:77;;;15200:39;15256:19;;2095:78:17;14876:405:77;2095:78:17;2183:26;2202:6;2183:18;:26::i;22489:413:43:-;22724:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;22748:24:43::2;22804:10;22816:7;22825:8;22835:19;;22787:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22787:68:43;;::::2;::::0;;;;;;22873:22;;22787:68:::2;22873:22:::0;;::::2;::::0;;22489:413;-1:-1:-1;;;;;;;22489:413:43:o;29102:119::-;29181:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29205:9:43::2;::::0;-1:-1:-1;;;29205:9:43;::::2;;;::::0;29102:119::o;25527:231::-;25689:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;25727:23:43::2;::::0;-1:-1:-1;;;;;25727:23:43::2;25527:231:::0;:::o;29868:384::-;30034:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;30079:17:43::3;::::0;;-1:-1:-1;;;;;30106:39:43;;::::3;-1:-1:-1::0;;;;;;30106:39:43;::::3;::::0;::::3;::::0;;;30160:57:::3;::::0;30079:17;::::3;::::0;30106:39;30079:17;;30160:57:::3;::::0;30057:19:::3;::::0;30160:57:::3;30234:11:::0;29868:384;-1:-1:-1;;29868:384:43:o;9954:517:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;10141:31:44;::::3;10137:89;;10195:20;;-1:-1:-1::0;;;10195:20:44::3;;;;;;;;;;;10137:89;10267:22;::::0;;-1:-1:-1;;;;;10299:33:44;;::::3;-1:-1:-1::0;;;;;;10299:33:44;::::3;::::0;::::3;::::0;;;10267:22:::3;::::0;;10378:38:::3;10347:117;::::0;28556:402:43;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;28718::43::3;28735:1;28718:18:::0;28714:86:::3;;28752:37;::::0;-1:-1:-1;;;28752:37:43;;16088:2:77;28752:37:43::3;::::0;::::3;16070:21:77::0;16127:2;16107:18;;;16100:30;16166:29;16146:18;;;16139:57;16213:18;;28752:37:43::3;15886:351:77::0;28714:86:43::3;28829:17;::::0;;28856:33;;;;28905:46:::3;::::0;28876:13;;28829:17;;28905:46:::3;::::0;28809:17:::3;::::0;28905:46:::3;28704:254;28556:402:::0;:::o;23030:121::-;23107:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;23133:11:43::2;::::0;23030:121;:::o;6762:2222:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;32129:17:43::2;::::0;-1:-1:-1;;;;;32129:17:43::2;32115:10;:31;32111:93;;32169:24;::::0;-1:-1:-1;;;32169:24:43;;32182:10:::2;32169:24;::::0;::::2;5256:51:77::0;5229:18;;32169:24:43::2;5110:203:77::0;32111:93:43::2;7010:32:44::3;7041:1;7010:21:::0;:32:::3;:::i;:::-;:37:::0;7006:99:::3;;7070:24;;-1:-1:-1::0;;;7070:24:44::3;;;;;;;;;;;7006:99;7115:16;7141:32;7172:1;7141:21:::0;:32:::3;:::i;:::-;7115:59;;7200:11;;7189:7;:22;7185:95;;7257:11;::::0;7234:35:::3;::::0;-1:-1:-1;;;7234:35:44;;::::3;::::0;7248:7;;7234:35:::3;;10104:25:77::0;;;10160:2;10145:18;;10138:34;10092:2;10077:18;;9930:248;7185:95:44::3;7371:17;7403:87;7438:21;;7461:7;7470:8;7480:9;7403:34;:87::i;:::-;7371:119:::0;-1:-1:-1;7789:22:44::3;7814:39;4362:77:43;7371:119:44::0;7814:39:::3;:::i;:::-;7970:22;::::0;:48:::3;::::0;-1:-1:-1;;;7970:48:44;;16542:10:77;16530:23;;7970:48:44::3;::::0;::::3;16512:42:77::0;7789:64:44;;-1:-1:-1;7937:30:44::3;::::0;-1:-1:-1;;;;;7970:22:44;;::::3;::::0;:37:::3;::::0;16485:18:77;;7970:48:44::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8087:61;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;8087:61:44;;7937:81;;-1:-1:-1;;;;;;8087:28:44;::::3;::::0;::::3;::::0;:61:::3;::::0;8116:13;;8087:61;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;8083:895;;;;:::i;:::-;8316:11;:22:::0;;;8484:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;8484:47:44::3;8515:15;-1:-1:-1::0;;;;;8484:47:44::3;;::::0;;8316:22;-1:-1:-1;8551:51:44::3;::::0;8563:7;;8551:51:::3;::::0;;;::::3;6996:1988;;;;6762:2222:::0;;;;;:::o;29442:133:43:-;29525:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29551:17:43::2;::::0;-1:-1:-1;;;;;29551:17:43::2;29442:133:::0;:::o;26875:205::-;27017:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;-1:-1:-1::0;27055:17:43::2;::::0;-1:-1:-1;;;;;27055:17:43::2;26875:205:::0;:::o;24657:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:74::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:74::1;;;;;;;;;;;1054:81;24809:11:43::2;::::0;24797:56;;24836:7:::2;24797:56;24928:21;24952:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;24952:17:43::2;::::0;25052:18;;;25048:73:::2;;25093:17;;-1:-1:-1::0;;;25093:17:43::2;;;;;;;;;;;25048:73;25225:17;::::0;25191:31:::2;-1:-1:-1::0;;;;;25191:31:43;::::2;:15;:31;:::i;:::-;:51;25187:102;;;25265:13;;-1:-1:-1::0;;;25265:13:43::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;16767:2:77;1654:68:18;;;16749:21:77;;;16786:18;;;16779:30;16845:34;16825:18;;;16818:62;16897:18;;1654:68:18;16565:356:77;1654:68:18;1599:130::o;4067:204:45:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;17317:2:77;3758:56:20;;;17299:21:77;17356:2;17336:18;;;17329:30;17395:34;17375:18;;;17368:62;-1:-1:-1;;;17446:18:77;;;17439:44;17500:19;;3758:56:20;17115:410:77;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;17732:2:77;3636:82:20;;;17714:21:77;17771:2;17751:18;;;17744:30;17810:34;17790:18;;;17783:62;-1:-1:-1;;;17861:18:77;;;17854:39;17910:19;;3636:82:20;17530:405:77;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;16943:97:43:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;17013:20:43::1;:18;:20::i;434:207:75:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:75;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:75:o;794:90:74:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:74::1;:19:::0;;-1:-1:-1;;858:19:74::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;18554:2:77;1878:106:20;;;18536:21:77;18593:2;18573:18;;;18566:30;18632:34;18612:18;;;18605:62;-1:-1:-1;;;18683:18:77;;;18676:43;18736:19;;1878:106:20;18352:409:77;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;18968:2:77;7195:88:20;;;18950:21:77;19007:2;18987:18;;;18980:30;19046:34;19026:18;;;19019:62;-1:-1:-1;;;19097:18:77;;;19090:36;19143:19;;7195:88:20;18766:402:77;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:77;-1:-1:-1;;;;;109:31:77;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:77;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:77;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:77;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:77:o;2254:347::-;2305:8;2315:6;2369:3;2362:4;2354:6;2350:17;2346:27;2336:55;;2387:1;2384;2377:12;2336:55;-1:-1:-1;2410:20:77;;2453:18;2442:30;;2439:50;;;2485:1;2482;2475:12;2439:50;2522:4;2514:6;2510:17;2498:29;;2574:3;2567:4;2558:6;2550;2546:19;2542:30;2539:39;2536:59;;;2591:1;2588;2581:12;2606:618;2702:6;2710;2718;2726;2734;2787:3;2775:9;2766:7;2762:23;2758:33;2755:53;;;2804:1;2801;2794:12;2755:53;2844:9;2831:23;2877:18;2869:6;2866:30;2863:50;;;2909:1;2906;2899:12;2863:50;2948:58;2998:7;2989:6;2978:9;2974:22;2948:58;:::i;:::-;3025:8;;-1:-1:-1;2922:84:77;-1:-1:-1;;3107:2:77;3092:18;;3079:32;;-1:-1:-1;3158:2:77;3143:18;;3130:32;;-1:-1:-1;3181:37:77;3214:2;3199:18;;3181:37;:::i;:::-;3171:47;;2606:618;;;;;;;;:::o;3411:509::-;3531:6;3539;3547;3555;3563;3616:3;3604:9;3595:7;3591:23;3587:33;3584:53;;;3633:1;3630;3623:12;3584:53;3669:9;3656:23;3646:33;;3726:2;3715:9;3711:18;3698:32;3688:42;;3777:2;3766:9;3762:18;3749:32;3739:42;;3828:2;3817:9;3813:18;3800:32;3790:42;;3851:63;3906:7;3900:3;3889:9;3885:19;3851:63;:::i;4197:908::-;4376:6;4384;4392;4400;4408;4461:3;4449:9;4440:7;4436:23;4432:33;4429:53;;;4478:1;4475;4468:12;4429:53;4517:9;4504:23;4567:4;4560:5;4556:16;4549:5;4546:27;4536:55;;4587:1;4584;4577:12;4536:55;4610:5;-1:-1:-1;4662:2:77;4647:18;;4634:32;;-1:-1:-1;4718:2:77;4703:18;;4690:32;4731:53;4690:32;4731:53;:::i;:::-;4803:7;-1:-1:-1;4862:2:77;4847:18;;4834:32;4875:53;4834:32;4875:53;:::i;:::-;4947:7;-1:-1:-1;5006:3:77;4991:19;;4978:33;5020:53;4978:33;5020:53;:::i;:::-;5092:7;5082:17;;;4197:908;;;;;;;;:::o;5318:180::-;5377:6;5430:2;5418:9;5409:7;5405:23;5401:32;5398:52;;;5446:1;5443;5436:12;5398:52;-1:-1:-1;5469:23:77;;5318:180;-1:-1:-1;5318:180:77:o;6111:127::-;6172:10;6167:3;6163:20;6160:1;6153:31;6203:4;6200:1;6193:15;6227:4;6224:1;6217:15;6243:249;6353:2;6334:13;;-1:-1:-1;;6330:27:77;6318:40;;6388:18;6373:34;;6409:22;;;6370:62;6367:88;;;6435:18;;:::i;:::-;6471:2;6464:22;-1:-1:-1;;6243:249:77:o;6497:953::-;6574:6;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6690:9;6677:23;6709:51;6754:5;6709:51;:::i;:::-;6779:5;-1:-1:-1;6803:2:77;6841:18;;;6828:32;6879:18;6909:14;;;6906:34;;;6936:1;6933;6926:12;6906:34;6974:6;6963:9;6959:22;6949:32;;7019:7;7012:4;7008:2;7004:13;7000:27;6990:55;;7041:1;7038;7031:12;6990:55;7077:2;7064:16;7099:2;7095;7092:10;7089:36;;;7105:18;;:::i;:::-;7154:2;7148:9;;-1:-1:-1;7166:65:77;7221:2;7202:13;;-1:-1:-1;;7198:27:77;7194:36;;7148:9;7166:65;:::i;:::-;7255:2;7247:6;7240:18;7295:7;7290:2;7285;7281;7277:11;7273:20;7270:33;7267:53;;;7316:1;7313;7306:12;7267:53;7372:2;7367;7363;7359:11;7354:2;7346:6;7342:15;7329:46;7417:1;7412:2;7407;7399:6;7395:15;7391:24;7384:35;;7438:6;7428:16;;;;;6497:953;;;;;:::o;7455:646::-;7567:6;7575;7583;7591;7599;7652:3;7640:9;7631:7;7627:23;7623:33;7620:53;;;7669:1;7666;7659:12;7620:53;7692:28;7710:9;7692:28;:::i;:::-;7682:38;;7767:2;7756:9;7752:18;7739:32;7729:42;;7818:2;7807:9;7803:18;7790:32;7780:42;;7873:2;7862:9;7858:18;7845:32;7900:18;7892:6;7889:30;7886:50;;;7932:1;7929;7922:12;7886:50;7971:70;8033:7;8024:6;8013:9;8009:22;7971:70;:::i;:::-;7455:646;;;;-1:-1:-1;7455:646:77;;-1:-1:-1;8060:8:77;;7945:96;7455:646;-1:-1:-1;;;7455:646:77:o;8295:672::-;8417:6;8425;8433;8441;8449;8502:3;8490:9;8481:7;8477:23;8473:33;8470:53;;;8519:1;8516;8509:12;8470:53;8542;8587:7;8576:9;8542:53;:::i;:::-;8532:63;;8646:3;8635:9;8631:19;8618:33;8674:18;8666:6;8663:30;8660:50;;;8706:1;8703;8696:12;8660:50;8745:58;8795:7;8786:6;8775:9;8771:22;8745:58;:::i;:::-;8295:672;;8822:8;;-1:-1:-1;8719:84:77;;8904:3;8889:19;;8876:33;;8956:3;8941:19;;;8928:33;;-1:-1:-1;8295:672:77;-1:-1:-1;;;;8295:672:77:o;8972:408::-;9174:2;9156:21;;;9213:2;9193:18;;;9186:30;9252:34;9247:2;9232:18;;9225:62;-1:-1:-1;;;9318:2:77;9303:18;;9296:42;9370:3;9355:19;;8972:408::o;9385:::-;9587:2;9569:21;;;9626:2;9606:18;;;9599:30;9665:34;9660:2;9645:18;;9638:62;-1:-1:-1;;;9731:2:77;9716:18;;9709:42;9783:3;9768:19;;9385:408::o;10183:127::-;10244:10;10239:3;10235:20;10232:1;10225:31;10275:4;10272:1;10265:15;10299:4;10296:1;10289:15;10315:112;10347:1;10373;10363:35;;10378:18;;:::i;:::-;-1:-1:-1;10412:9:77;;10315:112::o;10432:294::-;10525:6;10578:2;10566:9;10557:7;10553:23;10549:32;10546:52;;;10594:1;10591;10584:12;10546:52;10626:9;10620:16;10645:51;10690:5;10645:51;:::i;10731:646::-;10987:3;10972:19;;11010:6;;11049;10976:9;11025:35;11080:18;;11140:6;11164:1;11174:197;11188:4;11185:1;11182:11;11174:197;;;11250:13;;11238:26;;11287:4;11311:12;;;;11346:15;;;;11208:4;11201:12;11174:197;;;11178:3;;;10731:646;;;;;:::o;11382:179::-;11417:3;11459:1;11441:16;11438:23;11435:120;;;11505:1;11502;11499;11484:23;-1:-1:-1;11542:1:77;11536:8;11531:3;11527:18;11382:179;:::o;11566:671::-;11605:3;11647:4;11629:16;11626:26;11623:39;;;11566:671;:::o;11623:39::-;11689:2;11683:9;-1:-1:-1;;11754:16:77;11750:25;;11747:1;11683:9;11726:50;11805:4;11799:11;11829:16;11864:18;11935:2;11928:4;11920:6;11916:17;11913:25;11908:2;11900:6;11897:14;11894:45;11891:58;;;11942:5;;;;;11566:671;:::o;11891:58::-;11979:6;11973:4;11969:17;11958:28;;12015:3;12009:10;12042:2;12034:6;12031:14;12028:27;;;12048:5;;;;;;11566:671;:::o;12028:27::-;12132:2;12113:16;12107:4;12103:27;12099:36;12092:4;12083:6;12078:3;12074:16;12070:27;12067:69;12064:82;;;12139:5;;;;;;11566:671;:::o;12064:82::-;12155:57;12206:4;12197:6;12189;12185:19;12181:30;12175:4;12155:57;:::i;:::-;-1:-1:-1;12228:3:77;;11566:671;-1:-1:-1;;;;;11566:671:77:o;12242:250::-;12327:1;12337:113;12351:6;12348:1;12345:13;12337:113;;;12427:11;;;12421:18;12408:11;;;12401:39;12373:2;12366:10;12337:113;;;-1:-1:-1;;12484:1:77;12466:16;;12459:27;12242:250::o;12497:396::-;12646:2;12635:9;12628:21;12609:4;12678:6;12672:13;12721:6;12716:2;12705:9;12701:18;12694:34;12737:79;12809:6;12804:2;12793:9;12789:18;12784:2;12776:6;12772:15;12737:79;:::i;:::-;12877:2;12856:15;-1:-1:-1;;12852:29:77;12837:45;;;;12884:2;12833:54;;12497:396;-1:-1:-1;;12497:396:77:o;12898:410::-;13100:2;13082:21;;;13139:2;13119:18;;;13112:30;13178:34;13173:2;13158:18;;13151:62;-1:-1:-1;;;13244:2:77;13229:18;;13222:44;13298:3;13283:19;;12898:410::o;13313:643::-;13569:3;13554:19;;13592:6;;13631;13558:9;13607:35;13662:18;;13722:6;13746:1;13756:194;13770:4;13767:1;13764:11;13756:194;;;13829:13;;13817:26;;13866:4;13890:12;;;;13925:15;;;;13790:1;13783:9;13756:194;;14221:225;14288:9;;;14309:11;;;14306:134;;;14362:10;14357:3;14353:20;14350:1;14343:31;14397:4;14394:1;14387:15;14425:4;14422:1;14415:15;15286:595;15595:3;15573:16;;;-1:-1:-1;;;;;;15569:43:77;15557:56;;15638:1;15629:11;;15622:27;;;15674:2;15665:12;;15658:28;;;-1:-1:-1;;;;;;15698:31:77;;15695:51;;;15742:1;15739;15732:12;15695:51;15776:6;15773:1;15769:14;15827:6;15819;15814:2;15809:3;15805:12;15792:42;15854:16;;;;15872:2;15850:25;;15286:595;-1:-1:-1;;;;;;15286:595:77:o;16242:120::-;16282:1;16308;16298:35;;16313:18;;:::i;:::-;-1:-1:-1;16347:9:77;;16242:120::o;16926:184::-;16996:6;17049:2;17037:9;17028:7;17024:23;17020:32;17017:52;;;17065:1;17062;17055:12;17017:52;-1:-1:-1;17088:16:77;;16926:184;-1:-1:-1;16926:184:77:o;17940:407::-;18142:2;18124:21;;;18181:2;18161:18;;;18154:30;18220:34;18215:2;18200:18;;18193:62;-1:-1:-1;;;18286:2:77;18271:18;;18264:41;18337:3;18322:19;;17940:407::o;19173:287::-;19302:3;19340:6;19334:13;19356:66;19415:6;19410:3;19403:4;19395:6;19391:17;19356:66;:::i;:::-;19438:16;;;;;19173:287;-1:-1:-1;;19173:287:77:o", + "object": "0x6080604052600436106101cd5760003560e01c806379ba5097116100f7578063c70aa72711610095578063f134b6ca11610064578063f134b6ca14610539578063f2038f951461054e578063f2358e1d14610563578063f2fde38b1461058357600080fd5b8063c70aa727146104c6578063d7b0fef1146104e6578063e30c3978146104fb578063ea10fbbe1461051957600080fd5b80638e5cdd50116100d15780638e5cdd501461044a5780638fc22e9f14610471578063a7bba58214610486578063aa4a729e146104a657600080fd5b806379ba5097146103f75780638c76a9091461040c5780638da5cb5b1461042c57600080fd5b806338c870651161016f5780634f1ef2861161013e5780634f1ef2861461037657806352d1902d14610389578063561f204b1461039e578063715018a6146103e257600080fd5b806338c87065146102c75780633e8919b6146102e75780633f7c178d1461031457806343f974cb1461036157600080fd5b80632f059fca116101ab5780632f059fca1461023457806331e4e99214610254578063354ca120146102875780633659cfe6146102a757600080fd5b80630e3a12f3146101d25780632217b211146101f457806329b6eca914610214575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612a3a565b6105a3565b005b34801561020057600080fd5b506101f261020f366004612ac9565b6106f1565b34801561022057600080fd5b506101f261022f366004612a3a565b6109f3565b34801561024057600080fd5b506101f261024f366004612a3a565b610af6565b34801561026057600080fd5b5061027461026f366004612b88565b610c12565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506101f26102a2366004612bef565b610d00565b3480156102b357600080fd5b506101f26102c2366004612a3a565b610e4a565b3480156102d357600080fd5b506101f26102e2366004612c2e565b610f12565b3480156102f357600080fd5b506102fc61110d565b6040516001600160a01b03909116815260200161027e565b34801561032057600080fd5b5061033461032f366004612c9c565b6111e4565b60408051825181526020808401516001600160801b0316908201529181015115159082015260600161027e565b34801561036d57600080fd5b50610274611395565b6101f2610384366004612cf8565b611462565b34801561039557600080fd5b5061027461151b565b3480156103aa57600080fd5b506040805160608082018352600080835260208084018290529284018190528351918201845280825291810182905291820152610334565b3480156103ee57600080fd5b506101f26115ce565b34801561040357600080fd5b506101f26115ef565b34801561041857600080fd5b50610274610427366004612da4565b611666565b34801561043857600080fd5b506033546001600160a01b03166102fc565b34801561045657600080fd5b5061045f611769565b60405160ff909116815260200161027e565b34801561047d57600080fd5b506102fc611840565b34801561049257600080fd5b506102fc6104a1366004612a3a565b611916565b3480156104b257600080fd5b506101f26104c1366004612a3a565b611a38565b3480156104d257600080fd5b506101f26104e1366004612c9c565b611b54565b3480156104f257600080fd5b50610274611ca9565b34801561050757600080fd5b506065546001600160a01b03166102fc565b34801561052557600080fd5b506101f2610534366004612e0c565b611d76565b34801561054557600080fd5b506102fc612061565b34801561055a57600080fd5b506102fc612137565b34801561056f57600080fd5b506101f261057e366004612c9c565b61220d565b34801561058f57600080fd5b506101f261059e366004612a3a565b61234a565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f45760405162461bcd60e51b81526004016105eb90612e76565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106266123bb565b6001600160a01b03161461064c5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661066f57604051630103019560e11b815260040160405180910390fd5b6106776123d7565b6001600160a01b03811661069e5760405163baa3de5f60e01b815260040160405180910390fd5b61013380546001600160a01b038381166001600160a01b03198316811790935516908160035b6040517fd194b8423e9cb3c7cbebbbc3fe7f79dc2cbe0b40e03270d975abff491504c7b190600090a45050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107395760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661076b6123bb565b6001600160a01b0316146107915760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166107b457604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b031633146107e25760405163472511eb60e11b81523360048201526024016105eb565b61012e5485146108145761012e5460405163542fced960e11b81526105eb918791600401918252602082015260400190565b60006108238587848787611666565b905060006108517f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013154604051638a283fc360e01b8152600481018790529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa1580156108a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c59190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991610901918d9190600401612f55565b600060405180830381600087803b15801561091b57600080fd5b505af192505050801561092c575060015b61098c57610938612f90565b806308c379a003610971575061094c612fab565b806109575750610973565b8060405162461bcd60e51b81526004016105eb9190613059565b505b604051631e716a8b60e01b815260040160405180910390fd5b61012e849055600088815261012f6020526040812080546001600160801b031916426001600160801b031617905584906040518a907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a45b505050505050505050565b600054600290610100900460ff16158015610a15575060005460ff8083169116105b610a315760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038216610a6c57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b0319166001600160a01b0384161790556040517fe416bec7423c88399c6c76ff0386950a64e454d25b846ef46c397bf835c7df7a90600090a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b706123bb565b6001600160a01b031614610b965760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610bb957604051630103019560e11b815260040160405180910390fd5b610bc16123d7565b6001600160a01b038116610be857604051634fdab25360e01b815260040160405180910390fd5b61013180546001600160a01b038381166001600160a01b03198316811790935516908160016106c4565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c5c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c8e6123bb565b6001600160a01b031614610cb45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610cd757604051630103019560e11b815260040160405180910390fd5b604051600483028088833781810195865260209095019390935250506040909101902092915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d485760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7a6123bb565b6001600160a01b031614610da05760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16610dc357604051630103019560e11b815260040160405180910390fd5b610dcc8561220d565b610133546040805160808101825287815260208101869052808201879052606081018590529051632357251160e01b81526001600160a01b0390921691632357251191610e1e918591906004016130da565b60006040518083038186803b158015610e3657600080fd5b505afa1580156109e8573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e925760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ec46123bb565b6001600160a01b031614610eea5760405162461bcd60e51b81526004016105eb90612ec2565b610ef381612433565b60408051600080825260208201909252610f0f918391906124db565b50565b600054600190610100900460ff16158015610f34575060005460ff8083169116105b610f505760405162461bcd60e51b81526004016105eb9061308c565b6000805461ffff191660ff8316176101001790556001600160a01b038416610f8b57604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038316610fb257604051634fdab25360e01b815260040160405180910390fd5b6001600160a01b038216610fd95760405163baa3de5f60e01b815260040160405180910390fd5b610fe161264b565b610fea8661267a565b61100c57604051630220cee360e61b815260ff871660048201526024016105eb565b610134805460ff60a81b1916600160a81b60ff891602179055610e106101305561012e85905561013180546001600160a01b03199081166001600160a01b0387811691909117909255610132805482168684161790556101338054821685841617905560335461012d80549190931691161790556110886126a1565b6040805160ff88168152602081018790527fd1bcc66c061c32a21f569d138c2dadef4a38a0636309881954af5f44010ec1d8910160405180910390a16000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111575760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111896123bb565b6001600160a01b0316146111af5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166111d257604051630103019560e11b815260040160405180910390fd5b50610135546001600160a01b03165b90565b60408051606081018252600080825260208201819052918101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112495760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661127b6123bb565b6001600160a01b0316146112a15760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166112c457604051630103019560e11b815260040160405180910390fd5b61012e5482036112f35750506040805160608101825261012e5481526000602082015260019181019190915290565b600082815261012f60205260408120546001600160801b03169081900361134e5760408051606080820183526000808352602080840182905292840181905283519182018452808252918101829052918201525b9392505050565b610130546000906113686001600160801b0384164261310b565b604080516060810182528781526001600160801b039095166020860152911015908301525090505b919050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113df5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114116123bb565b6001600160a01b0316146114375760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661145a57604051630103019560e11b815260040160405180910390fd5b506101305490565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114aa5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114dc6123bb565b6001600160a01b0316146115025760405162461bcd60e51b81526004016105eb90612ec2565b61150b82612433565b611517828260016124db565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115bb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105eb565b5060008051602061321283398151915290565b6115d66123d7565b6040516377aeb0ad60e01b815260040160405180910390fd5b60655433906001600160a01b0316811461165d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105eb565b610f0f816126d7565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036116b05760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e26123bb565b6001600160a01b0316146117085760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661172b57604051630103019560e11b815260040160405180910390fd5b6000868686868660405160200161174695949392919061312c565b60408051601f198184030181529190528051602090910120979650505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117b35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166117e56123bb565b6001600160a01b03161461180b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661182e57604051630103019560e11b815260040160405180910390fd5b5061013454600160a81b900460ff1690565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361188a5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118bc6123bb565b6001600160a01b0316146118e25760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661190557604051630103019560e11b815260040160405180910390fd5b50610131546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036119605760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166119926123bb565b6001600160a01b0316146119b85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166119db57604051630103019560e11b815260040160405180910390fd5b6119e36123d7565b61012d80546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f5a674c516c196404869e5f502b5634ce442416bb016dde54b5de4c812cc019e690600090a392915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a805760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab26123bb565b6001600160a01b031614611ad85760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611afb57604051630103019560e11b815260040160405180910390fd5b611b036123d7565b6001600160a01b038116611b2a57604051634fdab25360e01b815260040160405180910390fd5b61013580546001600160a01b038381166001600160a01b03198316811790935516908160026106c4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b9c5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bce6123bb565b6001600160a01b031614611bf45760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611c1757604051630103019560e11b815260040160405180910390fd5b611c1f6123d7565b80600003611c6f5760405162461bcd60e51b815260206004820152601b60248201527f4578706972792074696d652063616e6e6f74206265207a65726f2e000000000060448201526064016105eb565b610130805490829055604051829082907ff62a6f06fde00a303cd5939e6b53762854412c96a196cda26720cedd28af9e7090600090a35050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611cf35760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d256123bb565b6001600160a01b031614611d4b5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611d6e57604051630103019560e11b815260040160405180910390fd5b5061012e5490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dbe5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611df06123bb565b6001600160a01b031614611e165760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff16611e3957604051630103019560e11b815260040160405180910390fd5b61012d546001600160a01b03163314611e675760405163472511eb60e11b81523360048201526024016105eb565b611e72600484612f24565b15611e90576040516308f3ed5160e41b815260040160405180910390fd5b6000611e9d60048561317d565b905061012e548314611ed15761012e5460405163542fced960e11b81526105eb918591600401918252602082015260400190565b6000611ee08686868686610c12565b90506000611f0e7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183612f24565b61013554604051638a283fc360e01b815263ffffffff861660048201529192506000916001600160a01b0390911690638a283fc390602401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190612f38565b604080516020810182528481529051631b81f82960e01b81529192506001600160a01b03831691631b81f82991611fc3918d9190600401612f55565b600060405180830381600087803b158015611fdd57600080fd5b505af1925050508015611fee575060015b611ffa57610938612f90565b61012e859055600086815261012f6020526040902080546001600160801b031916426001600160801b031617905584600160405188907f25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf0490600090a4505050505050505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120ab5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120dd6123bb565b6001600160a01b0316146121035760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff1661212657604051630103019560e11b815260040160405180910390fd5b5061012d546001600160a01b031690565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036121815760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121b36123bb565b6001600160a01b0316146121d95760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166121fc57604051630103019560e11b815260040160405180910390fd5b50610133546001600160a01b031690565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122555760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122876123bb565b6001600160a01b0316146122ad5760405162461bcd60e51b81526004016105eb90612ec2565b60fb5460ff166122d057604051630103019560e11b815260040160405180910390fd5b61012e548114610f0f57600081815261012f60205260408120546001600160801b0316908190036123145760405163ddae3b7160e01b815260040160405180910390fd5b6101305461232b6001600160801b0383164261310b565b111561151757604051631d739acf60e11b815260040160405180910390fd5b6123526123d7565b606580546001600160a01b0383166001600160a01b031990911681179091556123836033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080516020613212833981519152546001600160a01b031690565b6033546001600160a01b031633146124315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105eb565b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361247b5760405162461bcd60e51b81526004016105eb90612e76565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124ad6123bb565b6001600160a01b0316146124d35760405162461bcd60e51b81526004016105eb90612ec2565b610f0f6123d7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125135761250e836126f0565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561256d575060408051601f3d908101601f1916820190925261256a91810190613191565b60015b6125d05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105eb565b600080516020613212833981519152811461263f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105eb565b5061250e83838361278c565b600054610100900460ff166126725760405162461bcd60e51b81526004016105eb906131aa565b6124316127b7565b60006010602060ff8416821180159061269957508060ff168460ff1611155b949350505050565b600054610100900460ff166126c85760405162461bcd60e51b81526004016105eb906131aa565b60fb805460ff19166001179055565b606580546001600160a01b0319169055610f0f816127ee565b6001600160a01b0381163b61275d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105eb565b60008051602061321283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61279583612840565b6000825111806127a25750805b1561250e576127b18383612880565b50505050565b600054610100900460ff166127de5760405162461bcd60e51b81526004016105eb906131aa565b6127e6612976565b6124316129a5565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612849816126f0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6128e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105eb565b600080846001600160a01b03168460405161290391906131f5565b600060405180830381855af49150503d806000811461293e576040519150601f19603f3d011682016040523d82523d6000602084013e612943565b606091505b509150915061296b8282604051806060016040528060278152602001613232602791396129cc565b925050505b92915050565b600054610100900460ff1661299d5760405162461bcd60e51b81526004016105eb906131aa565b6124316129e5565b600054610100900460ff166124315760405162461bcd60e51b81526004016105eb906131aa565b606083156129db575081611347565b6113478383612a15565b600054610100900460ff16612a0c5760405162461bcd60e51b81526004016105eb906131aa565b612431336126d7565b8151156109575781518083602001fd5b6001600160a01b0381168114610f0f57600080fd5b600060208284031215612a4c57600080fd5b813561134781612a25565b80610100810183101561297057600080fd5b803563ffffffff8116811461139057600080fd5b60008083601f840112612a8f57600080fd5b50813567ffffffffffffffff811115612aa757600080fd5b6020830191508360208260051b8501011115612ac257600080fd5b9250929050565b6000806000806000806101808789031215612ae357600080fd5b612aed8888612a57565b95506101008701359450612b046101208801612a69565b935061014087013567ffffffffffffffff811115612b2157600080fd5b612b2d89828a01612a7d565b979a969950949794969561016090950135949350505050565b60008083601f840112612b5857600080fd5b50813567ffffffffffffffff811115612b7057600080fd5b602083019150836020828501011115612ac257600080fd5b600080600080600060808688031215612ba057600080fd5b853567ffffffffffffffff811115612bb757600080fd5b612bc388828901612b46565b9096509450506020860135925060408601359150612be360608701612a69565b90509295509295909350565b60008060008060006101808688031215612c0857600080fd5b85359450602086013593506040860135925060608601359150612be38760808801612a57565b600080600080600060a08688031215612c4657600080fd5b853560ff81168114612c5757600080fd5b9450602086013593506040860135612c6e81612a25565b92506060860135612c7e81612a25565b91506080860135612c8e81612a25565b809150509295509295909350565b600060208284031215612cae57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715612cf157612cf1612cb5565b6040525050565b60008060408385031215612d0b57600080fd5b8235612d1681612a25565b915060208381013567ffffffffffffffff80821115612d3457600080fd5b818601915086601f830112612d4857600080fd5b813581811115612d5a57612d5a612cb5565b6040519150612d72601f8201601f1916850183612ccb565b8082528784828501011115612d8657600080fd5b80848401858401376000848284010152508093505050509250929050565b600080600080600060808688031215612dbc57600080fd5b612dc586612a69565b94506020860135935060408601359250606086013567ffffffffffffffff811115612def57600080fd5b612dfb88828901612a7d565b969995985093965092949392505050565b60008060008060006101608688031215612e2557600080fd5b612e2f8787612a57565b945061010086013567ffffffffffffffff811115612e4c57600080fd5b612e5888828901612b46565b96999098509596610120810135966101409091013595509350505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082612f3357612f33612f0e565b500690565b600060208284031215612f4a57600080fd5b815161134781612a25565b61012081016101008085843782018360005b6001811015612f86578151835260209283019290910190600101612f67565b5050509392505050565b600060033d11156111e15760046000803e5060005160e01c90565b600060443d1015612fb95790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715612fe957505050505090565b82850191508151818111156130015750505050505090565b843d870101602082850101111561301b5750505050505090565b61302a60208286010187612ccb565b509095945050505050565b60005b83811015613050578181015183820152602001613038565b50506000910152565b6020815260008251806020840152613078816040850160208701613035565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b61018081016101008085843782018360005b6004811015612f865781518352602092830192909101906001016130ec565b8181038181111561297057634e487b7160e01b600052601160045260246000fd5b60e086901b6001600160e01b0319168152600481018590526024810184905260006001600160fb1b0383111561316157600080fd5b8260051b80856044850137919091016044019695505050505050565b60008261318c5761318c612f0e565b500490565b6000602082840312156131a357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251613207818460208701613035565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122045f3409e9e11024eb02a657a4174c22e71e9c39e7c93448be310b7d93cd5358264736f6c63430008150033", + "sourceMap": "442:11955:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27467:492:43;;;;;;;;;;-1:-1:-1;27467:492:43;;;;;:::i;:::-;;:::i;:::-;;19237:2122;;;;;;;;;;-1:-1:-1;19237:2122:43;;;;;:::i;:::-;;:::i;4309:327:44:-;;;;;;;;;;-1:-1:-1;4309:327:44;;;;;:::i;:::-;;:::i;26170:522:43:-;;;;;;;;;;-1:-1:-1;26170:522:43;;;;;:::i;:::-;;:::i;11710:685:44:-;;;;;;;;;;-1:-1:-1;11710:685:44;;;;;:::i;:::-;;:::i;:::-;;;3375:25:82;;;3363:2;3348:18;11710:685:44;;;;;;;;31087:499:43;;;;;;;;;;-1:-1:-1;31087:499:43;;;;;:::i;:::-;;:::i;3317:197:23:-;;;;;;;;;;-1:-1:-1;3317:197:23;;;;;:::i;:::-;;:::i;15263:1346:43:-;;;;;;;;;;-1:-1:-1;15263:1346:43;;;;;:::i;:::-;;:::i;9322:228:44:-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;5274:32:82;;;5256:51;;5244:2;5229:18;9322:228:44;5110:203:82;23647:567:43;;;;;;;;;;-1:-1:-1;23647:567:43;;;;;:::i;:::-;;:::i;:::-;;;;5721:13:82;;5703:32;;5795:4;5783:17;;;5777:24;-1:-1:-1;;;;;5773:65:82;5751:20;;;5744:95;5897:17;;;5891:24;5884:32;5877:40;5855:20;;;5848:70;5691:2;5676:18;23647:567:43;5503:421:82;28135:189:43;;;;;;;;;;;;;:::i;3763:222:23:-;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;7325:120:43:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;7325:120;;4649:109:45;;;;;;;;;;;;;:::i;2010:206:17:-;;;;;;;;;;;;;:::i;22489:413:43:-;;;;;;;;;;-1:-1:-1;22489:413:43;;;;;:::i;:::-;;:::i;1441:85:18:-;;;;;;;;;;-1:-1:-1;1513:6:18;;-1:-1:-1;;;;;1513:6:18;1441:85;;29102:119:43;;;;;;;;;;;;;:::i;:::-;;;8278:4:82;8266:17;;;8248:36;;8236:2;8221:18;29102:119:43;8106:184:82;25527:231:43;;;;;;;;;;;;;:::i;29868:384::-;;;;;;;;;;-1:-1:-1;29868:384:43;;;;;:::i;:::-;;:::i;9954:517:44:-;;;;;;;;;;-1:-1:-1;9954:517:44;;;;;:::i;:::-;;:::i;28556:402:43:-;;;;;;;;;;-1:-1:-1;28556:402:43;;;;;:::i;:::-;;:::i;23030:121::-;;;;;;;;;;;;;:::i;1123:99:17:-;;;;;;;;;;-1:-1:-1;1202:13:17;;-1:-1:-1;;;;;1202:13:17;1123:99;;6762:2222:44;;;;;;;;;;-1:-1:-1;6762:2222:44;;;;;:::i;:::-;;:::i;29442:133:43:-;;;;;;;;;;;;;:::i;26875:205::-;;;;;;;;;;;;;:::i;24657:638::-;;;;;;;;;;-1:-1:-1;24657:638:43;;;;;:::i;:::-;;:::i;1415:178:17:-;;;;;;;;;;-1:-1:-1;1415:178:17;;;;;:::i;:::-;;:::i;27467:492:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;27638:34:43;::::3;27634:89;;27695:17;;-1:-1:-1::0;;;27695:17:43::3;;;;;;;;;;;27634:89;27766:17;::::0;;-1:-1:-1;;;;;27793:31:43;;::::3;-1:-1:-1::0;;;;;;27793:31:43;::::3;::::0;::::3;::::0;;;27766:17:::3;::::0;;27870:28:::3;27839:113;;::::0;::::3;::::0;;;::::3;27624:335;27467:492:::0;:::o;19237:2122::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;32129:17:43::2;::::0;-1:-1:-1;;;;;32129:17:43::2;32115:10;:31;32111:93;;32169:24;::::0;-1:-1:-1;;;32169:24:43;;32182:10:::2;32169:24;::::0;::::2;5256:51:82::0;5229:18;;32169:24:43::2;5110:203:82::0;32111:93:43::2;19528:11:::3;;19517:7;:22;19513:95;;19585:11;::::0;19562:35:::3;::::0;-1:-1:-1;;;19562:35:43;;::::3;::::0;19576:7;;19562:35:::3;;10104:25:82::0;;;10160:2;10145:18;;10138:34;10092:2;10077:18;;9930:248;19513:95:43::3;19698:17;19718:112;19770:10;19782:7;19791:8;19801:19;;19718:38;:112::i;:::-;19698:132:::0;-1:-1:-1;20129:22:43::3;20154:39;4362:77;19698:132:::0;20154:39:::3;:::i;:::-;20323:23;::::0;:66:::3;::::0;-1:-1:-1;;;20323:66:43;;::::3;::::0;::::3;3375:25:82::0;;;20129:64:43;;-1:-1:-1;20277:31:43::3;::::0;-1:-1:-1;;;;;20323:23:43;;::::3;::::0;:38:::3;::::0;3348:18:82;;20323:66:43::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20458:63;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;20458:63:43;;20277:112;;-1:-1:-1;;;;;;20458:29:43;::::3;::::0;::::3;::::0;:63:::3;::::0;20488:14;;20458:63;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;20454:899;;;;:::i;:::-;;;::::0;::::3;;;;;:::i;:::-;;;;;;;;21105:9;21098:17;;-1:-1:-1::0;;;21098:17:43::3;;;;;;;;:::i;20454:899::-;;;21318:24;;-1:-1:-1::0;;;21318:24:43::3;;;;;;;;;;;20454:899;20690:11;:22:::0;;;20858:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;20858:47:43::3;20889:15;-1:-1:-1::0;;;;;20858:47:43::3;;::::0;;20690:22;;20925:52:::3;::::0;20937:7;;20925:52:::3;::::0;;;::::3;20454:899;19503:1856;;;19237:2122:::0;;;;;;:::o;4309:327:44:-;4871:13:22;;4397:1:44;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;4414:46:44;::::1;4410:104;;4483:20;;-1:-1:-1::0;;;4483:20:44::1;;;;;;;;;;;4410:104;4524:22;:48:::0;;-1:-1:-1;;;;;;4524:48:44::1;-1:-1:-1::0;;;;;4524:48:44;::::1;;::::0;;4588:41:::1;::::0;::::1;::::0;-1:-1:-1;;4588:41:44::1;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;8278:4:82;8266:17;;8248:36;;5080:20:22;;8236:2:82;8221:18;5080:20:22;;;;;;;4309:327:44;;:::o;26170:522:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;26359:31:43;::::3;26355:89;;26413:20;;-1:-1:-1::0;;;26413:20:43::3;;;;;;;;;;;26355:89;26485:23;::::0;;-1:-1:-1;;;;;26518:34:43;;::::3;-1:-1:-1::0;;;;;;26518:34:43;::::3;::::0;::::3;::::0;;;26485:23:::3;::::0;;;26567:118:::3;::::0;11710:685:44;11938:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;12010:4:44::2;12004:11;12066:1;12055:9;12051:17;12137:15;12107:28;12094:11;12081:72;12185:33:::0;;::::2;12231:28:::0;;;12296:2:::2;12279:20:::0;;::::2;12272:38:::0;;;;-1:-1:-1;;12358:2:44::2;12354:24:::0;;::::2;12331:48:::0;;;11710:685;-1:-1:-1;;11710:685:44:o;31087:499:43:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;31375:22:43::2;31392:4;31375:16;:22::i;:::-;31463:17;::::0;:116:::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;31463:116:43;;-1:-1:-1;;;;;31463:17:43;;::::2;::::0;:29:::2;::::0;:116:::2;::::0;31506:5;;31463:116;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;3317:197:23::0;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;:::-;3317:197:::0;:::o;15263:1346:43:-;4871:13:22;;15517:1:43;;4871:13:22;;;;;4870:14;:40;;;;-1:-1:-1;4888:12:22;;:22;;;;:12;;:22;4870:40;4862:99;;;;-1:-1:-1;;;4862:99:22;;;;;;;:::i;:::-;4971:12;:22;;-1:-1:-1;;5003:20:22;4971:22;;;5003:20;4971:22;5003:20;;;-1:-1:-1;;;;;15534:47:43;::::1;15530:105;;15604:20;;-1:-1:-1::0;;;15604:20:43::1;;;;;;;;;;;15530:105;-1:-1:-1::0;;;;;15649:44:43;::::1;15645:102;;15716:20;;-1:-1:-1::0;;;15716:20:43::1;;;;;;;;;;;15645:102;-1:-1:-1::0;;;;;15761:41:43;::::1;15757:96;;15825:17;;-1:-1:-1::0;;;15825:17:43::1;;;;;;;;;;;15757:96;15937:16;:14;:16::i;:::-;15969:48;16006:10;15969:36;:48::i;:::-;15964:119;;16040:32;::::0;-1:-1:-1;;;16040:32:43;;8278:4:82;8266:17;;16040:32:43::1;::::0;::::1;8248:36:82::0;8221:18;;16040:32:43::1;8106:184:82::0;15964:119:43::1;16150:9;:22:::0;;-1:-1:-1;;;;16150:22:43::1;-1:-1:-1::0;;;16150:22:43::1;::::0;::::1;;;::::0;;16202:7:::1;16182:17;:27:::0;16219:11:::1;:25:::0;;;16254:23:::1;:50:::0;;-1:-1:-1;;;;;;16254:50:43;;::::1;-1:-1:-1::0;;;;;16254:50:43;;::::1;::::0;;;::::1;::::0;;;16314:23:::1;:47:::0;;;::::1;::::0;;::::1;;::::0;;16371:17:::1;:38:::0;;;::::1;::::0;;::::1;;::::0;;1513:6:18;;16419:17:43::1;:27:::0;;1513:6:18;;;;16419:27:43;::::1;;::::0;;16506:18:::1;:16;:18::i;:::-;16540:62;::::0;;14161:4:82;14149:17;;14131:36;;14198:2;14183:18;;14176:34;;;16540:62:43::1;::::0;14104:18:82;16540:62:43::1;;;;;;;5060:5:22::0;5044:21;;-1:-1:-1;;5044:21:22;;;5080:20;;8278:4:82;8266:17;;8248:36;;5080:20:22;;8236:2:82;8221:18;5080:20:22;;;;;;;15263:1346:43;;;;;;:::o;9322:228:44:-;9482:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;9520:22:44::2;::::0;-1:-1:-1;;;;;9520:22:44::2;1144:1:79;9322:228:44::0;:::o;23647:567:43:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;23826:11:43::2;;23818:4;:19:::0;23814:394:::2;;-1:-1:-1::0;;23860:30:43::2;::::0;;::::2;::::0;::::2;::::0;;23869:11:::2;::::0;23860:30;;-1:-1:-1;23860:30:43::2;::::0;::::2;::::0;23885:4:::2;23860:30:::0;;;;;;;;23647:567::o;23814:394::-:2;23921:21;23945:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;23945:17:43::2;::::0;23981:18;;;23977:78:::2;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;7413:25:43;;;;;;;;;;;;;;;;;;;;24026:14:::2;24019:21:::0;23647:567;-1:-1:-1;;;23647:567:43:o;23977:78::-:2;24120:17;::::0;24069:12:::2;::::0;24086:31:::2;-1:-1:-1::0;;;;;24086:31:43;::::2;:15;:31;:::i;:::-;24159:38;::::0;;::::2;::::0;::::2;::::0;;;;;-1:-1:-1;;;;;24159:38:43;;::::2;;::::0;::::2;::::0;24086:51;-1:-1:-1;24084:54:43::2;24159:38:::0;;;;-1:-1:-1;24159:38:43;-1:-1:-1;23814:394:43::2;23647:567:::0;;;:::o;28135:189::-;28270:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;28300:17:43::2;::::0;28135:189;:::o;3763:222:23:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:23;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:23;;14653:2:82;2308:92:23;;;14635:21:82;14692:2;14672:18;;;14665:30;14731:34;14711:18;;;14704:62;14802:26;14782:18;;;14775:54;14846:19;;2308:92:23;14451:420:82;2308:92:23;-1:-1:-1;;;;;;;;;;;;3006:131:23;:::o;4649:109:45:-;1334:13:18;:11;:13::i;:::-;4726:25:45::1;;-1:-1:-1::0;;;4726:25:45::1;;;;;;;;;;;2010:206:17::0;1202:13;;929:10:25;;-1:-1:-1;;;;;1202:13:17;2103:24;;2095:78;;;;-1:-1:-1;;;2095:78:17;;15078:2:82;2095:78:17;;;15060:21:82;15117:2;15097:18;;;15090:30;15156:34;15136:18;;;15129:62;-1:-1:-1;;;15207:18:82;;;15200:39;15256:19;;2095:78:17;14876:405:82;2095:78:17;2183:26;2202:6;2183:18;:26::i;22489:413:43:-;22724:12;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;22748:24:43::2;22804:10;22816:7;22825:8;22835:19;;22787:68;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;22787:68:43;;::::2;::::0;;;;;;22873:22;;22787:68:::2;22873:22:::0;;::::2;::::0;;22489:413;-1:-1:-1;;;;;;;22489:413:43:o;29102:119::-;29181:5;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29205:9:43::2;::::0;-1:-1:-1;;;29205:9:43;::::2;;;::::0;29102:119::o;25527:231::-;25689:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;25727:23:43::2;::::0;-1:-1:-1;;;;;25727:23:43::2;25527:231:::0;:::o;29868:384::-;30034:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;30079:17:43::3;::::0;;-1:-1:-1;;;;;30106:39:43;;::::3;-1:-1:-1::0;;;;;;30106:39:43;::::3;::::0;::::3;::::0;;;30160:57:::3;::::0;30079:17;::::3;::::0;30106:39;30079:17;;30160:57:::3;::::0;30057:19:::3;::::0;30160:57:::3;30234:11:::0;29868:384;-1:-1:-1;;29868:384:43:o;9954:517:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;-1:-1:-1::0;;;;;10141:31:44;::::3;10137:89;;10195:20;;-1:-1:-1::0;;;10195:20:44::3;;;;;;;;;;;10137:89;10267:22;::::0;;-1:-1:-1;;;;;10299:33:44;;::::3;-1:-1:-1::0;;;;;;10299:33:44;::::3;::::0;::::3;::::0;;;10267:22:::3;::::0;;10378:38:::3;10347:117;::::0;28556:402:43;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;1334:13:18::2;:11;:13::i;:::-;28718::43::3;28735:1;28718:18:::0;28714:86:::3;;28752:37;::::0;-1:-1:-1;;;28752:37:43;;16088:2:82;28752:37:43::3;::::0;::::3;16070:21:82::0;16127:2;16107:18;;;16100:30;16166:29;16146:18;;;16139:57;16213:18;;28752:37:43::3;15886:351:82::0;28714:86:43::3;28829:17;::::0;;28856:33;;;;28905:46:::3;::::0;28876:13;;28829:17;;28905:46:::3;::::0;28809:17:::3;::::0;28905:46:::3;28704:254;28556:402:::0;:::o;23030:121::-;23107:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;23133:11:43::2;::::0;23030:121;:::o;6762:2222:44:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;32129:17:43::2;::::0;-1:-1:-1;;;;;32129:17:43::2;32115:10;:31;32111:93;;32169:24;::::0;-1:-1:-1;;;32169:24:43;;32182:10:::2;32169:24;::::0;::::2;5256:51:82::0;5229:18;;32169:24:43::2;5110:203:82::0;32111:93:43::2;7010:32:44::3;7041:1;7010:21:::0;:32:::3;:::i;:::-;:37:::0;7006:99:::3;;7070:24;;-1:-1:-1::0;;;7070:24:44::3;;;;;;;;;;;7006:99;7115:16;7141:32;7172:1;7141:21:::0;:32:::3;:::i;:::-;7115:59;;7200:11;;7189:7;:22;7185:95;;7257:11;::::0;7234:35:::3;::::0;-1:-1:-1;;;7234:35:44;;::::3;::::0;7248:7;;7234:35:::3;;10104:25:82::0;;;10160:2;10145:18;;10138:34;10092:2;10077:18;;9930:248;7185:95:44::3;7371:17;7403:87;7438:21;;7461:7;7470:8;7480:9;7403:34;:87::i;:::-;7371:119:::0;-1:-1:-1;7789:22:44::3;7814:39;4362:77:43;7371:119:44::0;7814:39:::3;:::i;:::-;7970:22;::::0;:48:::3;::::0;-1:-1:-1;;;7970:48:44;;16542:10:82;16530:23;;7970:48:44::3;::::0;::::3;16512:42:82::0;7789:64:44;;-1:-1:-1;7937:30:44::3;::::0;-1:-1:-1;;;;;7970:22:44;;::::3;::::0;:37:::3;::::0;16485:18:82;;7970:48:44::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8087:61;::::0;;::::3;::::0;::::3;::::0;;;;;;;-1:-1:-1;;;8087:61:44;;7937:81;;-1:-1:-1;;;;;;8087:28:44;::::3;::::0;::::3;::::0;:61:::3;::::0;8116:13;;8087:61;::::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;8083:895;;;;:::i;:::-;8316:11;:22:::0;;;8484:20:::3;::::0;;;:11:::3;:20;::::0;;;;:47;;-1:-1:-1;;;;;;8484:47:44::3;8515:15;-1:-1:-1::0;;;;;8484:47:44::3;;::::0;;8316:22;-1:-1:-1;8551:51:44::3;::::0;8563:7;;8551:51:::3;::::0;;;::::3;6996:1988;;;;6762:2222:::0;;;;;:::o;29442:133:43:-;29525:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;29551:17:43::2;::::0;-1:-1:-1;;;;;29551:17:43::2;29442:133:::0;:::o;26875:205::-;27017:7;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;-1:-1:-1::0;27055:17:43::2;::::0;-1:-1:-1;;;;;27055:17:43::2;26875:205:::0;:::o;24657:638::-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1059:12:79::1;::::0;::::1;;1054:81;;1094:30;;-1:-1:-1::0;;;1094:30:79::1;;;;;;;;;;;1054:81;24809:11:43::2;::::0;24797:56;;24836:7:::2;24797:56;24928:21;24952:17:::0;;;:11:::2;:17;::::0;;;;;-1:-1:-1;;;;;24952:17:43::2;::::0;25052:18;;;25048:73:::2;;25093:17;;-1:-1:-1::0;;;25093:17:43::2;;;;;;;;;;;25048:73;25225:17;::::0;25191:31:::2;-1:-1:-1::0;;;;;25191:31:43;::::2;:15;:31;:::i;:::-;:51;25187:102;;;25265:13;;-1:-1:-1::0;;;25265:13:43::2;;;;;;;;;;;1415:178:17::0;1334:13:18;:11;:13::i;:::-;1504::17::1;:24:::0;;-1:-1:-1;;;;;1504:24:17;::::1;-1:-1:-1::0;;;;;;1504:24:17;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:18::0;;-1:-1:-1;;;;;1513:6:18;;1441:85;1568:7:17::1;-1:-1:-1::0;;;;;1543:43:17::1;;;;;;;;;;;1415:178:::0;:::o;1563:151:20:-;-1:-1:-1;;;;;;;;;;;1642:65:20;-1:-1:-1;;;;;1642:65:20;;1563:151::o;1599:130:18:-;1513:6;;-1:-1:-1;;;;;1513:6:18;929:10:25;1662:23:18;1654:68;;;;-1:-1:-1;;;1654:68:18;;16767:2:82;1654:68:18;;;16749:21:82;;;16786:18;;;16779:30;16845:34;16825:18;;;16818:62;16897:18;;1654:68:18;16565:356:82;1654:68:18;1599:130::o;4067:204:45:-;-1:-1:-1;;;;;1898:6:23;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:23;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:23;:20;:18;:20::i;:::-;-1:-1:-1;;;;;1971:30:23;;1963:87;;;;-1:-1:-1;;;1963:87:23;;;;;;;:::i;:::-;1334:13:18::1;:11;:13::i;2938:974:20:-:0;951:66;3384:59;;;3380:526;;;3459:37;3478:17;3459:18;:37::i;:::-;2938:974;;;:::o;3380:526::-;3560:17;-1:-1:-1;;;;;3531:61:20;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3531:63:20;;;;;;;;-1:-1:-1;;3531:63:20;;;;;;;;;;;;:::i;:::-;;;3527:302;;3758:56;;-1:-1:-1;;;3758:56:20;;17317:2:82;3758:56:20;;;17299:21:82;17356:2;17336:18;;;17329:30;17395:34;17375:18;;;17368:62;-1:-1:-1;;;17446:18:82;;;17439:44;17500:19;;3758:56:20;17115:410:82;3527:302:20;-1:-1:-1;;;;;;;;;;;3644:28:20;;3636:82;;;;-1:-1:-1;;;3636:82:20;;17732:2:82;3636:82:20;;;17714:21:82;17771:2;17751:18;;;17744:30;17810:34;17790:18;;;17783:62;-1:-1:-1;;;17861:18:82;;;17854:39;17910:19;;3636:82:20;17530:405:82;3636:82:20;3595:138;3842:53;3860:17;3879:4;3885:9;3842:17;:53::i;16943:97:43:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;17013:20:43::1;:18;:20::i;434:207:80:-:0;492:19;540:2;569;588:21;;;;-1:-1:-1;588:21:80;;;:46;;;626:8;613:21;;:9;:21;;;;588:46;581:53;434:207;-1:-1:-1;;;;434:207:80:o;794:90:79:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;858:12:79::1;:19:::0;;-1:-1:-1;;858:19:79::1;873:4;858:19;::::0;;794:90::o;1777:153:17:-;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:17;;;1889:34;1914:8;1889:24;:34::i;1805:281:20:-;-1:-1:-1;;;;;1476:19:24;;;1878:106:20;;;;-1:-1:-1;;;1878:106:20;;18554:2:82;1878:106:20;;;18536:21:82;18593:2;18573:18;;;18566:30;18632:34;18612:18;;;18605:62;-1:-1:-1;;;18683:18:82;;;18676:43;18736:19;;1878:106:20;18352:409:82;1878:106:20;-1:-1:-1;;;;;;;;;;;1994:85:20;;-1:-1:-1;;;;;;1994:85:20;-1:-1:-1;;;;;1994:85:20;;;;;;;;;;1805:281::o;2478:288::-;2616:29;2627:17;2616:10;:29::i;:::-;2673:1;2659:4;:11;:15;:28;;;;2678:9;2659:28;2655:105;;;2703:46;2725:17;2744:4;2703:21;:46::i;:::-;;2478:288;;;:::o;3048:131:45:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;3122:16:45::1;:14;:16::i;:::-;3148:24;:22;:24::i;2673:187:18:-:0;2765:6;;;-1:-1:-1;;;;;2781:17:18;;;-1:-1:-1;;;;;;2781:17:18;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2192:152:20:-;2258:37;2277:17;2258:18;:37::i;:::-;2310:27;;-1:-1:-1;;;;;2310:27:20;;;;;;;;2192:152;:::o;7088:455::-;7171:12;-1:-1:-1;;;;;1476:19:24;;;7195:88:20;;;;-1:-1:-1;;;7195:88:20;;18968:2:82;7195:88:20;;;18950:21:82;19007:2;18987:18;;;18980:30;19046:34;19026:18;;;19019:62;-1:-1:-1;;;19097:18:82;;;19090:36;19143:19;;7195:88:20;18766:402:82;7195:88:20;7354:12;7368:23;7395:6;-1:-1:-1;;;;;7395:19:20;7415:4;7395:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:67;;;;7437:99;7473:7;7482:10;7437:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7430:106;;;;7088:455;;;;;:::o;1003:95:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1065:26:18::1;:24;:26::i;1042:67:23:-:0;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;7438:295:24:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:24;7635:17;;7608:119;7683:33;7691:10;7703:12;7683:7;:33::i;1104:111:18:-;5363:13:22;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:22;;;;;;;:::i;:::-;1176:32:18::1;929:10:25::0;1176:18:18::1;:32::i;7739:540:24:-:0;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;14:151:82;-1:-1:-1;;;;;109:31:82;;99:42;;89:70;;155:1;152;145:12;170:295;257:6;310:2;298:9;289:7;285:23;281:32;278:52;;;326:1;323;316:12;278:52;365:9;352:23;384:51;429:5;384:51;:::i;470:160::-;564:6;597:3;585:16;;582:25;-1:-1:-1;579:45:82;;;620:1;617;610:12;635:163;702:20;;762:10;751:22;;741:33;;731:61;;788:1;785;778:12;803:367;866:8;876:6;930:3;923:4;915:6;911:17;907:27;897:55;;948:1;945;938:12;897:55;-1:-1:-1;971:20:82;;1014:18;1003:30;;1000:50;;;1046:1;1043;1036:12;1000:50;1083:4;1075:6;1071:17;1059:29;;1143:3;1136:4;1126:6;1123:1;1119:14;1111:6;1107:27;1103:38;1100:47;1097:67;;;1160:1;1157;1150:12;1097:67;803:367;;;;;:::o;1175:773::-;1321:6;1329;1337;1345;1353;1361;1414:3;1402:9;1393:7;1389:23;1385:33;1382:53;;;1431:1;1428;1421:12;1382:53;1454;1499:7;1488:9;1454:53;:::i;:::-;1444:63;;1554:3;1543:9;1539:19;1526:33;1516:43;;1578:38;1611:3;1600:9;1596:19;1578:38;:::i;:::-;1568:48;;1667:3;1656:9;1652:19;1639:33;1695:18;1687:6;1684:30;1681:50;;;1727:1;1724;1717:12;1681:50;1766:70;1828:7;1819:6;1808:9;1804:22;1766:70;:::i;:::-;1175:773;;;;-1:-1:-1;1175:773:82;;;;;1937:3;1922:19;;;1909:33;;1175:773;-1:-1:-1;;;;1175:773:82:o;2254:347::-;2305:8;2315:6;2369:3;2362:4;2354:6;2350:17;2346:27;2336:55;;2387:1;2384;2377:12;2336:55;-1:-1:-1;2410:20:82;;2453:18;2442:30;;2439:50;;;2485:1;2482;2475:12;2439:50;2522:4;2514:6;2510:17;2498:29;;2574:3;2567:4;2558:6;2550;2546:19;2542:30;2539:39;2536:59;;;2591:1;2588;2581:12;2606:618;2702:6;2710;2718;2726;2734;2787:3;2775:9;2766:7;2762:23;2758:33;2755:53;;;2804:1;2801;2794:12;2755:53;2844:9;2831:23;2877:18;2869:6;2866:30;2863:50;;;2909:1;2906;2899:12;2863:50;2948:58;2998:7;2989:6;2978:9;2974:22;2948:58;:::i;:::-;3025:8;;-1:-1:-1;2922:84:82;-1:-1:-1;;3107:2:82;3092:18;;3079:32;;-1:-1:-1;3158:2:82;3143:18;;3130:32;;-1:-1:-1;3181:37:82;3214:2;3199:18;;3181:37;:::i;:::-;3171:47;;2606:618;;;;;;;;:::o;3411:509::-;3531:6;3539;3547;3555;3563;3616:3;3604:9;3595:7;3591:23;3587:33;3584:53;;;3633:1;3630;3623:12;3584:53;3669:9;3656:23;3646:33;;3726:2;3715:9;3711:18;3698:32;3688:42;;3777:2;3766:9;3762:18;3749:32;3739:42;;3828:2;3817:9;3813:18;3800:32;3790:42;;3851:63;3906:7;3900:3;3889:9;3885:19;3851:63;:::i;4197:908::-;4376:6;4384;4392;4400;4408;4461:3;4449:9;4440:7;4436:23;4432:33;4429:53;;;4478:1;4475;4468:12;4429:53;4517:9;4504:23;4567:4;4560:5;4556:16;4549:5;4546:27;4536:55;;4587:1;4584;4577:12;4536:55;4610:5;-1:-1:-1;4662:2:82;4647:18;;4634:32;;-1:-1:-1;4718:2:82;4703:18;;4690:32;4731:53;4690:32;4731:53;:::i;:::-;4803:7;-1:-1:-1;4862:2:82;4847:18;;4834:32;4875:53;4834:32;4875:53;:::i;:::-;4947:7;-1:-1:-1;5006:3:82;4991:19;;4978:33;5020:53;4978:33;5020:53;:::i;:::-;5092:7;5082:17;;;4197:908;;;;;;;;:::o;5318:180::-;5377:6;5430:2;5418:9;5409:7;5405:23;5401:32;5398:52;;;5446:1;5443;5436:12;5398:52;-1:-1:-1;5469:23:82;;5318:180;-1:-1:-1;5318:180:82:o;6111:127::-;6172:10;6167:3;6163:20;6160:1;6153:31;6203:4;6200:1;6193:15;6227:4;6224:1;6217:15;6243:249;6353:2;6334:13;;-1:-1:-1;;6330:27:82;6318:40;;6388:18;6373:34;;6409:22;;;6370:62;6367:88;;;6435:18;;:::i;:::-;6471:2;6464:22;-1:-1:-1;;6243:249:82:o;6497:953::-;6574:6;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6690:9;6677:23;6709:51;6754:5;6709:51;:::i;:::-;6779:5;-1:-1:-1;6803:2:82;6841:18;;;6828:32;6879:18;6909:14;;;6906:34;;;6936:1;6933;6926:12;6906:34;6974:6;6963:9;6959:22;6949:32;;7019:7;7012:4;7008:2;7004:13;7000:27;6990:55;;7041:1;7038;7031:12;6990:55;7077:2;7064:16;7099:2;7095;7092:10;7089:36;;;7105:18;;:::i;:::-;7154:2;7148:9;;-1:-1:-1;7166:65:82;7221:2;7202:13;;-1:-1:-1;;7198:27:82;7194:36;;7148:9;7166:65;:::i;:::-;7255:2;7247:6;7240:18;7295:7;7290:2;7285;7281;7277:11;7273:20;7270:33;7267:53;;;7316:1;7313;7306:12;7267:53;7372:2;7367;7363;7359:11;7354:2;7346:6;7342:15;7329:46;7417:1;7412:2;7407;7399:6;7395:15;7391:24;7384:35;;7438:6;7428:16;;;;;6497:953;;;;;:::o;7455:646::-;7567:6;7575;7583;7591;7599;7652:3;7640:9;7631:7;7627:23;7623:33;7620:53;;;7669:1;7666;7659:12;7620:53;7692:28;7710:9;7692:28;:::i;:::-;7682:38;;7767:2;7756:9;7752:18;7739:32;7729:42;;7818:2;7807:9;7803:18;7790:32;7780:42;;7873:2;7862:9;7858:18;7845:32;7900:18;7892:6;7889:30;7886:50;;;7932:1;7929;7922:12;7886:50;7971:70;8033:7;8024:6;8013:9;8009:22;7971:70;:::i;:::-;7455:646;;;;-1:-1:-1;7455:646:82;;-1:-1:-1;8060:8:82;;7945:96;7455:646;-1:-1:-1;;;7455:646:82:o;8295:672::-;8417:6;8425;8433;8441;8449;8502:3;8490:9;8481:7;8477:23;8473:33;8470:53;;;8519:1;8516;8509:12;8470:53;8542;8587:7;8576:9;8542:53;:::i;:::-;8532:63;;8646:3;8635:9;8631:19;8618:33;8674:18;8666:6;8663:30;8660:50;;;8706:1;8703;8696:12;8660:50;8745:58;8795:7;8786:6;8775:9;8771:22;8745:58;:::i;:::-;8295:672;;8822:8;;-1:-1:-1;8719:84:82;;8904:3;8889:19;;8876:33;;8956:3;8941:19;;;8928:33;;-1:-1:-1;8295:672:82;-1:-1:-1;;;;8295:672:82:o;8972:408::-;9174:2;9156:21;;;9213:2;9193:18;;;9186:30;9252:34;9247:2;9232:18;;9225:62;-1:-1:-1;;;9318:2:82;9303:18;;9296:42;9370:3;9355:19;;8972:408::o;9385:::-;9587:2;9569:21;;;9626:2;9606:18;;;9599:30;9665:34;9660:2;9645:18;;9638:62;-1:-1:-1;;;9731:2:82;9716:18;;9709:42;9783:3;9768:19;;9385:408::o;10183:127::-;10244:10;10239:3;10235:20;10232:1;10225:31;10275:4;10272:1;10265:15;10299:4;10296:1;10289:15;10315:112;10347:1;10373;10363:35;;10378:18;;:::i;:::-;-1:-1:-1;10412:9:82;;10315:112::o;10432:294::-;10525:6;10578:2;10566:9;10557:7;10553:23;10549:32;10546:52;;;10594:1;10591;10584:12;10546:52;10626:9;10620:16;10645:51;10690:5;10645:51;:::i;10731:646::-;10987:3;10972:19;;11010:6;;11049;10976:9;11025:35;11080:18;;11140:6;11164:1;11174:197;11188:4;11185:1;11182:11;11174:197;;;11250:13;;11238:26;;11287:4;11311:12;;;;11346:15;;;;11208:4;11201:12;11174:197;;;11178:3;;;10731:646;;;;;:::o;11382:179::-;11417:3;11459:1;11441:16;11438:23;11435:120;;;11505:1;11502;11499;11484:23;-1:-1:-1;11542:1:82;11536:8;11531:3;11527:18;11382:179;:::o;11566:671::-;11605:3;11647:4;11629:16;11626:26;11623:39;;;11566:671;:::o;11623:39::-;11689:2;11683:9;-1:-1:-1;;11754:16:82;11750:25;;11747:1;11683:9;11726:50;11805:4;11799:11;11829:16;11864:18;11935:2;11928:4;11920:6;11916:17;11913:25;11908:2;11900:6;11897:14;11894:45;11891:58;;;11942:5;;;;;11566:671;:::o;11891:58::-;11979:6;11973:4;11969:17;11958:28;;12015:3;12009:10;12042:2;12034:6;12031:14;12028:27;;;12048:5;;;;;;11566:671;:::o;12028:27::-;12132:2;12113:16;12107:4;12103:27;12099:36;12092:4;12083:6;12078:3;12074:16;12070:27;12067:69;12064:82;;;12139:5;;;;;;11566:671;:::o;12064:82::-;12155:57;12206:4;12197:6;12189;12185:19;12181:30;12175:4;12155:57;:::i;:::-;-1:-1:-1;12228:3:82;;11566:671;-1:-1:-1;;;;;11566:671:82:o;12242:250::-;12327:1;12337:113;12351:6;12348:1;12345:13;12337:113;;;12427:11;;;12421:18;12408:11;;;12401:39;12373:2;12366:10;12337:113;;;-1:-1:-1;;12484:1:82;12466:16;;12459:27;12242:250::o;12497:396::-;12646:2;12635:9;12628:21;12609:4;12678:6;12672:13;12721:6;12716:2;12705:9;12701:18;12694:34;12737:79;12809:6;12804:2;12793:9;12789:18;12784:2;12776:6;12772:15;12737:79;:::i;:::-;12877:2;12856:15;-1:-1:-1;;12852:29:82;12837:45;;;;12884:2;12833:54;;12497:396;-1:-1:-1;;12497:396:82:o;12898:410::-;13100:2;13082:21;;;13139:2;13119:18;;;13112:30;13178:34;13173:2;13158:18;;13151:62;-1:-1:-1;;;13244:2:82;13229:18;;13222:44;13298:3;13283:19;;12898:410::o;13313:643::-;13569:3;13554:19;;13592:6;;13631;13558:9;13607:35;13662:18;;13722:6;13746:1;13756:194;13770:4;13767:1;13764:11;13756:194;;;13829:13;;13817:26;;13866:4;13890:12;;;;13925:15;;;;13790:1;13783:9;13756:194;;14221:225;14288:9;;;14309:11;;;14306:134;;;14362:10;14357:3;14353:20;14350:1;14343:31;14397:4;14394:1;14387:15;14425:4;14422:1;14415:15;15286:595;15595:3;15573:16;;;-1:-1:-1;;;;;;15569:43:82;15557:56;;15638:1;15629:11;;15622:27;;;15674:2;15665:12;;15658:28;;;-1:-1:-1;;;;;;15698:31:82;;15695:51;;;15742:1;15739;15732:12;15695:51;15776:6;15773:1;15769:14;15827:6;15819;15814:2;15809:3;15805:12;15792:42;15854:16;;;;15872:2;15850:25;;15286:595;-1:-1:-1;;;;;;15286:595:82:o;16242:120::-;16282:1;16308;16298:35;;16313:18;;:::i;:::-;-1:-1:-1;16347:9:82;;16242:120::o;16926:184::-;16996:6;17049:2;17037:9;17028:7;17024:23;17020:32;17017:52;;;17065:1;17062;17055:12;17017:52;-1:-1:-1;17088:16:82;;16926:184;-1:-1:-1;16926:184:82:o;17940:407::-;18142:2;18124:21;;;18181:2;18161:18;;;18154:30;18220:34;18215:2;18200:18;;18193:62;-1:-1:-1;;;18286:2:82;18271:18;;18264:41;18337:3;18322:19;;17940:407::o;19173:287::-;19302:3;19340:6;19334:13;19356:66;19415:6;19410:3;19403:4;19395:6;19391:17;19356:66;:::i;:::-;19438:16;;;;;19173:287;-1:-1:-1;;19173:287:82:o", "linkReferences": {}, "immutableReferences": { "29832": [ @@ -1120,7 +1120,7 @@ "upgradeToAndCall(address,bytes)": "4f1ef286", "verifyProof(uint256,uint256,uint256,uint256,uint256[8])": "354ca120" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDeletionIndices\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierLUT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"WorldIDIdentityManagerImplV2Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"batchSize\",\"type\":\"uint32\"}],\"name\":\"calculateIdentityDeletionInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"deletionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"deleteIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeleteIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchDeletionVerifiers\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setDeleteIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the deletions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"details\":\"This error is no longer in use as we now verify the commitments off-chain within the circuit no need to check for reduced elements or invalid commitments.preserved for ABI backwards compatibility with V1, no longer used, all elements are validated by the circuit\",\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"InvalidStateBridgeAddress()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"MismatchedInputLengths()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"StateBridgeAlreadyDisabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"StateBridgeAlreadyEnabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.preserved for ABI backwards compatibility with V1, no longer used, all elements come out reduced from the circuit\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\",\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"details\":\"Implements the computation described below.the deletion indices are packed into bytes calldata where each deletion index is 32 bits wide. The indices are encoded using abi.encodePacked for testing. We keccak hash all input to save verification gas. Inputs for the hash are arranged as follows: packedDeletionIndices || PreRoot || PostRoot 32 bits * batchSize || 256 || 256\",\"params\":{\"batchSize\":\"The number of identities that were deleted in this batch\",\"packedDeletionIndices\":\"The indices of the identities that were deleted from the tree.\",\"postRoot\":\"The root value of the tree after these deletions were made.\",\"preRoot\":\"The root value of the tree before these deletions were made.\"},\"returns\":{\"hash\":\"The input hash calculated as described below.\"}},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"deleteIdentities(uint256[8],bytes,uint256,uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `deletionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.InvalidDeletionIndices if the length of `packedDeletionIndices` is not a multiple of 4 (8*4 = 32 bits per index)\",\"params\":{\"postRoot\":\"The root obtained after deleting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`.\",\"preRoot\":\"The value for the root of the tree before the corresponding identity commitments have been deleted. Must be an element of the field `Kr`.\"}},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"details\":\"The deletion verifier supports batch deletions of size 10, 100 and 1000 members per batch.\",\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.InvalidVerifierLUT if `_batchInsertionVerifiers` or `_batchUpdateVerifiers` is set to the zero addressInvalidVerifier if `_semaphoreVerifier` is set to the zero address\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"initializeV2(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `_batchDeletionVerifiers` is set to the zero address\",\"details\":\"Must be called exactly onceThis is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchDeletionVerifiers\":\"The table of verifiers for verifying batch identity deletions.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `newTable` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity deletions.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `newTable` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"custom:reverts\":\"InvalidVerifier if `newVerifier` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"title\":\"WorldID Identity Manager Implementation Version 2\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidDeletionIndices()\":[{\"notice\":\"Thrown when the bytes calldata packedDeletionIndices array is not a multiple of 4 (to make up 32 bit indices)\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"InvalidVerifier()\":[{\"notice\":\"Thrown when a verifier is initialized to be the zero address\"}],\"InvalidVerifierLUT()\":[{\"notice\":\"Thrown when a verifier lookup table is initialized to be the zero address\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"},\"WorldIDIdentityManagerImplV2Initialized()\":{\"notice\":\"Thrown when the WorldIDIdentityManagerImplV2 contract is initalized\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"notice\":\"Calculates the input hash for the identity deletion verifier.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for batch identity deletions.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"initializeV2(address)\":{\"notice\":\"Initializes the V2 implementation contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity deletions.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV2.sol\":\"WorldIDIdentityManagerImplV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x75e9235f2cda58708d4a8b00c101fa7da4ae1627435569a933ca6cc0d4a0783e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67a1a9a738074036270f02e42fcc4548413e3c821da3f59bc8b42ad0e49e4dcc\",\"dweb:/ipfs/QmcCroTkesx2yMbmCFJ7NiNL8xY4zqLStQzSETetCGVsCK\"]},\"src/WorldIDIdentityManagerImplV2.sol\":{\"keccak256\":\"0x473d13831a459d27dacb6547d8cc7efe806743b6dadcc6ee16261fab3115d8a5\",\"urls\":[\"bzz-raw://eb85eaa5eac5005d7eaf304d75253df79b8e9bff5433b0052dc45252f69436c9\",\"dweb:/ipfs/QmW24krKMLtY3rKCbKtTvVk2gzw7GzTWvDDKGvd878SH77\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b\",\"dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotRenounceOwnership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ImplementationNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"InvalidCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDeletionIndices\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateBridgeAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierLUT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedInputLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"latestRoot\",\"type\":\"uint256\"}],\"name\":\"NotLatestRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofValidationFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StateBridgeAlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum WorldIDIdentityManagerImplV1.UnreducedElementType\",\"name\":\"elementType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"element\",\"type\":\"uint256\"}],\"name\":\"UnreducedElement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"depth\",\"type\":\"uint8\"}],\"name\":\"UnsupportedTreeDepth\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.Dependency\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DependencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"IdentityOperatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldExpiryTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"RootHistoryExpirySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"StateBridgeStateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum WorldIDIdentityManagerImplV1.TreeChange\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"TreeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"}],\"name\":\"WorldIDIdentityManagerImplInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"WorldIDIdentityManagerImplV2Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NO_SUCH_ROOT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"rootInfo\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"batchSize\",\"type\":\"uint32\"}],\"name\":\"calculateIdentityDeletionInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"}],\"name\":\"calculateIdentityRegistrationInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"deletionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"bytes\",\"name\":\"packedDeletionIndices\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"deleteIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeleteIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegisterIdentitiesVerifierLookupTableAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootHistoryExpiry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSemaphoreVerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreeDepth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_treeDepth\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initialRoot\",\"type\":\"uint256\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchInsertionVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchUpdateVerifiers\",\"type\":\"address\"},{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"_semaphoreVerifier\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"_batchDeletionVerifiers\",\"type\":\"address\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"queryRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"supersededTimestamp\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"internalType\":\"struct WorldIDIdentityManagerImplV1.RootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[8]\",\"name\":\"insertionProof\",\"type\":\"uint256[8]\"},{\"internalType\":\"uint256\",\"name\":\"preRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startIndex\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"identityCommitments\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"postRoot\",\"type\":\"uint256\"}],\"name\":\"registerIdentities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"requireValidRoot\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setDeleteIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIdentityOperator\",\"type\":\"address\"}],\"name\":\"setIdentityOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract VerifierLookupTable\",\"name\":\"newTable\",\"type\":\"address\"}],\"name\":\"setRegisterIdentitiesVerifierLookupTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExpiryTime\",\"type\":\"uint256\"}],\"name\":\"setRootHistoryExpiry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISemaphoreVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setSemaphoreVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"signalHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalNullifierHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256[8]\",\"name\":\"proof\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Worldcoin\",\"details\":\"The manager is based on the principle of verifying externally-created Zero Knowledge Proofs to perform the deletions.This is the implementation delegated to by a proxy.\",\"errors\":{\"InvalidCommitment(uint256)\":[{\"details\":\"This error is no longer in use as we now verify the commitments off-chain within the circuit no need to check for reduced elements or invalid commitments.preserved for ABI backwards compatibility with V1, no longer used, all elements are validated by the circuit\",\"params\":{\"index\":\"The index in the array of identity commitments where the invalid commitment was found.\"}}],\"InvalidStateBridgeAddress()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"MismatchedInputLengths()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"NotLatestRoot(uint256,uint256)\":[{\"params\":{\"latestRoot\":\"The actual latest root at the time of the transaction.\",\"providedRoot\":\"The root that was provided as the `preRoot` for a transaction.\"}}],\"StateBridgeAlreadyDisabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"StateBridgeAlreadyEnabled()\":[{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\"}],\"Unauthorized(address)\":[{\"params\":{\"user\":\"The user that attempted the action that they were not authorised for.\"}}],\"UnreducedElement(uint8,uint256)\":[{\"details\":\"`r` in this case is given by `SNARK_SCALAR_FIELD`.preserved for ABI backwards compatibility with V1, no longer used, all elements come out reduced from the circuit\",\"params\":{\"element\":\"The value of that element.\",\"elementType\":\"The kind of element that was encountered unreduced.\"}}],\"UnsupportedTreeDepth(uint8)\":[{\"params\":{\"depth\":\"Passed tree depth.\"}}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"DependencyUpdated(uint8,address,address)\":{\"params\":{\"kind\":\"The kind of dependency that was updated.\",\"newAddress\":\"The new address of that dependency.\",\"oldAddress\":\"The old address of that dependency.\"}},\"IdentityOperatorChanged(address,address)\":{\"params\":{\"newOperator\":\"The address of the new identity operator.\",\"oldOperator\":\"The address of the old identity operator.\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"params\":{\"newExpiryTime\":\"The expiry time after the change.\",\"oldExpiryTime\":\"The expiry time prior to the change.\"}},\"StateBridgeStateChange(bool)\":{\"details\":\"preserved for ABI backwards compatibility with V1, no longer used\",\"params\":{\"isEnabled\":\"Set to `true` if the event comes from the state bridge being enabled, `false` otherwise.\"}},\"TreeChanged(uint256,uint8,uint256)\":{\"params\":{\"kind\":\"Either \\\"insertion\\\" or \\\"update\\\", the kind of alteration that was made to the tree.\",\"postRoot\":\"The value of the tree's root after the update.\",\"preRoot\":\"The value of the tree's root before the update.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"WorldIDIdentityManagerImplInitialized(uint8,uint256)\":{\"params\":{\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}}},\"kind\":\"dev\",\"methods\":{\"NO_SUCH_ROOT()\":{\"details\":\"Can be checked against when querying for root data.\"},\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"details\":\"Implements the computation described below.the deletion indices are packed into bytes calldata where each deletion index is 32 bits wide. The indices are encoded using abi.encodePacked for testing. We keccak hash all input to save verification gas. Inputs for the hash are arranged as follows: packedDeletionIndices || PreRoot || PostRoot 32 bits * batchSize || 256 || 256\",\"params\":{\"batchSize\":\"The number of identities that were deleted in this batch\",\"packedDeletionIndices\":\"The indices of the identities that were deleted from the tree.\",\"postRoot\":\"The root value of the tree after these deletions were made.\",\"preRoot\":\"The root value of the tree before these deletions were made.\"},\"returns\":{\"hash\":\"The input hash calculated as described below.\"}},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"details\":\"Implements the computation described below.\",\"params\":{\"identityCommitments\":\"The identities that were added to the tree to produce `postRoot`.\",\"postRoot\":\"The root value of the tree after these insertions were made.\",\"preRoot\":\"The root value of the tree before these insertions were made.\",\"startIndex\":\"The index in the tree from which inserting started.\"},\"returns\":{\"hash\":\"The input hash calculated as described below. We keccak hash all input to save verification gas. Inputs are arranged as follows: StartIndex || PreRoot || PostRoot || IdComms[0] || IdComms[1] || ... || IdComms[batchSize-1] 32\\t || 256 || 256 || 256 || 256 || ... || 256 bits\"}},\"deleteIdentities(uint256[8],bytes,uint256,uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `deletionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.InvalidDeletionIndices if the length of `packedDeletionIndices` is not a multiple of 4 (8*4 = 32 bits per index)\",\"params\":{\"postRoot\":\"The root obtained after deleting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`.\",\"preRoot\":\"The value for the root of the tree before the corresponding identity commitments have been deleted. Must be an element of the field `Kr`.\"}},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"details\":\"The deletion verifier supports batch deletions of size 10, 100 and 1000 members per batch.\",\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier lookup table.\"}},\"getRootHistoryExpiry()\":{\"returns\":{\"_0\":\"expiryTime The amount of time it takes for a root to expire.\"}},\"getSemaphoreVerifierAddress()\":{\"returns\":{\"_0\":\"addr The address of the contract being used as the verifier.\"}},\"getTreeDepth()\":{\"returns\":{\"_0\":\"initializedTreeDepth Tree depth.\"}},\"identityOperator()\":{\"returns\":{\"_0\":\"_ The address authorized to perform identity operations.\"}},\"initialize(uint8,uint256,address,address,address)\":{\"custom:reverts\":\"string If called more than once at the same initialisation number.UnsupportedTreeDepth If passed tree depth is not among defined values.InvalidVerifierLUT if `_batchInsertionVerifiers` or `_batchUpdateVerifiers` is set to the zero addressInvalidVerifier if `_semaphoreVerifier` is set to the zero address\",\"details\":\"Must be called exactly once.This is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchInsertionVerifiers\":\"The verifier lookup table for batch insertions.\",\"_batchUpdateVerifiers\":\"The verifier lookup table for batch updates.\",\"_semaphoreVerifier\":\"The verifier to use for semaphore protocol proofs.\",\"_treeDepth\":\"The depth of the MerkeTree\",\"initialRoot\":\"The initial value for the `latestRoot` in the contract. When deploying this should be set to the root of the empty tree.\"}},\"initializeV2(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `_batchDeletionVerifiers` is set to the zero address\",\"details\":\"Must be called exactly onceThis is marked `reinitializer()` to allow for updated initialisation steps when working with upgrades based upon this contract. Be aware that there are only 256 (zero-indexed) initialisations allowed, so decide carefully when to use them. Many cases can safely be replaced by use of setters.This function is explicitly not virtual as it does not make sense to override even when upgrading. Create a separate initializer function instead.\",\"params\":{\"_batchDeletionVerifiers\":\"The table of verifiers for verifying batch identity deletions.\"}},\"latestRoot()\":{\"returns\":{\"_0\":\"root The value of the latest tree root.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"queryRoot(uint256)\":{\"details\":\"Should be used sparingly as the query can be quite expensive.\",\"params\":{\"root\":\"The root for which you are querying information.\"},\"returns\":{\"_0\":\"rootInfo The information about `root`, or `NO_SUCH_ROOT` if `root` does not exist. Note that if the queried root is the current, the timestamp will be invalid as the root has not been superseded.\"}},\"registerIdentities(uint256[8],uint256,uint32,uint256[],uint256)\":{\"custom:reverts\":\"Unauthorized If the message sender is not authorised to add identities.NotLatestRoot If the provided `preRoot` is not the latest root.ProofValidationFailure If `insertionProof` cannot be verified using the provided inputs.VerifierLookupTable.NoSuchVerifier If the batch sizes doesn't match a known verifier.\",\"params\":{\"identityCommitments\":\"The identities that were inserted into the tree starting at `startIndex` and `preRoot` to give `postRoot`. All of the commitments must be elements of the field `Kr`.\",\"postRoot\":\"The root obtained after inserting all of `identityCommitments` into the tree described by `preRoot`. Must be an element of the field `Kr`. (alread in reduced form)\",\"startIndex\":\"The position in the tree at which the insertions were made.\"}},\"renounceOwnership()\":{\"details\":\"This function is intentionally not `virtual` as we do not want it to be possible to renounce ownership for any WorldID implementation.This function is marked as `onlyOwner` to maintain the access restriction from the base contract.\"},\"requireValidRoot(uint256)\":{\"custom:reverts\":\"ExpiredRoot If the provided `root` has expired.NonExistentRoot If the provided `root` does not exist in the history.\",\"details\":\"A root is valid if it is either the latest root, or not the latest root but has not expired.\",\"params\":{\"root\":\"The root of the merkle tree to check for validity.\"}},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `newTable` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity deletions.\"}},\"setIdentityOperator(address)\":{\"params\":{\"newIdentityOperator\":\"The address of the new identity operator.\"},\"returns\":{\"_0\":\"_ The address of the old identity operator.\"}},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"custom:reverts\":\"InvalidVerifierLUT if `newTable` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newTable\":\"The new verifier lookup table to be used for verifying identity registrations.\"}},\"setRootHistoryExpiry(uint256)\":{\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newExpiryTime\":\"The new time to use to expire roots.\"}},\"setSemaphoreVerifier(address)\":{\"custom:reverts\":\"InvalidVerifier if `newVerifier` is set to the zero address\",\"details\":\"Only the owner of the contract can call this function.\",\"params\":{\"newVerifier\":\"The new verifier instance to be used for verifying semaphore proofs.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"custom:reverts\":\"string If the zero-knowledge proof cannot be verified for the public inputs.\",\"details\":\"Note that a double-signaling check is not included here, and should be carried by the caller.\",\"params\":{\"externalNullifierHash\":\"A keccak256 hash of the external nullifier\",\"nullifierHash\":\"The nullifier hash\",\"proof\":\"The zero-knowledge proof\",\"root\":\"The of the Merkle tree\",\"signalHash\":\"A keccak256 hash of the Semaphore signal\"}}},\"title\":\"WorldID Identity Manager Implementation Version 2\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotRenounceOwnership()\":[{\"notice\":\"Thrown when an attempt is made to renounce ownership.\"}],\"ExpiredRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has expired.\"}],\"ImplementationNotInitialized()\":[{\"notice\":\"Thrown when attempting to call a function while the implementation has not been initialized.\"}],\"InvalidCommitment(uint256)\":[{\"notice\":\"Thrown when one or more of the identity commitments to be inserted is invalid.\"}],\"InvalidDeletionIndices()\":[{\"notice\":\"Thrown when the bytes calldata packedDeletionIndices array is not a multiple of 4 (to make up 32 bit indices)\"}],\"InvalidStateBridgeAddress()\":[{\"notice\":\"Thrown when attempting to set the state bridge address to the zero address.\"}],\"InvalidVerifier()\":[{\"notice\":\"Thrown when a verifier is initialized to be the zero address\"}],\"InvalidVerifierLUT()\":[{\"notice\":\"Thrown when a verifier lookup table is initialized to be the zero address\"}],\"MismatchedInputLengths()\":[{\"notice\":\"Thrown when the inputs to `removeIdentities` do not match in length.\"}],\"NonExistentRoot()\":[{\"notice\":\"Thrown when attempting to validate a root that has yet to be added to the root history.\"}],\"NotLatestRoot(uint256,uint256)\":[{\"notice\":\"Thrown when the provided root is not the very latest root.\"}],\"ProofValidationFailure()\":[{\"notice\":\"Thrown when the provided proof cannot be verified for the accompanying inputs.\"}],\"StateBridgeAlreadyDisabled()\":[{\"notice\":\"Thrown when attempting to disable the bridge when it is already disabled.\"}],\"StateBridgeAlreadyEnabled()\":[{\"notice\":\"Thrown when attempting to enable the bridge when it is already enabled.\"}],\"Unauthorized(address)\":[{\"notice\":\"Thrown when trying to execute a privileged action without being the contract manager.\"}],\"UnreducedElement(uint8,uint256)\":[{\"notice\":\"Thrown when encountering an element that should be reduced as a member of `Fr` but is not.\"}],\"UnsupportedTreeDepth(uint8)\":[{\"notice\":\"Thrown when Semaphore tree depth is not supported.\"}]},\"events\":{\"DependencyUpdated(uint8,address,address)\":{\"notice\":\"Emitted when a dependency's address is updated via an admin action.\"},\"IdentityOperatorChanged(address,address)\":{\"notice\":\"Emitted when the identity operator is changed.\"},\"RootHistoryExpirySet(uint256,uint256)\":{\"notice\":\"Emitted when the root history expiry time is changed.\"},\"StateBridgeStateChange(bool)\":{\"notice\":\"Emitted when the state bridge is enabled or disabled.\"},\"TreeChanged(uint256,uint8,uint256)\":{\"notice\":\"Emitted when the current root of the tree is updated.\"},\"WorldIDIdentityManagerImplV2Initialized()\":{\"notice\":\"Thrown when the WorldIDIdentityManagerImplV2 contract is initalized\"}},\"kind\":\"user\",\"methods\":{\"NO_SUCH_ROOT()\":{\"notice\":\"A constant representing a root that doesn't exist.\"},\"calculateIdentityDeletionInputHash(bytes,uint256,uint256,uint32)\":{\"notice\":\"Calculates the input hash for the identity deletion verifier.\"},\"calculateIdentityRegistrationInputHash(uint32,uint256,uint256,uint256[])\":{\"notice\":\"Calculates the input hash for the identity registration verifier.\"},\"getDeleteIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for batch identity deletions.\"},\"getRegisterIdentitiesVerifierLookupTableAddress()\":{\"notice\":\"Gets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"getRootHistoryExpiry()\":{\"notice\":\"Gets the current amount of time used to expire roots in the history.\"},\"getSemaphoreVerifierAddress()\":{\"notice\":\"Gets the address of the verifier used for verification of semaphore proofs.\"},\"getTreeDepth()\":{\"notice\":\"Gets the Semaphore tree depth the contract was initialized with.\"},\"identityOperator()\":{\"notice\":\"Gets the address that is authorised to perform identity operations on this identity manager instance.\"},\"initialize(uint8,uint256,address,address,address)\":{\"notice\":\"Initializes the contract.\"},\"initializeV2(address)\":{\"notice\":\"Initializes the V2 implementation contract.\"},\"latestRoot()\":{\"notice\":\"Allows a caller to query the latest root.\"},\"queryRoot(uint256)\":{\"notice\":\"Allows a caller to query the root history for information about a given root.\"},\"renounceOwnership()\":{\"notice\":\"Ensures that ownership of WorldID implementations cannot be renounced.\"},\"requireValidRoot(uint256)\":{\"notice\":\"Reverts if the provided root value is not valid.\"},\"setDeleteIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity deletions.\"},\"setIdentityOperator(address)\":{\"notice\":\"Sets the address that is authorised to perform identity operations on this identity manager instance.\"},\"setRegisterIdentitiesVerifierLookupTable(address)\":{\"notice\":\"Sets the address for the lookup table of merkle tree verifiers used for identity registrations.\"},\"setRootHistoryExpiry(uint256)\":{\"notice\":\"Sets the time to wait before expiring a root from the root history.\"},\"setSemaphoreVerifier(address)\":{\"notice\":\"Sets the address for the semaphore verifier to be used for verification of semaphore proofs.\"},\"verifyProof(uint256,uint256,uint256,uint256,uint256[8])\":{\"notice\":\"A verifier for the semaphore protocol.\"}},\"notice\":\"An implementation of a batch-based identity manager for the WorldID protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WorldIDIdentityManagerImplV2.sol\":\"WorldIDIdentityManagerImplV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@zk-kit/=lib/zk-kit/packages/\",\":contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":ds-test/=lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":semaphore/=lib/semaphore/packages/contracts/contracts/\",\":solmate/=lib/solmate/src/\",\":zk-kit/=lib/zk-kit/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xd712fb45b3ea0ab49679164e3895037adc26ce12879d5184feb040e01c1c07a9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79ecc0838b0649460c0a538a4adb55b2b530e726c5526afc5e09c8eea4f3af13\",\"dweb:/ipfs/QmUxugyGDGGeLzDFi8QDH2vQMtCFaheiujWv58SuGVx4bZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0x923b9774b81c1abfb992262ae7763b6e6de77b077a7180d53c6ebb7b1c8bd648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53445dc0431f9b45c06f567c6091da961d4087bec0010cca5bd62100fa624a38\",\"dweb:/ipfs/QmNvBYpBv183czrAqNXr76E8M3LF93ouAJFeAcHfb59Rcx\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x7cdab82b437a17902683a413c86d14f512674a0710007bf44c584a2d2d3ca833\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffe4db7a9f3cdd5a5d019462c2859f4f98f7aae08704afdcb3ef0d08d966bbeb\",\"dweb:/ipfs/QmTCHSuoi22dAu55qv4TcENyTmv5mTpAoxmYWD8cRnEp3M\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/WorldIDIdentityManagerImplV1.sol\":{\"keccak256\":\"0x75e9235f2cda58708d4a8b00c101fa7da4ae1627435569a933ca6cc0d4a0783e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67a1a9a738074036270f02e42fcc4548413e3c821da3f59bc8b42ad0e49e4dcc\",\"dweb:/ipfs/QmcCroTkesx2yMbmCFJ7NiNL8xY4zqLStQzSETetCGVsCK\"]},\"src/WorldIDIdentityManagerImplV2.sol\":{\"keccak256\":\"0x473d13831a459d27dacb6547d8cc7efe806743b6dadcc6ee16261fab3115d8a5\",\"urls\":[\"bzz-raw://eb85eaa5eac5005d7eaf304d75253df79b8e9bff5433b0052dc45252f69436c9\",\"dweb:/ipfs/QmW24krKMLtY3rKCbKtTvVk2gzw7GzTWvDDKGvd878SH77\"]},\"src/abstract/WorldIDImpl.sol\":{\"keccak256\":\"0xccfff2c5d7af4e505ed13b7d46011d5544317343ea92e7beb874e4d69358e6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://428860598ca38e42e29892a0b4759c4d3010378f54c3b3e4392f965ff091076e\",\"dweb:/ipfs/QmYPjcDRTr1UEeSbS7ssdGjbDHzAqjRNKBsYJqKJWeL8bZ\"]},\"src/data/VerifierLookupTable.sol\":{\"keccak256\":\"0xfd213b79aaec8d205c50ab3ed5c4ebed06ae602ed526a820340adc1c76745fbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6af992a56a7cee8124af7f16d74dc8a2a7ae5f8b3059b92d46862e44c3804b83\",\"dweb:/ipfs/QmV9bQtJ9PjnwsiiZMUGJANB3znSxJ6ACTqWv9WkQeoeB3\"]},\"src/interfaces/IBaseWorldID.sol\":{\"keccak256\":\"0xcec58605726864d72e35d62c85e002acc98d3f8fa19d01b49fff461c2767c144\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://57714fcbceb0497f3fe8906778a837082939489fbb0bd930d015ad6e971913d5\",\"dweb:/ipfs/QmQVVmLr9CEkR727ByMF96a8MbwAeB4AQQWvxneg2Avkq8\"]},\"src/interfaces/IBridge.sol\":{\"keccak256\":\"0x0931c789450d21479da5d4de8c6435fca965660f6e1bd746fff958f4c20cf2ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c564b4d4a15e8075555077a043d773bb20133548376402ff3dbc0eccb57435d\",\"dweb:/ipfs/QmXQRihAFdtfyjTNeHmx9nmNHiS1wy2658Y5aXCXo2tKSQ\"]},\"src/interfaces/ISemaphoreVerifier.sol\":{\"keccak256\":\"0xc18d214e10a4debdc5d7e0f9bfb920211debf93f99524438ced0fae03854f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59414e42fadace7b853ed04842d4e7b6597fb3168fda03e771c2cacd7e04720b\",\"dweb:/ipfs/QmcjV2prwiyHBaUrwpqL7f6CZBpJqscZspaDKzUnDGcaUa\"]},\"src/interfaces/ITreeVerifier.sol\":{\"keccak256\":\"0x0f4c39de6e476791f28510b61c3fb781468d1ecfd88ab15c1bdcb730e90fbd4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4facca90510d2efbb44a3ddeace04da1d5396b914b9e5d93f55d5253605c20a4\",\"dweb:/ipfs/QmSg8fYNFXLUse5xmBaayeTsk7QuuHaVLuXmJXZ4E3Mvuw\"]},\"src/interfaces/IWorldID.sol\":{\"keccak256\":\"0x577908eff2d29d96354a06ab2602ffe6b97aa9d491330efcc2fcd0a88a8acbb1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0a36a598a851b88cff364b4211dc32081f51940aa8076d9c9b7de8ab126b2f\",\"dweb:/ipfs/QmSne8aRiE8C8RuwEUSk4doETKAGaavrEYyUkwiJc5H8qc\"]},\"src/utils/CheckInitialized.sol\":{\"keccak256\":\"0xfab096b633efd580548007e97920f6088e6d8a5287db84b9aa3d595c02fefcf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dee612c9dbad59d535e7a72b79191187fd91c06af9cb5b6f68d60274d0ee2c04\",\"dweb:/ipfs/QmVJbSQ8DAN6igasbgHjZTM4NRZ3EjrhK8wFcvUG1wPYtZ\"]},\"src/utils/SemaphoreTreeDepthValidator.sol\":{\"keccak256\":\"0x50140161de381aa963457cfd2ee8831a435bd79040f38794e6ef07365c49c872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcc5b8a3a6f5146aa3fdee550c3e80d828b55df63223485da3d5655a591ad661\",\"dweb:/ipfs/QmWfUzbeFoSaPV1E8QxagUnpt5zfmPXgiropUg1GcV6oZs\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.21+commit.d9974bed" @@ -2270,6 +2270,7 @@ "@zk-kit/=lib/zk-kit/packages/", "contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "ds-test/=lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", @@ -2503,7 +2504,7 @@ 35497 ], "SemaphoreTreeDepthValidator": [ - 48535 + 49392 ], "VerifierLookupTable": [ 35416 @@ -4389,7 +4390,7 @@ "6959:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "6959:15:44" }, "nodeType": "ModifierInvocation", @@ -4677,7 +4678,7 @@ "9449:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "9449:15:44" }, "nodeType": "ModifierInvocation", @@ -5259,7 +5260,7 @@ "10089:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "10089:15:44" }, "nodeType": "ModifierInvocation", @@ -5730,7 +5731,7 @@ "11913:15:44" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 48500, + "referencedDeclaration": 49357, "src": "11913:15:44" }, "nodeType": "ModifierInvocation", @@ -5928,7 +5929,7 @@ 35497, 35426, 35181, - 48506, + 49363, 29937, 29622, 29253, @@ -5957,7 +5958,7 @@ 35157, 35422, 35425, - 48477 + 49334 ], "usedEvents": [ 29037, diff --git a/tests/common/abi.rs b/tests/common/abi.rs index f857132e..8711986b 100644 --- a/tests/common/abi.rs +++ b/tests/common/abi.rs @@ -5,45 +5,10 @@ use ethers::prelude::abigen; abigen!( BatchingContract, r#"[ - struct RootInfo { uint256 root; uint128 supersededTimestamp; bool isValid } - function NO_SUCH_ROOT() public pure returns (RootInfo memory rootInfo) - error UnreducedElement(uint8 elementType, uint256 element) - error Unauthorized(address user) - error InvalidCommitment(uint256 commitment) - error ProofValidationFailure() - error NotLatestRoot(uint256 providedRoot, uint256 latestRoot) - error ExpiredRoot() - error NonExistentRoot() - error ImplementationNotInitalized() - error NoSuchVerifier() - error MismatchedInputLengths() - constructor(address _logic, bytes memory data) payable function initialize(uint8 treeDepth, uint256 initialRoot, address _batchInsertionVerifiers, address _batchUpdateVerifiers, address _semaphoreVerifier) public virtual function initializeV2(address _batchDeletionVerifiers) public virtual - function deleteIdentities(uint256[8] calldata deletionProof, uint256 preRoot, bytes calldata deletionIndices, uint256 postRoot) public virtual - function registerIdentities(uint256[8] calldata insertionProof, uint256 preRoot, uint32 startIndex, uint256[] calldata identityCommitments, uint256 postRoot) public virtual - function updateIdentities(uint256[8] calldata updateProof, uint256 preRoot, uint32[] calldata leafIndices, uint256[] calldata oldIdentities, uint256[] calldata newIdentities, uint256 postRoot) public virtual - function calculateIdentityRegistrationInputHash(uint32 startIndex, uint256 preRoot, uint256 postRoot, uint256[] identityCommitments) public view virtual returns (bytes32 hash) - function calculateIdentityUpdateInputHash(uint256 preRoot, uint256 postRoot, uint32[] calldata leafIndices, uint256[] calldata oldIdentities, uint256[] calldata newIdentities) public view virtual returns (bytes32 hash) - function latestRoot() public view virtual returns (uint256 root) - function queryRoot(uint256 root) public view virtual returns (RootInfo memory rootInfo) - function isInputInReducedForm(uint256 input) public view virtual returns (bool isInReducedForm) - function checkValidRoot(uint256 root) public view virtual returns (bool) - function getRegisterIdentitiesVerifierLookupTableAddress() public view virtual returns (address addr) - function setRegisterIdentitiesVerifierLookupTable(address newVerifier) public virtual - function getIdentityUpdateVerifierLookupTableAddress() public view virtual returns (address addr) - function setIdentityUpdateVerifierLookupTable(address newVerifier) public virtual - function getSemaphoreVerifierAddress() public view virtual returns (address addr) - function setSemaphoreVerifier(address newVerifier) public virtual - function getRootHistoryExpiry() public view virtual returns (uint256 expiryTime) - function setRootHistoryExpiry(uint256 newExpiryTime) public virtual function verifyProof(uint256 root, uint256 signalHash, uint256 nullifierHash, uint256 externalNullifierHash, uint256[8] calldata proof) public view virtual - function owner() public view virtual returns (address) - function renounceOwnership() public virtual - function transferOwnership(address newOwner) public virtual - function proxiableUUID() external view virtual override returns (bytes32) - function upgradeTo(address newImplementation) external virtual - function upgradeToAndCall(address newImplementation, bytes memory data) external payable virtual + function setRootHistoryExpiry(uint256 newExpiryTime) public virtual ]"#, event_derives(serde::Deserialize, serde::Serialize) ); diff --git a/tests/common/chain_mock.rs b/tests/common/chain_mock.rs index 2f6ddd97..4f661ea9 100644 --- a/tests/common/chain_mock.rs +++ b/tests/common/chain_mock.rs @@ -58,7 +58,7 @@ pub async fn spawn_mock_chain( .send() .await?; - let verifier_path = "./sol/SemaphoreVerifier.json"; + let verifier_path = "./sol/SemaphoreVerifier20.json"; let verifier_file = File::open(verifier_path).unwrap_or_else(|_| panic!("Failed to open `{verifier_path}`")); diff --git a/tests/common/mod.rs b/tests/common/mod.rs index f45a8c5a..3d0fdad3 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -68,6 +68,8 @@ use self::chain_mock::{spawn_mock_chain, MockChain, SpecialisedContract}; use self::prelude::*; use self::prover_mock::ProverType; +const NUM_ATTEMPTS_FOR_INCLUSION_PROOF: usize = 20; + #[allow(clippy::too_many_arguments)] #[instrument(skip_all)] pub async fn test_verify_proof( @@ -223,7 +225,7 @@ pub async fn test_inclusion_proof( leaf: &Hash, expect_failure: bool, ) { - for i in 1..21 { + for i in 0..NUM_ATTEMPTS_FOR_INCLUSION_PROOF { let body = construct_inclusion_proof_body(leaf); info!(?uri, "Contacting"); let req = Request::builder() @@ -262,16 +264,23 @@ pub async fn test_inclusion_proof( generate_reference_proof_json(ref_tree, leaf_index, "pending") ); assert_eq!(response.status(), StatusCode::ACCEPTED); - info!("Got pending, waiting 1 second, iteration {}", i); - tokio::time::sleep(Duration::from_secs(1)).await; + info!("Got pending, waiting 5 seconds, iteration {}", i); + tokio::time::sleep(Duration::from_secs(5)).await; } else if status == "mined" { // We don't differentiate between these 2 states in tests let proof_json = generate_reference_proof_json(ref_tree, leaf_index, status); assert_eq!(result_json, proof_json); + + return; } else { panic!("Unexpected status: {}", status); } } + + panic!( + "Failed to get an inclusion proof after {} attempts!", + NUM_ATTEMPTS_FOR_INCLUSION_PROOF + ); } #[instrument(skip_all)] @@ -281,42 +290,40 @@ pub async fn test_inclusion_status( leaf: &Hash, expected_status: Status, ) { - for _i in 1..21 { - let body = construct_inclusion_proof_body(leaf); - info!(?uri, "Contacting"); - let req = Request::builder() - .method("POST") - .uri(uri.to_owned() + "/inclusionProof") - .header("Content-Type", "application/json") - .body(body) - .expect("Failed to create inclusion proof hyper::Body"); + let body = construct_inclusion_proof_body(leaf); + info!(?uri, "Contacting"); + let req = Request::builder() + .method("POST") + .uri(uri.to_owned() + "/inclusionProof") + .header("Content-Type", "application/json") + .body(body) + .expect("Failed to create inclusion proof hyper::Body"); - let mut response = client - .request(req) - .await - .expect("Failed to execute request."); + let mut response = client + .request(req) + .await + .expect("Failed to execute request."); - let bytes = hyper::body::to_bytes(response.body_mut()) - .await - .expect("Failed to convert response body to bytes"); - let result = String::from_utf8(bytes.into_iter().collect()) - .expect("Could not parse response bytes to utf-8"); - println!( - "########################################################## \n + let bytes = hyper::body::to_bytes(response.body_mut()) + .await + .expect("Failed to convert response body to bytes"); + let result = String::from_utf8(bytes.into_iter().collect()) + .expect("Could not parse response bytes to utf-8"); + println!( + "########################################################## \n result: {:?}", - result - ); - let result_json = serde_json::from_str::(&result) - .expect("Failed to parse response as json"); - let status = result_json["status"] - .as_str() - .expect("Failed to get status"); - - assert_eq!( - expected_status, - Status::from_str(status).expect("Could not convert str to Status") - ); - } + result + ); + let result_json = serde_json::from_str::(&result) + .expect("Failed to parse response as json"); + let status = result_json["status"] + .as_str() + .expect("Failed to get status"); + + assert_eq!( + expected_status, + Status::from_str(status).expect("Could not convert str to Status") + ); } #[instrument(skip_all)] diff --git a/tests/dynamic_batch_sizes.rs b/tests/dynamic_batch_sizes.rs index 921ee2cc..6113cc0f 100644 --- a/tests/dynamic_batch_sizes.rs +++ b/tests/dynamic_batch_sizes.rs @@ -8,7 +8,7 @@ use hyper::Uri; use crate::common::{test_add_batch_size, test_remove_batch_size}; const SUPPORTED_DEPTH: usize = 20; -const IDLE_TIME: u64 = 7; +const IDLE_TIME: u64 = 10; #[tokio::test] async fn dynamic_batch_sizes() -> anyhow::Result<()> { @@ -16,18 +16,25 @@ async fn dynamic_batch_sizes() -> anyhow::Result<()> { init_tracing_subscriber(); info!("Starting integration test"); - let batch_size: usize = 3; + let first_batch_size: usize = 3; let second_batch_size: usize = 2; + #[allow(clippy::cast_possible_truncation)] let tree_depth: u8 = SUPPORTED_DEPTH as u8; let mut ref_tree = PoseidonTree::new(SUPPORTED_DEPTH + 1, ruint::Uint::ZERO); let initial_root: U256 = ref_tree.root().into(); - let (mock_chain, db_container, insertion_prover_map, _, micro_oz) = - spawn_deps(initial_root, &[batch_size], &[], tree_depth).await?; + let (mock_chain, db_container, insertion_prover_map, _, micro_oz) = spawn_deps( + initial_root, + &[first_batch_size, second_batch_size], + &[], + tree_depth, + ) + .await?; - let prover_mock = &insertion_prover_map[&batch_size]; + let first_prover = &insertion_prover_map[&first_batch_size]; + let second_prover = &insertion_prover_map[&second_batch_size]; let port = db_container.port(); let db_url = format!("postgres://postgres:postgres@localhost:{port}/database"); @@ -45,7 +52,7 @@ async fn dynamic_batch_sizes() -> anyhow::Result<()> { "--tree-depth", &format!("{tree_depth}"), "--prover-urls", - &prover_mock.arg_string(), + &first_prover.arg_string(), "--batch-timeout-seconds", "3", "--dense-tree-prefix-depth", @@ -75,7 +82,7 @@ async fn dynamic_batch_sizes() -> anyhow::Result<()> { .await .expect("Failed to spawn app."); - let test_identities = generate_test_identities(batch_size * 5); + let test_identities = generate_test_identities(first_batch_size * 5); let identities_ref: Vec = test_identities .iter() .map(|i| Hash::from_str_radix(i, 16).unwrap()) @@ -125,9 +132,6 @@ async fn dynamic_batch_sizes() -> anyhow::Result<()> { ) .await; - // Add a new prover for batch sizes of two. - let second_prover = spawn_mock_insertion_prover(second_batch_size, tree_depth).await?; - test_add_batch_size( &uri, second_prover.url(), @@ -162,9 +166,9 @@ async fn dynamic_batch_sizes() -> anyhow::Result<()> { "prover_type": "insertion", }, { - "url": prover_mock.url() + "/", + "url": first_prover.url() + "/", "timeout_s": 30, - "batch_size": batch_size, + "batch_size": first_batch_size, "prover_type": "insertion", } @@ -172,7 +176,7 @@ async fn dynamic_batch_sizes() -> anyhow::Result<()> { ); // Insert enough identities to trigger the lower batch size. - prover_mock.set_availability(false).await; + first_prover.set_availability(false).await; test_insert_identity(&uri, &client, &mut ref_tree, &identities_ref, 3).await; test_insert_identity(&uri, &client, &mut ref_tree, &identities_ref, 4).await; @@ -181,6 +185,7 @@ async fn dynamic_batch_sizes() -> anyhow::Result<()> { tokio::time::resume(); tokio::time::sleep(Duration::from_secs(IDLE_TIME)).await; + // Check that we can also get these inclusion proofs back. test_inclusion_proof( &uri, @@ -206,9 +211,9 @@ async fn dynamic_batch_sizes() -> anyhow::Result<()> { // Now if we remove the original prover, things should still work. test_remove_batch_size( &uri, - batch_size as u64, + first_batch_size as u64, &client, - prover_mock.prover_type(), + first_prover.prover_type(), false, ) .await?; diff --git a/tests/validate_proofs.rs b/tests/validate_proofs.rs index 5b501b37..31750011 100644 --- a/tests/validate_proofs.rs +++ b/tests/validate_proofs.rs @@ -92,17 +92,24 @@ async fn validate_proofs() -> anyhow::Result<()> { let (merkle_proof, root) = test_insert_identity(&uri, &client, &mut ref_tree, &TEST_LEAVES, 0).await; - tokio::time::sleep(Duration::from_secs(5 + batch_timeout_seconds)).await; // simulate client generating a proof let nullifier_hash = generate_nullifier_hash(&IDENTITIES[0], external_nullifier_hash); - let proof = generate_proof( - &IDENTITIES[0], - &merkle_proof, - external_nullifier_hash, - signal_hash, - ) - .unwrap(); + // Generates proof in the background + let merkle_proof_for_task = merkle_proof.clone(); + let proof_task = tokio::task::spawn_blocking(move || { + generate_proof( + &IDENTITIES[0], + &merkle_proof_for_task, + external_nullifier_hash, + signal_hash, + ) + .unwrap() + }); + + tokio::time::sleep(Duration::from_secs(15 + batch_timeout_seconds)).await; + + let proof = proof_task.await.unwrap(); test_verify_proof( &uri,