[ { "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" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "Transfer", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "newName", "type": "string" }, { "indexed": false, "internalType": "string", "name": "newSymbol", "type": "string" } ], "name": "UpdatedTokenInformation", "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": "minter", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "string", "name": "newName", "type": "string" }, { "internalType": "string", "name": "newSymbol", "type": "string" } ], "name": "setTokenInformation", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "transferAndCall", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
6101406040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610120908152506040518060400160405280600781526020017f53747265616d7200000000000000000000000000000000000000000000000000815250600790805190602001906200007a92919062000454565b506040518060400160405280600481526020017f444154410000000000000000000000000000000000000000000000000000000081525060089080519060200190620000c892919062000454565b50348015620000d657600080fd5b5060078054620000e690620005dc565b80601f01602080910402602001604051908101604052809291908181526020018280546200011490620005dc565b8015620001655780601f10620001395761010080835404028352916020019162000165565b820191906000526020600020905b8154815290600101906020018083116200014757829003601f168201915b5050505050806040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525060405180602001604052806000815250604051806020016040528060008152508160039080519060200190620001d992919062000454565b508060049080519060200190620001f292919062000454565b50505060008280519060200120905060008280519060200120905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508260c081815250508160e081815250504660a081815250506200025d8184846200029d60201b60201c565b60808181525050806101008181525050505050505050620002976000801b6200028b620002d960201b60201c565b620002e160201b60201c565b62000641565b60008383834630604051602001620002ba95949392919062000537565b6040516020818303038152906040528051906020012090509392505050565b600033905090565b620002f38282620002f760201b60201c565b5050565b620003098282620003e960201b60201c565b620003e55760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200038a620002d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b8280546200046290620005dc565b90600052602060002090601f016020900481019282620004865760008555620004d2565b82601f10620004a157805160ff1916838001178555620004d2565b82800160010185558215620004d2579182015b82811115620004d1578251825591602001919060010190620004b4565b5b509050620004e19190620004e5565b5090565b5b8082111562000500576000816000905550600101620004e6565b5090565b6200050f8162000594565b82525050565b6200052081620005a8565b82525050565b6200053181620005d2565b82525050565b600060a0820190506200054e600083018862000515565b6200055d602083018762000515565b6200056c604083018662000515565b6200057b606083018562000526565b6200058a608083018462000504565b9695505050505050565b6000620005a182620005b2565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006002820490506001821680620005f557607f821691505b602082108114156200060c576200060b62000612565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60805160a05160c05160e0516101005161012051613694620006916000396000610fda0152600061185f015260006118a1015260006118800152600061180c0152600061183401526136946000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80634eee966f116100f9578063a457c2d711610097578063d505accf11610071578063d505accf14610565578063d539139314610581578063d547741f1461059f578063dd62ed3e146105bb576101c4565b8063a457c2d7146104d5578063a9059cbb14610505578063aa271e1a14610535576101c4565b80637ecebe00116100d35780637ecebe001461043957806391d148541461046957806395d89b4114610499578063a217fddf146104b7576101c4565b80634eee966f146103d157806370a08231146103ed57806379cc67901461041d576101c4565b8063313ce56711610166578063395093511161014057806339509351146103395780634000aea01461036957806340c10f191461039957806342966c68146103b5576101c4565b8063313ce567146102e15780633644e515146102ff57806336568abe1461031d576101c4565b806318160ddd116101a257806318160ddd1461024757806323b872dd14610265578063248a9ca3146102955780632f2ff15d146102c5576101c4565b806301ffc9a7146101c957806306fdde03146101f9578063095ea7b314610217575b600080fd5b6101e360048036038101906101de919061234b565b6105eb565b6040516101f091906128e7565b60405180910390f35b610201610665565b60405161020e9190612a16565b60405180910390f35b610231600480360381019061022c919061222a565b6106f7565b60405161023e91906128e7565b60405180910390f35b61024f610715565b60405161025c9190612d0f565b60405180910390f35b61027f600480360381019061027a9190612135565b61071f565b60405161028c91906128e7565b60405180910390f35b6102af60048036038101906102aa91906122de565b610820565b6040516102bc9190612902565b60405180910390f35b6102df60048036038101906102da919061230b565b610840565b005b6102e96108a6565b6040516102f69190612d5c565b60405180910390f35b6103076108af565b6040516103149190612902565b60405180910390f35b6103376004803603810190610332919061230b565b6108be565b005b610353600480360381019061034e919061222a565b610941565b60405161036091906128e7565b60405180910390f35b610383600480360381019061037e919061226a565b6109ed565b60405161039091906128e7565b60405180910390f35b6103b360048036038101906103ae919061222a565b610b05565b005b6103cf60048036038101906103ca91906123f9565b610b62565b005b6103eb60048036038101906103e69190612378565b610b76565b005b610407600480360381019061040291906120c8565b610c2e565b6040516104149190612d0f565b60405180910390f35b6104376004803603810190610432919061222a565b610c76565b005b610453600480360381019061044e91906120c8565b610cfa565b6040516104609190612d0f565b60405180910390f35b610483600480360381019061047e919061230b565b610d4a565b60405161049091906128e7565b60405180910390f35b6104a1610db5565b6040516104ae9190612a16565b60405180910390f35b6104bf610e47565b6040516104cc9190612902565b60405180910390f35b6104ef60048036038101906104ea919061222a565b610e4e565b6040516104fc91906128e7565b60405180910390f35b61051f600480360381019061051a919061222a565b610f42565b60405161052c91906128e7565b60405180910390f35b61054f600480360381019061054a91906120c8565b610f60565b60405161055c91906128e7565b60405180910390f35b61057f600480360381019061057a9190612188565b610f93565b005b61058961115a565b6040516105969190612902565b60405180910390f35b6105b960048036038101906105b4919061230b565b61117e565b005b6105d560048036038101906105d091906120f5565b6111e4565b6040516105e29190612d0f565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061065e575061065d8261126b565b5b9050919050565b60606007805461067490612f1b565b80601f01602080910402602001604051908101604052809291908181526020018280546106a090612f1b565b80156106ed5780601f106106c2576101008083540402835291602001916106ed565b820191906000526020600020905b8154815290600101906020018083116106d057829003601f168201915b5050505050905090565b600061070b6107046112d5565b84846112dd565b6001905092915050565b6000600254905090565b600061072c8484846114a8565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107776112d5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ee90612bef565b60405180910390fd5b610814856108036112d5565b858461080f9190612e1a565b6112dd565b60019150509392505050565b600060066000838152602001908152602001600020600101549050919050565b61085961084c83610820565b6108546112d5565b610d4a565b610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f90612aaf565b60405180910390fd5b6108a28282611727565b5050565b60006012905090565b60006108b9611808565b905090565b6108c66112d5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092a90612ccf565b60405180910390fd5b61093d82826118cb565b5050565b60006109e361094e6112d5565b84846001600061095c6112d5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109de9190612dc4565b6112dd565b6001905092915050565b60006109f98585610f42565b508473ffffffffffffffffffffffffffffffffffffffff16610a196112d5565b73ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16868686604051610a6293929190612d2a565b60405180910390a36000853b90506000811115610af85760008690508073ffffffffffffffffffffffffffffffffffffffff1663a4c0ed36610aa26112d5565b8888886040518563ffffffff1660e01b8152600401610ac494939291906128a7565b600060405180830381600087803b158015610ade57600080fd5b505af1158015610af2573d6000803e3d6000fd5b50505050505b6001915050949350505050565b610b15610b106112d5565b610f60565b610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b90612b6f565b60405180910390fd5b610b5e82826119ad565b5050565b610b73610b6d6112d5565b82611b01565b50565b610b8a6000801b610b856112d5565b610d4a565b610bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc090612c8f565b60405180910390fd5b838360079190610bda929190611f10565b50818160089190610bec929190611f10565b507fd131ab1e6f279deea74e13a18477e13e2107deb6dc8ae955648948be5841fb4660076008604051610c20929190612a38565b60405180910390a150505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610c8983610c846112d5565b6111e4565b905081811015610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc590612c0f565b60405180910390fd5b610ceb83610cda6112d5565b8484610ce69190612e1a565b6112dd565b610cf58383611b01565b505050565b6000610d43600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611cd5565b9050919050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060088054610dc490612f1b565b80601f0160208091040260200160405190810160405280929190818152602001828054610df090612f1b565b8015610e3d5780601f10610e1257610100808354040283529160200191610e3d565b820191906000526020600020905b815481529060010190602001808311610e2057829003601f168201915b5050505050905090565b6000801b81565b60008060016000610e5d6112d5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1190612caf565b60405180910390fd5b610f37610f256112d5565b858584610f329190612e1a565b6112dd565b600191505092915050565b6000610f56610f4f6112d5565b84846114a8565b6001905092915050565b6000610f8c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a683610d4a565b9050919050565b83421115610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd90612b0f565b60405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000888888611043600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611cd5565b896040516020016110599695949392919061291d565b604051602081830303815290604052805190602001209050600061107c82611ce3565b9050600061108c82878787611cfd565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612bcf565b60405180910390fd5b611143600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e88565b61114e8a8a8a6112dd565b50505050505050505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61119761118a83610820565b6111926112d5565b610d4a565b6111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90612b8f565b60405180910390fd5b6111e082826118cb565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134490612c6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490612aef565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161149b9190612d0f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f90612c4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90612a8f565b60405180910390fd5b611593838383611e9e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090612b2f565b60405180910390fd5b81816116259190612e1a565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116b59190612dc4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117199190612d0f565b60405180910390a350505050565b6117318282610d4a565b6118045760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506117a96112d5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60007f000000000000000000000000000000000000000000000000000000000000000046141561185a577f000000000000000000000000000000000000000000000000000000000000000090506118c8565b6118c57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611ea3565b90505b90565b6118d58282610d4a565b156119a95760006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061194e6112d5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1490612cef565b60405180910390fd5b611a2960008383611e9e565b8060026000828254611a3b9190612dc4565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a909190612dc4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611af59190612d0f565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6890612c2f565b60405180910390fd5b611b7d82600083611e9e565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa90612acf565b60405180910390fd5b8181611c0f9190612e1a565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254611c639190612e1a565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cc89190612d0f565b60405180910390a3505050565b600081600001549050919050565b6000611cf6611cf0611808565b83611edd565b9050919050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90612b4f565b60405180910390fd5b601b8460ff161480611d7a5750601c8460ff16145b611db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db090612baf565b60405180910390fd5b600060018686868660405160008152602001604052604051611dde94939291906129d1565b6020604051602081039080840390855afa158015611e00573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7390612a6f565b60405180910390fd5b80915050949350505050565b6001816000016000828254019250508190555050565b505050565b60008383834630604051602001611ebe95949392919061297e565b6040516020818303038152906040528051906020012090509392505050565b60008282604051602001611ef2929190612870565b60405160208183030381529060405280519060200120905092915050565b828054611f1c90612f1b565b90600052602060002090601f016020900481019282611f3e5760008555611f85565b82601f10611f5757803560ff1916838001178555611f85565b82800160010185558215611f85579182015b82811115611f84578235825591602001919060010190611f69565b5b509050611f929190611f96565b5090565b5b80821115611faf576000816000905550600101611f97565b5090565b600081359050611fc2816135eb565b92915050565b600081359050611fd781613602565b92915050565b600081359050611fec81613619565b92915050565b60008083601f84011261200857612007612fba565b5b8235905067ffffffffffffffff81111561202557612024612fb5565b5b60208301915083600182028301111561204157612040612fbf565b5b9250929050565b60008083601f84011261205e5761205d612fba565b5b8235905067ffffffffffffffff81111561207b5761207a612fb5565b5b60208301915083600182028301111561209757612096612fbf565b5b9250929050565b6000813590506120ad81613630565b92915050565b6000813590506120c281613647565b92915050565b6000602082840312156120de576120dd612fc9565b5b60006120ec84828501611fb3565b91505092915050565b6000806040838503121561210c5761210b612fc9565b5b600061211a85828601611fb3565b925050602061212b85828601611fb3565b9150509250929050565b60008060006060848603121561214e5761214d612fc9565b5b600061215c86828701611fb3565b935050602061216d86828701611fb3565b925050604061217e8682870161209e565b9150509250925092565b600080600080600080600060e0888a0312156121a7576121a6612fc9565b5b60006121b58a828b01611fb3565b97505060206121c68a828b01611fb3565b96505060406121d78a828b0161209e565b95505060606121e88a828b0161209e565b94505060806121f98a828b016120b3565b93505060a061220a8a828b01611fc8565b92505060c061221b8a828b01611fc8565b91505092959891949750929550565b6000806040838503121561224157612240612fc9565b5b600061224f85828601611fb3565b92505060206122608582860161209e565b9150509250929050565b6000806000806060858703121561228457612283612fc9565b5b600061229287828801611fb3565b94505060206122a38782880161209e565b935050604085013567ffffffffffffffff8111156122c4576122c3612fc4565b5b6122d087828801611ff2565b925092505092959194509250565b6000602082840312156122f4576122f3612fc9565b5b600061230284828501611fc8565b91505092915050565b6000806040838503121561232257612321612fc9565b5b600061233085828601611fc8565b925050602061234185828601611fb3565b9150509250929050565b60006020828403121561236157612360612fc9565b5b600061236f84828501611fdd565b91505092915050565b6000806000806040858703121561239257612391612fc9565b5b600085013567ffffffffffffffff8111156123b0576123af612fc4565b5b6123bc87828801612048565b9450945050602085013567ffffffffffffffff8111156123df576123de612fc4565b5b6123eb87828801612048565b925092505092959194509250565b60006020828403121561240f5761240e612fc9565b5b600061241d8482850161209e565b91505092915050565b61242f81612e4e565b82525050565b61243e81612e60565b82525050565b61244d81612e6c565b82525050565b61246461245f82612e6c565b612f4d565b82525050565b60006124768385612d97565b9350612483838584612ed9565b61248c83612fce565b840190509392505050565b60006124a282612d8c565b6124ac8185612da8565b93506124bc818560208601612ee8565b6124c581612fce565b840191505092915050565b600081546124dd81612f1b565b6124e78186612da8565b94506001821660008114612502576001811461251457612547565b60ff1983168652602086019350612547565b61251d85612d77565b60005b8381101561253f57815481890152600182019150602081019050612520565b808801955050505b50505092915050565b600061255d601883612da8565b915061256882612fdf565b602082019050919050565b6000612580602383612da8565b915061258b82613008565b604082019050919050565b60006125a3602f83612da8565b91506125ae82613057565b604082019050919050565b60006125c6602283612da8565b91506125d1826130a6565b604082019050919050565b60006125e9602283612da8565b91506125f4826130f5565b604082019050919050565b600061260c600283612db9565b915061261782613144565b600282019050919050565b600061262f601d83612da8565b915061263a8261316d565b602082019050919050565b6000612652602683612da8565b915061265d82613196565b604082019050919050565b6000612675602283612da8565b9150612680826131e5565b604082019050919050565b6000612698602283612da8565b91506126a382613234565b604082019050919050565b60006126bb603083612da8565b91506126c682613283565b604082019050919050565b60006126de602283612da8565b91506126e9826132d2565b604082019050919050565b6000612701601e83612da8565b915061270c82613321565b602082019050919050565b6000612724602883612da8565b915061272f8261334a565b604082019050919050565b6000612747602483612da8565b915061275282613399565b604082019050919050565b600061276a602183612da8565b9150612775826133e8565b604082019050919050565b600061278d602583612da8565b915061279882613437565b604082019050919050565b60006127b0602483612da8565b91506127bb82613486565b604082019050919050565b60006127d3602283612da8565b91506127de826134d5565b604082019050919050565b60006127f6602583612da8565b915061280182613524565b604082019050919050565b6000612819602f83612da8565b915061282482613573565b604082019050919050565b600061283c601f83612da8565b9150612847826135c2565b602082019050919050565b61285b81612ec2565b82525050565b61286a81612ecc565b82525050565b600061287b826125ff565b91506128878285612453565b6020820191506128978284612453565b6020820191508190509392505050565b60006060820190506128bc6000830187612426565b6128c96020830186612852565b81810360408301526128dc81848661246a565b905095945050505050565b60006020820190506128fc6000830184612435565b92915050565b60006020820190506129176000830184612444565b92915050565b600060c0820190506129326000830189612444565b61293f6020830188612426565b61294c6040830187612426565b6129596060830186612852565b6129666080830185612852565b61297360a0830184612852565b979650505050505050565b600060a0820190506129936000830188612444565b6129a06020830187612444565b6129ad6040830186612444565b6129ba6060830185612852565b6129c76080830184612426565b9695505050505050565b60006080820190506129e66000830187612444565b6129f36020830186612861565b612a006040830185612444565b612a0d6060830184612444565b95945050505050565b60006020820190508181036000830152612a308184612497565b905092915050565b60006040820190508181036000830152612a5281856124d0565b90508181036020830152612a6681846124d0565b90509392505050565b60006020820190508181036000830152612a8881612550565b9050919050565b60006020820190508181036000830152612aa881612573565b9050919050565b60006020820190508181036000830152612ac881612596565b9050919050565b60006020820190508181036000830152612ae8816125b9565b9050919050565b60006020820190508181036000830152612b08816125dc565b9050919050565b60006020820190508181036000830152612b2881612622565b9050919050565b60006020820190508181036000830152612b4881612645565b9050919050565b60006020820190508181036000830152612b6881612668565b9050919050565b60006020820190508181036000830152612b888161268b565b9050919050565b60006020820190508181036000830152612ba8816126ae565b9050919050565b60006020820190508181036000830152612bc8816126d1565b9050919050565b60006020820190508181036000830152612be8816126f4565b9050919050565b60006020820190508181036000830152612c0881612717565b9050919050565b60006020820190508181036000830152612c288161273a565b9050919050565b60006020820190508181036000830152612c488161275d565b9050919050565b60006020820190508181036000830152612c6881612780565b9050919050565b60006020820190508181036000830152612c88816127a3565b9050919050565b60006020820190508181036000830152612ca8816127c6565b9050919050565b60006020820190508181036000830152612cc8816127e9565b9050919050565b60006020820190508181036000830152612ce88161280c565b9050919050565b60006020820190508181036000830152612d088161282f565b9050919050565b6000602082019050612d246000830184612852565b92915050565b6000604082019050612d3f6000830186612852565b8181036020830152612d5281848661246a565b9050949350505050565b6000602082019050612d716000830184612861565b92915050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612dcf82612ec2565b9150612dda83612ec2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e0f57612e0e612f57565b5b828201905092915050565b6000612e2582612ec2565b9150612e3083612ec2565b925082821015612e4357612e42612f57565b5b828203905092915050565b6000612e5982612ea2565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612f06578082015181840152602081019050612eeb565b83811115612f15576000848401525b50505050565b60006002820490506001821680612f3357607f821691505b60208210811415612f4757612f46612f86565b5b50919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008201527f2061646d696e20746f206772616e740000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73616374696f6e207369676e6572206973206e6f742061206d696e7460008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008201527f2061646d696e20746f207265766f6b6500000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73616374696f6e207369676e6572206973206e6f7420616e2061646d60008201527f696e000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6135f481612e4e565b81146135ff57600080fd5b50565b61360b81612e6c565b811461361657600080fd5b50565b61362281612e76565b811461362d57600080fd5b50565b61363981612ec2565b811461364457600080fd5b50565b61365081612ecc565b811461365b57600080fd5b5056fea26469706673582212207575873777af048c081d0e4286d7edcec2b516036f5d1588d0183b4cff00672764736f6c63430008060033