[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_totalSupply", "type": "uint256" }, { "internalType": "address", "name": "tokenHold", "type": "address" }, { "internalType": "address", "name": "a", "type": "address" }, { "internalType": "address", "name": "b", "type": "address" } ], "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": "ADMIN", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CNEESGTER", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "SEEESGTER", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "TRADE", "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": [], "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": "address", "name": "from", "type": "address" } ], "name": "grantCN", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "grantPN", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "grantSN", "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": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "searchCN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "searchSN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "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" } ]
60806040526001600a5f6101000a81548160ff021916908315150217905550348015610029575f80fd5b506040516136cc3803806136cc833981810160405281019061004b919061077c565b85858585836003908161005e9190610a41565b50826004908161006e9190610a41565b506100a38161008161022e60201b60201c565b600a61008d9190610c78565b846100989190610cc2565b61023660201b60201c565b505050505f8290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101189190610d03565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630846040518363ffffffff1660e01b8152600401610152929190610d3d565b6020604051808303815f875af115801561016e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101929190610d03565b600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101f15f801b6101e661039960201b60201c565b6103a060201b60201c565b610222600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166104f160201b60201c565b50505050505050610e37565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036102a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029b90610dbe565b60405180910390fd5b6102b55f838361053460201b60201c565b8060025f8282546102c69190610ddc565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546103189190610ddc565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161037c9190610e1e565b60405180910390a36103955f838361053960201b60201c565b5050565b5f33905090565b7f5452414445000000000000000000000000000000000000000000000000000000820361040a575f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61041a828261053e60201b60201c565b6104ed57600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061049261039960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b505050565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610601826105bb565b810181811067ffffffffffffffff821117156106205761061f6105cb565b5b80604052505050565b5f6106326105a2565b905061063e82826105f8565b919050565b5f67ffffffffffffffff82111561065d5761065c6105cb565b5b610666826105bb565b9050602081019050919050565b8281835e5f83830152505050565b5f61069361068e84610643565b610629565b9050828152602081018484840111156106af576106ae6105b7565b5b6106ba848285610673565b509392505050565b5f82601f8301126106d6576106d56105b3565b5b81516106e6848260208601610681565b91505092915050565b5f819050919050565b610701816106ef565b811461070b575f80fd5b50565b5f8151905061071c816106f8565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61074b82610722565b9050919050565b61075b81610741565b8114610765575f80fd5b50565b5f8151905061077681610752565b92915050565b5f805f805f8060c08789031215610796576107956105ab565b5b5f87015167ffffffffffffffff8111156107b3576107b26105af565b5b6107bf89828a016106c2565b965050602087015167ffffffffffffffff8111156107e0576107df6105af565b5b6107ec89828a016106c2565b95505060406107fd89828a0161070e565b945050606061080e89828a01610768565b935050608061081f89828a01610768565b92505060a061083089828a01610768565b9150509295509295509295565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061088b57607f821691505b60208210810361089e5761089d610847565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826108c5565b61090a86836108c5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61094561094061093b846106ef565b610922565b6106ef565b9050919050565b5f819050919050565b61095e8361092b565b61097261096a8261094c565b8484546108d1565b825550505050565b5f90565b61098661097a565b610991818484610955565b505050565b5b818110156109b4576109a95f8261097e565b600181019050610997565b5050565b601f8211156109f9576109ca816108a4565b6109d3846108b6565b810160208510156109e2578190505b6109f66109ee856108b6565b830182610996565b50505b505050565b5f82821c905092915050565b5f610a195f19846008026109fe565b1980831691505092915050565b5f610a318383610a0a565b9150826002028217905092915050565b610a4a8261083d565b67ffffffffffffffff811115610a6357610a626105cb565b5b610a6d8254610874565b610a788282856109b8565b5f60209050601f831160018114610aa9575f8415610a97578287015190505b610aa18582610a26565b865550610b08565b601f198416610ab7866108a4565b5f5b82811015610ade57848901518255600182019150602085019450602081019050610ab9565b86831015610afb5784890151610af7601f891682610a0a565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610b9257808604811115610b6e57610b6d610b10565b5b6001851615610b7d5780820291505b8081029050610b8b85610b3d565b9450610b52565b94509492505050565b5f82610baa5760019050610c65565b81610bb7575f9050610c65565b8160018114610bcd5760028114610bd757610c06565b6001915050610c65565b60ff841115610be957610be8610b10565b5b8360020a915084821115610c0057610bff610b10565b5b50610c65565b5060208310610133831016604e8410600b8410161715610c3b5782820a905083811115610c3657610c35610b10565b5b610c65565b610c488484846001610b49565b92509050818404811115610c5f57610c5e610b10565b5b81810290505b9392505050565b5f60ff82169050919050565b5f610c82826106ef565b9150610c8d83610c6c565b9250610cba7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610b9b565b905092915050565b5f610ccc826106ef565b9150610cd7836106ef565b9250828202610ce5816106ef565b91508282048414831517610cfc57610cfb610b10565b5b5092915050565b5f60208284031215610d1857610d176105ab565b5b5f610d2584828501610768565b91505092915050565b610d3781610741565b82525050565b5f604082019050610d505f830185610d2e565b610d5d6020830184610d2e565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610da8601f83610d64565b9150610db382610d74565b602082019050919050565b5f6020820190508181035f830152610dd581610d9c565b9050919050565b5f610de6826106ef565b9150610df1836106ef565b9250828201905080821115610e0957610e08610b10565b5b92915050565b610e18816106ef565b82525050565b5f602082019050610e315f830184610e0f565b92915050565b61288880610e445f395ff3fe608060405234801561000f575f80fd5b5060043610610171575f3560e01c806339509351116100dc5780639cf3ea9b11610095578063c08ed94a1161006f578063c08ed94a1461045b578063d547741f14610479578063dd62ed3e14610495578063e68ec43d146104c557610171565b80639cf3ea9b146103f1578063a457c2d7146103fb578063a9059cbb1461042b57610171565b806339509351146102f757806347a83e651461032757806370a0823114610343578063752c29e11461037357806391d14854146103a357806395d89b41146103d357610171565b806323b872dd1161012e57806323b872dd14610223578063248a9ca3146102535780632a0acc6a146102835780632f2ff15d146102a1578063313ce567146102bd57806336568abe146102db57610171565b806306fdde0314610175578063095ea7b3146101935780630d468e65146101c35780630edcd3d4146101df57806311c9d23a146101fb57806318160ddd14610205575b5f80fd5b61017d6104f5565b60405161018a9190611d5e565b60405180910390f35b6101ad60048036038101906101a89190611e0f565b610585565b6040516101ba9190611e67565b60405180910390f35b6101dd60048036038101906101d89190611e80565b6105a2565b005b6101f960048036038101906101f49190611e80565b61060f565b005b61020361067b565b005b61020d6106ab565b60405161021a9190611eba565b60405180910390f35b61023d60048036038101906102389190611ed3565b6106b4565b60405161024a9190611e67565b60405180910390f35b61026d60048036038101906102689190611f56565b6107a6565b60405161027a9190611f90565b60405180910390f35b61028b6107c3565b6040516102989190611f90565b60405180910390f35b6102bb60048036038101906102b69190611fa9565b6107c9565b005b6102c56107ec565b6040516102d29190612002565b60405180910390f35b6102f560048036038101906102f09190611fa9565b6107f4565b005b610311600480360381019061030c9190611e0f565b610877565b60405161031e9190611e67565b60405180910390f35b610341600480360381019061033c9190611e0f565b61091e565b005b61035d60048036038101906103589190611e80565b61098c565b60405161036a9190611eba565b60405180910390f35b61038d60048036038101906103889190611e80565b6109d1565b60405161039a9190611eba565b60405180910390f35b6103bd60048036038101906103b89190611fa9565b610a17565b6040516103ca9190611e67565b60405180910390f35b6103db610a7b565b6040516103e89190611d5e565b60405180910390f35b6103f9610b0b565b005b61041560048036038101906104109190611e0f565b610b3c565b6040516104229190611e67565b60405180910390f35b61044560048036038101906104409190611e0f565b610c22565b6040516104529190611e67565b60405180910390f35b610463610c3f565b6040516104709190611f90565b60405180910390f35b610493600480360381019061048e9190611fa9565b610c63565b005b6104af60048036038101906104aa919061201b565b610c86565b6040516104bc9190611eba565b60405180910390f35b6104df60048036038101906104da9190611e80565b610d08565b6040516104ec9190611eba565b60405180910390f35b60606003805461050490612086565b80601f016020809104026020016040519081016040528092919081815260200182805461053090612086565b801561057b5780601f106105525761010080835404028352916020019161057b565b820191905f5260205f20905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b5f610598610591610d4e565b8484610d55565b6001905092915050565b5f801b6105b6816105b1610d4e565b610f18565b600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b6106238161061e610d4e565b610f18565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b61068f8161068a610d4e565b610f18565b5f600a5f6101000a81548160ff02191690831515021790555050565b5f600254905090565b5f6106c0848484610fb4565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610707610d4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d90612126565b60405180910390fd5b61079a85610792610d4e565b858403610d55565b60019150509392505050565b5f60055f8381526020019081526020015f20600101549050919050565b5f801b81565b5f801b6107dd816107d8610d4e565b610f18565b6107e78383611297565b505050565b5f6012905090565b6107fc610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610869576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610860906121b4565b60405180910390fd5b61087382826113dc565b5050565b5f610914610883610d4e565b848460015f610890610d4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461090f91906121ff565b610d55565b6001905092915050565b5f801b6109328161092d610d4e565b610f18565b670de0b6b3a7640000826109469190612232565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060048054610a8a90612086565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab690612086565b8015610b015780601f10610ad857610100808354040283529160200191610b01565b820191905f5260205f20905b815481529060010190602001808311610ae457829003601f168201915b5050505050905090565b5f801b610b1f81610b1a610d4e565b610f18565b6001600a5f6101000a81548160ff02191690831515021790555050565b5f8060015f610b49610d4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa906122e3565b60405180910390fd5b610c17610c0e610d4e565b85858403610d55565b600191505092915050565b5f610c35610c2e610d4e565b8484610fb4565b6001905092915050565b7f545241444500000000000000000000000000000000000000000000000000000081565b5f801b610c7781610c72610d4e565b610f18565b610c8183836113dc565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba90612371565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e28906123ff565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f0b9190611eba565b60405180910390a3505050565b610f228282610a17565b610fb057610f478173ffffffffffffffffffffffffffffffffffffffff166014611522565b610f54835f1c6020611522565b604051602001610f659291906124eb565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa79190611d5e565b60405180910390fd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101990612594565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790612594565b60405180910390fd5b5f811161109b575f80fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590612622565b60405180910390fd5b61114a7f5452414445000000000000000000000000000000000000000000000000000000858585611757565b61115d8282611cc490919063ffffffff16565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111ec825f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cd990919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112899190611eba565b60405180910390a350505050565b7f54524144450000000000000000000000000000000000000000000000000000008203611301575f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61130b8282610a17565b6113d857600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061137d610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b7f5452414445000000000000000000000000000000000000000000000000000000820361144757600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6114518282610a17565b1561151e575f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506114c3610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60605f60028360026115349190612232565b61153e91906121ff565b67ffffffffffffffff81111561155757611556612640565b5b6040519080825280601f01601f1916602001820160405280156115895781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f815181106115c0576115bf61266d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106116235761162261266d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60018460026116619190612232565b61166b91906121ff565b90505b600181111561170a577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106116ad576116ac61266d565b5b1a60f81b8282815181106116c4576116c361266d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c9450806117039061269a565b905061166e565b505f841461174d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117449061270b565b60405180910390fd5b8091505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611842575f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20540361183d57600160085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061183c8483611297565b5b611cbe565b600160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541480156118bb57505f15156118b77f545241444500000000000000000000000000000000000000000000000000000085610a17565b1515145b156119e0578060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015801561190c57505f81115b156119a0578060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461195a9190612729565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119db565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d2906127cc565b60405180910390fd5b611cbd565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cbc57600a5f9054906101000a900460ff1615611ada576001151560095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150315611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad0906127cc565b60405180910390fd5b5b611b047f545241444500000000000000000000000000000000000000000000000000000084610a17565b8015611b4c57505f60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054145b611cbb57600a5f9054906101000a900460ff1615611b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b96906127cc565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410158015611beb57505f81115b15611c7f578060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c399190612729565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cba565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb190612834565b60405180910390fd5b5b5b5b5b50505050565b5f8183611cd19190612729565b905092915050565b5f8183611ce691906121ff565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d3082611cee565b611d3a8185611cf8565b9350611d4a818560208601611d08565b611d5381611d16565b840191505092915050565b5f6020820190508181035f830152611d768184611d26565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dab82611d82565b9050919050565b611dbb81611da1565b8114611dc5575f80fd5b50565b5f81359050611dd681611db2565b92915050565b5f819050919050565b611dee81611ddc565b8114611df8575f80fd5b50565b5f81359050611e0981611de5565b92915050565b5f8060408385031215611e2557611e24611d7e565b5b5f611e3285828601611dc8565b9250506020611e4385828601611dfb565b9150509250929050565b5f8115159050919050565b611e6181611e4d565b82525050565b5f602082019050611e7a5f830184611e58565b92915050565b5f60208284031215611e9557611e94611d7e565b5b5f611ea284828501611dc8565b91505092915050565b611eb481611ddc565b82525050565b5f602082019050611ecd5f830184611eab565b92915050565b5f805f60608486031215611eea57611ee9611d7e565b5b5f611ef786828701611dc8565b9350506020611f0886828701611dc8565b9250506040611f1986828701611dfb565b9150509250925092565b5f819050919050565b611f3581611f23565b8114611f3f575f80fd5b50565b5f81359050611f5081611f2c565b92915050565b5f60208284031215611f6b57611f6a611d7e565b5b5f611f7884828501611f42565b91505092915050565b611f8a81611f23565b82525050565b5f602082019050611fa35f830184611f81565b92915050565b5f8060408385031215611fbf57611fbe611d7e565b5b5f611fcc85828601611f42565b9250506020611fdd85828601611dc8565b9150509250929050565b5f60ff82169050919050565b611ffc81611fe7565b82525050565b5f6020820190506120155f830184611ff3565b92915050565b5f806040838503121561203157612030611d7e565b5b5f61203e85828601611dc8565b925050602061204f85828601611dc8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061209d57607f821691505b6020821081036120b0576120af612059565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612110602883611cf8565b915061211b826120b6565b604082019050919050565b5f6020820190508181035f83015261213d81612104565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f61219e602f83611cf8565b91506121a982612144565b604082019050919050565b5f6020820190508181035f8301526121cb81612192565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61220982611ddc565b915061221483611ddc565b925082820190508082111561222c5761222b6121d2565b5b92915050565b5f61223c82611ddc565b915061224783611ddc565b925082820261225581611ddc565b9150828204841483151761226c5761226b6121d2565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6122cd602583611cf8565b91506122d882612273565b604082019050919050565b5f6020820190508181035f8301526122fa816122c1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61235b602483611cf8565b915061236682612301565b604082019050919050565b5f6020820190508181035f8301526123888161234f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6123e9602283611cf8565b91506123f48261238f565b604082019050919050565b5f6020820190508181035f830152612416816123dd565b9050919050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f61245b60178361241d565b915061246682612427565b601782019050919050565b5f61247b82611cee565b612485818561241d565b9350612495818560208601611d08565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f6124d560118361241d565b91506124e0826124a1565b601182019050919050565b5f6124f58261244f565b91506125018285612471565b915061250c826124c9565b91506125188284612471565b91508190509392505050565b7f45524332303a7472616e736665722066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61257e602483611cf8565b915061258982612524565b604082019050919050565b5f6020820190508181035f8301526125ab81612572565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61260c602683611cf8565b9150612617826125b2565b604082019050919050565b5f6020820190508181035f83015261263981612600565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6126a482611ddc565b91505f82036126b6576126b56121d2565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f6126f5602083611cf8565b9150612700826126c1565b602082019050919050565b5f6020820190508181035f830152612722816126e9565b9050919050565b5f61273382611ddc565b915061273e83611ddc565b9250828203905081811115612756576127556121d2565b5b92915050565b7f5472616e73616374696f6e2061626e6f726d616c2c20706c65617365207472795f8201527f20616761696e0000000000000000000000000000000000000000000000000000602082015250565b5f6127b6602683611cf8565b91506127c18261275c565b604082019050919050565b5f6020820190508181035f8301526127e3816127aa565b9050919050565b7f4163636f756e74206973206d697373696e6720726f6c650000000000000000005f82015250565b5f61281e601783611cf8565b9150612829826127ea565b602082019050919050565b5f6020820190508181035f83015261284b81612812565b905091905056fea2646970667358221220254b557ca8afc6f40b6e8cc7996de73ccd7f67335926a38b5e7a2a292d7b235064736f6c6343000819003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000397f10882e20905327681f50cbe7045d8102901e0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000045a616d610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045a616d6100000000000000000000000000000000000000000000000000000000