[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "address", "name": "_minter", "type": "address" }, { "internalType": "address", "name": "_blocklister", "type": "address" } ], "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": [], "name": "ECDSAInvalidSignature", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "ECDSAInvalidSignatureLength", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "ECDSAInvalidSignatureS", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "increasedSupply", "type": "uint256" }, { "internalType": "uint256", "name": "cap", "type": "uint256" } ], "name": "ERC20ExceededCap", "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": "uint256", "name": "cap", "type": "uint256" } ], "name": "ERC20InvalidCap", "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": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "ERC2612ExpiredSignature", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC2612InvalidSigner", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "name": "InvalidAccountNonce", "type": "error" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_oldOwner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "AdminTransferred", "type": "event" }, { "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": false, "internalType": "address", "name": "_account", "type": "address" } ], "name": "Blocklisted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_account", "type": "address" } ], "name": "BlocklisterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_account", "type": "address" } ], "name": "BlocklisterRemoved", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_account", "type": "address" } ], "name": "MinterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_account", "type": "address" } ], "name": "MinterRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_account", "type": "address" } ], "name": "UnBlocklisted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "BLOCKLISTER_ROLE", "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": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "addBlocklister", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "blocklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "_account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isBlocklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isBlocklister", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "_amounts", "type": "uint256[]" } ], "name": "mintBulk", "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": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "uint256", "name": "_deadline", "type": "uint256" }, { "internalType": "uint8", "name": "_v", "type": "uint8" }, { "internalType": "bytes32", "name": "_r", "type": "bytes32" }, { "internalType": "bytes32", "name": "_s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "removeBlocklister", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "removeMinter", "outputs": [], "stateMutability": "nonpayable", "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": "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": "_newOwner", "type": "address" } ], "name": "transferAdmin", "outputs": [], "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": "address", "name": "_account", "type": "address" } ], "name": "unBlocklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
61018060409080825234620004d75762002f228038038091620000238285620004dc565b833981019160a082840312620004d75781516001600160401b0390818111620004d757846200005491850162000525565b916020948585015190838211620004d7576200007291860162000525565b9381810151906200009460806200008c6060840162000580565b920162000580565b9183519784890189811087821117620003d7578552600191828a52818a0192603160f81b84528851888111620003d75760038054918383811c93168015620004cc575b86841014620004b657601f928381116200046b575b508086848211600114620003f957600091620003ed575b5060001982841b1c191690841b1781555b8b51918a8311620003d75760049c8d548581811c91168015620003cc575b88821014620003b7578e8382116200036c575b50508d87928511600114620003015750938394918492600095620002f5575b50501b92600019911b1c19161789555b8015620002de576080526200018987620007a4565b956101409687526200019b8a6200094c565b97610160988952828151910120926101009a848c525190209861012099808b524660c0528751938401947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f86528885015260608401524660808401523060a084015260a0835260c083019183831090831117620002c95750855251902060a0523060e0526009805460ff191690556200027291906200026b90620002596001600160a01b036200024f818416151562000595565b8416151562000595565b6200026433620005e2565b5062000663565b5062000706565b50519261245e948562000aa486396080518581816110430152611f6a015260a05185611abd015260c05185611b89015260e05185611a8701525184611b0c01525183611b320152518261089b015251816108c50152f35b604190634e487b7160e01b6000525260246000fd5b855163392e1e2760e01b81526000818b0152602490fd5b01519350388062000164565b929190601f1985169360005284886000209460005b8a8983831062000354575050501062000339575b50505050811b01895562000174565b01519060f884600019921b161c19169055388080806200032a565b86860151895590970196948501948893500162000316565b600052876000208380870160051c8201928a8810620003ad575b0160051c019086905b828110620003a05750508e62000145565b600081550186906200038f565b9250819262000386565b60228f634e487b7160e01b6000525260246000fd5b90607f169062000132565b634e487b7160e01b600052604160045260246000fd5b90508c01513862000103565b8592508d90601f1983169185600052896000209260005b8b8282106200044a575050841162000431575b505050811b01815562000114565b015160001983861b60f8161c1916905538808e62000423565b929484849395979892960151815501940192018f9091889594939262000410565b82600052866000208480840160051c820192898510620004ac575b0160051c019085905b8281106200049f575050620000ec565b600081550185906200048f565b9250819262000486565b634e487b7160e01b600052602260045260246000fd5b92607f1692620000d7565b600080fd5b601f909101601f19168101906001600160401b03821190821017620003d757604052565b60005b838110620005145750506000910152565b818101518382015260200162000503565b81601f82011215620004d75780516001600160401b038111620003d757604051926200055c601f8301601f191660200185620004dc565b81845260208284010111620004d7576200057d916020808501910162000500565b90565b51906001600160a01b0382168203620004d757565b156200059d57565b60405162461bcd60e51b815260206004820152601660248201527f616464726573732063616e6e6f74206265207a65726f000000000000000000006044820152606490fd5b6001600160a01b031660008181527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc602052604081205490919060ff166200065f5781805260056020526040822081835260205260408220600160ff19825416179055339160008051602062002f028339815191528180a4600190565b5090565b6001600160a01b031660008181527f15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a52260205260408120549091907f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a69060ff16620007015780835260056020526040832082845260205260408320600160ff1982541617905560008051602062002f02833981519152339380a4600190565b505090565b6001600160a01b031660008181527f2fcd6cb694ac0d5c7b4e78292461b1033930b7fe9035333fafc6c559aab2107f60205260408120549091907f5442dc837335aa278534a338d1e63d0c5649b0678ad376ddd382f1af9b8f250a9060ff16620007015780835260056020526040832082845260205260408320600160ff1982541617905560008051602062002f02833981519152339380a4600190565b805160209081811015620008225750601f825111620007e05780825192015190808310620007d157501790565b82600019910360031b1b161790565b604490620008149260405193849263305a27a960e01b84528060048501528251928391826024870152868601910162000500565b601f01601f19168101030190fd5b906001600160401b038211620003d757600654926001938481811c9116801562000941575b83821014620004b657601f811162000907575b5081601f84116001146200089b57509282939183926000946200088f575b50501b916000199060031b1c19161760065560ff90565b01519250388062000878565b919083601f198116600660005284600020946000905b88838310620008ec5750505010620008d2575b505050811b0160065560ff90565b015160001960f88460031b161c19169055388080620008c4565b858701518855909601959485019487935090810190620008b1565b600660005284601f84600020920160051c820191601f860160051c015b828110620009345750506200085a565b6000815501859062000924565b90607f169062000847565b805160209081811015620009795750601f825111620007e05780825192015190808310620007d157501790565b906001600160401b038211620003d757600754926001938481811c9116801562000a98575b83821014620004b657601f811162000a5e575b5081601f8411600114620009f25750928293918392600094620009e6575b50501b916000199060031b1c19161760075560ff90565b015192503880620009cf565b919083601f198116600760005284600020946000905b8883831062000a43575050501062000a29575b505050811b0160075560ff90565b015160001960f88460031b161c1916905538808062000a1b565b85870151885590960195948501948793509081019062000a08565b600760005284601f84600020920160051c820191601f860160051c015b82811062000a8b575050620009b1565b6000815501859062000a7b565b90607f16906200099e56fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146113b85750816306fdde03146112e5578163095ea7b31461127d57816318160ddd1461125e57816323b872dd14611221578163248a9ca3146111f65781632f2ff15d1461118b5781633092afd514611100578163313ce567146110e457816331b2302014611066578163355274ea1461102b5781633644e5151461100757816336568abe14610fc15781633f4ba83a14610f5757816340c10f1914610f1f57816342966c6814610f0157816347401e1414610ead5781635c975abb14610e895781636025eb4a14610de5578163670e4be314610d5a57816370a0823114610d2357816375829def14610c3257816379cc679014610c025781637ecebe0014610bca5781637fd30df0146109fc5781638456cb59146109a157816384b0196e146108835781638e204c431461084557816391d14854146107fe57816395d89b4114610713578163983b2d5614610666578163a217fddf1461064b578163a9059cbb1461061a578163aa271e1a146105c6578163d505accf1461040f578163d5391393146103e6578163d547741f1461038a578163dd62ed3e14610341578163e5c7160b14610208575063fc19dddc146101dd57600080fd5b34610204578160031936011261020457602090516000805160206123c98339815191528152f35b5080fd5b83915034610204576020908160031936011261033d5761022661144b565b61022e611db1565b6001600160a01b031690610243821515612056565b61024b612038565b6000805160206123e9833981519152845260058352848420828552835260ff85852054168015610313575b6102bb57508293817f917c251bb231c4b997a420bebe47edad5c20e70715da16c38e9b2e172e44ab929452600a8352808520600160ff1982541617905551908152a180f35b845162461bcd60e51b8152908101839052602c60248201527f6163636f756e7420686173206120726f6c6520616e642063616e6e6f7420626560448201526b08189b1bd8dadb1a5cdd195960a21b6064820152608490fd5b506000805160206123c9833981519152845260058352848420828552835260ff8585205416610276565b8280fd5b5050346102045780600319360112610204578060209261035f61144b565b610367611466565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b9190503461033d578060031936011261033d576103e291356103c160016103af611466565b93838752600560205286200154611e9d565b6103d56001600160a01b0383161515612056565b6103dd612038565b61167a565b5080f35b505034610204578160031936011261020457602090516000805160206123e98339815191528152f35b839150346102045760e03660031901126102045761042b61144b565b610433611466565b9060443592606435956084359660ff881688036105c2576001600160a01b03848116808952600a602052838920549092906104719060ff1615611ff3565b81871690818a52600a60205261048d60ff868c20541615611ff3565b610495612038565b8042116105ac57838a526008602052848a209081549160018301905585519160208301937f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98552868885015260608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff8211176105995785525190206105559961054c91610526611a84565b9086519161190160f01b83526002830152602282015260c43591604260a435922061209b565b909a919a61212b565b88160361056c575050610569939450611910565b80f35b516325c0072360e11b81526001600160a01b03808816928201928352909216602082015281906040010390fd5b634e487b7160e01b8b526041875260248bfd5b8560249186519163313c898160e11b8352820152fd5b8680fd5b5050346102045760203660031901126102045760ff816020936105e761144b565b6000805160206123e98339815191528252600586528282206001600160a01b039091168252855220549151911615158152f35b50503461020457806003193601126102045760209061064461063a61144b565b6024359033611719565b5160018152f35b50503461020457816003193601126102045751908152602090f35b5050346102045760203660031901126102045760207f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6916106a561144b565b906000805160206123e98339815191528552600583526106ca60018287200154611e9d565b6001600160a01b038216808652600a845281862054909261070a916106f29060ff1615611ff3565b6106fd841515612056565b610705612038565b6122b5565b5051908152a180f35b9190503461033d578260031936011261033d5780519183815490610736826116df565b808652926001928084169081156107d35750600114610777575b6107738686610761828b03836114ae565b5191829160208352602083019061140b565b0390f35b815294507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8286106107bb57505050610761826020610773958201019438610750565b8054602087870181019190915290950194810161079d565b905061077397508693506020925061076194915060ff191682840152151560051b8201019438610750565b90503461033d578160031936011261033d578160209360ff9261081f611466565b90358252600586528282206001600160a01b039091168252855220549151911615158152f35b5050346102045760203660031901126102045760209160ff9082906001600160a01b0361087061144b565b168152600a855220541690519015158152f35b9190503461033d578260031936011261033d576108bf7f0000000000000000000000000000000000000000000000000000000000000000611baf565b926108e97f0000000000000000000000000000000000000000000000000000000000000000611cab565b908251926020928385019585871067ffffffffffffffff88111761098e57509280610944838896610937998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b019061140b565b91898303908a015261140b565b924660608801523060808801528460a088015286840360c088015251928381520193925b82811061097757505050500390f35b835185528695509381019392810192600101610968565b634e487b7160e01b845260419052602483fd5b50503461020457816003193601126102045760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258916109df611e19565b6109e7612038565b600160ff19600954161760095551338152a180f35b828434610bc75781600319360112610bc75782359267ffffffffffffffff80851161033d573660238601121561033d578482013594610a3a866114d0565b90610a47865192836114ae565b8682526020908183016024809960051b83010191368311610b9c578901905b828210610ba4575050508635928311610ba05736602384011215610ba0578284013592610a92846114d0565b93610a9f885195866114ae565b808552888386019160051b83010191368311610b9c5789849101915b838310610b8c5750505050610ace611e53565b8151835103610b4b57845b8251811015610b4257610af7610aef8286611fc9565b511515611d65565b610b1f6001600160a01b03610b0c8386611fc9565b5116610b188387611fc9565b5190611ec3565b6000198114610b3057600101610ad9565b634e487b7160e01b8652601185528786fd5b50855160018152f35b83601c8860649389519362461bcd60e51b85528401528201527f617272617973206d75737420686176652073616d65206c656e677468000000006044820152fd5b8235815291810191849101610abb565b8780fd5b8480fd5b81356001600160a01b0381168103610bc3578152908301908301610a66565b8880fd5b80fd5b5050346102045760203660031901126102045760209181906001600160a01b03610bf261144b565b1681526008845220549051908152f35b50503461020457366003190112610bc757610569610c1e61144b565b60243590610c2d82338361183d565b6119a3565b50503461020457602036600319011261020457610d1d7ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec691610c7261144b565b908480526005602052610c8a60018287200154611e9d565b6001600160a01b038216808652600a60205281862054610cb99190610cb29060ff1615611ff3565b1515612056565b610cc1612038565b610cca8261223a565b508480526005602052610ce260018287200154611e9d565b610ced331515612056565b610cf5612038565b610cfe336115fd565b50513381526001600160a01b0390911660208201529081906040820190565b0390a180f35b5050346102045760203660031901126102045760209181906001600160a01b03610d4b61144b565b16815280845220549051908152f35b5050346102045760203660031901126102045760207f3578cd589352272cd530cb5073af8df2e90ce711b275f1f1bfad833aaf503edb91610d9961144b565b906000805160206123c9833981519152855260058352610dbe60018287200154611e9d565b6001600160a01b0382169161070a90610dd8841515612056565b610de0612038565b611575565b5050346102045760203660031901126102045760207fa1d4c799e08f503491fdf453bb7c626d16778a28993398d512a17343406bd67991610e2461144b565b906000805160206123c9833981519152855260058352610e4960018287200154611e9d565b6001600160a01b038216808652600a845281862054909261070a91610e719060ff1615611ff3565b610e7c841515612056565b610e84612038565b6121b0565b50503461020457816003193601126102045760209060ff6009541690519015158152f35b5050346102045760203660031901126102045760ff81602093610ece61144b565b6000805160206123c98339815191528252600586528282206001600160a01b039091168252855220549151911615158152f35b839034610204576020366003190112610204576105699035336119a3565b50503461020457366003190112610bc757610569610f3b61144b565b60243590610f47611e53565b610f52821515611d65565b611ec3565b90503461033d578260031936011261033d57610f71611e19565b6009549060ff821615610fb3575060ff1916600955513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152fd5b838334610204578060031936011261020457610fdb611466565b90336001600160a01b03831603610ff857506103e291923561167a565b5163334bd91960e11b81528390fd5b505034610204578160031936011261020457602090611024611a84565b9051908152f35b505034610204578160031936011261020457602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b5050346102045760203660031901126102045760207fbc3fe0fc667d12a7a22748747f024a7d971127ffc48f6622675d3e97a2591a51916110a561144b565b6110ad611db1565b6001600160a01b0316906110c2821515612056565b6110ca612038565b818552600a8352808520805460ff1916905551908152a180f35b5050346102045781600319360112610204576020905160128152f35b5050346102045760203660031901126102045760207fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929161113f61144b565b906000805160206123e983398151915285526005835261116460018287200154611e9d565b6001600160a01b0382169161070a9061117e841515612056565b611186612038565b6114e8565b9190503461033d578060031936011261033d576103e291356111e96111ae611466565b9282865260056020526111c660018288200154611e9d565b6001600160a01b038416808752600a60205290862054610cb29060ff1615611ff3565b6111f1612038565b61233f565b90503461033d57602036600319011261033d5781602093600192358152600585522001549051908152f35b5050346102045760603660031901126102045760209061064461124261144b565b61124a611466565b6044359161125983338361183d565b611719565b5050346102045781600319360112610204576020906002549051908152f35b5050346102045780600319360112610204576106446020926112d360ff846112a361144b565b93338152600a88526112ba83838320541615611ff3565b6001600160a01b0385168152600a885220541615611ff3565b6112db612038565b6024359033611910565b50503461020457816003193601126102045780519082600354611307816116df565b808552916001918083169081156113905750600114611333575b505050610761826107739403836114ae565b9450600385527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828610611378575050506107618260206107739582010194611321565b8054602087870181019190915290950194810161135b565b61077397508693506020925061076194915060ff191682840152151560051b82010194611321565b84913461033d57602036600319011261033d573563ffffffff60e01b811680910361033d5760209250637965db0b60e01b81149081156113fa575b5015158152f35b6301ffc9a760e01b149050836113f3565b919082519283825260005b848110611437575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611416565b600435906001600160a01b038216820361146157565b600080fd5b602435906001600160a01b038216820361146157565b6040810190811067ffffffffffffffff82111761149857604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761149857604052565b67ffffffffffffffff81116114985760051b60200190565b6001600160a01b031660008181527f15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a52260205260408120549091906000805160206123e98339815191529060ff1615611570578083526005602052604083208284526020526040832060ff198154169055600080516020612409833981519152339380a4600190565b505090565b6001600160a01b031660008181527f2fcd6cb694ac0d5c7b4e78292461b1033930b7fe9035333fafc6c559aab2107f60205260408120549091906000805160206123c98339815191529060ff1615611570578083526005602052604083208284526020526040832060ff198154169055600080516020612409833981519152339380a4600190565b6001600160a01b031660008181527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc602052604081205490919060ff1615611676578180526005602052604082208183526020526040822060ff19815416905533916000805160206124098339815191528180a4600190565b5090565b906000918083526005602052604083209160018060a01b03169182845260205260ff604084205416600014611570578083526005602052604083208284526020526040832060ff198154169055600080516020612409833981519152339380a4600190565b90600182811c9216801561170f575b60208310146116f957565b634e487b7160e01b600052602260045260246000fd5b91607f16916116ee565b9291906001600160a01b03808516918215611824571691821561180b57600090828252602091600a835260409061175660ff838320541615611ff3565b858152600a845261176d60ff838320541615611ff3565b338152600a845261178460ff838320541615611ff3565b84815280845281812054978389106117db57508083869798997fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9785945282875203828220558781522082815401905551908152a3565b825163391434e360e21b81526001600160a01b039190911660048201526024810189905260448101849052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b9160018060a01b03809316916000938385526001602052604093848620918316918287526020528486205492600019840361187c575b50505050505050565b8484106118e0575080156118c85781156118b057855260016020528385209085526020520391205538808080808080611873565b8451634a1406b160e11b815260048101879052602490fd5b845163e602df0560e01b815260048101879052602490fd5b8551637dc7a0d960e11b81526001600160a01b039190911660048201526024810184905260448101859052606490fd5b6001600160a01b0390811691821561198a57169182156119715760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b91906001600160a01b038316801561182457600091818352602090600a825260406119d460ff828720541615611ff3565b848052600a83526119eb60ff828720541615611ff3565b338552600a8352611a0260ff828720541615611ff3565b8385528483528085205496828810611a55575081859697857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9697528785520381872055816002540360025551908152a3565b905163391434e360e21b81526001600160a01b0390911660048201526024810187905260448101829052606490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611b86575b15611adf577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176114985760405251902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611ab6565b60ff8114611bed5760ff811690601f8211611bdb5760405191611bd18361147c565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600654816000611c00836116df565b80835292600190818116908115611c895750600114611c2a575b50611c27925003826114ae565b90565b6006600090815291507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b848310611c6e5750611c27935050810160200138611c1a565b81935090816020925483858901015201910190918492611c55565b905060209250611c2794915060ff191682840152151560051b82010138611c1a565b60ff8114611ccd5760ff811690601f8211611bdb5760405191611bd18361147c565b50604051600754816000611ce0836116df565b80835292600190818116908115611c895750600114611d065750611c27925003826114ae565b6007600090815291507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b848310611d4a5750611c27935050810160200138611c1a565b81935090816020925483858901015201910190918492611d31565b15611d6c57565b60405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606490fd5b3360009081527f2fcd6cb694ac0d5c7b4e78292461b1033930b7fe9035333fafc6c559aab2107f60205260409020546000805160206123c98339815191529060ff1615611dfb5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc602052604081205460ff1615611dfb5750565b3360009081527f15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a52260205260409020546000805160206123e98339815191529060ff1615611dfb5750565b80600052600560205260406000203360005260205260ff6040600020541615611dfb5750565b6001600160a01b0316801561180b576000808052600a602052604092611eef60ff858420541615611ff3565b828252600a602052611f0760ff858420541615611ff3565b338252600a602052611f1f60ff858420541615611ff3565b600254818101809111611fb557600255828252602082815284832080548301905584519182527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a37f000000000000000000000000000000000000000000000000000000000000000060025491818311611f9957505050565b60449350519163279e7e1560e21b835260048301526024820152fd5b634e487b7160e01b83526011600452602483fd5b8051821015611fdd5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b15611ffa57565b60405162461bcd60e51b81526020600482015260166024820152751058d8dbdd5b9d081a5cc8189b1bd8dadb1a5cdd195960521b6044820152606490fd5b60ff6009541661204457565b60405163d93c066560e01b8152600490fd5b1561205d57565b60405162461bcd60e51b8152602060048201526016602482015275616464726573732063616e6e6f74206265207a65726f60501b6044820152606490fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161211f57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156121135780516001600160a01b0381161561210a57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b600481101561219a578061213d575050565b600181036121575760405163f645eedf60e01b8152600490fd5b600281036121785760405163fce698f760e01b815260048101839052602490fd5b6003146121825750565b602490604051906335e2f38360e21b82526004820152fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b031660008181527f2fcd6cb694ac0d5c7b4e78292461b1033930b7fe9035333fafc6c559aab2107f60205260408120549091906000805160206123c98339815191529060ff166115705780835260056020526040832082845260205260408320600160ff198254161790556000805160206123a9833981519152339380a4600190565b6001600160a01b031660008181527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc602052604081205490919060ff166116765781805260056020526040822081835260205260408220600160ff1982541617905533916000805160206123a98339815191528180a4600190565b6001600160a01b031660008181527f15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a52260205260408120549091906000805160206123e98339815191529060ff166115705780835260056020526040832082845260205260408320600160ff198254161790556000805160206123a9833981519152339380a4600190565b906000918083526005602052604083209160018060a01b03169182845260205260ff604084205416156000146115705780835260056020526040832082845260205260408320600160ff198254161790556000805160206123a9833981519152339380a460019056fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5442dc837335aa278534a338d1e63d0c5649b0678ad376ddd382f1af9b8f250a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171ba2646970667358221220e7c1de8ddc528bc94453c783308e67e3a428b4a4858cea39c3ec213552b9d1da64736f6c634300081400332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000052b7d2dcc80cd2e4000000000000000000000000000000536975368646c7211d99940cc418ede1fee637ce000000000000000000000000536975368646c7211d99940cc418ede1fee637ce000000000000000000000000000000000000000000000000000000000000001650656e63696c732050726f746f636f6c20546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000044441505000000000000000000000000000000000000000000000000000000000