[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "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": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "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": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "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": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "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": "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": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
6101606040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610140908152503480156200003a57600080fd5b506040518060400160405280600881526020017f5374726f6e676572000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f5374726f6e6765720000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5354524e4752000000000000000000000000000000000000000000000000000081525081600390805190602001906200012c929190620005b7565b50806004908051906020019062000145929190620005b7565b50505060008280519060200120905060008280519060200120905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508260e081815250508161010081815250504660a08181525050620001b18184846200028a60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508061012081815250505050505050506200023d3362000213620002c660201b60201c565b600a62000221919062000826565b6298968062000231919062000963565b620002cf60201b60201c565b620002526000801b336200044860201b60201c565b620002847f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200044860201b60201c565b62000ae3565b60008383834630604051602001620002a7959493929190620006c1565b6040516020818303038152906040528051906020012090509392505050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000339906200071e565b60405180910390fd5b62000356600083836200053a60201b60201c565b80600260008282546200036a91906200076e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003c191906200076e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000428919062000740565b60405180910390a362000444600083836200053f60201b60201c565b5050565b6200045a82826200054460201b60201c565b620005365760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004db620005af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b505050565b505050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b828054620005c59062000a19565b90600052602060002090601f016020900481019282620005e9576000855562000635565b82601f106200060457805160ff191683800117855562000635565b8280016001018555821562000635579182015b828111156200063457825182559160200191906001019062000617565b5b50905062000644919062000648565b5090565b5b808211156200066357600081600090555060010162000649565b5090565b6200067281620009c4565b82525050565b6200068381620009d8565b82525050565b600062000698601f836200075d565b9150620006a58262000aba565b602082019050919050565b620006bb8162000a02565b82525050565b600060a082019050620006d8600083018862000678565b620006e7602083018762000678565b620006f6604083018662000678565b620007056060830185620006b0565b62000714608083018462000667565b9695505050505050565b60006020820190508181036000830152620007398162000689565b9050919050565b6000602082019050620007576000830184620006b0565b92915050565b600082825260208201905092915050565b60006200077b8262000a02565b9150620007888362000a02565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007c057620007bf62000a4f565b5b828201905092915050565b6000808291508390505b60018511156200081d57808604811115620007f557620007f462000a4f565b5b6001851615620008055780820291505b8081029050620008158562000aad565b9450620007d5565b94509492505050565b6000620008338262000a02565b9150620008408362000a0c565b92506200086f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000877565b905092915050565b6000826200088957600190506200095c565b816200089957600090506200095c565b8160018114620008b25760028114620008bd57620008f3565b60019150506200095c565b60ff841115620008d257620008d162000a4f565b5b8360020a915084821115620008ec57620008eb62000a4f565b5b506200095c565b5060208310610133831016604e8410600b84101617156200092d5782820a90508381111562000927576200092662000a4f565b5b6200095c565b6200093c8484846001620007cb565b9250905081840481111562000956576200095562000a4f565b5b81810290505b9392505050565b6000620009708262000a02565b91506200097d8362000a02565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009b957620009b862000a4f565b5b828202905092915050565b6000620009d182620009e2565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000a3257607f821691505b6020821081141562000a495762000a4862000a7e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60805160a05160c05160601c60e0516101005161012051610140516134b062000b416000396000610b79015260006114be01526000611500015260006114df015260006114140152600061146a0152600061149301526134b06000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806342966c68116100de578063a217fddf11610097578063d505accf11610071578063d505accf14610498578063d5391393146104b4578063d547741f146104d2578063dd62ed3e146104ee57610173565b8063a217fddf1461041a578063a457c2d714610438578063a9059cbb1461046857610173565b806342966c681461033457806370a082311461035057806379cc6790146103805780637ecebe001461039c57806391d14854146103cc57806395d89b41146103fc57610173565b80632f2ff15d116101305780632f2ff15d14610274578063313ce567146102905780633644e515146102ae57806336568abe146102cc57806339509351146102e857806340c10f191461031857610173565b806301ffc9a71461017857806306fdde03146101a8578063095ea7b3146101c657806318160ddd146101f657806323b872dd14610214578063248a9ca314610244575b600080fd5b610192600480360381019061018d9190612435565b61051e565b60405161019f91906128a3565b60405180910390f35b6101b0610598565b6040516101bd91906129d2565b60405180910390f35b6101e060048036038101906101db9190612394565b61062a565b6040516101ed91906128a3565b60405180910390f35b6101fe61064d565b60405161020b9190612c34565b60405180910390f35b61022e600480360381019061022991906122a7565b610657565b60405161023b91906128a3565b60405180910390f35b61025e600480360381019061025991906123d0565b610686565b60405161026b91906128be565b60405180910390f35b61028e600480360381019061028991906123f9565b6106a6565b005b6102986106cf565b6040516102a59190612c4f565b60405180910390f35b6102b66106d8565b6040516102c391906128be565b60405180910390f35b6102e660048036038101906102e191906123f9565b6106e7565b005b61030260048036038101906102fd9190612394565b61076a565b60405161030f91906128a3565b60405180910390f35b610332600480360381019061032d9190612394565b610814565b005b61034e6004803603810190610349919061245e565b610855565b005b61036a60048036038101906103659190612242565b610869565b6040516103779190612c34565b60405180910390f35b61039a60048036038101906103959190612394565b6108b1565b005b6103b660048036038101906103b19190612242565b6108d1565b6040516103c39190612c34565b60405180910390f35b6103e660048036038101906103e191906123f9565b610921565b6040516103f391906128a3565b60405180910390f35b61040461098c565b60405161041191906129d2565b60405180910390f35b610422610a1e565b60405161042f91906128be565b60405180910390f35b610452600480360381019061044d9190612394565b610a25565b60405161045f91906128a3565b60405180910390f35b610482600480360381019061047d9190612394565b610b0f565b60405161048f91906128a3565b60405180910390f35b6104b260048036038101906104ad91906122f6565b610b32565b005b6104bc610c74565b6040516104c991906128be565b60405180910390f35b6104ec60048036038101906104e791906123f9565b610c98565b005b6105086004803603810190610503919061226b565b610cc1565b6040516105159190612c34565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610591575061059082610d48565b5b9050919050565b6060600380546105a790612e5d565b80601f01602080910402602001604051908101604052809291908181526020018280546105d390612e5d565b80156106205780601f106105f557610100808354040283529160200191610620565b820191906000526020600020905b81548152906001019060200180831161060357829003601f168201915b5050505050905090565b600080610635610db2565b9050610642818585610dba565b600191505092915050565b6000600254905090565b600080610662610db2565b905061066f858285610f85565b61067a858585611011565b60019150509392505050565b600060066000838152602001908152602001600020600101549050919050565b6106af82610686565b6106c0816106bb610db2565b611292565b6106ca838361132f565b505050565b60006012905090565b60006106e2611410565b905090565b6106ef610db2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461075c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075390612bf4565b60405180910390fd5b610766828261152a565b5050565b600080610775610db2565b9050610809818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108049190612c91565b610dba565b600191505092915050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661084681610841610db2565b611292565b610850838361160c565b505050565b610866610860610db2565b8261176c565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108c3826108bd610db2565b83610f85565b6108cd828261176c565b5050565b600061091a600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611943565b9050919050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60606004805461099b90612e5d565b80601f01602080910402602001604051908101604052809291908181526020018280546109c790612e5d565b8015610a145780601f106109e957610100808354040283529160200191610a14565b820191906000526020600020905b8154815290600101906020018083116109f757829003601f168201915b5050505050905090565b6000801b81565b600080610a30610db2565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aed90612bd4565b60405180910390fd5b610b038286868403610dba565b60019250505092915050565b600080610b1a610db2565b9050610b27818585611011565b600191505092915050565b83421115610b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6c90612ad4565b60405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000888888610ba48c611951565b89604051602001610bba969594939291906128d9565b6040516020818303038152906040528051906020012090506000610bdd826119af565b90506000610bed828787876119c9565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490612b54565b60405180910390fd5b610c688a8a8a610dba565b50505050505050505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610ca182610686565b610cb281610cad610db2565b611292565b610cbc838361152a565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2190612bb4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9190612a94565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f789190612c34565b60405180910390a3505050565b6000610f918484610cc1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461100b5781811015610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490612ab4565b60405180910390fd5b61100a8484848403610dba565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611081576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107890612b94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e890612a34565b60405180910390fd5b6110fc8383836119f4565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117990612af4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112159190612c91565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112799190612c34565b60405180910390a361128c8484846119f9565b50505050565b61129c8282610921565b61132b576112c18173ffffffffffffffffffffffffffffffffffffffff1660146119fe565b6112cf8360001c60206119fe565b6040516020016112e0929190612869565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132291906129d2565b60405180910390fd5b5050565b6113398282610921565b61140c5760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b1610db2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561148c57507f000000000000000000000000000000000000000000000000000000000000000046145b156114b9577f00000000000000000000000000000000000000000000000000000000000000009050611527565b6115247f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611cf8565b90505b90565b6115348282610921565b156116085760006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506115ad610db2565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390612c14565b60405180910390fd5b611688600083836119f4565b806002600082825461169a9190612c91565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116ef9190612c91565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117549190612c34565b60405180910390a3611768600083836119f9565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390612b74565b60405180910390fd5b6117e8826000836119f4565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186590612a54565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546118c59190612d41565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161192a9190612c34565b60405180910390a361193e836000846119f9565b505050565b600081600001549050919050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061199e81611943565b91506119a981611d32565b50919050565b60006119c26119bc611410565b83611d48565b9050919050565b60008060006119da87878787611d7b565b915091506119e781611e88565b8192505050949350505050565b505050565b505050565b606060006002836002611a119190612ce7565b611a1b9190612c91565b67ffffffffffffffff811115611a5a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611a8c5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611aea577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611b74577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611bb49190612ce7565b611bbe9190612c91565b90505b6001811115611caa577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611c26577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b828281518110611c63577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611ca390612e33565b9050611bc1565b5060008414611cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce590612a14565b60405180910390fd5b8091505092915050565b60008383834630604051602001611d1395949392919061293a565b6040516020818303038152906040528051906020012090509392505050565b6001816000016000828254019250508190555050565b60008282604051602001611d5d929190612832565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115611db6576000600391509150611e7f565b601b8560ff1614158015611dce5750601c8560ff1614155b15611de0576000600491509150611e7f565b600060018787878760405160008152602001604052604051611e05949392919061298d565b6020604051602081039080840390855afa158015611e27573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e7657600060019250925050611e7f565b80600092509250505b94509492505050565b60006004811115611ec2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115611efb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611f06576121d6565b60016004811115611f40577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115611f79577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb1906129f4565b60405180910390fd5b60026004811115611ff4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600481111561202d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561206e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206590612a74565b60405180910390fd5b600360048111156120a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160048111156120e1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211990612b14565b60405180910390fd5b60048081111561215b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115612194577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156121d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cc90612b34565b60405180910390fd5b5b50565b6000813590506121e881613407565b92915050565b6000813590506121fd8161341e565b92915050565b60008135905061221281613435565b92915050565b6000813590506122278161344c565b92915050565b60008135905061223c81613463565b92915050565b60006020828403121561225457600080fd5b6000612262848285016121d9565b91505092915050565b6000806040838503121561227e57600080fd5b600061228c858286016121d9565b925050602061229d858286016121d9565b9150509250929050565b6000806000606084860312156122bc57600080fd5b60006122ca868287016121d9565b93505060206122db868287016121d9565b92505060406122ec86828701612218565b9150509250925092565b600080600080600080600060e0888a03121561231157600080fd5b600061231f8a828b016121d9565b97505060206123308a828b016121d9565b96505060406123418a828b01612218565b95505060606123528a828b01612218565b94505060806123638a828b0161222d565b93505060a06123748a828b016121ee565b92505060c06123858a828b016121ee565b91505092959891949750929550565b600080604083850312156123a757600080fd5b60006123b5858286016121d9565b92505060206123c685828601612218565b9150509250929050565b6000602082840312156123e257600080fd5b60006123f0848285016121ee565b91505092915050565b6000806040838503121561240c57600080fd5b600061241a858286016121ee565b925050602061242b858286016121d9565b9150509250929050565b60006020828403121561244757600080fd5b600061245584828501612203565b91505092915050565b60006020828403121561247057600080fd5b600061247e84828501612218565b91505092915050565b61249081612d75565b82525050565b61249f81612d87565b82525050565b6124ae81612d93565b82525050565b6124c56124c082612d93565b612e8f565b82525050565b60006124d682612c6a565b6124e08185612c75565b93506124f0818560208601612e00565b6124f981612ef7565b840191505092915050565b600061250f82612c6a565b6125198185612c86565b9350612529818560208601612e00565b80840191505092915050565b6000612542601883612c75565b915061254d82612f08565b602082019050919050565b6000612565602083612c75565b915061257082612f31565b602082019050919050565b6000612588602383612c75565b915061259382612f5a565b604082019050919050565b60006125ab602283612c75565b91506125b682612fa9565b604082019050919050565b60006125ce601f83612c75565b91506125d982612ff8565b602082019050919050565b60006125f1602283612c75565b91506125fc82613021565b604082019050919050565b6000612614600283612c86565b915061261f82613070565b600282019050919050565b6000612637601d83612c75565b915061264282613099565b602082019050919050565b600061265a601d83612c75565b9150612665826130c2565b602082019050919050565b600061267d602683612c75565b9150612688826130eb565b604082019050919050565b60006126a0602283612c75565b91506126ab8261313a565b604082019050919050565b60006126c3602283612c75565b91506126ce82613189565b604082019050919050565b60006126e6601e83612c75565b91506126f1826131d8565b602082019050919050565b6000612709602183612c75565b915061271482613201565b604082019050919050565b600061272c602583612c75565b915061273782613250565b604082019050919050565b600061274f602483612c75565b915061275a8261329f565b604082019050919050565b6000612772601783612c86565b915061277d826132ee565b601782019050919050565b6000612795602583612c75565b91506127a082613317565b604082019050919050565b60006127b8601183612c86565b91506127c382613366565b601182019050919050565b60006127db602f83612c75565b91506127e68261338f565b604082019050919050565b60006127fe601f83612c75565b9150612809826133de565b602082019050919050565b61281d81612de9565b82525050565b61282c81612df3565b82525050565b600061283d82612607565b915061284982856124b4565b60208201915061285982846124b4565b6020820191508190509392505050565b600061287482612765565b91506128808285612504565b915061288b826127ab565b91506128978284612504565b91508190509392505050565b60006020820190506128b86000830184612496565b92915050565b60006020820190506128d360008301846124a5565b92915050565b600060c0820190506128ee60008301896124a5565b6128fb6020830188612487565b6129086040830187612487565b6129156060830186612814565b6129226080830185612814565b61292f60a0830184612814565b979650505050505050565b600060a08201905061294f60008301886124a5565b61295c60208301876124a5565b61296960408301866124a5565b6129766060830185612814565b6129836080830184612487565b9695505050505050565b60006080820190506129a260008301876124a5565b6129af6020830186612823565b6129bc60408301856124a5565b6129c960608301846124a5565b95945050505050565b600060208201905081810360008301526129ec81846124cb565b905092915050565b60006020820190508181036000830152612a0d81612535565b9050919050565b60006020820190508181036000830152612a2d81612558565b9050919050565b60006020820190508181036000830152612a4d8161257b565b9050919050565b60006020820190508181036000830152612a6d8161259e565b9050919050565b60006020820190508181036000830152612a8d816125c1565b9050919050565b60006020820190508181036000830152612aad816125e4565b9050919050565b60006020820190508181036000830152612acd8161262a565b9050919050565b60006020820190508181036000830152612aed8161264d565b9050919050565b60006020820190508181036000830152612b0d81612670565b9050919050565b60006020820190508181036000830152612b2d81612693565b9050919050565b60006020820190508181036000830152612b4d816126b6565b9050919050565b60006020820190508181036000830152612b6d816126d9565b9050919050565b60006020820190508181036000830152612b8d816126fc565b9050919050565b60006020820190508181036000830152612bad8161271f565b9050919050565b60006020820190508181036000830152612bcd81612742565b9050919050565b60006020820190508181036000830152612bed81612788565b9050919050565b60006020820190508181036000830152612c0d816127ce565b9050919050565b60006020820190508181036000830152612c2d816127f1565b9050919050565b6000602082019050612c496000830184612814565b92915050565b6000602082019050612c646000830184612823565b92915050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000612c9c82612de9565b9150612ca783612de9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612cdc57612cdb612e99565b5b828201905092915050565b6000612cf282612de9565b9150612cfd83612de9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d3657612d35612e99565b5b828202905092915050565b6000612d4c82612de9565b9150612d5783612de9565b925082821015612d6a57612d69612e99565b5b828203905092915050565b6000612d8082612dc9565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612e1e578082015181840152602081019050612e03565b83811115612e2d576000848401525b50505050565b6000612e3e82612de9565b91506000821415612e5257612e51612e99565b5b600182039050919050565b60006002820490506001821680612e7557607f821691505b60208210811415612e8957612e88612ec8565b5b50919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61341081612d75565b811461341b57600080fd5b50565b61342781612d93565b811461343257600080fd5b50565b61343e81612d9d565b811461344957600080fd5b50565b61345581612de9565b811461346057600080fd5b50565b61346c81612df3565b811461347757600080fd5b5056fea26469706673582212205e4460cf3c6af7d9c98e7b863d3e6c23cff0acb6a09534a7565d161be2b1fba064736f6c63430008040033