[ { "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": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "burned", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "target", "type": "address" } ], "name": "Freeze", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "due", "type": "uint256" } ], "name": "Lock", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [], "name": "MintFinished", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "currentOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Paused", "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": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "target", "type": "address" } ], "name": "Unfreeze", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Unlock", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Unpaused", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "remaining", "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": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "burned", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "tokenDecimals", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "finishMint", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "freeze", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isFinished", "outputs": [ { "internalType": "bool", "name": "finished", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "isFrozen", "outputs": [ { "internalType": "bool", "name": "frozen", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "locked", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "lockInfo", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "due", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "tokenName", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "ownerAddress", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "releaseLock", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "tokenSymbol", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "locked", "type": "address" } ], "name": "totalLocked", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "total", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "due", "type": "uint256" } ], "name": "transferWithLockUp", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "unFreeze", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unPause", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "idx", "type": "uint256" } ], "name": "unlock", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "unlockAll", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3601260ff16600a620000c1919062000314565b63b2d05e00620000d2919062000451565b6007819055506200010d33601260ff16600a620000f0919062000314565b637735940062000101919062000451565b6200011460201b60201c565b50620004f8565b6000816000546200012691906200025c565b60008190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200017991906200025c565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200021c91906200023f565b60405180910390a36001905092915050565b6200023981620004b2565b82525050565b60006020820190506200025660008301846200022e565b92915050565b60006200026982620004b2565b91506200027683620004b2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620002ae57620002ad620004bc565b5b828201905092915050565b6000808291508390505b60018511156200030b57808604811115620002e357620002e2620004bc565b5b6001851615620002f35780820291505b80810290506200030385620004eb565b9450620002c3565b94509492505050565b60006200032182620004b2565b91506200032e83620004b2565b92506200035d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000365565b905092915050565b6000826200037757600190506200044a565b816200038757600090506200044a565b8160018114620003a05760028114620003ab57620003e1565b60019150506200044a565b60ff841115620003c057620003bf620004bc565b5b8360020a915084821115620003da57620003d9620004bc565b5b506200044a565b5060208310610133831016604e8410600b84101617156200041b5782820a905083811115620004155762000414620004bc565b5b6200044a565b6200042a8484846001620002b9565b92509050818404811115620004445762000443620004bc565b5b81810290505b9392505050565b60006200045e82620004b2565b91506200046b83620004b2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620004a757620004a6620004bc565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b61395f80620005086000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806383cfab4211610104578063c4f3a853116100a2578063e4cc18be11610071578063e4cc18be1461060d578063e58398361461062b578063f2fde38b1461065b578063f7b188a51461068b576101da565b8063c4f3a8531461054c578063d1c469161461057c578063d8fb9337146105ac578063dd62ed3e146105dd576101da565b80638da5cb5b116100de5780638da5cb5b146104af57806395d89b41146104cd578063a9059cbb146104eb578063b2520a7c1461051b576101da565b806383cfab42146104315780638456cb59146104615780638d1fdf2f1461047f576101da565b806340c10f191161017c578063715018a61161014b578063715018a61461039557806379cc6790146103b35780637b352962146103e35780637eee288d14610401576101da565b806340c10f19146102e757806342966c68146103175780635c975abb1461034757806370a0823114610365576101da565b806323b872dd116101b857806323b872dd1461024b578063313ce5671461027b578063355274ea1461029957806338b82092146102b7576101da565b806306fdde03146101df578063095ea7b3146101fd57806318160ddd1461022d575b600080fd5b6101e76106a9565b6040516101f49190613479565b60405180910390f35b61021760048036038101906102129190612c54565b6106e6565b604051610224919061345e565b60405180910390f35b61023561076d565b60405161024291906136bb565b60405180910390f35b61026560048036038101906102609190612c05565b610776565b604051610272919061345e565b60405180910390f35b610283610a41565b60405161029091906136ff565b60405180910390f35b6102a1610a4a565b6040516102ae91906136bb565b60405180910390f35b6102d160048036038101906102cc9190612c90565b610a54565b6040516102de919061345e565b60405180910390f35b61030160048036038101906102fc9190612c54565b610b79565b60405161030e919061345e565b60405180910390f35b610331600480360381019061032c9190612cdf565b610dd0565b60405161033e919061345e565b60405180910390f35b61034f610e85565b60405161035c919061345e565b60405180910390f35b61037f600480360381019061037a9190612ba0565b610e9c565b60405161038c91906136bb565b60405180910390f35b61039d610ee5565b6040516103aa919061345e565b60405180910390f35b6103cd60048036038101906103c89190612c54565b610f86565b6040516103da919061345e565b60405180910390f35b6103eb6110cb565b6040516103f8919061345e565b60405180910390f35b61041b60048036038101906104169190612c54565b6110e2565b604051610428919061345e565b60405180910390f35b61044b60048036038101906104469190612ba0565b6111bf565b604051610458919061345e565b60405180910390f35b6104696112f5565b604051610476919061345e565b60405180910390f35b61049960048036038101906104949190612ba0565b611425565b6040516104a6919061345e565b60405180910390f35b6104b761155b565b6040516104c49190613443565b60405180910390f35b6104d5611585565b6040516104e29190613479565b60405180910390f35b61050560048036038101906105009190612c54565b6115c2565b604051610512919061345e565b60405180910390f35b61053560048036038101906105309190612c54565b6117f9565b6040516105439291906136d6565b60405180910390f35b61056660048036038101906105619190612ba0565b6118ba565b604051610573919061345e565b60405180910390f35b61059660048036038101906105919190612ba0565b6119f0565b6040516105a3919061345e565b60405180910390f35b6105c660048036038101906105c19190612ba0565b611b16565b6040516105d49291906136d6565b60405180910390f35b6105f760048036038101906105f29190612bc9565b611ba5565b60405161060491906136bb565b60405180910390f35b610615611c2c565b604051610622919061345e565b60405180910390f35b61064560048036038101906106409190612ba0565b611d5c565b604051610652919061345e565b60405180910390f35b61067560048036038101906106709190612ba0565b611db2565b604051610682919061345e565b60405180910390f35b610693611ec4565b6040516106a0919061345e565b60405180910390f35b60606040518060400160405280600881526020017f524f47494e2e4149000000000000000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e9061363b565b60405180910390fd5b610762338484611ff3565b506001905092915050565b60008054905090565b600083600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fd9061365b565b60405180910390fd5b600660009054906101000a900460ff1615610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d9061355b565b60405180910390fd5b848380600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108a39190613736565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b9061361b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415610994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098b9061359b565b60405180910390fd5b61099f8787876120e6565b50610a32873387600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2d919061378c565b611ff3565b50600193505050509392505050565b60006012905090565b6000600754905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610add906135db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d9061349b565b60405180910390fd5b610b613385856120e6565b50610b6d848484612274565b50600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c02906135db565b60405180910390fd5b600660009054906101000a900460ff1615610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c529061355b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc29061353b565b60405180910390fd5b60075482600054610cdc9190613736565b1115610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d14906135fb565b60405180910390fd5b600860009054906101000a900460ff1615610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d649061357b565b60405180910390fd5b610d778383612500565b508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688583604051610dbe91906136bb565b60405180910390a26001905092915050565b6000600660009054906101000a900460ff1615610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e199061355b565b60405180910390fd5b610e2c3383612614565b90503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca583604051610e7491906136bb565b60405180910390a260019050919050565b6000600660009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e906135db565b60405180910390fd5b610f816000612728565b905090565b6000600660009054906101000a900460ff1615610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf9061355b565b60405180910390fd5b610fe28383612614565b508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405161102991906136bb565b60405180910390a26110c3833384600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110be919061378c565b611ff3565b905092915050565b6000600860009054906101000a900460ff16905090565b600042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061115c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020160010154106111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a59061351b565b60405180910390fd5b6111b883836127f0565b5092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611251576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611248906135db565b60405180910390fd5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e906135db565b60405180910390fd5b600660009054906101000a900460ff16156113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce9061355b565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75260405160405180910390a16001905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae906135db565b60405180910390fd5b6001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f524f470000000000000000000000000000000000000000000000000000000000815250905090565b600033600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611652576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116499061365b565b60405180910390fd5b600660009054906101000a900460ff16156116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061355b565b60405180910390fd5b338380600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ef9190613736565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611770576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117679061361b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156117e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d7906135bb565b60405180910390fd5b6117eb3387876120e6565b506001935050505092915050565b6000806000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110611875577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016040518060400160405290816000820154815260200160018201548152505090508060000151925080602001519150509250929050565b600080600090505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156119e657808061191790613872565b91505042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600183611967919061378c565b8154811061199e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001015410156119e1576119cc836001836119c7919061378c565b6127f0565b156119e05780806119dc90613848565b9150505b5b6118c2565b5060019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a79906135db565b60405180910390fd5b60005b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611b0c578080611ada90613872565b915050611af383600183611aee919061378c565b6127f0565b15611b07578080611b0390613848565b9150505b611a85565b5060019050919050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050915091565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb5906135db565b60405180910390fd5b600860009054906101000a900460ff1615611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d05906134bb565b60405180910390fd5b6001600860006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b906135db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab9061369b565b60405180910390fd5b611ebd82612728565b9050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4d906135db565b60405180910390fd5b600660009054906101000a900460ff16611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c9061367b565b60405180910390fd5b6000600660006101000a81548160ff0219169083151502179055507fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693360405160405180910390a16001905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516120d391906136bb565b60405180910390a3600190509392505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612133919061378c565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c19190613736565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161226191906136bb565b60405180910390a3600190509392505050565b60004282116122b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122af906134fb565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836123039190613736565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237b906134db565b60405180910390fd5b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123cf9190613736565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280858152602001848152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b84846040516124ed9291906136d6565b60405180910390a2600190509392505050565b6000816000546125109190613736565b60008190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125619190613736565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161260291906136bb565b60405180910390a36001905092915050565b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612661919061378c565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000546126b2919061378c565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161271691906136bb565b60405180910390a36001905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061286a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020190508060000154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c9919061378c565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1826000015460405161295691906136bb565b60405180910390a2600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506129ec919061378c565b81548110612a23577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110612aa8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016000820154816000015560018201548160010155905050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480612b42577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055600191505092915050565b600081359050612b85816138fb565b92915050565b600081359050612b9a81613912565b92915050565b600060208284031215612bb257600080fd5b6000612bc084828501612b76565b91505092915050565b60008060408385031215612bdc57600080fd5b6000612bea85828601612b76565b9250506020612bfb85828601612b76565b9150509250929050565b600080600060608486031215612c1a57600080fd5b6000612c2886828701612b76565b9350506020612c3986828701612b76565b9250506040612c4a86828701612b8b565b9150509250925092565b60008060408385031215612c6757600080fd5b6000612c7585828601612b76565b9250506020612c8685828601612b8b565b9150509250929050565b600080600060608486031215612ca557600080fd5b6000612cb386828701612b76565b9350506020612cc486828701612b8b565b9250506040612cd586828701612b8b565b9150509250925092565b600060208284031215612cf157600080fd5b6000612cff84828501612b8b565b91505092915050565b612d11816137c0565b82525050565b612d20816137d2565b82525050565b6000612d318261371a565b612d3b8185613725565b9350612d4b818560208601613815565b612d54816138ea565b840191505092915050565b6000612d6c603e83613725565b91507f45524332304c6f636b61626c652f7472616e73666572576974684c6f636b557060008301527f203a2043616e6e6f742073656e6420746f207a65726f206164647265737300006020830152604082019050919050565b6000612dd2602e83613725565b91507f45524332304d696e7461626c652f66696e6973684d696e74696e67203a20416c60008301527f72656164792066696e69736865640000000000000000000000000000000000006020830152604082019050919050565b6000612e38604083613725565b91507f45524332304c6f636b61626c652f6c6f636b203a206c6f636b656420746f746160008301527f6c2073686f756c6420626520736d616c6c6572207468616e2062616c616e63656020830152604082019050919050565b6000612e9e602b83613725565b91507f45524332304c6f636b61626c652f6c6f636b203a2043616e6e6f74207365742060008301527f64756520746f20706173740000000000000000000000000000000000000000006020830152604082019050919050565b6000612f04602e83613725565b91507f45524332304c6f636b61626c652f756e6c6f636b3a2063616e6e6f7420756e6c60008301527f6f636b206265666f7265206475650000000000000000000000000000000000006020830152604082019050919050565b6000612f6a603483613725565b91507f45524332304d696e7461626c652f6d696e74203a2053686f756c64206e6f742060008301527f6d696e7420746f207a65726f20616464726573730000000000000000000000006020830152604082019050919050565b6000612fd0603983613725565b91507f506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792060008301527f62652063616c6c6564207768656e206e6f7420706175736564000000000000006020830152604082019050919050565b6000613036602f83613725565b91507f45524332304d696e7461626c652f6d696e74203a2043616e6e6f74206d696e7460008301527f2061667465722066696e697368656400000000000000000000000000000000006020830152604082019050919050565b600061309c603283613725565b91507f524f472f7472616e7366657246726f6d203a2053686f756c64206e6f7420736560008301527f6e6420746f207a65726f206164647265737300000000000000000000000000006020830152604082019050919050565b6000613102602e83613725565b91507f524f472f7472616e73666572203a2053686f756c64206e6f742073656e64207460008301527f6f207a65726f20616464726573730000000000000000000000000000000000006020830152604082019050919050565b6000613168602f83613725565b91507f4f776e61626c65203a2046756e6374696f6e2063616c6c656420627920756e6160008301527f7574686f72697a656420757365722e00000000000000000000000000000000006020830152604082019050919050565b60006131ce602983613725565b91507f45524332304d696e7461626c652f6d696e74203a2043616e6e6f74206d696e7460008301527f206f7665722063617000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613234603383613725565b91507f45524332304c6f636b61626c652f43616e6e6f742073656e64206d6f7265207460008301527f68616e20756e6c6f636b656420616d6f756e74000000000000000000000000006020830152604082019050919050565b600061329a602d83613725565b91507f524f472f617070726f7665203a2053686f756c64206e6f7420617070726f766560008301527f207a65726f2061646472657373000000000000000000000000000000000000006020830152604082019050919050565b6000613300601c83613725565b91507f467265657a61626c65203a207461726765742069732066726f7a656e000000006000830152602082019050919050565b6000613340603583613725565b91507f506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792060008301527f62652063616c6c6564207768656e2070617573656400000000000000000000006020830152604082019050919050565b60006133a6604583613725565b91507f4f776e61626c652f7472616e736665724f776e657273686970203a2063616e6e60008301527f6f74207472616e73666572206f776e65727368697020746f207a65726f20616460208301527f64726573730000000000000000000000000000000000000000000000000000006040830152606082019050919050565b61342e816137fe565b82525050565b61343d81613808565b82525050565b60006020820190506134586000830184612d08565b92915050565b60006020820190506134736000830184612d17565b92915050565b600060208201905081810360008301526134938184612d26565b905092915050565b600060208201905081810360008301526134b481612d5f565b9050919050565b600060208201905081810360008301526134d481612dc5565b9050919050565b600060208201905081810360008301526134f481612e2b565b9050919050565b6000602082019050818103600083015261351481612e91565b9050919050565b6000602082019050818103600083015261353481612ef7565b9050919050565b6000602082019050818103600083015261355481612f5d565b9050919050565b6000602082019050818103600083015261357481612fc3565b9050919050565b6000602082019050818103600083015261359481613029565b9050919050565b600060208201905081810360008301526135b48161308f565b9050919050565b600060208201905081810360008301526135d4816130f5565b9050919050565b600060208201905081810360008301526135f48161315b565b9050919050565b60006020820190508181036000830152613614816131c1565b9050919050565b6000602082019050818103600083015261363481613227565b9050919050565b600060208201905081810360008301526136548161328d565b9050919050565b60006020820190508181036000830152613674816132f3565b9050919050565b6000602082019050818103600083015261369481613333565b9050919050565b600060208201905081810360008301526136b481613399565b9050919050565b60006020820190506136d06000830184613425565b92915050565b60006040820190506136eb6000830185613425565b6136f86020830184613425565b9392505050565b60006020820190506137146000830184613434565b92915050565b600081519050919050565b600082825260208201905092915050565b6000613741826137fe565b915061374c836137fe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613781576137806138bb565b5b828201905092915050565b6000613797826137fe565b91506137a2836137fe565b9250828210156137b5576137b46138bb565b5b828203905092915050565b60006137cb826137de565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015613833578082015181840152602081019050613818565b83811115613842576000848401525b50505050565b6000613853826137fe565b91506000821415613867576138666138bb565b5b600182039050919050565b600061387d826137fe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138b0576138af6138bb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b613904816137c0565b811461390f57600080fd5b50565b61391b816137fe565b811461392657600080fd5b5056fea2646970667358221220a1559d1d50eb0cc79ebebf14d15f13645e1014f780b80101cec13641dd1a48c364736f6c63430008000033