@credenza-web3/contracts
Version:
Credenza Contracts
439 lines (438 loc) • 33.4 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "PlusPlusContract",
"sourceName": "contracts/modules/PlusPlusContract.sol",
"abi": [
{
"inputs": [],
"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": false,
"internalType": "uint256",
"name": "_fromTokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_toTokenId",
"type": "uint256"
}
],
"name": "BatchMetadataUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "MetadataUpdate",
"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": [
{
"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": [],
"name": "getVersion",
"outputs": [
{
"internalType": "string",
"name": "version",
"type": "string"
}
],
"stateMutability": "pure",
"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": "recipient",
"type": "address"
},
{
"internalType": "string",
"name": "tokenURI",
"type": "string"
}
],
"name": "issueMembership",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "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": "address",
"name": "target",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAllAdmin",
"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"
}
],
"bytecode": "0x608060405234801562000010575f80fd5b506040518060400160405280601081526020016f26b0b1b937b232b6b4b1902a37b5b2b760811b8152506040518060400160405280600481526020016326a0a1a960e11b815250815f90816200006791906200011f565b5060016200007682826200011f565b505050620001e7565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620000a857607f821691505b602082108103620000c757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200011a575f81815260208120601f850160051c81016020861015620000f55750805b601f850160051c820191505b81811015620001165782815560010162000101565b5050505b505050565b81516001600160401b038111156200013b576200013b6200007f565b62000153816200014c845462000093565b84620000cd565b602080601f83116001811462000189575f8415620001715750858301515b5f19600386901b1c1916600185901b17855562000116565b5f85815260208120601f198616915b82811015620001b95788860151825594840194600190910190840162000198565b5085821015620001d757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6116b580620001f55f395ff3fe608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80636352211e11610093578063a22cb46511610063578063a22cb4651461023d578063b88d4fde14610250578063c87b56dd14610263578063e985e9c514610276575f80fd5b80636352211e146101ee5780636d082d211461020157806370a082311461022257806395d89b4114610235575f80fd5b80630d8e6e2c116100ce5780630d8e6e2c1461017c57806323b872dd146101b557806341e835a6146101c857806342842e0e146101db575f80fd5b806301ffc9a7146100ff57806306fdde0314610127578063081812fc1461013c578063095ea7b314610167575b5f80fd5b61011261010d3660046110ab565b6102b1565b60405190151581526020015b60405180910390f35b61012f6102db565b60405161011e9190611113565b61014f61014a366004611125565b61036a565b6040516001600160a01b03909116815260200161011e565b61017a610175366004611157565b61038f565b005b60408051808201909152601881527f506c7573506c7573436f6e7472616374207620302e302e310000000000000000602082015261012f565b61017a6101c336600461117f565b6104a8565b61017a6101d63660046111c7565b6104d9565b61017a6101e936600461117f565b6104e4565b61014f6101fc366004611125565b6104fe565b61021461020f36600461128e565b61055d565b60405190815260200161011e565b6102146102303660046112ec565b610593565b61012f610617565b61017a61024b366004611305565b610626565b61017a61025e366004611336565b610635565b61012f610271366004611125565b61066d565b6101126102843660046113ad565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b03198216632483248360e11b14806102d557506102d582610777565b92915050565b60605f80546102e9906113d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610315906113d5565b80156103605780601f1061033757610100808354040283529160200191610360565b820191905f5260205f20905b81548152906001019060200180831161034357829003601f168201915b5050505050905090565b5f610374826107c6565b505f908152600460205260409020546001600160a01b031690565b5f610399826104fe565b9050806001600160a01b0316836001600160a01b03160361040b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061042757506104278133610284565b6104995760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610402565b6104a38383610827565b505050565b6104b23382610894565b6104ce5760405162461bcd60e51b81526004016104029061140d565b6104a3838383610910565b6104a3838383610a72565b6104a383838360405180602001604052805f815250610635565b5f818152600260205260408120546001600160a01b0316806102d55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610402565b5f61056c600780546001019055565b5f61057660075490565b90506105828482610b3f565b61058c8184610cc7565b9392505050565b5f6001600160a01b0382166105fc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610402565b506001600160a01b03165f9081526003602052604090205490565b6060600180546102e9906113d5565b610631338383610a72565b5050565b61063f3383610894565b61065b5760405162461bcd60e51b81526004016104029061140d565b61066784848484610d90565b50505050565b6060610678826107c6565b5f8281526006602052604081208054610690906113d5565b80601f01602080910402602001604051908101604052809291908181526020018280546106bc906113d5565b80156107075780601f106106de57610100808354040283529160200191610707565b820191905f5260205f20905b8154815290600101906020018083116106ea57829003601f168201915b505050505090505f61072360408051602081019091525f815290565b905080515f03610734575092915050565b81511561076657808260405160200161074e92919061145a565b60405160208183030381529060405292505050919050565b61076f84610dc3565b949350505050565b5f6001600160e01b031982166380ac58cd60e01b14806107a757506001600160e01b03198216635b5e139f60e01b145b806102d557506301ffc9a760e01b6001600160e01b03198316146102d5565b5f818152600260205260409020546001600160a01b03166108245760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610402565b50565b5f81815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061085b826104fe565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f8061089f836104fe565b9050806001600160a01b0316846001600160a01b031614806108e557506001600160a01b038082165f9081526005602090815260408083209388168352929052205460ff165b8061076f5750836001600160a01b03166108fe8461036a565b6001600160a01b031614949350505050565b826001600160a01b0316610923826104fe565b6001600160a01b0316146109495760405162461bcd60e51b815260040161040290611488565b6001600160a01b0382166109ab5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610402565b826001600160a01b03166109be826104fe565b6001600160a01b0316146109e45760405162461bcd60e51b815260040161040290611488565b5f81815260046020908152604080832080546001600160a01b03199081169091556001600160a01b038781168086526003855283862080545f1901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603610ad35760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610402565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038216610b955760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610402565b5f818152600260205260409020546001600160a01b031615610bf95760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610402565b5f818152600260205260409020546001600160a01b031615610c5d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610402565b6001600160a01b0382165f81815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f828152600260205260409020546001600160a01b0316610d415760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610402565b5f828152600660205260409020610d58828261151a565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b610d9b848484610910565b610da784848484610e32565b6106675760405162461bcd60e51b8152600401610402906115d6565b6060610dce826107c6565b5f610de360408051602081019091525f815290565b90505f815111610e015760405180602001604052805f81525061058c565b80610e0b84610f2f565b604051602001610e1c92919061145a565b6040516020818303038152906040529392505050565b5f6001600160a01b0384163b15610f2457604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610e75903390899088908890600401611628565b6020604051808303815f875af1925050508015610eaf575060408051601f3d908101601f19168201909252610eac91810190611664565b60015b610f0a573d808015610edc576040519150601f19603f3d011682016040523d82523d5f602084013e610ee1565b606091505b5080515f03610f025760405162461bcd60e51b8152600401610402906115d6565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061076f565b506001949350505050565b60605f610f3b83610fbf565b60010190505f8167ffffffffffffffff811115610f5a57610f5a611207565b6040519080825280601f01601f191660200182016040528015610f84576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610f8e57509392505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ffd5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611029576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061104757662386f26fc10000830492506010015b6305f5e100831061105f576305f5e100830492506008015b612710831061107357612710830492506004015b60648310611085576064830492506002015b600a83106102d55760010192915050565b6001600160e01b031981168114610824575f80fd5b5f602082840312156110bb575f80fd5b813561058c81611096565b5f5b838110156110e05781810151838201526020016110c8565b50505f910152565b5f81518084526110ff8160208601602086016110c6565b601f01601f19169290920160200192915050565b602081525f61058c60208301846110e8565b5f60208284031215611135575f80fd5b5035919050565b80356001600160a01b0381168114611152575f80fd5b919050565b5f8060408385031215611168575f80fd5b6111718361113c565b946020939093013593505050565b5f805f60608486031215611191575f80fd5b61119a8461113c565b92506111a86020850161113c565b9150604084013590509250925092565b80358015158114611152575f80fd5b5f805f606084860312156111d9575f80fd5b6111e28461113c565b92506111f06020850161113c565b91506111fe604085016111b8565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561123557611235611207565b604051601f8501601f19908116603f0116810190828211818310171561125d5761125d611207565b81604052809350858152868686011115611275575f80fd5b858560208301375f602087830101525050509392505050565b5f806040838503121561129f575f80fd5b6112a88361113c565b9150602083013567ffffffffffffffff8111156112c3575f80fd5b8301601f810185136112d3575f80fd5b6112e28582356020840161121b565b9150509250929050565b5f602082840312156112fc575f80fd5b61058c8261113c565b5f8060408385031215611316575f80fd5b61131f8361113c565b915061132d602084016111b8565b90509250929050565b5f805f8060808587031215611349575f80fd5b6113528561113c565b93506113606020860161113c565b925060408501359150606085013567ffffffffffffffff811115611382575f80fd5b8501601f81018713611392575f80fd5b6113a18782356020840161121b565b91505092959194509250565b5f80604083850312156113be575f80fd5b6113c78361113c565b915061132d6020840161113c565b600181811c908216806113e957607f821691505b60208210810361140757634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b5f835161146b8184602088016110c6565b83519083019061147f8183602088016110c6565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b601f8211156104a3575f81815260208120601f850160051c810160208610156114f35750805b601f850160051c820191505b81811015611512578281556001016114ff565b505050505050565b815167ffffffffffffffff81111561153457611534611207565b6115488161154284546113d5565b846114cd565b602080601f83116001811461157b575f84156115645750858301515b5f19600386901b1c1916600185901b178555611512565b5f85815260208120601f198616915b828110156115a95788860151825594840194600190910190840161158a565b50858210156115c657878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061165a908301846110e8565b9695505050505050565b5f60208284031215611674575f80fd5b815161058c8161109656fea264697066735822122068ebbf2a92432904c82b4cd54d9bed7bef4db50a84a3231694cc3c3588a0d80764736f6c63430008140033",
"deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80636352211e11610093578063a22cb46511610063578063a22cb4651461023d578063b88d4fde14610250578063c87b56dd14610263578063e985e9c514610276575f80fd5b80636352211e146101ee5780636d082d211461020157806370a082311461022257806395d89b4114610235575f80fd5b80630d8e6e2c116100ce5780630d8e6e2c1461017c57806323b872dd146101b557806341e835a6146101c857806342842e0e146101db575f80fd5b806301ffc9a7146100ff57806306fdde0314610127578063081812fc1461013c578063095ea7b314610167575b5f80fd5b61011261010d3660046110ab565b6102b1565b60405190151581526020015b60405180910390f35b61012f6102db565b60405161011e9190611113565b61014f61014a366004611125565b61036a565b6040516001600160a01b03909116815260200161011e565b61017a610175366004611157565b61038f565b005b60408051808201909152601881527f506c7573506c7573436f6e7472616374207620302e302e310000000000000000602082015261012f565b61017a6101c336600461117f565b6104a8565b61017a6101d63660046111c7565b6104d9565b61017a6101e936600461117f565b6104e4565b61014f6101fc366004611125565b6104fe565b61021461020f36600461128e565b61055d565b60405190815260200161011e565b6102146102303660046112ec565b610593565b61012f610617565b61017a61024b366004611305565b610626565b61017a61025e366004611336565b610635565b61012f610271366004611125565b61066d565b6101126102843660046113ad565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b03198216632483248360e11b14806102d557506102d582610777565b92915050565b60605f80546102e9906113d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610315906113d5565b80156103605780601f1061033757610100808354040283529160200191610360565b820191905f5260205f20905b81548152906001019060200180831161034357829003601f168201915b5050505050905090565b5f610374826107c6565b505f908152600460205260409020546001600160a01b031690565b5f610399826104fe565b9050806001600160a01b0316836001600160a01b03160361040b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061042757506104278133610284565b6104995760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610402565b6104a38383610827565b505050565b6104b23382610894565b6104ce5760405162461bcd60e51b81526004016104029061140d565b6104a3838383610910565b6104a3838383610a72565b6104a383838360405180602001604052805f815250610635565b5f818152600260205260408120546001600160a01b0316806102d55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610402565b5f61056c600780546001019055565b5f61057660075490565b90506105828482610b3f565b61058c8184610cc7565b9392505050565b5f6001600160a01b0382166105fc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610402565b506001600160a01b03165f9081526003602052604090205490565b6060600180546102e9906113d5565b610631338383610a72565b5050565b61063f3383610894565b61065b5760405162461bcd60e51b81526004016104029061140d565b61066784848484610d90565b50505050565b6060610678826107c6565b5f8281526006602052604081208054610690906113d5565b80601f01602080910402602001604051908101604052809291908181526020018280546106bc906113d5565b80156107075780601f106106de57610100808354040283529160200191610707565b820191905f5260205f20905b8154815290600101906020018083116106ea57829003601f168201915b505050505090505f61072360408051602081019091525f815290565b905080515f03610734575092915050565b81511561076657808260405160200161074e92919061145a565b60405160208183030381529060405292505050919050565b61076f84610dc3565b949350505050565b5f6001600160e01b031982166380ac58cd60e01b14806107a757506001600160e01b03198216635b5e139f60e01b145b806102d557506301ffc9a760e01b6001600160e01b03198316146102d5565b5f818152600260205260409020546001600160a01b03166108245760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610402565b50565b5f81815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061085b826104fe565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f8061089f836104fe565b9050806001600160a01b0316846001600160a01b031614806108e557506001600160a01b038082165f9081526005602090815260408083209388168352929052205460ff165b8061076f5750836001600160a01b03166108fe8461036a565b6001600160a01b031614949350505050565b826001600160a01b0316610923826104fe565b6001600160a01b0316146109495760405162461bcd60e51b815260040161040290611488565b6001600160a01b0382166109ab5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610402565b826001600160a01b03166109be826104fe565b6001600160a01b0316146109e45760405162461bcd60e51b815260040161040290611488565b5f81815260046020908152604080832080546001600160a01b03199081169091556001600160a01b038781168086526003855283862080545f1901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603610ad35760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610402565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038216610b955760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610402565b5f818152600260205260409020546001600160a01b031615610bf95760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610402565b5f818152600260205260409020546001600160a01b031615610c5d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610402565b6001600160a01b0382165f81815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f828152600260205260409020546001600160a01b0316610d415760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610402565b5f828152600660205260409020610d58828261151a565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b610d9b848484610910565b610da784848484610e32565b6106675760405162461bcd60e51b8152600401610402906115d6565b6060610dce826107c6565b5f610de360408051602081019091525f815290565b90505f815111610e015760405180602001604052805f81525061058c565b80610e0b84610f2f565b604051602001610e1c92919061145a565b6040516020818303038152906040529392505050565b5f6001600160a01b0384163b15610f2457604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610e75903390899088908890600401611628565b6020604051808303815f875af1925050508015610eaf575060408051601f3d908101601f19168201909252610eac91810190611664565b60015b610f0a573d808015610edc576040519150601f19603f3d011682016040523d82523d5f602084013e610ee1565b606091505b5080515f03610f025760405162461bcd60e51b8152600401610402906115d6565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061076f565b506001949350505050565b60605f610f3b83610fbf565b60010190505f8167ffffffffffffffff811115610f5a57610f5a611207565b6040519080825280601f01601f191660200182016040528015610f84576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610f8e57509392505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ffd5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611029576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061104757662386f26fc10000830492506010015b6305f5e100831061105f576305f5e100830492506008015b612710831061107357612710830492506004015b60648310611085576064830492506002015b600a83106102d55760010192915050565b6001600160e01b031981168114610824575f80fd5b5f602082840312156110bb575f80fd5b813561058c81611096565b5f5b838110156110e05781810151838201526020016110c8565b50505f910152565b5f81518084526110ff8160208601602086016110c6565b601f01601f19169290920160200192915050565b602081525f61058c60208301846110e8565b5f60208284031215611135575f80fd5b5035919050565b80356001600160a01b0381168114611152575f80fd5b919050565b5f8060408385031215611168575f80fd5b6111718361113c565b946020939093013593505050565b5f805f60608486031215611191575f80fd5b61119a8461113c565b92506111a86020850161113c565b9150604084013590509250925092565b80358015158114611152575f80fd5b5f805f606084860312156111d9575f80fd5b6111e28461113c565b92506111f06020850161113c565b91506111fe604085016111b8565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561123557611235611207565b604051601f8501601f19908116603f0116810190828211818310171561125d5761125d611207565b81604052809350858152868686011115611275575f80fd5b858560208301375f602087830101525050509392505050565b5f806040838503121561129f575f80fd5b6112a88361113c565b9150602083013567ffffffffffffffff8111156112c3575f80fd5b8301601f810185136112d3575f80fd5b6112e28582356020840161121b565b9150509250929050565b5f602082840312156112fc575f80fd5b61058c8261113c565b5f8060408385031215611316575f80fd5b61131f8361113c565b915061132d602084016111b8565b90509250929050565b5f805f8060808587031215611349575f80fd5b6113528561113c565b93506113606020860161113c565b925060408501359150606085013567ffffffffffffffff811115611382575f80fd5b8501601f81018713611392575f80fd5b6113a18782356020840161121b565b91505092959194509250565b5f80604083850312156113be575f80fd5b6113c78361113c565b915061132d6020840161113c565b600181811c908216806113e957607f821691505b60208210810361140757634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b5f835161146b8184602088016110c6565b83519083019061147f8183602088016110c6565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b601f8211156104a3575f81815260208120601f850160051c810160208610156114f35750805b601f850160051c820191505b81811015611512578281556001016114ff565b505050505050565b815167ffffffffffffffff81111561153457611534611207565b6115488161154284546113d5565b846114cd565b602080601f83116001811461157b575f84156115645750858301515b5f19600386901b1c1916600185901b178555611512565b5f85815260208120601f198616915b828110156115a95788860151825594840194600190910190840161158a565b50858210156115c657878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061165a908301846110e8565b9695505050505050565b5f60208284031215611674575f80fd5b815161058c8161109656fea264697066735822122068ebbf2a92432904c82b4cd54d9bed7bef4db50a84a3231694cc3c3588a0d80764736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}