[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "TaxChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "TaxDestinationChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "TaxOff", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "TaxOn", "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": "ALWAYS_TAXED_FROM", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ALWAYS_TAXED_TO", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NOT_TAXED_FROM", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NOT_TAXED_TO", "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": "value", "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": "capsherCEX", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "caspherLiquidity", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "caspherMarketing", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "caspherPartnerships", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "caspherPrizeLines", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "caspherPrizeVault", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "devWalletA", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "devWalletB", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "devWalletC", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "devWalletD", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "disableTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableTax", "outputs": [], "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": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "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": "taxdestinationA", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxdestinationB", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "thetax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "value", "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": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newtax", "type": "uint256" } ], "name": "updateTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newdestination", "type": "address" } ], "name": "updateTaxDestinationA", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newdestination", "type": "address" } ], "name": "updateTaxDestinationB", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052610258600d556064600e55737d7ccc7ae1ebefcd3d5fdd3dbba87867dfd68771600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073876b21cd26f385a3d538a8802b9de6ae53c7f1d9601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b1cf8664a9dd899a192d0e99cafca5e1d086ff5b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738fff6b0afb4e9a995ca47f4e5c15e3ff4c910914601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738782ddd82cafd7477f40b10d341562cce43bc1e4601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507383a81488ad4a827bae16a82e24f2dd77377390f2601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507385e6cc88f3055b589eb1d4030863be2cfcc0763e601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b775078a5a283758ffaafe55b0bcc5111415a3f1601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734386b6840df77f192e8cf4f91c1b7d1ba24d8453601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073456384472cc2b3791052561ab434c449404cab30601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200036e57600080fd5b506001600d54600d54600e54601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280600781526020017f43617368706572000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f2443415348000000000000000000000000000000000000000000000000000000815250600160008190555081600490816200044591906200139c565b5080600590816200045791906200139c565b50505085600760006101000a81548160ff021916908315150217905550846008819055508360098190555082600a8190555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050620005266000801b336200093b60201b60201c565b50620005597f5a8e93afc88a8f41c32a59ead48949c995bbbd1ca15b8a3f9b53ed2443461237306200093b60201b60201c565b506200058c7f651dbafbf0066bfdd2c717cccc977cff67bf8877ed830ce641731c2e8837c0ff306200093b60201b60201c565b50620005e17f5a8e93afc88a8f41c32a59ead48949c995bbbd1ca15b8a3f9b53ed2443461237600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200093b60201b60201c565b50620006287f651dbafbf0066bfdd2c717cccc977cff67bf8877ed830ce641731c2e8837c0ff7360ae616a2155ee3d9a68541ba4544862310933d46200093b60201b60201c565b506200066f7f5a8e93afc88a8f41c32a59ead48949c995bbbd1ca15b8a3f9b53ed24434612377360ae616a2155ee3d9a68541ba4544862310933d46200093b60201b60201c565b50620006b67f651dbafbf0066bfdd2c717cccc977cff67bf8877ed830ce641731c2e8837c0ff73e54ca86531e17ef3616d22ca28b0d458b6c891066200093b60201b60201c565b50620006fd7f5a8e93afc88a8f41c32a59ead48949c995bbbd1ca15b8a3f9b53ed244346123773e54ca86531e17ef3616d22ca28b0d458b6c891066200093b60201b60201c565b506200073d600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a52b7d2dcc80cd2e400000062000a3f60201b60201c565b6200077c601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166aa56fa5b99019a5c800000062000a3f60201b60201c565b620007bb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a52b7d2dcc80cd2e400000062000a3f60201b60201c565b620007fa601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166af8277896582678ac00000062000a3f60201b60201c565b62000839601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166aa56fa5b99019a5c800000062000a3f60201b60201c565b62000878601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a1c1fc7b177378f6200000062000a3f60201b60201c565b620008b7601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a1232ae63c59c6bd600000062000a3f60201b60201c565b620008f6601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a1232ae63c59c6bd600000062000a3f60201b60201c565b62000935601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a1232ae63c59c6bd600000062000a3f60201b60201c565b62001750565b60006200094f838362000acc60201b60201c565b62000a345760016006600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620009d062000b3760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905062000a39565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000ab45760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000aab9190620014c8565b60405180910390fd5b62000ac86000838362000b3f60201b60201c565b5050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b62000b4f62000de060201b60201c565b62000b646000801b3362000acc60201b60201c565b1562000b835762000b7d83838362000e2760201b60201c565b62000dcb565b62000bb57f5a8e93afc88a8f41c32a59ead48949c995bbbd1ca15b8a3f9b53ed24434612378462000acc60201b60201c565b8062000bef575062000bee7f651dbafbf0066bfdd2c717cccc977cff67bf8877ed830ce641731c2e8837c0ff8362000acc60201b60201c565b5b8062000c08575062000c066200105a60201b60201c565b155b801562000c44575062000c427f3c9053d8d897bea84f1a2e8814845cc40f47b0a508dc93e56bc37c81c21a3b788462000acc60201b60201c565b155b801562000c80575062000c7e7fdb1f6cc858f64c436f0ba814bf59b72262e27f9b82ae65442c00c7cfad070f358362000acc60201b60201c565b155b1562000c9f5762000c9983838362000e2760201b60201c565b62000dca565b8062000cb1846200107160201b60201c565b101562000cf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cec906200156c565b60405180910390fd5b600062000d07620010ba60201b60201c565b6127108362000d179190620015ec565b62000d23919062001624565b90506000600262000d39620010ba60201b60201c565b62000d459190620015ec565b6127108462000d559190620015ec565b62000d61919062001624565b905062000d858562000d78620010c460201b60201c565b8362000e2760201b60201c565b62000da78562000d9a620010ee60201b60201c565b8362000e2760201b60201c565b62000dc78585848662000dbb91906200166f565b62000e2760201b60201c565b50505b5b62000ddb6200111860201b60201c565b505050565b60026000540362000e1d576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000e7d57806003600082825462000e709190620016aa565b9250508190555062000f55565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000f0d578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040162000f0493929190620016f6565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000fa0578060036000828254039250508190555062000fee565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200104d919062001733565b60405180910390a3505050565b6000600760009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600854905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6001600081905550565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620011a457607f821691505b602082108103620011ba57620011b96200115c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620012247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620011e5565b620012308683620011e5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200127d62001277620012718462001248565b62001252565b62001248565b9050919050565b6000819050919050565b62001299836200125c565b620012b1620012a88262001284565b848454620011f2565b825550505050565b600090565b620012c8620012b9565b620012d58184846200128e565b505050565b5b81811015620012fd57620012f1600082620012be565b600181019050620012db565b5050565b601f8211156200134c576200131681620011c0565b6200132184620011d5565b8101602085101562001331578190505b620013496200134085620011d5565b830182620012da565b50505b505050565b600082821c905092915050565b6000620013716000198460080262001351565b1980831691505092915050565b60006200138c83836200135e565b9150826002028217905092915050565b620013a78262001122565b67ffffffffffffffff811115620013c357620013c26200112d565b5b620013cf82546200118b565b620013dc82828562001301565b600060209050601f831160018114620014145760008415620013ff578287015190505b6200140b85826200137e565b8655506200147b565b601f1984166200142486620011c0565b60005b828110156200144e5784890151825560018201915060208501945060208101905062001427565b868310156200146e57848901516200146a601f8916826200135e565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620014b08262001483565b9050919050565b620014c281620014a3565b82525050565b6000602082019050620014df6000830184620014b7565b92915050565b600082825260208201905092915050565b7f4572726f723a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600062001554602683620014e5565b91506200156182620014f6565b604082019050919050565b60006020820190508181036000830152620015878162001545565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620015f98262001248565b9150620016068362001248565b9250826200161957620016186200158e565b5b828204905092915050565b6000620016318262001248565b91506200163e8362001248565b92508282026200164e8162001248565b91508282048414831517620016685762001667620015bd565b5b5092915050565b60006200167c8262001248565b9150620016898362001248565b9250828203905081811115620016a457620016a3620015bd565b5b92915050565b6000620016b78262001248565b9150620016c48362001248565b9250828201905080821115620016df57620016de620015bd565b5b92915050565b620016f08162001248565b82525050565b60006060820190506200170d6000830186620014b7565b6200171c6020830185620016e5565b6200172b6040830184620016e5565b949350505050565b60006020820190506200174a6000830184620016e5565b92915050565b61254080620017606000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c806353eb3bcf1161013b578063b3e6926f116100b8578063d547741f1161007c578063d547741f1461068c578063dd62ed3e146106a8578063e12b4964146106d8578063e6a37c6c146106f6578063ff0c967c146107125761023d565b8063b3e6926f1461060c578063bf9e7b211461062a578063c498f37614610648578063cca0feb614610666578063ced695a4146106825761023d565b806395d89b41116100ff57806395d89b41146105645780639e01392f14610582578063a217fddf146105a0578063a22478a9146105be578063a9059cbb146105dc5761023d565b806353eb3bcf146104c05780635ed6740d146104ca5780635f64d730146104e657806370a082311461050457806391d14854146105345761023d565b8063249d849e116101c95780633a58bff01161018d5780633a58bff01461042a5780633a5aba56146104485780633b9b03141461046657806346a85aa41461048457806350bdb439146104a25761023d565b8063249d849e146103985780632713c21e146103b65780632f2ff15d146103d4578063313ce567146103f057806336568abe1461040e5761023d565b8063095ea7b311610210578063095ea7b3146102cc57806318160ddd146102fc5780631b3599531461031a57806323b872dd14610338578063248a9ca3146103685761023d565b806301ffc9a7146102425780630559c14b1461027257806305b2ee321461029057806306fdde03146102ae575b600080fd5b61025c60048036038101906102579190611ca1565b610730565b6040516102699190611ce9565b60405180910390f35b61027a6107aa565b6040516102879190611d45565b60405180910390f35b6102986107d0565b6040516102a59190611d45565b60405180910390f35b6102b66107f6565b6040516102c39190611df0565b60405180910390f35b6102e660048036038101906102e19190611e74565b610888565b6040516102f39190611ce9565b60405180910390f35b6103046108ab565b6040516103119190611ec3565b60405180910390f35b6103226108b5565b60405161032f9190611d45565b60405180910390f35b610352600480360381019061034d9190611ede565b6108db565b60405161035f9190611ce9565b60405180910390f35b610382600480360381019061037d9190611f67565b61090a565b60405161038f9190611fa3565b60405180910390f35b6103a061092a565b6040516103ad9190611d45565b60405180910390f35b6103be610954565b6040516103cb9190611fa3565b60405180910390f35b6103ee60048036038101906103e99190611fbe565b610978565b005b6103f861099a565b604051610405919061201a565b60405180910390f35b61042860048036038101906104239190611fbe565b6109a3565b005b610432610a1e565b60405161043f9190611d45565b60405180910390f35b610450610a44565b60405161045d9190611d45565b60405180910390f35b61046e610a6e565b60405161047b9190611ec3565b60405180910390f35b61048c610a78565b6040516104999190611fa3565b60405180910390f35b6104aa610a9c565b6040516104b79190611d45565b60405180910390f35b6104c8610ac2565b005b6104e460048036038101906104df9190612035565b610ada565b005b6104ee610af4565b6040516104fb9190611fa3565b60405180910390f35b61051e60048036038101906105199190612035565b610b18565b60405161052b9190611ec3565b60405180910390f35b61054e60048036038101906105499190611fbe565b610b61565b60405161055b9190611ce9565b60405180910390f35b61056c610bcc565b6040516105799190611df0565b60405180910390f35b61058a610c5e565b6040516105979190611ce9565b60405180910390f35b6105a8610c75565b6040516105b59190611fa3565b60405180910390f35b6105c6610c7c565b6040516105d39190611d45565b60405180910390f35b6105f660048036038101906105f19190611e74565b610ca2565b6040516106039190611ce9565b60405180910390f35b610614610cc5565b6040516106219190611d45565b60405180910390f35b610632610ceb565b60405161063f9190611d45565b60405180910390f35b610650610d11565b60405161065d9190611fa3565b60405180910390f35b610680600480360381019061067b9190612062565b610d35565b005b61068a610d4f565b005b6106a660048036038101906106a19190611fbe565b610d67565b005b6106c260048036038101906106bd919061208f565b610d89565b6040516106cf9190611ec3565b60405180910390f35b6106e0610e10565b6040516106ed9190611d45565b60405180910390f35b610710600480360381019061070b9190612035565b610e36565b005b61071a610e50565b6040516107279190611d45565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107a357506107a282610e76565b5b9050919050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610805906120fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610831906120fe565b801561087e5780601f106108535761010080835404028352916020019161087e565b820191906000526020600020905b81548152906001019060200180831161086157829003601f168201915b5050505050905090565b600080610893610ee0565b90506108a0818585610ee8565b600191505092915050565b6000600354905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806108e6610ee0565b90506108f3858285610efa565b6108fe858585610f8e565b60019150509392505050565b600060066000838152602001908152602001600020600101549050919050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f5a8e93afc88a8f41c32a59ead48949c995bbbd1ca15b8a3f9b53ed244346123781565b6109818261090a565b61098a81611082565b6109948383611096565b50505050565b60006012905090565b6109ab610ee0565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a0f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a198282611188565b505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600854905090565b7fdb1f6cc858f64c436f0ba814bf59b72262e27f9b82ae65442c00c7cfad070f3581565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000801b610acf81611082565b610ad761127b565b50565b6000801b610ae781611082565b610af0826112de565b5050565b7f651dbafbf0066bfdd2c717cccc977cff67bf8877ed830ce641731c2e8837c0ff81565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060058054610bdb906120fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610c07906120fe565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b5050505050905090565b6000600760009054906101000a900460ff16905090565b6000801b81565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610cad610ee0565b9050610cba818585610f8e565b600191505092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f3c9053d8d897bea84f1a2e8814845cc40f47b0a508dc93e56bc37c81c21a3b7881565b6000801b610d4281611082565b610d4b82611360565b5050565b6000801b610d5c81611082565b610d64611432565b50565b610d708261090a565b610d7981611082565b610d838383611188565b50505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000801b610e4381611082565b610e4c82611495565b5050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b610ef58383836001611517565b505050565b6000610f068484610d89565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f885781811015610f78578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610f6f9392919061212f565b60405180910390fd5b610f8784848484036000611517565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110005760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610ff79190611d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110725760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016110699190611d45565b60405180910390fd5b61107d8383836116ee565b505050565b6110938161108e610ee0565b6118e8565b50565b60006110a28383610b61565b61117d5760016006600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061111a610ee0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611182565b600090505b92915050565b60006111948383610b61565b156112705760006006600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061120d610ee0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611275565b600090505b92915050565b611283611939565b6001600760006101000a81548160ff0219169083151502179055507fcca130fdd52ce6e5eedb160c5f635a53883abcfe2b46453038a1516d7d5380b96112c7610ee0565b6040516112d49190611d45565b60405180910390a1565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f09eee28d8d70bfad809ce8acadd46ce657b1fa64646b1e4b414e6bbb2eb2c8fa611348610ee0565b6040516113559190611d45565b60405180910390a150565b6009548111156113a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139c906121b2565b60405180910390fd5b600a548110156113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e19061221e565b60405180910390fd5b806008819055507fc8eab30ec12770242ba7c205b239d632db8d3f54b3392aa8692893c8fd07abc361141a610ee0565b6040516114279190611d45565b60405180910390a150565b61143a611983565b6000600760006101000a81548160ff0219169083151502179055507f8b99205429b09a5a41d0d69839e5129b5f813b29a8e9924b45131170948d88a861147e610ee0565b60405161148b9190611d45565b60405180910390a1565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f09eee28d8d70bfad809ce8acadd46ce657b1fa64646b1e4b414e6bbb2eb2c8fa6114ff610ee0565b60405161150c9190611d45565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115895760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115809190611d45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115fb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115f29190611d45565b60405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116e8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516116df9190611ec3565b60405180910390a35b50505050565b6116f66119cc565b6117036000801b33610b61565b1561171857611713838383611a12565b6118db565b6117427f5a8e93afc88a8f41c32a59ead48949c995bbbd1ca15b8a3f9b53ed244346123784610b61565b8061177357506117727f651dbafbf0066bfdd2c717cccc977cff67bf8877ed830ce641731c2e8837c0ff83610b61565b5b806117835750611781610c5e565b155b80156117b657506117b47f3c9053d8d897bea84f1a2e8814845cc40f47b0a508dc93e56bc37c81c21a3b7884610b61565b155b80156117e957506117e77fdb1f6cc858f64c436f0ba814bf59b72262e27f9b82ae65442c00c7cfad070f3583610b61565b155b156117fe576117f9838383611a12565b6118da565b8061180884610b18565b1015611849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611840906122b0565b60405180910390fd5b6000611853610a6e565b61271083611861919061232e565b61186b919061235f565b905060006002611879610a6e565b611883919061232e565b61271084611891919061232e565b61189b919061235f565b90506118af856118a9610a44565b83611a12565b6118c1856118bb61092a565b83611a12565b6118d7858584866118d291906123a1565b611a12565b50505b5b6118e3611c3a565b505050565b6118f28282610b61565b6119355780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161192c9291906123d5565b60405180910390fd5b5050565b611941610c5e565b15611981576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119789061244a565b60405180910390fd5b565b61198b610c5e565b6119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c1906124b6565b60405180910390fd5b565b600260005403611a08576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a64578060036000828254611a5891906124d6565b92505081905550611b39565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611af1578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611ae89392919061212f565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b825780600360008282540392505081905550611bd0565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c2d9190611ec3565b60405180910390a3505050565b6001600081905550565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c7e81611c49565b8114611c8957600080fd5b50565b600081359050611c9b81611c75565b92915050565b600060208284031215611cb757611cb6611c44565b5b6000611cc584828501611c8c565b91505092915050565b60008115159050919050565b611ce381611cce565b82525050565b6000602082019050611cfe6000830184611cda565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d2f82611d04565b9050919050565b611d3f81611d24565b82525050565b6000602082019050611d5a6000830184611d36565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d9a578082015181840152602081019050611d7f565b60008484015250505050565b6000601f19601f8301169050919050565b6000611dc282611d60565b611dcc8185611d6b565b9350611ddc818560208601611d7c565b611de581611da6565b840191505092915050565b60006020820190508181036000830152611e0a8184611db7565b905092915050565b611e1b81611d24565b8114611e2657600080fd5b50565b600081359050611e3881611e12565b92915050565b6000819050919050565b611e5181611e3e565b8114611e5c57600080fd5b50565b600081359050611e6e81611e48565b92915050565b60008060408385031215611e8b57611e8a611c44565b5b6000611e9985828601611e29565b9250506020611eaa85828601611e5f565b9150509250929050565b611ebd81611e3e565b82525050565b6000602082019050611ed86000830184611eb4565b92915050565b600080600060608486031215611ef757611ef6611c44565b5b6000611f0586828701611e29565b9350506020611f1686828701611e29565b9250506040611f2786828701611e5f565b9150509250925092565b6000819050919050565b611f4481611f31565b8114611f4f57600080fd5b50565b600081359050611f6181611f3b565b92915050565b600060208284031215611f7d57611f7c611c44565b5b6000611f8b84828501611f52565b91505092915050565b611f9d81611f31565b82525050565b6000602082019050611fb86000830184611f94565b92915050565b60008060408385031215611fd557611fd4611c44565b5b6000611fe385828601611f52565b9250506020611ff485828601611e29565b9150509250929050565b600060ff82169050919050565b61201481611ffe565b82525050565b600060208201905061202f600083018461200b565b92915050565b60006020828403121561204b5761204a611c44565b5b600061205984828501611e29565b91505092915050565b60006020828403121561207857612077611c44565b5b600061208684828501611e5f565b91505092915050565b600080604083850312156120a6576120a5611c44565b5b60006120b485828601611e29565b92505060206120c585828601611e29565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061211657607f821691505b602082108103612129576121286120cf565b5b50919050565b60006060820190506121446000830186611d36565b6121516020830185611eb4565b61215e6040830184611eb4565b949350505050565b7f54617861626c653a2074617820697320746f6f20686967680000000000000000600082015250565b600061219c601883611d6b565b91506121a782612166565b602082019050919050565b600060208201905081810360008301526121cb8161218f565b9050919050565b7f54617861626c653a2074617820697320746f6f206c6f77000000000000000000600082015250565b6000612208601783611d6b565b9150612213826121d2565b602082019050919050565b60006020820190508181036000830152612237816121fb565b9050919050565b7f4572726f723a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061229a602683611d6b565b91506122a58261223e565b604082019050919050565b600060208201905081810360008301526122c98161228d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061233982611e3e565b915061234483611e3e565b925082612354576123536122d0565b5b828204905092915050565b600061236a82611e3e565b915061237583611e3e565b925082820261238381611e3e565b9150828204841483151761239a576123996122ff565b5b5092915050565b60006123ac82611e3e565b91506123b783611e3e565b92508282039050818111156123cf576123ce6122ff565b5b92915050565b60006040820190506123ea6000830185611d36565b6123f76020830184611f94565b9392505050565b7f54617861626c653a207461786564000000000000000000000000000000000000600082015250565b6000612434600e83611d6b565b915061243f826123fe565b602082019050919050565b6000602082019050818103600083015261246381612427565b9050919050565b7f54617861626c653a206e6f742074617865640000000000000000000000000000600082015250565b60006124a0601283611d6b565b91506124ab8261246a565b602082019050919050565b600060208201905081810360008301526124cf81612493565b9050919050565b60006124e182611e3e565b91506124ec83611e3e565b9250828201905080821115612504576125036122ff565b5b9291505056fea2646970667358221220474d69867eb60f1fcc90e2422fd37e6d52de702a790005ae0c18702d9c93122064736f6c63430008170033