[ { "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": "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": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "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": "OwnershipTransferred", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "verifier_", "type": "address" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "string", "name": "tokensURI_", "type": "string" } ], "name": "__VerifiedSBT_init", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "recipientAddr_", "type": "address" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "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": "newTokensURI_", "type": "string" } ], "name": "setTokensURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newVerifier_", "type": "address" } ], "name": "setVerifier", "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": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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" }, { "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": [], "name": "verifier", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60a06040523060805234801561001457600080fd5b506080516128fe61004c600039600081816108dc0152818161091c015281816109d601528181610a160152610b3c01526128fe6000f3fe6080604052600436106101c25760003560e01c80635437988d116100f757806395d89b4111610095578063b88d4fde11610064578063b88d4fde146104d5578063c87b56dd146104f5578063e985e9c514610515578063f2fde38b1461055e57600080fd5b806395d89b4114610460578063a22cb46514610475578063b19ab24514610495578063b5d2caae146104b557600080fd5b806370a08231116100d157806370a08231146103f5578063715018a61461041557806375794a3c1461042a5780638da5cb5b1461044157600080fd5b80635437988d146103955780636352211e146103b55780636a627842146103d557600080fd5b80632dd0066e1161016457806342842e0e1161013e57806342842e0e1461032d5780634f1ef2861461034d5780634f6ccce71461036057806352d1902d1461038057600080fd5b80632dd0066e146102d85780632f745c59146102ed5780633659cfe61461030d57600080fd5b8063095ea7b3116101a0578063095ea7b31461025657806318160ddd1461027857806323b872dd146102975780632b7ac3f3146102b757600080fd5b806301ffc9a7146101c757806306fdde03146101fc578063081812fc1461021e575b600080fd5b3480156101d357600080fd5b506101e76101e2366004611fb8565b61057e565b60405190151581526020015b60405180910390f35b34801561020857600080fd5b506102116105a9565b6040516101f39190612025565b34801561022a57600080fd5b5061023e610239366004612038565b61063b565b6040516001600160a01b0390911681526020016101f3565b34801561026257600080fd5b5061027661027136600461206d565b610662565b005b34801561028457600080fd5b5060fd545b6040519081526020016101f3565b3480156102a357600080fd5b506102766102b2366004612097565b61077c565b3480156102c357600080fd5b5061015f5461023e906001600160a01b031681565b3480156102e457600080fd5b506102116107ad565b3480156102f957600080fd5b5061028961030836600461206d565b61083c565b34801561031957600080fd5b506102766103283660046120d3565b6108d2565b34801561033957600080fd5b50610276610348366004612097565b6109b1565b61027661035b366004612191565b6109cc565b34801561036c57600080fd5b5061028961037b366004612038565b610a9c565b34801561038c57600080fd5b50610289610b2f565b3480156103a157600080fd5b506102766103b03660046120d3565b610be2565b3480156103c157600080fd5b5061023e6103d0366004612038565b610c0d565b3480156103e157600080fd5b506102766103f03660046120d3565b610c6d565b34801561040157600080fd5b506102896104103660046120d3565b610d02565b34801561042157600080fd5b50610276610d88565b34801561043657600080fd5b506102896101605481565b34801561044d57600080fd5b5061012d546001600160a01b031661023e565b34801561046c57600080fd5b50610211610d9c565b34801561048157600080fd5b506102766104903660046121df565b610dab565b3480156104a157600080fd5b506102766104b036600461221b565b610db6565b3480156104c157600080fd5b506102766104d036600461228d565b610dcc565b3480156104e157600080fd5b506102766104f0366004612326565b610f15565b34801561050157600080fd5b50610211610510366004612038565b610f4d565b34801561052157600080fd5b506101e7610530366004612382565b6001600160a01b03918216600090815260ce6020908152604080832093909416825291909152205460ff1690565b34801561056a57600080fd5b506102766105793660046120d3565b61100d565b60006001600160e01b0319821663780e9d6360e01b14806105a357506105a382611083565b92915050565b606060c980546105b8906123b5565b80601f01602080910402602001604051908101604052809291908181526020018280546105e4906123b5565b80156106315780601f1061060657610100808354040283529160200191610631565b820191906000526020600020905b81548152906001019060200180831161061457829003601f168201915b5050505050905090565b6000610646826110d3565b50600090815260cd60205260409020546001600160a01b031690565b600061066d82610c0d565b9050806001600160a01b0316836001600160a01b0316036106df5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806106fb57506106fb8133610530565b61076d5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016106d6565b6107778383611132565b505050565b61078633826111a0565b6107a25760405162461bcd60e51b81526004016106d6906123ef565b61077783838361121f565b61016180546107bb906123b5565b80601f01602080910402602001604051908101604052809291908181526020018280546107e7906123b5565b80156108345780601f1061080957610100808354040283529160200191610834565b820191906000526020600020905b81548152906001019060200180831161081757829003601f168201915b505050505081565b600061084783610d02565b82106108a95760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016106d6565b506001600160a01b0391909116600090815260fb60209081526040808320938352929052205490565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361091a5760405162461bcd60e51b81526004016106d69061243c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610963600080516020612882833981519152546001600160a01b031690565b6001600160a01b0316146109895760405162461bcd60e51b81526004016106d690612488565b61099281611390565b604080516000808252602082019092526109ae91839190611398565b50565b61077783838360405180602001604052806000815250610f15565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a145760405162461bcd60e51b81526004016106d69061243c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a5d600080516020612882833981519152546001600160a01b031690565b6001600160a01b031614610a835760405162461bcd60e51b81526004016106d690612488565b610a8c82611390565b610a9882826001611398565b5050565b6000610aa760fd5490565b8210610b0a5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016106d6565b60fd8281548110610b1d57610b1d6124d4565b90600052602060002001549050919050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bcf5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016106d6565b5060008051602061288283398151915290565b610bea611503565b61015f80546001600160a01b0319166001600160a01b0392909216919091179055565b600081815260cb60205260408120546001600160a01b0316806105a35760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106d6565b61015f546001600160a01b03163314610ce25760405162461bcd60e51b815260206004820152603160248201527f56657269666965645342543a206f6e6c792076657269666965722063616e206360448201527030b636103a3434b990333ab731ba34b7b760791b60648201526084016106d6565b61016080546109ae918391906000610cf983612500565b9190505561155e565b60006001600160a01b038216610d6c5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016106d6565b506001600160a01b0316600090815260cc602052604090205490565b610d90611503565b610d9a60006116f7565b565b606060ca80546105b8906123b5565b610a9833838361174a565b610dbe611503565b610161610777828483612567565b600054610100900460ff1615808015610dec5750600054600160ff909116105b80610e065750303b158015610e06575060005460ff166001145b610e695760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106d6565b6000805460ff191660011790558015610e8c576000805461ff0019166101001790555b610e968484611818565b610e9e611849565b61015f80546001600160a01b0319166001600160a01b038716179055610161610ec78382612627565b508015610f0e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610f1f33836111a0565b610f3b5760405162461bcd60e51b81526004016106d6906123ef565b610f4784848484611878565b50505050565b606060006101618054610f5f906123b5565b905011610f7b57604051806020016040528060008152506105a3565b6101618054610f89906123b5565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb5906123b5565b80156110025780601f10610fd757610100808354040283529160200191611002565b820191906000526020600020905b815481529060010190602001808311610fe557829003601f168201915b505050505092915050565b611015611503565b6001600160a01b03811661107a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d6565b6109ae816116f7565b60006001600160e01b031982166380ac58cd60e01b14806110b457506001600160e01b03198216635b5e139f60e01b145b806105a357506301ffc9a760e01b6001600160e01b03198316146105a3565b600081815260cb60205260409020546001600160a01b03166109ae5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106d6565b600081815260cd6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061116782610c0d565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806111ac83610c0d565b9050806001600160a01b0316846001600160a01b031614806111f357506001600160a01b03808216600090815260ce602090815260408083209388168352929052205460ff165b806112175750836001600160a01b031661120c8461063b565b6001600160a01b0316145b949350505050565b826001600160a01b031661123282610c0d565b6001600160a01b0316146112585760405162461bcd60e51b81526004016106d6906126e7565b6001600160a01b0382166112ba5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016106d6565b6112c783838360016118ab565b826001600160a01b03166112da82610c0d565b6001600160a01b0316146113005760405162461bcd60e51b81526004016106d6906126e7565b600081815260cd6020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260cc855283862080546000190190559087168086528386208054600101905586865260cb90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6109ae611503565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156113cb5761077783611935565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611425575060408051601f3d908101601f191682019092526114229181019061272c565b60015b6114885760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016106d6565b60008051602061288283398151915281146114f75760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016106d6565b506107778383836119d1565b61012d546001600160a01b03163314610d9a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d6565b6001600160a01b0382166115b45760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016106d6565b600081815260cb60205260409020546001600160a01b0316156116195760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106d6565b6116276000838360016118ab565b600081815260cb60205260409020546001600160a01b03161561168c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106d6565b6001600160a01b038216600081815260cc602090815260408083208054600101905584835260cb90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b61012d80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036117ab5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016106d6565b6001600160a01b03838116600081815260ce6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600054610100900460ff1661183f5760405162461bcd60e51b81526004016106d690612745565b610a9882826119f6565b600054610100900460ff166118705760405162461bcd60e51b81526004016106d690612745565b610d9a611a36565b61188384848461121f565b61188f84848484611a66565b610f475760405162461bcd60e51b81526004016106d690612790565b6001600160a01b03841615806118c857506001600160a01b038316155b6119295760405162461bcd60e51b815260206004820152602c60248201527f56657269666965645342543a20746f6b656e207472616e73666572732061726560448201526b081b9bdd08185b1b1bddd95960a21b60648201526084016106d6565b610f4784848484611b67565b6001600160a01b0381163b6119a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016106d6565b60008051602061288283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6119da83611c94565b6000825111806119e75750805b1561077757610f478383611cd4565b600054610100900460ff16611a1d5760405162461bcd60e51b81526004016106d690612745565b60c9611a298382612627565b5060ca6107778282612627565b600054610100900460ff16611a5d5760405162461bcd60e51b81526004016106d690612745565b610d9a336116f7565b60006001600160a01b0384163b15611b5c57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611aaa9033908990889088906004016127e2565b6020604051808303816000875af1925050508015611ae5575060408051601f3d908101601f19168201909252611ae29181019061281f565b60015b611b42573d808015611b13576040519150601f19603f3d011682016040523d82523d6000602084013e611b18565b606091505b508051600003611b3a5760405162461bcd60e51b81526004016106d690612790565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611217565b506001949350505050565b6001811115611bd65760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b60648201526084016106d6565b816001600160a01b038516611c3257611c2d8160fd8054600083815260fe60205260408120829055600182018355919091527f9346ac6dd7de6b96975fec380d4d994c4c12e6a8897544f22915316cc6cca2800155565b611c55565b836001600160a01b0316856001600160a01b031614611c5557611c558582611dc8565b6001600160a01b038416611c7157611c6c81611e65565b610f0e565b846001600160a01b0316846001600160a01b031614610f0e57610f0e8482611f14565b611c9d81611935565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611d3c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016106d6565b600080846001600160a01b031684604051611d57919061283c565b600060405180830381855af49150503d8060008114611d92576040519150601f19603f3d011682016040523d82523d6000602084013e611d97565b606091505b5091509150611dbf82826040518060600160405280602781526020016128a260279139611f58565b95945050505050565b60006001611dd584610d02565b611ddf9190612858565b600083815260fc6020526040902054909150808214611e32576001600160a01b038416600090815260fb60209081526040808320858452825280832054848452818420819055835260fc90915290208190555b50600091825260fc602090815260408084208490556001600160a01b03909416835260fb81528383209183525290812055565b60fd54600090611e7790600190612858565b600083815260fe602052604081205460fd8054939450909284908110611e9f57611e9f6124d4565b906000526020600020015490508060fd8381548110611ec057611ec06124d4565b600091825260208083209091019290925582815260fe909152604080822084905585825281205560fd805480611ef857611ef861286b565b6001900381819060005260206000200160009055905550505050565b6000611f1f83610d02565b6001600160a01b03909316600090815260fb60209081526040808320868452825280832085905593825260fc9052919091209190915550565b60608315611f67575081611f71565b611f718383611f78565b9392505050565b815115611f885781518083602001fd5b8060405162461bcd60e51b81526004016106d69190612025565b6001600160e01b0319811681146109ae57600080fd5b600060208284031215611fca57600080fd5b8135611f7181611fa2565b60005b83811015611ff0578181015183820152602001611fd8565b50506000910152565b60008151808452612011816020860160208601611fd5565b601f01601f19169290920160200192915050565b602081526000611f716020830184611ff9565b60006020828403121561204a57600080fd5b5035919050565b80356001600160a01b038116811461206857600080fd5b919050565b6000806040838503121561208057600080fd5b61208983612051565b946020939093013593505050565b6000806000606084860312156120ac57600080fd5b6120b584612051565b92506120c360208501612051565b9150604084013590509250925092565b6000602082840312156120e557600080fd5b611f7182612051565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261211557600080fd5b813567ffffffffffffffff80821115612130576121306120ee565b604051601f8301601f19908116603f01168101908282118183101715612158576121586120ee565b8160405283815286602085880101111561217157600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156121a457600080fd5b6121ad83612051565b9150602083013567ffffffffffffffff8111156121c957600080fd5b6121d585828601612104565b9150509250929050565b600080604083850312156121f257600080fd5b6121fb83612051565b91506020830135801515811461221057600080fd5b809150509250929050565b6000806020838503121561222e57600080fd5b823567ffffffffffffffff8082111561224657600080fd5b818501915085601f83011261225a57600080fd5b81358181111561226957600080fd5b86602082850101111561227b57600080fd5b60209290920196919550909350505050565b600080600080608085870312156122a357600080fd5b6122ac85612051565b9350602085013567ffffffffffffffff808211156122c957600080fd5b6122d588838901612104565b945060408701359150808211156122eb57600080fd5b6122f788838901612104565b9350606087013591508082111561230d57600080fd5b5061231a87828801612104565b91505092959194509250565b6000806000806080858703121561233c57600080fd5b61234585612051565b935061235360208601612051565b925060408501359150606085013567ffffffffffffffff81111561237657600080fd5b61231a87828801612104565b6000806040838503121561239557600080fd5b61239e83612051565b91506123ac60208401612051565b90509250929050565b600181811c908216806123c957607f821691505b6020821081036123e957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612512576125126124ea565b5060010190565b601f82111561077757600081815260208120601f850160051c810160208610156125405750805b601f850160051c820191505b8181101561255f5782815560010161254c565b505050505050565b67ffffffffffffffff83111561257f5761257f6120ee565b6125938361258d83546123b5565b83612519565b6000601f8411600181146125c757600085156125af5750838201355b600019600387901b1c1916600186901b178355610f0e565b600083815260209020601f19861690835b828110156125f857868501358255602094850194600190920191016125d8565b50868210156126155760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b815167ffffffffffffffff811115612641576126416120ee565b6126558161264f84546123b5565b84612519565b602080601f83116001811461268a57600084156126725750858301515b600019600386901b1c1916600185901b17855561255f565b600085815260208120601f198616915b828110156126b95788860151825594840194600190910190840161269a565b50858210156126d75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60006020828403121561273e57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061281590830184611ff9565b9695505050505050565b60006020828403121561283157600080fd5b8151611f7181611fa2565b6000825161284e818460208701611fd5565b9190910192915050565b818103818111156105a3576105a36124ea565b634e487b7160e01b600052603160045260246000fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220fa6a55f9817436b69331df2cbf836f0f859597d2412b367db79127471e59583664736f6c63430008100033