diff --git a/build/contracts/TokenClaim.json b/build/contracts/TokenClaim.json new file mode 100644 index 0000000..a927d3a --- /dev/null +++ b/build/contracts/TokenClaim.json @@ -0,0 +1,491 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TokenClaim", + "sourceName": "contracts/activity/TokenClaim.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "address", + "name": "_verifier", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_duration", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "duration", + "type": "uint256" + } + ], + "name": "DurationUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "erc20", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "wallet", + "type": "address" + } + ], + "name": "EventERC20Wallet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "passport", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "EventTokenClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "verifier", + "type": "address" + } + ], + "name": "EventVerifierUpdated", + "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": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "inputs": [], + "name": "_CACHED_CHAIN_ID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_CACHED_THIS", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "checkSigner", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "passport", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "signTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "saltNonce", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "claimedAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "duration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "erc20Wallets", + "outputs": [ + { + "internalType": "address", + "name": "wallet", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + }, + { + "internalType": "address", + "name": "_passport", + "type": "address" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_contract", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_signTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_saltNonce", + "type": "uint256" + } + ], + "name": "getMessageHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "minDuration", + "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": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "valNew", + "type": "uint256" + } + ], + "name": "updateDuation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "erc20", + "type": "address" + }, + { + "internalType": "address", + "name": "wallet", + "type": "address" + } + ], + "name": "updateERC20Wallet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_verifier", + "type": "address" + } + ], + "name": "updateVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "verifier", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60c03461011c57601f6113ea38819003918201601f19168301916001600160401b038311848410176101215780849260809460405283398101031261011c5761004781610137565b61005360208301610137565b606061006160408501610137565b93015192600092835494604060018060a01b0319953387891617815581519760018060a01b039687948592833391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08680a3600160025560ff1960035416600355600455610708600555466080523060a0521681526007602052209116848254161790551690600654161760065561129e908161014c82396080518181816107d00152610c7f015260a0518181816102c501526107f20152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361011c5756fe6040608081526004908136101561001557600080fd5b600091823560e01c8062c4196e14610cbf5780630fb5a6b414610ca25780632b437d4814610c675780632b7ac3f314610c3e578063343685d1146106d75780633f4ba83a1461064257806356715761146106235780635c975abb146105ff5780636d043194146105a0578063715018a6146105435780637f9d3096146104b95780638456cb591461045e5780638da5cb5b1461043657806397fc007c14610378578063c04113641461033d578063c6d5813e146102f4578063da28b527146102b0578063de76cadb146101b65763f2fde38b146100f157600080fd5b346101b25760203660031901126101b25761010a610d2c565b90610113610de8565b6001600160a01b0391821692831561016057505082546001600160a01b0319811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b8280fd5b509190346102ac57806003193601126102ac576101d1610d2c565b6101d9610d47565b936101e2610de8565b6001600160a01b0391821680855260076020528385205495831695909216851461025a57508293817f75a33e8174368dc0792ac0a162a518ece06bebca5d2d915bf1a161b4fdc60cbf94526007602052828520816bffffffffffffffffffffffff60a01b82541617905582519182526020820152a180f35b608490602084519162461bcd60e51b8352820152602660248201527f546f6b656e436c61696d65723a2045524332302077616c6c6574206e6f7420636044820152651a185b99d95960d21b6064820152fd5b5080fd5b5050346102ac57816003193601126102ac57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346102ac57806003193601126102ac5780602092610312610d2c565b61031a610d47565b6001600160a01b0391821683526008865283832091168252845220549051908152f35b5050346102ac5760203660031901126102ac576020916001600160a01b0390829082610367610d2c565b168152600785522054169051908152f35b50346101b25760203660031901126101b257610392610d2c565b61039a610de8565b6001600160a01b03169182156103e5575050600680546001600160a01b031916821790557f4635bfbeab18ad788a7fc2a516293118982d68d953206bd5f8c556890e72d7e58280a280f35b906020608492519162461bcd60e51b8352820152602560248201527f546f6b656e436c61696d65723a20616464726573732063616e206e6f74206265604482015264207a65726f60d81b6064820152fd5b5050346102ac57816003193601126102ac57905490516001600160a01b039091168152602090f35b5050346102ac57816003193601126102ac5760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589161049c610de8565b6104a4610e40565b600160ff19600354161760035551338152a180f35b50346101b25760203660031901126101b2578035916104d6610de8565b60055483111561050b57508190557f91abcc2d6823e3a3f11d31b208dd3065d2c6a791f1c7c9fe96a42ce12897eac58280a280f35b906020606492519162461bcd60e51b83528201526012602482015271191d5c985d1a5bdb881d1bdbc81cda1bdc9d60721b6044820152fd5b833461059d578060031936011261059d5761055c610de8565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b8382346102ac5760603660031901126102ac576105bb610d2c565b60443567ffffffffffffffff81116105fb57366023820112156105fb576105f8928160246105ee93369301359101610db1565b9060243590610ff8565b80f35b8380fd5b5050346102ac57816003193601126102ac5760209060ff6003541690519015158152f35b5050346102ac57816003193601126102ac576020906005549051908152f35b50346101b257826003193601126101b25761065b610de8565b6003549060ff82161561069d575060ff1916600355513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b606490602084519162461bcd60e51b8352820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152fd5b50823461059d5760c036600319011261059d576106f2610d2c565b6106fa610d47565b9367ffffffffffffffff9060a435828111610c3a5736602382011215610c3a578086013595838711610c365760249636888285010111610c32578784519301978189853760ff84838101600181526020968791030190205416610bc05782549560649261076984359889610e84565b4211610b59576002805414610b195760028055610784610e40565b6001600160a01b03898116999091908a15610ac1578d838d9e9f818c91169e8f815260078c5220541615610a75576044359a8b15610a3457918b9c9d9e9f918a9360849d9c9d359e8f927f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091339661081d97610f7b565b60065485169061082e368685610db1565b9061083892610ff8565b8a5183828237828185810160018152030190205460ff1615610a0f575b505050338c5260088652878c208b8d528652878c20610875888254610e84565b90558a8c5260078652878c2054168751868101916323b872dd60e01b835284820152336044820152878582015284815260a0810192818410818511176109fd5760e08201908111848210176109fd578d8d61092c959482809581958f528c88527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460c082015251925af13d156109f4573d61090f81610d95565b9061091c8c519283610d5d565b81528092893d92013e5b8c610ea7565b80518581159182156109d0575b505090501561097e5750505082519485528401528201527fc5e576d85788400ff978578cc94a19ee7a30e8ee78d468f20ab2e305bef8411d60603392a3600160025580f35b90602a691bdd081cdd58d8d9595960b21b9260849588519562461bcd60e51b87528601528401527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044840152820152fd5b83809293500103126109f05784015180151581036109f05780858d610939565b8a80fd5b60609150610926565b634e487b7160e01b8e5260418752848efd5b828b51938492833781016001815203019020600160ff198254161790558c8681610855565b8a5162461bcd60e51b8152808a018b9052601c818901527f546f6b656e436c61696d65723a20616d6f756e74206973207a65726f0000000060448201528890fd5b608488631c9d195960e21b89898d8f519462461bcd60e51b8652850152808401527f546f6b656e436c61696d65723a20746f6b656e206973206e6f7420737570706f6044840152820152fd5b885162461bcd60e51b8152808801899052602e818701527f546f6b656e436c61696d65723a2070617373706f72742061646472657373206360448201526d616e206e6f74206265207a65726f60901b81880152608490fd5b5050601f919385519362461bcd60e51b85528401528201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b865162461bcd60e51b8152808601879052603b818501527f657870697265642c20706c656173652073656e6420616e6f746865722074726160448201527f6e73616374696f6e2077697468206e6577207369676e6174757265000000000081860152608490fd5b6042915060a49385519362461bcd60e51b85528401528201527f7369676e617475726520757365642e20706c656173652073656e6420616e6f7460448201527f686572207472616e73616374696f6e2077697468206e6577207369676e617475606482015261726560f01b6084820152fd5b8680fd5b8580fd5b8480fd5b5050346102ac57816003193601126102ac5760065490516001600160a01b039091168152602090f35b5050346102ac57816003193601126102ac57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101b257826003193601126101b25760209250549051908152f35b5050346102ac576101003660031901126102ac57610cdb610d2c565b91610ce4610d47565b604435916001600160a01b0390818416840361059d57608435918216820361059d57509160209491610d259360e4359360c4359360a4359360643592610f7b565b9051908152f35b600435906001600160a01b0382168203610d4257565b600080fd5b602435906001600160a01b0382168203610d4257565b90601f8019910116810190811067ffffffffffffffff821117610d7f57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610d7f57601f01601f191660200190565b929192610dbd82610d95565b91610dcb6040519384610d5d565b829481845281830111610d42578281602093846000960137010152565b6000546001600160a01b03163303610dfc57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b60ff60035416610e4c57565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b91908201809211610e9157565b634e487b7160e01b600052601160045260246000fd5b91929015610f095750815115610ebb575090565b3b15610ec45790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610f1c5750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b828510610f62575050604492506000838284010152601f80199101168101030190fd5b8481018201518686016044015293810193859350610f3f565b959390919694926040519660208801986bffffffffffffffffffffffff19809581809460601b168c5260601b1660348a015260601b166048880152605c87015260601b16607c850152609084015260b083015260d082015260d08152610100810181811067ffffffffffffffff821117610d7f5760405251902090565b9061103a92611032917f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c6000206111a1565b929092611087565b6001600160a01b0390811691160361104e57565b60405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606490fd5b600581101561118b57806110985750565b600181036110e55760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b600281036111325760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b60031461113b57565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9060418151146000146111cf576111cb916020820151906060604084015193015160001a906111d9565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831161125c5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa1561124f5781516001600160a01b03811615611249579190565b50600190565b50604051903d90823e3d90fd5b5050505060009060039056fea2646970667358221220b20c82b95689e373a1c7a755a1100bd2832b11e400e9afc9b11f724791ef175c64736f6c63430008130033", + "deployedBytecode": "0x6040608081526004908136101561001557600080fd5b600091823560e01c8062c4196e14610cbf5780630fb5a6b414610ca25780632b437d4814610c675780632b7ac3f314610c3e578063343685d1146106d75780633f4ba83a1461064257806356715761146106235780635c975abb146105ff5780636d043194146105a0578063715018a6146105435780637f9d3096146104b95780638456cb591461045e5780638da5cb5b1461043657806397fc007c14610378578063c04113641461033d578063c6d5813e146102f4578063da28b527146102b0578063de76cadb146101b65763f2fde38b146100f157600080fd5b346101b25760203660031901126101b25761010a610d2c565b90610113610de8565b6001600160a01b0391821692831561016057505082546001600160a01b0319811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b8280fd5b509190346102ac57806003193601126102ac576101d1610d2c565b6101d9610d47565b936101e2610de8565b6001600160a01b0391821680855260076020528385205495831695909216851461025a57508293817f75a33e8174368dc0792ac0a162a518ece06bebca5d2d915bf1a161b4fdc60cbf94526007602052828520816bffffffffffffffffffffffff60a01b82541617905582519182526020820152a180f35b608490602084519162461bcd60e51b8352820152602660248201527f546f6b656e436c61696d65723a2045524332302077616c6c6574206e6f7420636044820152651a185b99d95960d21b6064820152fd5b5080fd5b5050346102ac57816003193601126102ac57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5050346102ac57806003193601126102ac5780602092610312610d2c565b61031a610d47565b6001600160a01b0391821683526008865283832091168252845220549051908152f35b5050346102ac5760203660031901126102ac576020916001600160a01b0390829082610367610d2c565b168152600785522054169051908152f35b50346101b25760203660031901126101b257610392610d2c565b61039a610de8565b6001600160a01b03169182156103e5575050600680546001600160a01b031916821790557f4635bfbeab18ad788a7fc2a516293118982d68d953206bd5f8c556890e72d7e58280a280f35b906020608492519162461bcd60e51b8352820152602560248201527f546f6b656e436c61696d65723a20616464726573732063616e206e6f74206265604482015264207a65726f60d81b6064820152fd5b5050346102ac57816003193601126102ac57905490516001600160a01b039091168152602090f35b5050346102ac57816003193601126102ac5760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589161049c610de8565b6104a4610e40565b600160ff19600354161760035551338152a180f35b50346101b25760203660031901126101b2578035916104d6610de8565b60055483111561050b57508190557f91abcc2d6823e3a3f11d31b208dd3065d2c6a791f1c7c9fe96a42ce12897eac58280a280f35b906020606492519162461bcd60e51b83528201526012602482015271191d5c985d1a5bdb881d1bdbc81cda1bdc9d60721b6044820152fd5b833461059d578060031936011261059d5761055c610de8565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b8382346102ac5760603660031901126102ac576105bb610d2c565b60443567ffffffffffffffff81116105fb57366023820112156105fb576105f8928160246105ee93369301359101610db1565b9060243590610ff8565b80f35b8380fd5b5050346102ac57816003193601126102ac5760209060ff6003541690519015158152f35b5050346102ac57816003193601126102ac576020906005549051908152f35b50346101b257826003193601126101b25761065b610de8565b6003549060ff82161561069d575060ff1916600355513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b606490602084519162461bcd60e51b8352820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152fd5b50823461059d5760c036600319011261059d576106f2610d2c565b6106fa610d47565b9367ffffffffffffffff9060a435828111610c3a5736602382011215610c3a578086013595838711610c365760249636888285010111610c32578784519301978189853760ff84838101600181526020968791030190205416610bc05782549560649261076984359889610e84565b4211610b59576002805414610b195760028055610784610e40565b6001600160a01b03898116999091908a15610ac1578d838d9e9f818c91169e8f815260078c5220541615610a75576044359a8b15610a3457918b9c9d9e9f918a9360849d9c9d359e8f927f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091339661081d97610f7b565b60065485169061082e368685610db1565b9061083892610ff8565b8a5183828237828185810160018152030190205460ff1615610a0f575b505050338c5260088652878c208b8d528652878c20610875888254610e84565b90558a8c5260078652878c2054168751868101916323b872dd60e01b835284820152336044820152878582015284815260a0810192818410818511176109fd5760e08201908111848210176109fd578d8d61092c959482809581958f528c88527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460c082015251925af13d156109f4573d61090f81610d95565b9061091c8c519283610d5d565b81528092893d92013e5b8c610ea7565b80518581159182156109d0575b505090501561097e5750505082519485528401528201527fc5e576d85788400ff978578cc94a19ee7a30e8ee78d468f20ab2e305bef8411d60603392a3600160025580f35b90602a691bdd081cdd58d8d9595960b21b9260849588519562461bcd60e51b87528601528401527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044840152820152fd5b83809293500103126109f05784015180151581036109f05780858d610939565b8a80fd5b60609150610926565b634e487b7160e01b8e5260418752848efd5b828b51938492833781016001815203019020600160ff198254161790558c8681610855565b8a5162461bcd60e51b8152808a018b9052601c818901527f546f6b656e436c61696d65723a20616d6f756e74206973207a65726f0000000060448201528890fd5b608488631c9d195960e21b89898d8f519462461bcd60e51b8652850152808401527f546f6b656e436c61696d65723a20746f6b656e206973206e6f7420737570706f6044840152820152fd5b885162461bcd60e51b8152808801899052602e818701527f546f6b656e436c61696d65723a2070617373706f72742061646472657373206360448201526d616e206e6f74206265207a65726f60901b81880152608490fd5b5050601f919385519362461bcd60e51b85528401528201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b865162461bcd60e51b8152808601879052603b818501527f657870697265642c20706c656173652073656e6420616e6f746865722074726160448201527f6e73616374696f6e2077697468206e6577207369676e6174757265000000000081860152608490fd5b6042915060a49385519362461bcd60e51b85528401528201527f7369676e617475726520757365642e20706c656173652073656e6420616e6f7460448201527f686572207472616e73616374696f6e2077697468206e6577207369676e617475606482015261726560f01b6084820152fd5b8680fd5b8580fd5b8480fd5b5050346102ac57816003193601126102ac5760065490516001600160a01b039091168152602090f35b5050346102ac57816003193601126102ac57602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101b257826003193601126101b25760209250549051908152f35b5050346102ac576101003660031901126102ac57610cdb610d2c565b91610ce4610d47565b604435916001600160a01b0390818416840361059d57608435918216820361059d57509160209491610d259360e4359360c4359360a4359360643592610f7b565b9051908152f35b600435906001600160a01b0382168203610d4257565b600080fd5b602435906001600160a01b0382168203610d4257565b90601f8019910116810190811067ffffffffffffffff821117610d7f57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610d7f57601f01601f191660200190565b929192610dbd82610d95565b91610dcb6040519384610d5d565b829481845281830111610d42578281602093846000960137010152565b6000546001600160a01b03163303610dfc57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b60ff60035416610e4c57565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b91908201809211610e9157565b634e487b7160e01b600052601160045260246000fd5b91929015610f095750815115610ebb575090565b3b15610ec45790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015610f1c5750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b828510610f62575050604492506000838284010152601f80199101168101030190fd5b8481018201518686016044015293810193859350610f3f565b959390919694926040519660208801986bffffffffffffffffffffffff19809581809460601b168c5260601b1660348a015260601b166048880152605c87015260601b16607c850152609084015260b083015260d082015260d08152610100810181811067ffffffffffffffff821117610d7f5760405251902090565b9061103a92611032917f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c6000206111a1565b929092611087565b6001600160a01b0390811691160361104e57565b60405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606490fd5b600581101561118b57806110985750565b600181036110e55760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b600281036111325760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b60031461113b57565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9060418151146000146111cf576111cb916020820151906060604084015193015160001a906111d9565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831161125c5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa1561124f5781516001600160a01b03811615611249579190565b50600190565b50604051903d90823e3d90fd5b5050505060009060039056fea2646970667358221220b20c82b95689e373a1c7a755a1100bd2832b11e400e9afc9b11f724791ef175c64736f6c63430008130033", + "linkReferences": {}, + "deployedLinkReferences": {} +}