[ { "inputs": [ { "internalType": "address", "name": "_admin", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "_customBaseURI", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MANAGER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_customBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "_interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162002fe838038062002fe88339810160408190526200003491620003f2565b8282600062000044838262000533565b50600162000053828262000533565b5062000065915060009050856200007a565b62000070816200008a565b505050506200063e565b620000868282620000f3565b5050565b6000815111620000aa5760405180602001604052806000815250620000e4565b80620000c1466200019760201b62000c651760201c565b604051602001620000d4929190620005ff565b6040516020818303038152906040525b60079062000086908262000533565b60008281526006602090815260408083206001600160a01b038516845290915290205460ff16620000865760008281526006602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620001533390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60606000620001b1836200023b60201b62000d231760201c565b60010190506000816001600160401b03811115620001d357620001d362000325565b6040519080825280601f01601f191660200182016040528015620001fe576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846200020857509392505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831062000285577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310620002b2576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310620002d157662386f26fc10000830492506010015b6305f5e1008310620002ea576305f5e100830492506008015b6127108310620002ff57612710830492506004015b6064831062000312576064830492506002015b600a83106200031f576001015b92915050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003585781810151838201526020016200033e565b50506000910152565b600082601f8301126200037357600080fd5b81516001600160401b038082111562000390576200039062000325565b604051601f8301601f19908116603f01168101908282118183101715620003bb57620003bb62000325565b81604052838152866020858801011115620003d557600080fd5b620003e88460208301602089016200033b565b9695505050505050565b600080600080608085870312156200040957600080fd5b84516001600160a01b03811681146200042157600080fd5b60208601519094506001600160401b03808211156200043f57600080fd5b6200044d8883890162000361565b945060408701519150808211156200046457600080fd5b620004728883890162000361565b935060608701519150808211156200048957600080fd5b50620004988782880162000361565b91505092959194509250565b600181811c90821680620004b957607f821691505b602082108103620004da57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200052e57600081815260208120601f850160051c81016020861015620005095750805b601f850160051c820191505b818110156200052a5782815560010162000515565b5050505b505050565b81516001600160401b038111156200054f576200054f62000325565b6200056781620005608454620004a4565b84620004e0565b602080601f8311600181146200059f5760008415620005865750858301515b600019600386901b1c1916600185901b1785556200052a565b600085815260208120601f198616915b82811015620005d057888601518255948401946001909101908401620005af565b5085821015620005ef5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008351620006138184602088016200033b565b835190830190620006298183602088016200033b565b602f60f81b9101908152600101949350505050565b61299a806200064e6000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80636352211e116100ee578063a22cb46511610097578063d539139311610071578063d5391393146103c3578063d547741f146103ea578063e985e9c5146103fd578063ec87621c1461044657600080fd5b8063a22cb4651461038a578063b88d4fde1461039d578063c87b56dd146103b057600080fd5b806391d14854116100c857806391d148541461033457806395d89b411461037a578063a217fddf1461038257600080fd5b80636352211e146103065780636c0360eb1461031957806370a082311461032157600080fd5b80632f2ff15d1161015b57806342842e0e1161013557806342842e0e146102ba57806342966c68146102cd5780634f558e79146102e057806355f804b3146102f357600080fd5b80632f2ff15d1461028157806336568abe1461029457806340c10f19146102a757600080fd5b8063095ea7b31161018c578063095ea7b31461022857806323b872dd1461023d578063248a9ca31461025057600080fd5b806301ffc9a7146101b357806306fdde03146101db578063081812fc146101f0575b600080fd5b6101c66101c13660046121f1565b61046d565b60405190151581526020015b60405180910390f35b6101e361047e565b6040516101d2919061227c565b6102036101fe36600461228f565b610510565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d2565b61023b6102363660046122d1565b610544565b005b61023b61024b3660046122fb565b6106d5565b61027361025e36600461228f565b60009081526006602052604090206001015490565b6040519081526020016101d2565b61023b61028f366004612337565b610776565b61023b6102a2366004612337565b61079b565b61023b6102b53660046122d1565b61084e565b61023b6102c83660046122fb565b610882565b61023b6102db36600461228f565b61089d565b6101c66102ee36600461228f565b6108d0565b61023b610301366004612426565b6108fc565b61020361031436600461228f565b61092f565b6101e36109bb565b61027361032f36600461246f565b610a49565b6101c6610342366004612337565b600091825260066020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101e3610b17565b610273600081565b61023b61039836600461248a565b610b26565b61023b6103ab3660046124c6565b610b31565b6101e36103be36600461228f565b610bd9565b6102737ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b61023b6103f8366004612337565b610c40565b6101c661040b366004612542565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102737faf290d8680820aad922855f39b306097b20e28774d6c1ad35a20325630c3a02c81565b600061047882610e05565b92915050565b60606000805461048d9061256c565b80601f01602080910402602001604051908101604052809291908181526020018280546104b99061256c565b80156105065780601f106104db57610100808354040283529160200191610506565b820191906000526020600020905b8154815290600101906020018083116104e957829003601f168201915b5050505050905090565b600061051b82610e5b565b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061054f8261092f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff8216148061063a575061063a813361040b565b6106c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610608565b6106d08383610ee9565b505050565b6106df3382610f89565b61076b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610608565b6106d0838383611049565b60008281526006602052604090206001015461079181611351565b6106d0838361135b565b73ffffffffffffffffffffffffffffffffffffffff81163314610840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610608565b61084a828261144f565b5050565b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc961087881611351565b6106d0838361150a565b6106d083838360405180602001604052806000815250610b31565b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc96108c781611351565b61084a82611524565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff161515610478565b7faf290d8680820aad922855f39b306097b20e28774d6c1ad35a20325630c3a02c61092681611351565b61084a8261160a565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610608565b600780546109c89061256c565b80601f01602080910402602001604051908101604052809291908181526020018280546109f49061256c565b8015610a415780601f10610a1657610100808354040283529160200191610a41565b820191906000526020600020905b815481529060010190602001808311610a2457829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff8216610aee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610608565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60606001805461048d9061256c565b61084a338383611660565b610b3b3383610f89565b610bc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610608565b610bd38484848461178d565b50505050565b6060610be482610e5b565b6000610bee611830565b90506000815111610c0e5760405180602001604052806000815250610c39565b80610c1884610c65565b604051602001610c299291906125bf565b6040516020818303038152906040525b9392505050565b600082815260066020526040902060010154610c5b81611351565b6106d0838361144f565b60606000610c7283610d23565b600101905060008167ffffffffffffffff811115610c9257610c92612363565b6040519080825280601f01601f191660200182016040528015610cbc576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610cc657509392505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610d6c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610d98576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610db657662386f26fc10000830492506010015b6305f5e1008310610dce576305f5e100830492506008015b6127108310610de257612710830492506004015b60648310610df4576064830492506002015b600a83106104785760010192915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061047857506104788261183f565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16610ee6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610608565b50565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190610f438261092f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610f958361092f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611003575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b8061104157508373ffffffffffffffffffffffffffffffffffffffff1661102984610510565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff166110698261092f565b73ffffffffffffffffffffffffffffffffffffffff161461110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610608565b73ffffffffffffffffffffffffffffffffffffffff82166111ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610608565b6111bb8383836001611922565b8273ffffffffffffffffffffffffffffffffffffffff166111db8261092f565b73ffffffffffffffffffffffffffffffffffffffff161461127e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610608565b600081815260046020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526003855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610ee681336119de565b600082815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661084a57600082815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556113f13390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561084a57600082815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61084a828260405180602001604052806000815250611a98565b600061152f8261092f565b905061153f816000846001611922565b6115488261092f565b600083815260046020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526003845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60008151116116285760405180602001604052806000815250611653565b8061163246610c65565b6040516020016116439291906125ee565b6040516020818303038152906040525b60079061084a9082612693565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610608565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611798848484611049565b6117a484848484611b3b565b610bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610608565b60606007805461048d9061256c565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806118d257507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061047857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610478565b6001811115610bd35773ffffffffffffffffffffffffffffffffffffffff8416156119825773ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805483929061197c9084906127dc565b90915550505b73ffffffffffffffffffffffffffffffffffffffff831615610bd35773ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080548392906119d39084906127ef565b909155505050505050565b600082815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661084a57611a1e81611d2e565b611a29836020611d4d565b604051602001611a3a929190612802565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526106089160040161227c565b611aa28383611f90565b611aaf6000848484611b3b565b6106d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610608565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611d23576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611bb2903390899088908890600401612883565b6020604051808303816000875af1925050508015611c0b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611c08918101906128cc565b60015b611cd8573d808015611c39576040519150601f19603f3d011682016040523d82523d6000602084013e611c3e565b606091505b508051600003611cd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610608565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611041565b506001949350505050565b606061047873ffffffffffffffffffffffffffffffffffffffff831660145b60606000611d5c8360026128e9565b611d679060026127ef565b67ffffffffffffffff811115611d7f57611d7f612363565b6040519080825280601f01601f191660200182016040528015611da9576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611de057611de0612900565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611e4357611e43612900565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611e7f8460026128e9565b611e8a9060016127ef565b90505b6001811115611f27577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611ecb57611ecb612900565b1a60f81b828281518110611ee157611ee1612900565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93611f208161292f565b9050611e8d565b508315610c39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610608565b73ffffffffffffffffffffffffffffffffffffffff821661200d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610608565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610608565b6120a7600083836001611922565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610608565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610ee657600080fd5b60006020828403121561220357600080fd5b8135610c39816121c3565b60005b83811015612229578181015183820152602001612211565b50506000910152565b6000815180845261224a81602086016020860161220e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610c396020830184612232565b6000602082840312156122a157600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146122cc57600080fd5b919050565b600080604083850312156122e457600080fd5b6122ed836122a8565b946020939093013593505050565b60008060006060848603121561231057600080fd5b612319846122a8565b9250612327602085016122a8565b9150604084013590509250925092565b6000806040838503121561234a57600080fd5b8235915061235a602084016122a8565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff808411156123ad576123ad612363565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156123f3576123f3612363565b8160405280935085815286868601111561240c57600080fd5b858560208301376000602087830101525050509392505050565b60006020828403121561243857600080fd5b813567ffffffffffffffff81111561244f57600080fd5b8201601f8101841361246057600080fd5b61104184823560208401612392565b60006020828403121561248157600080fd5b610c39826122a8565b6000806040838503121561249d57600080fd5b6124a6836122a8565b9150602083013580151581146124bb57600080fd5b809150509250929050565b600080600080608085870312156124dc57600080fd5b6124e5856122a8565b93506124f3602086016122a8565b925060408501359150606085013567ffffffffffffffff81111561251657600080fd5b8501601f8101871361252757600080fd5b61253687823560208401612392565b91505092959194509250565b6000806040838503121561255557600080fd5b61255e836122a8565b915061235a602084016122a8565b600181811c9082168061258057607f821691505b6020821081036125b9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600083516125d181846020880161220e565b8351908301906125e581836020880161220e565b01949350505050565b6000835161260081846020880161220e565b83519083019061261481836020880161220e565b7f2f000000000000000000000000000000000000000000000000000000000000009101908152600101949350505050565b601f8211156106d057600081815260208120601f850160051c8101602086101561266c5750805b601f850160051c820191505b8181101561268b57828155600101612678565b505050505050565b815167ffffffffffffffff8111156126ad576126ad612363565b6126c1816126bb845461256c565b84612645565b602080601f83116001811461271457600084156126de5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561268b565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561276157888601518255948401946001909101908401612742565b508582101561279d57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610478576104786127ad565b80820180821115610478576104786127ad565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161283a81601785016020880161220e565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161287781602884016020880161220e565b01602801949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526128c26080830184612232565b9695505050505050565b6000602082840312156128de57600080fd5b8151610c39816121c3565b8082028115828204841417610478576104786127ad565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008161293e5761293e6127ad565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea26469706673582212205dfff5749dac39f067b760ded10a60403018f7bcc71b69ad151895b5a8910c4964736f6c634300081100330000000000000000000000001b4b3465b65fb87f869f8eb880ac28099ef43dee000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001558325932204c4f414e204c454e444552205449434b00000000000000000000000000000000000000000000000000000000000000000000000000000000000004584c4c54000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000