Token
ERC20 Pin (SCDER...)
ERC-721
Source Code
Overview
Max Total Supply
0 SCDER...
Holders
223,224
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract
Balance
1 SCDERC20Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code (Solidity Standard Json-Input format)
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_secondCallerAddress","type":"address"},{"internalType":"address","name":"_thirdCallerAddress","type":"address"},{"internalType":"address","name":"_fourthCallerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotActive","type":"error"},{"inputs":[],"name":"SoulboundToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"submission","type":"address"},{"indexed":false,"internalType":"bool","name":"passed","type":"bool"},{"components":[{"internalType":"string","name":"message","type":"string"},{"components":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult[]","name":"elements","type":"tuple[]"},{"internalType":"uint256","name":"num","type":"uint256"}],"internalType":"struct List.ARList","name":"assertResults","type":"tuple"}],"indexed":false,"internalType":"struct Cafe.TestResult[]","name":"testResults","type":"tuple[]"}],"name":"TestSuiteResult","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"message","type":"string"},{"components":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult[]","name":"elements","type":"tuple[]"},{"internalType":"uint256","name":"num","type":"uint256"}],"internalType":"struct List.ARList","name":"assertResults","type":"tuple"}],"internalType":"struct Cafe.TestResult[]","name":"_testResults","type":"tuple[]"}],"name":"checkIfAllPassed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"a","type":"bytes"},{"internalType":"bytes","name":"b","type":"bytes"}],"name":"equal","outputs":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult","name":"result","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"equal","outputs":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult","name":"result","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"address","name":"b","type":"address"}],"name":"equal","outputs":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult","name":"result","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"a","type":"string"},{"internalType":"string","name":"b","type":"string"}],"name":"equal","outputs":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult","name":"result","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"a","type":"string[]"},{"internalType":"string[]","name":"b","type":"string[]"}],"name":"equal","outputs":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult","name":"result","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"a","type":"address[]"},{"internalType":"address[]","name":"b","type":"address[]"}],"name":"equal","outputs":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult","name":"result","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"a","type":"uint256[]"},{"internalType":"uint256[]","name":"b","type":"uint256[]"}],"name":"equal","outputs":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult","name":"result","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"a","type":"bool"}],"name":"isFalse","outputs":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult","name":"result","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"a","type":"bool"}],"name":"isTrue","outputs":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult","name":"result","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"address","name":"b","type":"address"}],"name":"notEqual","outputs":[{"components":[{"internalType":"bool","name":"passed","type":"bool"},{"internalType":"string","name":"assertionError","type":"string"},{"internalType":"string","name":"returnedAsString","type":"string"},{"internalType":"string","name":"expectedAsString","type":"string"},{"internalType":"string","name":"methodName","type":"string"}],"internalType":"struct Assert.AssertResult","name":"result","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"owners","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_setActiveTo","type":"bool"}],"name":"setActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_tokenURI","type":"string"}],"name":"setTokenURI","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":[{"internalType":"address","name":"_submissionAddress","type":"address"}],"name":"testContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenIds","outputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
600b805460ff1916600117905560a060405260006080908152600c9062000027908262000369565b503480156200003557600080fd5b506040516200aea93803806200aea9833981016040819052620000589162000452565b6040518060400160405280600981526020016822a9219918102834b760b91b81525060405180604001604052806008815260200167053434445524332360c41b8152508160009081620000ac919062000369565b506001620000bb828262000369565b505050620000d8620000d26200024260201b60201c565b62000246565b6001600755604051600d90620000ee9062000298565b604051809103906000f0801580156200010b573d6000803e3d6000fd5b5081546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b03909216919091179055604051600d9084906200015190620002a6565b6001600160a01b039091168152602001604051809103906000f0801580156200017e573d6000803e3d6000fd5b5081546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b03909216919091179055604051600d90849084908490620001c890620002b4565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801562000205573d6000803e3d6000fd5b5081546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b03909216919091179055506200049c915050565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611f978062003e3d83390190565b6120eb8062005dd483390190565b612fea8062007ebf83390190565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620002ed57607f821691505b6020821081036200030e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000364576000816000526020600020601f850160051c810160208610156200033f5750805b601f850160051c820191505b8181101562000360578281556001016200034b565b5050505b505050565b81516001600160401b03811115620003855762000385620002c2565b6200039d81620003968454620002d8565b8462000314565b602080601f831160018114620003d55760008415620003bc5750858301515b600019600386901b1c1916600185901b17855562000360565b600085815260208120601f198616915b828110156200040657888601518255948401946001909101908401620003e5565b5085821015620004255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160a01b03811681146200044d57600080fd5b919050565b6000806000606084860312156200046857600080fd5b620004738462000435565b9250620004836020850162000435565b9150620004936040850162000435565b90509250925092565b61399180620004ac6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806370a082311161010f578063b88d4fde116100a2578063e7da4c7e11610071578063e7da4c7e14610431578063e985e9c514610444578063f2fde38b14610480578063fa084b9b1461049357600080fd5b8063b88d4fde146103e5578063c87b56dd146103f8578063d70968e71461040b578063e0df5b6f1461041e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103a657806395d89b41146103b7578063a22cb465146103bf578063acec338a146103d257600080fd5b806370a0823114610360578063714cff5614610381578063715018a61461038b57806374f130701461039357600080fd5b8063301916261161018757806346bdca9a1161015657806346bdca9a146102a857806360fb55d5146103275780636352211e1461033a5780636df864781461034d57600080fd5b806330191626146102db57806331495d33146102ee578063410dbb8b1461030157806342842e0e1461031457600080fd5b8063081812fc116101c3578063081812fc1461026a578063095ea7b314610295578063235266d2146102a857806323b872dd146102c857600080fd5b806301ffc9a7146101f5578063022914a71461021d57806306d82f291461024057806306fdde0314610255575b600080fd5b610208610203366004612688565b6104a6565b60405190151581526020015b60405180910390f35b61020861022b3660046126ba565b60096020526000908152604090205460ff1681565b61025361024e3660046126ba565b610543565b005b61025d6107fe565b6040516102149190612727565b61027d61027836600461273a565b610890565b6040516001600160a01b039091168152602001610214565b6102536102a3366004612753565b6108b7565b6102bb6102b6366004612890565b610a0b565b604051610214919061296b565b6102536102d636600461297e565b610aba565b6102bb6102e93660046129bf565b610b31565b6102bb6102fc3660046129e1565b610beb565b6102bb61030f366004612a38565b610cbc565b61025361032236600461297e565b610dbc565b6102bb610335366004612b04565b610dd7565b61027d61034836600461273a565b610eb3565b6102bb61035b366004612bc6565b610f18565b61037361036e3660046126ba565b610ff4565b604051908152602001610214565b6008546103739081565b61025361108e565b6102bb6103a1366004612a38565b6110a2565b6006546001600160a01b031661027d565b61025d6111a3565b6102536103cd366004612c20565b6111b2565b6102536103e0366004612a38565b6111c1565b6102536103f3366004612c4e565b6111dc565b61025d61040636600461273a565b611254565b6102bb6104193660046129e1565b6112e8565b61025361042c366004612cba565b6113af565b6102bb61043f366004612d4e565b6113c3565b6102086104523660046129e1565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61025361048e3660046126ba565b61149f565b6102086104a1366004612da8565b61152f565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061050957506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061053d57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b600b5460ff1661057f576040517f80cb55e200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e5460609060009083906001600160a01b0316156106bb57600d546105a69060016130e5565b67ffffffffffffffff8111156105be576105be61277f565b6040519080825280602002602001820160405280156105f757816020015b6105e461263e565b8152602001906001900390816105dc5790505b50925081610604816130f8565b600e546040517f4c96a3890000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015292955091169150634c96a389906024016000604051808303816000875af115801561066c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106949190810190613328565b846000815181106106a7576106a761336f565b602002602001018193508290525050610713565b600d5467ffffffffffffffff8111156106d6576106d661277f565b60405190808252806020026020018201604052801561070f57816020015b6106fc61263e565b8152602001906001900390816106f45790505b5092505b600d548210156107ee57600d82815481106107305761073061336f565b6000918252602090912001546040517f4b64e4920000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015290911690634b64e492906024016000604051808303816000875af115801561079e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107c69190810190613385565b8383815181106107d8576107d861336f565b6020908102919091010152600190910190610713565b6107f884846115cf565b50505050565b60606000805461080d906133ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610839906133ba565b80156108865780601f1061085b57610100808354040283529160200191610886565b820191906000526020600020905b81548152906001019060200180831161086957829003601f168201915b5050505050905090565b600061089b826116d6565b506000908152600460205260409020546001600160a01b031690565b60006108c282610eb3565b9050806001600160a01b0316836001600160a01b0316036109505760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b038216148061098a57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6109fc5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610947565b610a06838361173a565b505050565b610a3f6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b815160208084019190912084519185019190912014808252610a84578282604051602001610a6e9291906133f4565b60408051601f1981840301815291905260208201525b604080820193909352606081019190915281518083019092526005825264195c5d585b60da1b6020830152608081019190915290565b610ac433826117b5565b610b265760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608401610947565b610a06838383611834565b610b656040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b828214808252610ba857610b7883611a47565b610b8183611a47565b604051602001610b929291906133f4565b60408051601f1981840301815291905260208201525b610bb183611a47565b6040820152610bbf82611a47565b6060820152604080518082019091526005815264195c5d585b60da1b6020820152608082015292915050565b610c1f6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b6001600160a01b0383811690831681148252600090610c3f906014611ae7565b90506000610c57846001600160a01b03166014611ae7565b8351909150610c89578181604051602001610c739291906133f4565b60408051601f1981840301815291905260208401525b604080840192909252606083015280518082019091526005815264195c5d585b60da1b6020820152608082015292915050565b610cf06040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8115808252610d18576040518060600160405280602381526020016139176023913960208201525b600182151514610d45576040518060400160405280600581526020016466616c736560d81b815250610d63565b604051806040016040528060048152602001637472756560e01b8152505b6040808301919091528051602080820183526000825260608401919091528151808301909252600782527f697346616c736500000000000000000000000000000000000000000000000000908201526080820152919050565b610a06838383604051806020016040528060008152506111dc565b610e0b6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b81604051602001610e1c9190613475565b6040516020818303038152906040528051906020012083604051602001610e439190613475565b60408051601f19818403018152919052805160209091012014808252610e9c57610e6c83611ccf565b610e7583611ccf565b604051602001610e869291906133f4565b60408051601f1981840301815291905260208201525b610ea583611ccf565b6040820152610bbf82611ccf565b6000818152600260205260408120546001600160a01b03168061053d5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610947565b610f4c6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b81604051602001610f5d91906134d9565b6040516020818303038152906040528051906020012083604051602001610f8491906134d9565b60408051601f19818403018152919052805160209091012014808252610fdd57610fad83611d9a565b610fb683611d9a565b604051602001610fc79291906133f4565b60408051601f1981840301815291905260208201525b610fe683611d9a565b6040820152610bbf82611d9a565b60006001600160a01b0382166110725760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610947565b506001600160a01b031660009081526003602052604090205490565b611096611e6c565b6110a06000611ec6565b565b6110d66040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8115158082526110ff5760405180606001604052806022815260200161393a6022913960208201525b60018215151461112c576040518060400160405280600581526020016466616c736560d81b81525061114a565b604051806040016040528060048152602001637472756560e01b8152505b6040808301919091528051602080820183526000825260608401919091528151808301909252600682527f6973547275650000000000000000000000000000000000000000000000000000908201526080820152919050565b60606001805461080d906133ba565b6111bd338383611f25565b5050565b6111c9611e6c565b600b805460ff1916911515919091179055565b6111e633836117b5565b6112485760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608401610947565b6107f884848484611ff3565b6060600c8054611263906133ba565b80601f016020809104026020016040519081016040528092919081815260200182805461128f906133ba565b80156112dc5780601f106112b1576101008083540402835291602001916112dc565b820191906000526020600020905b8154815290600101906020018083116112bf57829003601f168201915b50505050509050919050565b61131c6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b6001600160a01b03838116908316811415825260009061133d906014611ae7565b825190915061136d57806040516020016113579190613526565b60408051601f1981840301815291905260208301525b60408083019190915280516020808201835260008252606084019190915281518083019092526005825264195c5d585b60da1b90820152608082015292915050565b6113b7611e6c565b600c6111bd82826135e1565b6113f76040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8160405160200161140891906136a1565b604051602081830303815290604052805190602001208360405160200161142f91906136a1565b60408051601f198184030181529190528051602090910120148082526114885761145883612071565b61146183612071565b6040516020016114729291906133f4565b60408051601f1981840301815291905260208201525b61149183612071565b6040820152610bbf82612071565b6114a7611e6c565b6001600160a01b0381166115235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610947565b61152c81611ec6565b50565b6000805b82518110156115c65760005b8382815181106115515761155161336f565b602002602001015160200151602001518110156115bd5783828151811061157a5761157a61336f565b60200260200101516020015160000151818151811061159b5761159b61336f565b6020026020010151600001516115b5575060009392505050565b60010161153f565b50600101611533565b50600192915050565b6115d7612138565b60006115e28261152f565b90507f53d51c5f8eaf1bdbf1288871cbf97a9295da23a9868b15b526b4256ede348db9838284604051611617939291906136d9565b60405180910390a16001600160a01b0383166000908152600a602052604090205460ff1615801561165857503360009081526009602052604090205460ff16155b80156116615750805b156116a857611674600880546001019055565b600061167f60085490565b336000818152600960205260409020805460ff191660011790559091506116a69082612191565b505b506001600160a01b0382166000908152600a60205260409020805460ff191660011790556111bd6001600755565b6000818152600260205260409020546001600160a01b031661152c5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610947565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155819061177c82610eb3565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806117c183610eb3565b9050806001600160a01b0316846001600160a01b0316148061180857506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b8061182c5750836001600160a01b031661182184610890565b6001600160a01b0316145b949350505050565b826001600160a01b031661184782610eb3565b6001600160a01b0316146118ab5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610947565b6001600160a01b0382166119265760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610947565b61193383838360016121ab565b826001600160a01b031661194682610eb3565b6001600160a01b0316146119aa5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610947565b6000818152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60606000611a54836121ec565b600101905060008167ffffffffffffffff811115611a7457611a7461277f565b6040519080825280601f01601f191660200182016040528015611a9e576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611aa857509392505050565b60606000611af68360026137ce565b611b019060026130e5565b67ffffffffffffffff811115611b1957611b1961277f565b6040519080825280601f01601f191660200182016040528015611b43576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611b7a57611b7a61336f565b60200101906001600160f81b031916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611bc557611bc561336f565b60200101906001600160f81b031916908160001a9053506000611be98460026137ce565b611bf49060016130e5565b90505b6001811115611c79577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611c3557611c3561336f565b1a60f81b828281518110611c4b57611c4b61336f565b60200101906001600160f81b031916908160001a90535060049490941c93611c72816137e5565b9050611bf7565b508315611cc85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610947565b9392505050565b6040805180820190915260018152605b60f81b602082015260609060005b8351811015611d935760018451611d0491906137fc565b811015611d4d5781848281518110611d1e57611d1e61336f565b6020026020010151604051602001611d3792919061380f565b6040516020818303038152906040529150611d8b565b81848281518110611d6057611d6061336f565b6020026020010151604051602001611d79929190613866565b60405160208183030381529060405291505b600101611ced565b5092915050565b6040805180820190915260018152605b60f81b602082015260609060005b8351811015611d935760018451611dcf91906137fc565b811015611e2b5781611e04858381518110611dec57611dec61336f565b60200260200101516001600160a01b03166014611ae7565b604051602001611e1592919061380f565b6040516020818303038152906040529150611e64565b81611e41858381518110611dec57611dec61336f565b604051602001611e52929190613866565b60405160208183030381529060405291505b600101611db8565b6006546001600160a01b031633146110a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610947565b600680546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603611f865760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610947565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611ffe848484611834565b61200a848484846122ce565b6107f85760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610947565b6040805180820190915260018152605b60f81b602082015260609060005b8351811015611d9357600184516120a691906137fc565b8110156120f757816120d08583815181106120c3576120c361336f565b6020026020010151611a47565b6040516020016120e192919061380f565b6040516020818303038152906040529150612130565b8161210d8583815181106120c3576120c361336f565b60405160200161211e929190613866565b60405160208183030381529060405291505b60010161208f565b60026007540361218a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610947565b6002600755565b6111bd82826040518060200160405280600081525061241a565b6001600160a01b038416156107f8576040517f6e10574900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612235577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612261576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061227f57662386f26fc10000830492506010015b6305f5e1008310612297576305f5e100830492506008015b61271083106122ab57612710830492506004015b606483106122bd576064830492506002015b600a831061053d5760010192915050565b60006001600160a01b0384163b1561240f57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906123129033908990889088906004016138bd565b6020604051808303816000875af192505050801561234d575060408051601f3d908101601f1916820190925261234a918101906138f9565b60015b6123f5573d80801561237b576040519150601f19603f3d011682016040523d82523d6000602084013e612380565b606091505b5080516000036123ed5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610947565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061182c565b506001949350505050565b6124248383612498565b61243160008484846122ce565b610a065760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610947565b6001600160a01b0382166124ee5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610947565b6000818152600260205260409020546001600160a01b0316156125535760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610947565b6125616000838360016121ab565b6000818152600260205260409020546001600160a01b0316156125c65760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610947565b6001600160a01b0382166000818152600360209081526040808320805460010190558483526002909152808220805473ffffffffffffffffffffffffffffffffffffffff19168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60405180604001604052806060815260200161266d604051806040016040528060608152602001600081525090565b905290565b6001600160e01b03198116811461152c57600080fd5b60006020828403121561269a57600080fd5b8135611cc881612672565b6001600160a01b038116811461152c57600080fd5b6000602082840312156126cc57600080fd5b8135611cc8816126a5565b60005b838110156126f25781810151838201526020016126da565b50506000910152565b600081518084526127138160208601602086016126d7565b601f01601f19169290920160200192915050565b602081526000611cc860208301846126fb565b60006020828403121561274c57600080fd5b5035919050565b6000806040838503121561276657600080fd5b8235612771816126a5565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156127b8576127b861277f565b60405290565b60405160a0810167ffffffffffffffff811182821017156127b8576127b861277f565b604051601f8201601f1916810167ffffffffffffffff8111828210171561280a5761280a61277f565b604052919050565b600067ffffffffffffffff82111561282c5761282c61277f565b50601f01601f191660200190565b600082601f83011261284b57600080fd5b813561285e61285982612812565b6127e1565b81815284602083860101111561287357600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156128a357600080fd5b823567ffffffffffffffff808211156128bb57600080fd5b6128c78683870161283a565b935060208501359150808211156128dd57600080fd5b506128ea8582860161283a565b9150509250929050565b8051151582526000602082015160a0602085015261291560a08501826126fb565b90506040830151848203604086015261292e82826126fb565b9150506060830151848203606086015261294882826126fb565b9150506080830151848203608086015261296282826126fb565b95945050505050565b602081526000611cc860208301846128f4565b60008060006060848603121561299357600080fd5b833561299e816126a5565b925060208401356129ae816126a5565b929592945050506040919091013590565b600080604083850312156129d257600080fd5b50508035926020909101359150565b600080604083850312156129f457600080fd5b82356129ff816126a5565b91506020830135612a0f816126a5565b809150509250929050565b801515811461152c57600080fd5b8035612a3381612a1a565b919050565b600060208284031215612a4a57600080fd5b8135611cc881612a1a565b600067ffffffffffffffff821115612a6f57612a6f61277f565b5060051b60200190565b600082601f830112612a8a57600080fd5b81356020612a9a61285983612a55565b82815260059290921b84018101918181019086841115612ab957600080fd5b8286015b84811015612af957803567ffffffffffffffff811115612add5760008081fd5b612aeb8986838b010161283a565b845250918301918301612abd565b509695505050505050565b60008060408385031215612b1757600080fd5b823567ffffffffffffffff80821115612b2f57600080fd5b612b3b86838701612a79565b93506020850135915080821115612b5157600080fd5b506128ea85828601612a79565b600082601f830112612b6f57600080fd5b81356020612b7f61285983612a55565b8083825260208201915060208460051b870101935086841115612ba157600080fd5b602086015b84811015612af9578035612bb9816126a5565b8352918301918301612ba6565b60008060408385031215612bd957600080fd5b823567ffffffffffffffff80821115612bf157600080fd5b612bfd86838701612b5e565b93506020850135915080821115612c1357600080fd5b506128ea85828601612b5e565b60008060408385031215612c3357600080fd5b8235612c3e816126a5565b91506020830135612a0f81612a1a565b60008060008060808587031215612c6457600080fd5b8435612c6f816126a5565b93506020850135612c7f816126a5565b925060408501359150606085013567ffffffffffffffff811115612ca257600080fd5b612cae8782880161283a565b91505092959194509250565b600060208284031215612ccc57600080fd5b813567ffffffffffffffff811115612ce357600080fd5b61182c8482850161283a565b600082601f830112612d0057600080fd5b81356020612d1061285983612a55565b8083825260208201915060208460051b870101935086841115612d3257600080fd5b602086015b84811015612af95780358352918301918301612d37565b60008060408385031215612d6157600080fd5b823567ffffffffffffffff80821115612d7957600080fd5b612d8586838701612cef565b93506020850135915080821115612d9b57600080fd5b506128ea85828601612cef565b600060208284031215612dba57600080fd5b67ffffffffffffffff82351115612dd057600080fd5b82601f833584010112612de257600080fd5b612df26128598335840135612a55565b8235830180358083526020808401939260059290921b90910101851015612e1857600080fd5b602084358501015b84358501803560051b016020018110156130c65767ffffffffffffffff81351115612e4a57600080fd5b6040853586018235018703601f19011215612e6457600080fd5b612e6c612795565b67ffffffffffffffff60208335883589010101351115612e8b57600080fd5b612ea3876020843589358a010181810135010161283a565b815267ffffffffffffffff60408335883589010101351115612ec457600080fd5b60408635870183350180820135018803601f19011215612ee357600080fd5b612eeb612795565b67ffffffffffffffff87358801843501604081013501602001351115612f1057600080fd5b86358701833501604081013501602081013501603f81018913612f3257600080fd5b612f426128596020830135612a55565b602082810135808352908201919060051b83016040018b1015612f6457600080fd5b604083015b6040602085013560051b8501018110156130945767ffffffffffffffff81351115612f9357600080fd5b8035840160a0818e03603f19011215612fab57600080fd5b612fb36127be565b612fbf60408301612a28565b815267ffffffffffffffff60608301351115612fda57600080fd5b612fed8e6040606085013585010161283a565b602082015267ffffffffffffffff6080830135111561300b57600080fd5b61301e8e6040608085013585010161283a565b604082015267ffffffffffffffff60a0830135111561303c57600080fd5b61304f8e604060a085013585010161283a565b606082015267ffffffffffffffff60c0830135111561306d57600080fd5b6130808e604060c085013585010161283a565b608082015284525060209283019201612f69565b508352505060408335883589010181810135010135602080830191909152828101919091529084529283019201612e20565b50949350505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561053d5761053d6130cf565b60006001820161310a5761310a6130cf565b5060010190565b600082601f83011261312257600080fd5b815161313061285982612812565b81815284602083860101111561314557600080fd5b61182c8260208301602087016126d7565b8051612a3381612a1a565b60006040828403121561317357600080fd5b61317b612795565b9050815167ffffffffffffffff8082111561319557600080fd5b6131a185838601613111565b83526020915081840151818111156131b857600080fd5b8401604081870312156131ca57600080fd5b6131d2612795565b8151838111156131e157600080fd5b8201601f810188136131f257600080fd5b805161320061285982612a55565b81815260059190911b8201860190868101908a83111561321f57600080fd5b8784015b8381101561330c5780518881111561323a57600080fd5b850160a0818e03601f1901121561325057600080fd5b6132586127be565b6132638b8301613156565b815260408201518a81111561327757600080fd5b6132858f8d83860101613111565b8c8301525060608201518a81111561329c57600080fd5b6132aa8f8d83860101613111565b60408301525060808201518a8111156132c35760008081fd5b6132d18f8d83860101613111565b60608301525060a08201518a8111156132ea5760008081fd5b6132f88f8d83860101613111565b608083015250845250918801918801613223565b5084525050509083015183820152918301919091525092915050565b6000806040838503121561333b57600080fd5b825167ffffffffffffffff81111561335257600080fd5b61335e85828601613161565b9250506020830151612a0f816126a5565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561339757600080fd5b815167ffffffffffffffff8111156133ae57600080fd5b61182c84828501613161565b600181811c908216806133ce57607f821691505b6020821081036133ee57634e487b7160e01b600052602260045260246000fd5b50919050565b7f417373657274696f6e4572726f723a200000000000000000000000000000000081526000835161342c8160108501602088016126d7565b7f206973206e6f7420657175616c20746f2000000000000000000000000000000060109184019182015283516134698160218401602088016126d7565b01602101949350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b828110156134cc57603f198886030184526134ba8583516126fb565b9450928501929085019060010161349e565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561351a5783516001600160a01b0316835292840192918401916001016134f5565b50909695505050505050565b7f417373657274696f6e4572726f723a200000000000000000000000000000000081527f20426f74682076616c75657320617265000000000000000000000000000000006010820152600082516135848160208501602087016126d7565b9190910160200192915050565b601f821115610a06576000816000526020600020601f850160051c810160208610156135ba5750805b601f850160051c820191505b818110156135d9578281556001016135c6565b505050505050565b815167ffffffffffffffff8111156135fb576135fb61277f565b61360f8161360984546133ba565b84613591565b602080601f831160018114613644576000841561362c5750858301515b600019600386901b1c1916600185901b1785556135d9565b600085815260208120601f198616915b8281101561367357888601518255948401946001909101908401613654565b50858210156136915787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252825182820181905260009190848201906040850190845b8181101561351a578351835292840192918401916001016136bd565b600060608083016001600160a01b038716845260208615158186015260406060604087015282875180855260808801915060808160051b89010194508389016000805b838110156137bc578a8803607f1901855282518051878a52613740888b01826126fb565b918901518a83038b8b0152805189845280518a850181905291939250600582901b83018d0191908b01908d840190875b8181101561379e57605f1986860301835261378c8585516128f4565b9450928d0192918d0191600101613770565b5050505091890151908901529750938601939186019160010161371c565b50959c9b505050505050505050505050565b808202811582820484141761053d5761053d6130cf565b6000816137f4576137f46130cf565b506000190190565b8181038181111561053d5761053d6130cf565b600083516138218184602088016126d7565b8351908301906138358183602088016126d7565b7f2c200000000000000000000000000000000000000000000000000000000000009101908152600201949350505050565b600083516138788184602088016126d7565b83519083019061388c8183602088016126d7565b7f5d000000000000000000000000000000000000000000000000000000000000009101908152600101949350505050565b60006001600160a01b038087168352808616602084015250836040830152608060608301526138ef60808301846126fb565b9695505050505050565b60006020828403121561390b57600080fd5b8151611cc88161267256fe417373657274696f6e4572726f723a20726573756c74206973206e6f742066616c7365417373657274696f6e4572726f723a20726573756c74206973206e6f742074727565a26469706673582212208b9549de1e6e93a6f1547889c8fb53fe1497764005c1bbcf01a869dd01a09ccc64736f6c63430008170033608060405234801561001057600080fd5b50611f77806100206000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80634b64e4921161008157806374f130701161005b57806374f1307014610176578063d70968e714610189578063e7da4c7e1461019c57600080fd5b80634b64e4921461013057806360fb55d5146101505780636df864781461016357600080fd5b806331495d33116100b257806331495d331461010a578063410dbb8b1461011d57806346bdca9a146100ce57600080fd5b8063235266d2146100ce57806330191626146100f7575b600080fd5b6100e16100dc366004611647565b6101af565b6040516100ee9190611772565b60405180910390f35b6100e161010536600461178c565b61025e565b6100e16101183660046117ca565b610318565b6100e161012b3660046117fd565b6103e9565b61014361013e36600461181f565b6104e9565b6040516100ee919061183a565b6100e161015e366004611987565b610856565b6100e1610171366004611a47565b610932565b6100e16101843660046117fd565b610a0e565b6100e16101973660046117ca565b610b0f565b6100e16101aa366004611b00565b610bd6565b6101e36040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b815160208084019190912084519185019190912014808252610228578282604051602001610212929190611b5a565b60408051601f1981840301815291905260208201525b604080820193909352606081019190915281518083019092526005825264195c5d585b60da1b6020830152608081019190915290565b6102926040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8282148082526102d5576102a583610cb2565b6102ae83610cb2565b6040516020016102bf929190611b5a565b60408051601f1981840301815291905260208201525b6102de83610cb2565b60408201526102ec82610cb2565b6060820152604080518082019091526005815264195c5d585b60da1b6020820152608082015292915050565b61034c6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b6001600160a01b038381169083168114825260009061036c906014610d52565b90506000610384846001600160a01b03166014610d52565b83519091506103b65781816040516020016103a0929190611b5a565b60408051601f1981840301815291905260208401525b604080840192909252606083015280518082019091526005815264195c5d585b60da1b6020820152608082015292915050565b61041d6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b811580825261044557604051806060016040528060238152602001611edb6023913960208201525b600182151514610472576040518060400160405280600581526020016466616c736560d81b815250610490565b604051806040016040528060048152602001637472756560e01b8152505b6040808301919091528051602080820183526000825260608401919091528151808301909252600782527f697346616c736500000000000000000000000000000000000000000000000000908201526080820152919050565b6104f161155c565b816104fa61155c565b6105078160200151610f5a565b50604051806060016040528060298152602001611eb26029913981600001819052506000826001600160a01b03166318160ddd6040518163ffffffff1660e01b81526004016020604051808303816000875af115801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f9190611bdb565b905060008061059d85610fd6565b915091508015610635576040805160a081018252600080825282518084018452601481527f43616c6c20746f20636c61696d206661696c6564000000000000000000000000602082810191909152808401919091528351808201855282815283850152835180820185528281526060840152835180820190945290835260808201929092529085015161062f9161107d565b506106d2565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526106d0906106c5906001600160a01b038816906370a0823190602401602060405180830381865afa15801561069a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106be9190611bdb565b606461025e565b60208601519061107d565b505b6106db85610fd6565b90925090508061075c576107566040518060a00160405280600015158152602001604051806060016040528060228152602001611f206022913981526040805160208181018352600080835281850192909252825180820184528281528385015282518082019093529082526060909201528601519061107d565b506107c4565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0b1327a6000000000000000000000000000000000000000000000000000000001790526107c2906106c59084906101af565b505b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082a9190611bdb565b905061084961083e82610105876064611c0a565b60208701519061107d565b5093979650505050505050565b61088a6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8160405160200161089b9190611c1d565b60405160208183030381529060405280519060200120836040516020016108c29190611c1d565b60408051601f1981840301815291905280516020909101201480825261091b576108eb836110ed565b6108f4836110ed565b604051602001610905929190611b5a565b60408051601f1981840301815291905260208201525b610924836110ed565b60408201526102ec826110ed565b6109666040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b816040516020016109779190611c81565b604051602081830303815290604052805190602001208360405160200161099e9190611c81565b60408051601f198184030181529190528051602090910120148082526109f7576109c7836111b8565b6109d0836111b8565b6040516020016109e1929190611b5a565b60408051601f1981840301815291905260208201525b610a00836111b8565b60408201526102ec826111b8565b610a426040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b811515808252610a6b57604051806060016040528060228152602001611efe6022913960208201525b600182151514610a98576040518060400160405280600581526020016466616c736560d81b815250610ab6565b604051806040016040528060048152602001637472756560e01b8152505b6040808301919091528051602080820183526000825260608401919091528151808301909252600682527f6973547275650000000000000000000000000000000000000000000000000000908201526080820152919050565b610b436040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b6001600160a01b038381169083168114158252600090610b64906014610d52565b8251909150610b945780604051602001610b7e9190611cce565b60408051601f1981840301815291905260208301525b60408083019190915280516020808201835260008252606084019190915281518083019092526005825264195c5d585b60da1b90820152608082015292915050565b610c0a6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b81604051602001610c1b9190611d39565b6040516020818303038152906040528051906020012083604051602001610c429190611d39565b60408051601f19818403018152919052805160209091012014808252610c9b57610c6b8361128a565b610c748361128a565b604051602001610c85929190611b5a565b60408051601f1981840301815291905260208201525b610ca48361128a565b60408201526102ec8261128a565b60606000610cbf83611351565b600101905060008167ffffffffffffffff811115610cdf57610cdf611590565b6040519080825280601f01601f191660200182016040528015610d09576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610d1357509392505050565b60606000610d61836002611d71565b610d6c906002611c0a565b67ffffffffffffffff811115610d8457610d84611590565b6040519080825280601f01601f191660200182016040528015610dae576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610de557610de5611d88565b60200101906001600160f81b031916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610e3057610e30611d88565b60200101906001600160f81b031916908160001a9053506000610e54846002611d71565b610e5f906001611c0a565b90505b6001811115610ee4577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110610ea057610ea0611d88565b1a60f81b828281518110610eb657610eb6611d88565b60200101906001600160f81b031916908160001a90535060049490941c93610edd81611d9e565b9050610e62565b508315610f51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640160405180910390fd5b90505b92915050565b60408051808201825260608152600060208201528151600480825260a082019093529091816020015b610fb76040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b815260200190600190039081610f835750508252506000602082015290565b60606000826001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561101557600080fd5b505af1925050508015611026575060015b611064573d808015611054576040519150601f19603f3d011682016040523d82523d6000602084013e611059565b606091505b509360019350915050565b5050604080516020810190915260008082529092909150565b6040805180820190915260608152600060208201528251516020840151036110ab576110a883611433565b92505b8183600001518460200151815181106110c6576110c6611d88565b60200260200101819052508260200180518091906110e390611db5565b9052509192915050565b6040805180820190915260018152605b60f81b602082015260609060005b83518110156111b157600184516111229190611dce565b81101561116b578184828151811061113c5761113c611d88565b6020026020010151604051602001611155929190611de1565b60405160208183030381529060405291506111a9565b8184828151811061117e5761117e611d88565b6020026020010151604051602001611197929190611e38565b60405160208183030381529060405291505b60010161110b565b5092915050565b6040805180820190915260018152605b60f81b602082015260609060005b83518110156111b157600184516111ed9190611dce565b811015611249578161122285838151811061120a5761120a611d88565b60200260200101516001600160a01b03166014610d52565b604051602001611233929190611de1565b6040516020818303038152906040529150611282565b8161125f85838151811061120a5761120a611d88565b604051602001611270929190611e38565b60405160208183030381529060405291505b6001016111d6565b6040805180820190915260018152605b60f81b602082015260609060005b83518110156111b157600184516112bf9190611dce565b81101561131057816112e98583815181106112dc576112dc611d88565b6020026020010151610cb2565b6040516020016112fa929190611de1565b6040516020818303038152906040529150611349565b816113268583815181106112dc576112dc611d88565b604051602001611337929190611e38565b60405160208183030381529060405291505b6001016112a8565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061139a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106113c6576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106113e457662386f26fc10000830492506010015b6305f5e10083106113fc576305f5e100830492506008015b612710831061141057612710830492506004015b60648310611422576064830492506002015b600a8310610f545760010192915050565b60408051808201909152606081526000602082015260408051808201909152606081526000602082015282515160029061146e906003611d71565b6114789190611e8f565b67ffffffffffffffff81111561149057611490611590565b6040519080825280602002602001820160405280156114f557816020015b6114e26040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8152602001906001900390816114ae5790505b50815260005b83515181101561154a57835180518290811061151957611519611d88565b60200260200101518260000151828151811061153757611537611d88565b60209081029190910101526001016114fb565b50602092830151928101929092525090565b60405180604001604052806060815260200161158b604051806040016040528060608152602001600081525090565b905290565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156115cf576115cf611590565b604052919050565b600082601f8301126115e857600080fd5b813567ffffffffffffffff81111561160257611602611590565b611615601f8201601f19166020016115a6565b81815284602083860101111561162a57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561165a57600080fd5b823567ffffffffffffffff8082111561167257600080fd5b61167e868387016115d7565b9350602085013591508082111561169457600080fd5b506116a1858286016115d7565b9150509250929050565b60005b838110156116c65781810151838201526020016116ae565b50506000910152565b600081518084526116e78160208601602086016116ab565b601f01601f19169290920160200192915050565b8051151582526000602082015160a0602085015261171c60a08501826116cf565b90506040830151848203604086015261173582826116cf565b9150506060830151848203606086015261174f82826116cf565b9150506080830151848203608086015261176982826116cf565b95945050505050565b60208152600061178560208301846116fb565b9392505050565b6000806040838503121561179f57600080fd5b50508035926020909101359150565b80356001600160a01b03811681146117c557600080fd5b919050565b600080604083850312156117dd57600080fd5b6117e6836117ae565b91506117f4602084016117ae565b90509250929050565b60006020828403121561180f57600080fd5b81358015158114610f5157600080fd5b60006020828403121561183157600080fd5b611785826117ae565b60006020808352835160408285015261185660608501826116cf565b905081850151601f198583030160408601526040820181516040845281815180845260608601915060608160051b8701019350868301925060005b818110156118bf57605f198786030183526118ad8585516116fb565b94509287019291870191600101611891565b505050509083015191909201529392505050565b600067ffffffffffffffff8211156118ed576118ed611590565b5060051b60200190565b600082601f83011261190857600080fd5b8135602061191d611918836118d3565b6115a6565b82815260059290921b8401810191818101908684111561193c57600080fd5b8286015b8481101561197c57803567ffffffffffffffff8111156119605760008081fd5b61196e8986838b01016115d7565b845250918301918301611940565b509695505050505050565b6000806040838503121561199a57600080fd5b823567ffffffffffffffff808211156119b257600080fd5b6119be868387016118f7565b935060208501359150808211156119d457600080fd5b506116a1858286016118f7565b600082601f8301126119f257600080fd5b81356020611a02611918836118d3565b8083825260208201915060208460051b870101935086841115611a2457600080fd5b602086015b8481101561197c57611a3a816117ae565b8352918301918301611a29565b60008060408385031215611a5a57600080fd5b823567ffffffffffffffff80821115611a7257600080fd5b611a7e868387016119e1565b93506020850135915080821115611a9457600080fd5b506116a1858286016119e1565b600082601f830112611ab257600080fd5b81356020611ac2611918836118d3565b8083825260208201915060208460051b870101935086841115611ae457600080fd5b602086015b8481101561197c5780358352918301918301611ae9565b60008060408385031215611b1357600080fd5b823567ffffffffffffffff80821115611b2b57600080fd5b611b3786838701611aa1565b93506020850135915080821115611b4d57600080fd5b506116a185828601611aa1565b7f417373657274696f6e4572726f723a2000000000000000000000000000000000815260008351611b928160108501602088016116ab565b7f206973206e6f7420657175616c20746f200000000000000000000000000000006010918401918201528351611bcf8160218401602088016116ab565b01602101949350505050565b600060208284031215611bed57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610f5457610f54611bf4565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015611c7457603f19888603018452611c628583516116cf565b94509285019290850190600101611c46565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611cc25783516001600160a01b031683529284019291840191600101611c9d565b50909695505050505050565b7f417373657274696f6e4572726f723a200000000000000000000000000000000081527f20426f74682076616c7565732061726500000000000000000000000000000000601082015260008251611d2c8160208501602087016116ab565b9190910160200192915050565b6020808252825182820181905260009190848201906040850190845b81811015611cc257835183529284019291840191600101611d55565b8082028115828204841417610f5457610f54611bf4565b634e487b7160e01b600052603260045260246000fd5b600081611dad57611dad611bf4565b506000190190565b600060018201611dc757611dc7611bf4565b5060010190565b81810381811115610f5457610f54611bf4565b60008351611df38184602088016116ab565b835190830190611e078183602088016116ab565b7f2c200000000000000000000000000000000000000000000000000000000000009101908152600201949350505050565b60008351611e4a8184602088016116ab565b835190830190611e5e8183602088016116ab565b7f5d000000000000000000000000000000000000000000000000000000000000009101908152600101949350505050565b600082611eac57634e487b7160e01b600052601260045260246000fd5b50049056fe557365722073686f756c642062652061626c6520746f20636c61696d2065786163746c79206f6e6365417373657274696f6e4572726f723a20726573756c74206973206e6f742066616c7365417373657274696f6e4572726f723a20726573756c74206973206e6f742074727565457870656374656420726576657274207769746820546f6b656e73436c61696d6564a2646970667358221220b9fd85b528d799e19ec615b65bfdd43abc11ea313338ec04bedfdd923596c9db64736f6c63430008170033608060405234801561001057600080fd5b506040516120eb3803806120eb83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b612058806100936000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80634b64e4921161008157806374f130701161005b57806374f1307014610176578063d70968e714610189578063e7da4c7e1461019c57600080fd5b80634b64e4921461013057806360fb55d5146101505780636df864781461016357600080fd5b806331495d33116100b257806331495d331461010a578063410dbb8b1461011d57806346bdca9a146100ce57600080fd5b8063235266d2146100ce57806330191626146100f7575b600080fd5b6100e16100dc36600461168c565b6101af565b6040516100ee91906117b7565b60405180910390f35b6100e16101053660046117d1565b61025e565b6100e161011836600461180f565b610318565b6100e161012b366004611853565b6103e9565b61014361013e366004611870565b6104e9565b6040516100ee919061188b565b6100e161015e3660046119d3565b610934565b6100e1610171366004611a93565b610a10565b6100e1610184366004611853565b610aec565b6100e161019736600461180f565b610bed565b6100e16101aa366004611b4c565b610cb4565b6101e36040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b815160208084019190912084519185019190912014808252610228578282604051602001610212929190611ba6565b60408051601f1981840301815291905260208201525b604080820193909352606081019190915281518083019092526005825264195c5d585b60da1b6020830152608081019190915290565b6102926040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8282148082526102d5576102a583610d90565b6102ae83610d90565b6040516020016102bf929190611ba6565b60408051601f1981840301815291905260208201525b6102de83610d90565b60408201526102ec82610d90565b6060820152604080518082019091526005815264195c5d585b60da1b6020820152608082015292915050565b61034c6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b6001600160a01b038381169083168114825260009061036c906014610e30565b90506000610384846001600160a01b03166014610e30565b83519091506103b65781816040516020016103a0929190611ba6565b60408051601f1981840301815291905260208401525b604080840192909252606083015280518082019091526005815264195c5d585b60da1b6020820152608082015292915050565b61041d6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b811580825261044557604051806060016040528060238152602001611f8c6023913960208201525b600182151514610472576040518060400160405280600581526020016466616c736560d81b815250610490565b604051806040016040528060048152602001637472756560e01b8152505b6040808301919091528051602080820183526000825260608401919091528151808301909252600782527f697346616c736500000000000000000000000000000000000000000000000000908201526080820152919050565b6104f1611593565b816104fa611593565b6105078160200151611038565b50604051806060016040528060308152602001611fd16030913981600001819052506000826001600160a01b03166318160ddd6040518163ffffffff1660e01b81526004016020604051808303816000875af115801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f9190611c27565b60008054604051630f41a04d60e11b81526001600160a01b03878116600483015293945091928392911690631e83409a906024016000604051808303816000875af11580156105e2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261060a9190810190611c40565b9150915080156106a2576040805160a081018252600080825282518084018452601481527f43616c6c20746f20636c61696d206661696c6564000000000000000000000000602082810191909152808401919091528351808201855282815283850152835180820185528281526060840152835180820190945290835260808201929092529085015161069c916110b4565b50610745565b6000546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526107439161073891908816906370a0823190602401602060405180830381865afa15801561070d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107319190611c27565b606461025e565b6020860151906110b4565b505b600054604051630f41a04d60e11b81526001600160a01b03878116600483015290911690631e83409a906024016000604051808303816000875af1158015610791573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107b99190810190611c40565b90925090508061083a576108346040518060a00160405280600015158152602001604051806060016040528060228152602001612001602291398152604080516020818101835260008083528185019290925282518082018452828152838501528251808201909352908252606090920152860151906110b4565b506108a2565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0b1327a6000000000000000000000000000000000000000000000000000000001790526108a0906107389084906101af565b505b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156108e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109089190611c27565b905061092761091c82610105876064611ce4565b6020870151906110b4565b5093979650505050505050565b6109686040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b816040516020016109799190611cf7565b60405160208183030381529060405280519060200120836040516020016109a09190611cf7565b60408051601f198184030181529190528051602090910120148082526109f9576109c983611124565b6109d283611124565b6040516020016109e3929190611ba6565b60408051601f1981840301815291905260208201525b610a0283611124565b60408201526102ec82611124565b610a446040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b81604051602001610a559190611d5b565b6040516020818303038152906040528051906020012083604051602001610a7c9190611d5b565b60408051601f19818403018152919052805160209091012014808252610ad557610aa5836111ef565b610aae836111ef565b604051602001610abf929190611ba6565b60408051601f1981840301815291905260208201525b610ade836111ef565b60408201526102ec826111ef565b610b206040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b811515808252610b4957604051806060016040528060228152602001611faf6022913960208201525b600182151514610b76576040518060400160405280600581526020016466616c736560d81b815250610b94565b604051806040016040528060048152602001637472756560e01b8152505b6040808301919091528051602080820183526000825260608401919091528151808301909252600682527f6973547275650000000000000000000000000000000000000000000000000000908201526080820152919050565b610c216040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b6001600160a01b038381169083168114158252600090610c42906014610e30565b8251909150610c725780604051602001610c5c9190611da8565b60408051601f1981840301815291905260208301525b60408083019190915280516020808201835260008252606084019190915281518083019092526005825264195c5d585b60da1b90820152608082015292915050565b610ce86040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b81604051602001610cf99190611e13565b6040516020818303038152906040528051906020012083604051602001610d209190611e13565b60408051601f19818403018152919052805160209091012014808252610d7957610d49836112c1565b610d52836112c1565b604051602001610d63929190611ba6565b60408051601f1981840301815291905260208201525b610d82836112c1565b60408201526102ec826112c1565b60606000610d9d83611388565b600101905060008167ffffffffffffffff811115610dbd57610dbd6115c7565b6040519080825280601f01601f191660200182016040528015610de7576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610df157509392505050565b60606000610e3f836002611e4b565b610e4a906002611ce4565b67ffffffffffffffff811115610e6257610e626115c7565b6040519080825280601f01601f191660200182016040528015610e8c576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610ec357610ec3611e62565b60200101906001600160f81b031916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610f0e57610f0e611e62565b60200101906001600160f81b031916908160001a9053506000610f32846002611e4b565b610f3d906001611ce4565b90505b6001811115610fc2577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110610f7e57610f7e611e62565b1a60f81b828281518110610f9457610f94611e62565b60200101906001600160f81b031916908160001a90535060049490941c93610fbb81611e78565b9050610f40565b50831561102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640160405180910390fd5b90505b92915050565b60408051808201825260608152600060208201528151600480825260a082019093529091816020015b6110956040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8152602001906001900390816110615750508252506000602082015290565b6040805180820190915260608152600060208201528251516020840151036110e2576110df8361146a565b92505b8183600001518460200151815181106110fd576110fd611e62565b602002602001018190525082602001805180919061111a90611e8f565b9052509192915050565b6040805180820190915260018152605b60f81b602082015260609060005b83518110156111e857600184516111599190611ea8565b8110156111a2578184828151811061117357611173611e62565b602002602001015160405160200161118c929190611ebb565b60405160208183030381529060405291506111e0565b818482815181106111b5576111b5611e62565b60200260200101516040516020016111ce929190611f12565b60405160208183030381529060405291505b600101611142565b5092915050565b6040805180820190915260018152605b60f81b602082015260609060005b83518110156111e857600184516112249190611ea8565b811015611280578161125985838151811061124157611241611e62565b60200260200101516001600160a01b03166014610e30565b60405160200161126a929190611ebb565b60405160208183030381529060405291506112b9565b8161129685838151811061124157611241611e62565b6040516020016112a7929190611f12565b60405160208183030381529060405291505b60010161120d565b6040805180820190915260018152605b60f81b602082015260609060005b83518110156111e857600184516112f69190611ea8565b811015611347578161132085838151811061131357611313611e62565b6020026020010151610d90565b604051602001611331929190611ebb565b6040516020818303038152906040529150611380565b8161135d85838151811061131357611313611e62565b60405160200161136e929190611f12565b60405160208183030381529060405291505b6001016112df565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106113d1577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106113fd576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061141b57662386f26fc10000830492506010015b6305f5e1008310611433576305f5e100830492506008015b612710831061144757612710830492506004015b60648310611459576064830492506002015b600a83106110325760010192915050565b6040805180820190915260608152600060208201526040805180820190915260608152600060208201528251516002906114a5906003611e4b565b6114af9190611f69565b67ffffffffffffffff8111156114c7576114c76115c7565b60405190808252806020026020018201604052801561152c57816020015b6115196040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8152602001906001900390816114e55790505b50815260005b83515181101561158157835180518290811061155057611550611e62565b60200260200101518260000151828151811061156e5761156e611e62565b6020908102919091010152600101611532565b50602092830151928101929092525090565b6040518060400160405280606081526020016115c2604051806040016040528060608152602001600081525090565b905290565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611606576116066115c7565b604052919050565b600067ffffffffffffffff821115611628576116286115c7565b50601f01601f191660200190565b600082601f83011261164757600080fd5b813561165a6116558261160e565b6115dd565b81815284602083860101111561166f57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561169f57600080fd5b823567ffffffffffffffff808211156116b757600080fd5b6116c386838701611636565b935060208501359150808211156116d957600080fd5b506116e685828601611636565b9150509250929050565b60005b8381101561170b5781810151838201526020016116f3565b50506000910152565b6000815180845261172c8160208601602086016116f0565b601f01601f19169290920160200192915050565b8051151582526000602082015160a0602085015261176160a0850182611714565b90506040830151848203604086015261177a8282611714565b915050606083015184820360608601526117948282611714565b915050608083015184820360808601526117ae8282611714565b95945050505050565b6020815260006117ca6020830184611740565b9392505050565b600080604083850312156117e457600080fd5b50508035926020909101359150565b80356001600160a01b038116811461180a57600080fd5b919050565b6000806040838503121561182257600080fd5b61182b836117f3565b9150611839602084016117f3565b90509250929050565b801515811461185057600080fd5b50565b60006020828403121561186557600080fd5b813561102f81611842565b60006020828403121561188257600080fd5b6117ca826117f3565b6000602080835283516040828501526118a76060850182611714565b905081850151601f198583030160408601526040820181516040845281815180845260608601915060608160051b8701019350868301925060005b8181101561191057605f198786030183526118fe858551611740565b945092870192918701916001016118e2565b505050509083015191909201529392505050565b600067ffffffffffffffff82111561193e5761193e6115c7565b5060051b60200190565b600082601f83011261195957600080fd5b8135602061196961165583611924565b82815260059290921b8401810191818101908684111561198857600080fd5b8286015b848110156119c857803567ffffffffffffffff8111156119ac5760008081fd5b6119ba8986838b0101611636565b84525091830191830161198c565b509695505050505050565b600080604083850312156119e657600080fd5b823567ffffffffffffffff808211156119fe57600080fd5b611a0a86838701611948565b93506020850135915080821115611a2057600080fd5b506116e685828601611948565b600082601f830112611a3e57600080fd5b81356020611a4e61165583611924565b8083825260208201915060208460051b870101935086841115611a7057600080fd5b602086015b848110156119c857611a86816117f3565b8352918301918301611a75565b60008060408385031215611aa657600080fd5b823567ffffffffffffffff80821115611abe57600080fd5b611aca86838701611a2d565b93506020850135915080821115611ae057600080fd5b506116e685828601611a2d565b600082601f830112611afe57600080fd5b81356020611b0e61165583611924565b8083825260208201915060208460051b870101935086841115611b3057600080fd5b602086015b848110156119c85780358352918301918301611b35565b60008060408385031215611b5f57600080fd5b823567ffffffffffffffff80821115611b7757600080fd5b611b8386838701611aed565b93506020850135915080821115611b9957600080fd5b506116e685828601611aed565b7f417373657274696f6e4572726f723a2000000000000000000000000000000000815260008351611bde8160108501602088016116f0565b7f206973206e6f7420657175616c20746f200000000000000000000000000000006010918401918201528351611c1b8160218401602088016116f0565b01602101949350505050565b600060208284031215611c3957600080fd5b5051919050565b60008060408385031215611c5357600080fd5b825167ffffffffffffffff811115611c6a57600080fd5b8301601f81018513611c7b57600080fd5b8051611c896116558261160e565b818152866020838501011115611c9e57600080fd5b611caf8260208301602086016116f0565b8094505050506020830151611cc381611842565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561103257611032611cce565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015611d4e57603f19888603018452611d3c858351611714565b94509285019290850190600101611d20565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611d9c5783516001600160a01b031683529284019291840191600101611d77565b50909695505050505050565b7f417373657274696f6e4572726f723a200000000000000000000000000000000081527f20426f74682076616c7565732061726500000000000000000000000000000000601082015260008251611e068160208501602087016116f0565b9190910160200192915050565b6020808252825182820181905260009190848201906040850190845b81811015611d9c57835183529284019291840191600101611e2f565b808202811582820484141761103257611032611cce565b634e487b7160e01b600052603260045260246000fd5b600081611e8757611e87611cce565b506000190190565b600060018201611ea157611ea1611cce565b5060010190565b8181038181111561103257611032611cce565b60008351611ecd8184602088016116f0565b835190830190611ee18183602088016116f0565b7f2c200000000000000000000000000000000000000000000000000000000000009101908152600201949350505050565b60008351611f248184602088016116f0565b835190830190611f388183602088016116f0565b7f5d000000000000000000000000000000000000000000000000000000000000009101908152600101949350505050565b600082611f8657634e487b7160e01b600052601260045260246000fd5b50049056fe417373657274696f6e4572726f723a20726573756c74206973206e6f742066616c7365417373657274696f6e4572726f723a20726573756c74206973206e6f7420747275655365636f6e6420757365722073686f756c642062652061626c6520746f20636c61696d2065786163746c79206f6e6365457870656374656420726576657274207769746820546f6b656e73436c61696d6564a26469706673582212206c87b9d4638fcdb28da8da741534c63285de096bbd7e1a42f08b5d38b0bda5bc64736f6c6343000817003360806040523480156200001157600080fd5b5060405162002fea38038062002fea833981016040819052620000349162000094565b600080546001600160a01b039485166001600160a01b031991821617909155600180549385169382169390931790925560028054919093169116179055620000de565b80516001600160a01b03811681146200008f57600080fd5b919050565b600080600060608486031215620000aa57600080fd5b620000b58462000077565b9250620000c56020850162000077565b9150620000d56040850162000077565b90509250925092565b612efc80620000ee6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80634b64e4921161008157806374f130701161005b57806374f1307014610176578063d70968e714610189578063e7da4c7e1461019c57600080fd5b80634b64e4921461013057806360fb55d5146101505780636df864781461016357600080fd5b806331495d33116100b257806331495d331461010a578063410dbb8b1461011d57806346bdca9a146100ce57600080fd5b8063235266d2146100ce57806330191626146100f7575b600080fd5b6100e16100dc36600461231d565b6101af565b6040516100ee9190612448565b60405180910390f35b6100e1610105366004612462565b61025e565b6100e161011836600461249c565b610318565b6100e161012b3660046124e3565b6103e9565b61014361013e366004612500565b6104e9565b6040516100ee919061251d565b6100e161015e366004612665565b6111e1565b6100e1610171366004612727565b6112bd565b6100e16101843660046124e3565b611399565b6100e161019736600461249c565b61149a565b6100e16101aa3660046127e0565b611561565b6101e36040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b81516020808401919091208451918501919091201480825261022857828260405160200161021292919061283a565b60408051601f1981840301815291905260208201525b604080820193909352606081019190915281518083019092526005825264195c5d585b60da1b6020830152608081019190915290565b6102926040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8282148082526102d5576102a58361163d565b6102ae8361163d565b6040516020016102bf92919061283a565b60408051601f1981840301815291905260208201525b6102de8361163d565b60408201526102ec8261163d565b6060820152604080518082019091526005815264195c5d585b60da1b6020820152608082015292915050565b61034c6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b6001600160a01b038381169083168114825260009061036c9060146116dd565b90506000610384846001600160a01b031660146116dd565b83519091506103b65781816040516020016103a092919061283a565b60408051601f1981840301815291905260208401525b604080840192909252606083015280518082019091526005815264195c5d585b60da1b6020820152608082015292915050565b61041d6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b811580825261044557604051806060016040528060238152602001612e546023913960208201525b600182151514610472576040518060400160405280600581526020016466616c736560d81b815250610490565b604051806040016040528060048152602001637472756560e01b8152505b6040808301919091528051602080820183526000825260608401919091528151808301909252600782527f697346616c736500000000000000000000000000000000000000000000000000908201526080820152919050565b6104f16121fa565b816104fa6121fa565b61050781602001516118e5565b50604051806060016040528060288152602001612e2c6028913981600001819052506000806000610570856040518060400160405280601c81526020017f57652073686f756c6420616c6c206c6561726e20466f727472616e210000000081525061012c611961565b925092509250816105f2576105ec6040518060a001604052806000151581526020016040518060600160405280602e8152602001612e99602e9139815260408051602081810183526000808352818501929092528251808201845282815283850152825180820190935290825260609092015286015190611a33565b50610665565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8439960d00000000000000000000000000000000000000000000000000000000179052610663906106589085906101af565b602086015190611a33565b505b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156106a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cb91906128bb565b90506106d686611aa3565b9094509250821561076b576040805160a081018252600080825282518084018452601481527f43616c6c20746f20636c61696d206661696c6564000000000000000000000000602082810191909152808401919091528351808201855282815283850152835180820185528281526060840152835180820190945290835260808201929092529086015161076991611a33565b505b600154604051630f41a04d60e11b81526001600160a01b03888116600483015290911690631e83409a906024016000604051808303816000875af11580156107b7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107df9190810190612931565b90945092508215610874576040805160a081018252600080825282518084018452601481527f43616c6c20746f20636c61696d206661696c6564000000000000000000000000602082810191909152808401919091528351808201855282815283850152835180820185528281526060840152835180820190945290835260808201929092529086015161087291611a33565b505b600254604051630f41a04d60e11b81526001600160a01b03888116600483015290911690631e83409a906024016000604051808303816000875af11580156108c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108e89190810190612931565b9094509250821561097d576040805160a081018252600080825282518084018452601481527f43616c6c20746f20636c61696d206661696c6564000000000000000000000000602082810191909152808401919091528351808201855282815283850152835180820185528281526060840152835180820190945290835260808201929092529086015161097b91611a33565b505b6002546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152603260248201529087169063a9059cbb90604401600060405180830381600087803b1580156109e457600080fd5b505af11580156109f8573d6000803e3d6000fd5b505050506000866001600160a01b03166318160ddd6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6291906128bb565b9050610a82610a77826101058561012c61298e565b602088015190611a33565b50610ac5876040518060400160405280601d81526020017f57652073686f756c6420616c6c206c6561726e20536f6c696469747921000000815250610190611961565b919650945092508315610b5c576040805160a081018252600080825282518084018452601a81527f43616c6c20746f206372656174654973737565206661696c65640000000000006020828101919091528084019190915283518082018552828152838501528351808201855282815260608401528351808201909452908352608082019290925290870151610b5a91611a33565b505b610b6887846001611b4a565b90955093508315610bf3576040805160a081018252600080825282518084018452601381527210d85b1b081d1bc81d9bdd194819985a5b1959606a1b6020828101919091528084019190915283518082018552828152838501528351808201855282815260608401528351808201909452908352608082019290925290870151610bf191611a33565b505b610bff87846001611b4a565b909550935083610c8057610c7a6040518060a00160405280600015158152602001604051806060016040528060278152602001612e0560279139815260408051602081810183526000808352818501929092528251808201845282815283850152825180820190935290825260609092015288015190611a33565b50610ce8565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7c9a1cf900000000000000000000000000000000000000000000000000000000179052610ce690610a779087906101af565b505b60008054604051636a348b7b60e01b81526001600160a01b0390911691636a348b7b91610d1c918b918891906004016129c3565b6000604051808303816000875af1158015610d3b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d639190810190612931565b90955093508315610dee576040805160a081018252600080825282518084018452601381527210d85b1b081d1bc81d9bdd194819985a5b1959606a1b6020828101919091528084019190915283518082018552828152838501528351808201855282815260608401528351808201909452908352608082019290925290870151610dec91611a33565b505b60018054604051636a348b7b60e01b81526001600160a01b0390911691636a348b7b91610e22918b918891906004016129c3565b6000604051808303816000875af1158015610e41573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e699190810190612931565b90955093508315610ef4576040805160a081018252600080825282518084018452601381527210d85b1b081d1bc81d9bdd194819985a5b1959606a1b6020828101919091528084019190915283518082018552828152838501528351808201855282815260608401528351808201909452908352608082019290925290870151610ef291611a33565b505b60028054604051636a348b7b60e01b81526001600160a01b0390911691636a348b7b91610f28918b918891906004016129c3565b6000604051808303816000875af1158015610f47573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f6f9190810190612931565b90955093508315610ffa576040805160a081018252600080825282518084018452601381527210d85b1b081d1bc81d9bdd194819985a5b1959606a1b6020828101919091528084019190915283518082018552828152838501528351808201855282815260608401528351808201909452908352608082019290925290870151610ff891611a33565b505b61104d604051806101200160405280606081526020016060815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6110578885611c01565b9197509550905084156110e8576040805160a081018252600080825282518084018452601381527210d85b1b081d1bc81d9bdd194819985a5b1959606a1b60208281019190915280840191909152835180820185528281528385015283518082018552828152606084015283518082019094529083526080820192909252908801516110e291611a33565b506111d3565b6111066110fb826000015151600461025e565b602089015190611a33565b5061114d6110fb82602001516040518060400160405280601d81526020017f57652073686f756c6420616c6c206c6561726e20536f6c6964697479210000008152506101af565b506111606110fb8260400151609661025e565b506111736110fb8260600151606461025e565b506111866110fb8260800151609661025e565b5061119a6110fb8260a0015161019061025e565b506111ae6110fb8260c0015161019061025e565b506111c06110fb826101000151611399565b506111d16110fb8260e00151611399565b505b509498975050505050505050565b6112156040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8160405160200161122691906129e7565b604051602081830303815290604052805190602001208360405160200161124d91906129e7565b60408051601f198184030181529190528051602090910120148082526112a65761127683611d8b565b61127f83611d8b565b60405160200161129092919061283a565b60408051601f1981840301815291905260208201525b6112af83611d8b565b60408201526102ec82611d8b565b6112f16040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b816040516020016113029190612a4b565b60405160208183030381529060405280519060200120836040516020016113299190612a4b565b60408051601f198184030181529190528051602090910120148082526113825761135283611e56565b61135b83611e56565b60405160200161136c92919061283a565b60408051601f1981840301815291905260208201525b61138b83611e56565b60408201526102ec82611e56565b6113cd6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8115158082526113f657604051806060016040528060228152602001612e776022913960208201525b600182151514611423576040518060400160405280600581526020016466616c736560d81b815250611441565b604051806040016040528060048152602001637472756560e01b8152505b6040808301919091528051602080820183526000825260608401919091528151808301909252600682527f6973547275650000000000000000000000000000000000000000000000000000908201526080820152919050565b6114ce6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b6001600160a01b0383811690831681141582526000906114ef9060146116dd565b825190915061151f57806040516020016115099190612a98565b60408051601f1981840301815291905260208301525b60408083019190915280516020808201835260008252606084019190915281518083019092526005825264195c5d585b60da1b90820152608082015292915050565b6115956040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b816040516020016115a69190612b03565b60405160208183030381529060405280519060200120836040516020016115cd9190612b03565b60408051601f19818403018152919052805160209091012014808252611626576115f683611f28565b6115ff83611f28565b60405160200161161092919061283a565b60408051601f1981840301815291905260208201525b61162f83611f28565b60408201526102ec82611f28565b6060600061164a83611fef565b600101905060008167ffffffffffffffff81111561166a5761166a61222e565b6040519080825280601f01601f191660200182016040528015611694576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461169e57509392505050565b606060006116ec836002612b3b565b6116f790600261298e565b67ffffffffffffffff81111561170f5761170f61222e565b6040519080825280601f01601f191660200182016040528015611739576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061177057611770612b52565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106117bb576117bb612b52565b60200101906001600160f81b031916908160001a90535060006117df846002612b3b565b6117ea90600161298e565b90505b600181111561186f577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061182b5761182b612b52565b1a60f81b82828151811061184157611841612b52565b60200101906001600160f81b031916908160001a90535060049490941c9361186881612b68565b90506117ed565b5083156118dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640160405180910390fd5b90505b92915050565b60408051808201825260608152600060208201528151600480825260a082019093529091816020015b6119426040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b81526020019060019003908161190e5750508252506000602082015290565b6060600080856001600160a01b0316638615d85586866040518363ffffffff1660e01b8152600401611994929190612b7f565b6020604051808303816000875af19250505080156119cf575060408051601f3d908101601f191682019092526119cc918101906128bb565b60015b611a12573d8080156119fd576040519150601f19603f3d011682016040523d82523d6000602084013e611a02565b606091505b5092506001915060009050611a2a565b60408051602081019091526000808252909450925090505b93509350939050565b604080518082019091526060815260006020820152825151602084015103611a6157611a5e836120d1565b92505b818360000151846020015181518110611a7c57611a7c612b52565b6020026020010181905250826020018051809190611a9990612ba1565b9052509192915050565b60606000826001600160a01b0316634e71d92d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611ae257600080fd5b505af1925050508015611af3575060015b611b31573d808015611b21576040519150601f19603f3d011682016040523d82523d6000602084013e611b26565b606091505b509360019350915050565b5050604080516020810190915260008082529092909150565b60606000846001600160a01b031663943e821685856040518363ffffffff1660e01b8152600401611b7c929190612bba565b600060405180830381600087803b158015611b9657600080fd5b505af1925050508015611ba7575060015b611be6573d808015611bd5576040519150601f19603f3d011682016040523d82523d6000602084013e611bda565b606091505b50915060019050611bf9565b5050604080516020810190915260008082525b935093915050565b60606000611c58604051806101200160405280606081526020016060815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040517f976b3113000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b0386169063976b311390602401600060405180830381865afa925050508015611cd757506040513d6000823e601f3d908101601f19168201604052611cd49190810190612c36565b60015b611d6c573d808015611d05576040519150601f19603f3d011682016040523d82523d6000602084013e611d0a565b606091505b50611d5e604051806101200160405280606081526020016060815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b909350600192509050611d84565b60408051602081019091526000808252909450925090505b9250925092565b6040805180820190915260018152605b60f81b602082015260609060005b8351811015611e4f5760018451611dc09190612d21565b811015611e095781848281518110611dda57611dda612b52565b6020026020010151604051602001611df3929190612d34565b6040516020818303038152906040529150611e47565b81848281518110611e1c57611e1c612b52565b6020026020010151604051602001611e35929190612d8b565b60405160208183030381529060405291505b600101611da9565b5092915050565b6040805180820190915260018152605b60f81b602082015260609060005b8351811015611e4f5760018451611e8b9190612d21565b811015611ee75781611ec0858381518110611ea857611ea8612b52565b60200260200101516001600160a01b031660146116dd565b604051602001611ed1929190612d34565b6040516020818303038152906040529150611f20565b81611efd858381518110611ea857611ea8612b52565b604051602001611f0e929190612d8b565b60405160208183030381529060405291505b600101611e74565b6040805180820190915260018152605b60f81b602082015260609060005b8351811015611e4f5760018451611f5d9190612d21565b811015611fae5781611f87858381518110611f7a57611f7a612b52565b602002602001015161163d565b604051602001611f98929190612d34565b6040516020818303038152906040529150611fe7565b81611fc4858381518110611f7a57611f7a612b52565b604051602001611fd5929190612d8b565b60405160208183030381529060405291505b600101611f46565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612038577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612064576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061208257662386f26fc10000830492506010015b6305f5e100831061209a576305f5e100830492506008015b61271083106120ae57612710830492506004015b606483106120c0576064830492506002015b600a83106118df5760010192915050565b60408051808201909152606081526000602082015260408051808201909152606081526000602082015282515160029061210c906003612b3b565b6121169190612de2565b67ffffffffffffffff81111561212e5761212e61222e565b60405190808252806020026020018201604052801561219357816020015b6121806040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b81526020019060019003908161214c5790505b50815260005b8351518110156121e85783518051829081106121b7576121b7612b52565b6020026020010151826000015182815181106121d5576121d5612b52565b6020908102919091010152600101612199565b50602092830151928101929092525090565b604051806040016040528060608152602001612229604051806040016040528060608152602001600081525090565b905290565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156122685761226861222e565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156122975761229761222e565b604052919050565b600067ffffffffffffffff8211156122b9576122b961222e565b50601f01601f191660200190565b600082601f8301126122d857600080fd5b81356122eb6122e68261229f565b61226e565b81815284602083860101111561230057600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561233057600080fd5b823567ffffffffffffffff8082111561234857600080fd5b612354868387016122c7565b9350602085013591508082111561236a57600080fd5b50612377858286016122c7565b9150509250929050565b60005b8381101561239c578181015183820152602001612384565b50506000910152565b600081518084526123bd816020860160208601612381565b601f01601f19169290920160200192915050565b8051151582526000602082015160a060208501526123f260a08501826123a5565b90506040830151848203604086015261240b82826123a5565b9150506060830151848203606086015261242582826123a5565b9150506080830151848203608086015261243f82826123a5565b95945050505050565b60208152600061245b60208301846123d1565b9392505050565b6000806040838503121561247557600080fd5b50508035926020909101359150565b6001600160a01b038116811461249957600080fd5b50565b600080604083850312156124af57600080fd5b82356124ba81612484565b915060208301356124ca81612484565b809150509250929050565b801515811461249957600080fd5b6000602082840312156124f557600080fd5b81356118dc816124d5565b60006020828403121561251257600080fd5b81356118dc81612484565b60006020808352835160408285015261253960608501826123a5565b905081850151601f198583030160408601526040820181516040845281815180845260608601915060608160051b8701019350868301925060005b818110156125a257605f198786030183526125908585516123d1565b94509287019291870191600101612574565b505050509083015191909201529392505050565b600067ffffffffffffffff8211156125d0576125d061222e565b5060051b60200190565b600082601f8301126125eb57600080fd5b813560206125fb6122e6836125b6565b82815260059290921b8401810191818101908684111561261a57600080fd5b8286015b8481101561265a57803567ffffffffffffffff81111561263e5760008081fd5b61264c8986838b01016122c7565b84525091830191830161261e565b509695505050505050565b6000806040838503121561267857600080fd5b823567ffffffffffffffff8082111561269057600080fd5b61269c868387016125da565b935060208501359150808211156126b257600080fd5b50612377858286016125da565b600082601f8301126126d057600080fd5b813560206126e06122e6836125b6565b8083825260208201915060208460051b87010193508684111561270257600080fd5b602086015b8481101561265a57803561271a81612484565b8352918301918301612707565b6000806040838503121561273a57600080fd5b823567ffffffffffffffff8082111561275257600080fd5b61275e868387016126bf565b9350602085013591508082111561277457600080fd5b50612377858286016126bf565b600082601f83011261279257600080fd5b813560206127a26122e6836125b6565b8083825260208201915060208460051b8701019350868411156127c457600080fd5b602086015b8481101561265a57803583529183019183016127c9565b600080604083850312156127f357600080fd5b823567ffffffffffffffff8082111561280b57600080fd5b61281786838701612781565b9350602085013591508082111561282d57600080fd5b5061237785828601612781565b7f417373657274696f6e4572726f723a2000000000000000000000000000000000815260008351612872816010850160208801612381565b7f206973206e6f7420657175616c20746f2000000000000000000000000000000060109184019182015283516128af816021840160208801612381565b01602101949350505050565b6000602082840312156128cd57600080fd5b5051919050565b600082601f8301126128e557600080fd5b81516128f36122e68261229f565b81815284602083860101111561290857600080fd5b612919826020830160208701612381565b949350505050565b805161292c816124d5565b919050565b6000806040838503121561294457600080fd5b825167ffffffffffffffff81111561295b57600080fd5b612967858286016128d4565b92505060208301516124ca816124d5565b634e487b7160e01b600052601160045260246000fd5b808201808211156118df576118df612978565b600381106129bf57634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b0384168152602081018390526060810161291960408301846129a1565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612a3e57603f19888603018452612a2c8583516123a5565b94509285019290850190600101612a10565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015612a8c5783516001600160a01b031683529284019291840191600101612a67565b50909695505050505050565b7f417373657274696f6e4572726f723a200000000000000000000000000000000081527f20426f74682076616c7565732061726500000000000000000000000000000000601082015260008251612af6816020850160208701612381565b9190910160200192915050565b6020808252825182820181905260009190848201906040850190845b81811015612a8c57835183529284019291840191600101612b1f565b80820281158282048414176118df576118df612978565b634e487b7160e01b600052603260045260246000fd5b600081612b7757612b77612978565b506000190190565b604081526000612b9260408301856123a5565b90508260208301529392505050565b600060018201612bb357612bb3612978565b5060010190565b8281526040810161245b60208301846129a1565b600082601f830112612bdf57600080fd5b81516020612bef6122e6836125b6565b8083825260208201915060208460051b870101935086841115612c1157600080fd5b602086015b8481101561265a578051612c2981612484565b8352918301918301612c16565b600060208284031215612c4857600080fd5b815167ffffffffffffffff80821115612c6057600080fd5b908301906101208286031215612c7557600080fd5b612c7d612244565b825182811115612c8c57600080fd5b612c9887828601612bce565b825250602083015182811115612cad57600080fd5b612cb9878286016128d4565b60208301525060408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c0820152612cfd60e08401612921565b60e08201526101009150612d12828401612921565b91810191909152949350505050565b818103818111156118df576118df612978565b60008351612d46818460208801612381565b835190830190612d5a818360208801612381565b7f2c200000000000000000000000000000000000000000000000000000000000009101908152600201949350505050565b60008351612d9d818460208801612381565b835190830190612db1818360208801612381565b7f5d000000000000000000000000000000000000000000000000000000000000009101908152600101949350505050565b600082612dff57634e487b7160e01b600052601260045260246000fd5b50049056fe766f746520646964206e6f7420726576657274207769746820416c7265616479566f746564282953686f756c642063726561746520616e6420616c6c6f7720766f74696e67206f6e20697373756573417373657274696f6e4572726f723a20726573756c74206973206e6f742066616c7365417373657274696f6e4572726f723a20726573756c74206973206e6f742074727565637265617465497373756520646964206e6f74207265766572742077697468204e6f546f6b656e7348656c642829a2646970667358221220d152c710a943bcb54ef30c764becec6f171abc0f40297453d8b713a4453f611564736f6c634300081700330000000000000000000000001874cd8447434f9fd51f4f82c391112cd30eb2c2000000000000000000000000098160628022693008f0f0d4096861331ca223db000000000000000000000000e14f50f4dd0a970c0e8e4201f553f66986bb1544
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c806370a082311161010f578063b88d4fde116100a2578063e7da4c7e11610071578063e7da4c7e14610431578063e985e9c514610444578063f2fde38b14610480578063fa084b9b1461049357600080fd5b8063b88d4fde146103e5578063c87b56dd146103f8578063d70968e71461040b578063e0df5b6f1461041e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103a657806395d89b41146103b7578063a22cb465146103bf578063acec338a146103d257600080fd5b806370a0823114610360578063714cff5614610381578063715018a61461038b57806374f130701461039357600080fd5b8063301916261161018757806346bdca9a1161015657806346bdca9a146102a857806360fb55d5146103275780636352211e1461033a5780636df864781461034d57600080fd5b806330191626146102db57806331495d33146102ee578063410dbb8b1461030157806342842e0e1461031457600080fd5b8063081812fc116101c3578063081812fc1461026a578063095ea7b314610295578063235266d2146102a857806323b872dd146102c857600080fd5b806301ffc9a7146101f5578063022914a71461021d57806306d82f291461024057806306fdde0314610255575b600080fd5b610208610203366004612688565b6104a6565b60405190151581526020015b60405180910390f35b61020861022b3660046126ba565b60096020526000908152604090205460ff1681565b61025361024e3660046126ba565b610543565b005b61025d6107fe565b6040516102149190612727565b61027d61027836600461273a565b610890565b6040516001600160a01b039091168152602001610214565b6102536102a3366004612753565b6108b7565b6102bb6102b6366004612890565b610a0b565b604051610214919061296b565b6102536102d636600461297e565b610aba565b6102bb6102e93660046129bf565b610b31565b6102bb6102fc3660046129e1565b610beb565b6102bb61030f366004612a38565b610cbc565b61025361032236600461297e565b610dbc565b6102bb610335366004612b04565b610dd7565b61027d61034836600461273a565b610eb3565b6102bb61035b366004612bc6565b610f18565b61037361036e3660046126ba565b610ff4565b604051908152602001610214565b6008546103739081565b61025361108e565b6102bb6103a1366004612a38565b6110a2565b6006546001600160a01b031661027d565b61025d6111a3565b6102536103cd366004612c20565b6111b2565b6102536103e0366004612a38565b6111c1565b6102536103f3366004612c4e565b6111dc565b61025d61040636600461273a565b611254565b6102bb6104193660046129e1565b6112e8565b61025361042c366004612cba565b6113af565b6102bb61043f366004612d4e565b6113c3565b6102086104523660046129e1565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61025361048e3660046126ba565b61149f565b6102086104a1366004612da8565b61152f565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061050957506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061053d57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b600b5460ff1661057f576040517f80cb55e200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e5460609060009083906001600160a01b0316156106bb57600d546105a69060016130e5565b67ffffffffffffffff8111156105be576105be61277f565b6040519080825280602002602001820160405280156105f757816020015b6105e461263e565b8152602001906001900390816105dc5790505b50925081610604816130f8565b600e546040517f4c96a3890000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015292955091169150634c96a389906024016000604051808303816000875af115801561066c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106949190810190613328565b846000815181106106a7576106a761336f565b602002602001018193508290525050610713565b600d5467ffffffffffffffff8111156106d6576106d661277f565b60405190808252806020026020018201604052801561070f57816020015b6106fc61263e565b8152602001906001900390816106f45790505b5092505b600d548210156107ee57600d82815481106107305761073061336f565b6000918252602090912001546040517f4b64e4920000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015290911690634b64e492906024016000604051808303816000875af115801561079e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107c69190810190613385565b8383815181106107d8576107d861336f565b6020908102919091010152600190910190610713565b6107f884846115cf565b50505050565b60606000805461080d906133ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610839906133ba565b80156108865780601f1061085b57610100808354040283529160200191610886565b820191906000526020600020905b81548152906001019060200180831161086957829003601f168201915b5050505050905090565b600061089b826116d6565b506000908152600460205260409020546001600160a01b031690565b60006108c282610eb3565b9050806001600160a01b0316836001600160a01b0316036109505760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b038216148061098a57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6109fc5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610947565b610a06838361173a565b505050565b610a3f6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b815160208084019190912084519185019190912014808252610a84578282604051602001610a6e9291906133f4565b60408051601f1981840301815291905260208201525b604080820193909352606081019190915281518083019092526005825264195c5d585b60da1b6020830152608081019190915290565b610ac433826117b5565b610b265760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608401610947565b610a06838383611834565b610b656040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b828214808252610ba857610b7883611a47565b610b8183611a47565b604051602001610b929291906133f4565b60408051601f1981840301815291905260208201525b610bb183611a47565b6040820152610bbf82611a47565b6060820152604080518082019091526005815264195c5d585b60da1b6020820152608082015292915050565b610c1f6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b6001600160a01b0383811690831681148252600090610c3f906014611ae7565b90506000610c57846001600160a01b03166014611ae7565b8351909150610c89578181604051602001610c739291906133f4565b60408051601f1981840301815291905260208401525b604080840192909252606083015280518082019091526005815264195c5d585b60da1b6020820152608082015292915050565b610cf06040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8115808252610d18576040518060600160405280602381526020016139176023913960208201525b600182151514610d45576040518060400160405280600581526020016466616c736560d81b815250610d63565b604051806040016040528060048152602001637472756560e01b8152505b6040808301919091528051602080820183526000825260608401919091528151808301909252600782527f697346616c736500000000000000000000000000000000000000000000000000908201526080820152919050565b610a06838383604051806020016040528060008152506111dc565b610e0b6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b81604051602001610e1c9190613475565b6040516020818303038152906040528051906020012083604051602001610e439190613475565b60408051601f19818403018152919052805160209091012014808252610e9c57610e6c83611ccf565b610e7583611ccf565b604051602001610e869291906133f4565b60408051601f1981840301815291905260208201525b610ea583611ccf565b6040820152610bbf82611ccf565b6000818152600260205260408120546001600160a01b03168061053d5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610947565b610f4c6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b81604051602001610f5d91906134d9565b6040516020818303038152906040528051906020012083604051602001610f8491906134d9565b60408051601f19818403018152919052805160209091012014808252610fdd57610fad83611d9a565b610fb683611d9a565b604051602001610fc79291906133f4565b60408051601f1981840301815291905260208201525b610fe683611d9a565b6040820152610bbf82611d9a565b60006001600160a01b0382166110725760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610947565b506001600160a01b031660009081526003602052604090205490565b611096611e6c565b6110a06000611ec6565b565b6110d66040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8115158082526110ff5760405180606001604052806022815260200161393a6022913960208201525b60018215151461112c576040518060400160405280600581526020016466616c736560d81b81525061114a565b604051806040016040528060048152602001637472756560e01b8152505b6040808301919091528051602080820183526000825260608401919091528151808301909252600682527f6973547275650000000000000000000000000000000000000000000000000000908201526080820152919050565b60606001805461080d906133ba565b6111bd338383611f25565b5050565b6111c9611e6c565b600b805460ff1916911515919091179055565b6111e633836117b5565b6112485760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608401610947565b6107f884848484611ff3565b6060600c8054611263906133ba565b80601f016020809104026020016040519081016040528092919081815260200182805461128f906133ba565b80156112dc5780601f106112b1576101008083540402835291602001916112dc565b820191906000526020600020905b8154815290600101906020018083116112bf57829003601f168201915b50505050509050919050565b61131c6040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b6001600160a01b03838116908316811415825260009061133d906014611ae7565b825190915061136d57806040516020016113579190613526565b60408051601f1981840301815291905260208301525b60408083019190915280516020808201835260008252606084019190915281518083019092526005825264195c5d585b60da1b90820152608082015292915050565b6113b7611e6c565b600c6111bd82826135e1565b6113f76040518060a00160405280600015158152602001606081526020016060815260200160608152602001606081525090565b8160405160200161140891906136a1565b604051602081830303815290604052805190602001208360405160200161142f91906136a1565b60408051601f198184030181529190528051602090910120148082526114885761145883612071565b61146183612071565b6040516020016114729291906133f4565b60408051601f1981840301815291905260208201525b61149183612071565b6040820152610bbf82612071565b6114a7611e6c565b6001600160a01b0381166115235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610947565b61152c81611ec6565b50565b6000805b82518110156115c65760005b8382815181106115515761155161336f565b602002602001015160200151602001518110156115bd5783828151811061157a5761157a61336f565b60200260200101516020015160000151818151811061159b5761159b61336f565b6020026020010151600001516115b5575060009392505050565b60010161153f565b50600101611533565b50600192915050565b6115d7612138565b60006115e28261152f565b90507f53d51c5f8eaf1bdbf1288871cbf97a9295da23a9868b15b526b4256ede348db9838284604051611617939291906136d9565b60405180910390a16001600160a01b0383166000908152600a602052604090205460ff1615801561165857503360009081526009602052604090205460ff16155b80156116615750805b156116a857611674600880546001019055565b600061167f60085490565b336000818152600960205260409020805460ff191660011790559091506116a69082612191565b505b506001600160a01b0382166000908152600a60205260409020805460ff191660011790556111bd6001600755565b6000818152600260205260409020546001600160a01b031661152c5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610947565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155819061177c82610eb3565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806117c183610eb3565b9050806001600160a01b0316846001600160a01b0316148061180857506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b8061182c5750836001600160a01b031661182184610890565b6001600160a01b0316145b949350505050565b826001600160a01b031661184782610eb3565b6001600160a01b0316146118ab5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610947565b6001600160a01b0382166119265760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610947565b61193383838360016121ab565b826001600160a01b031661194682610eb3565b6001600160a01b0316146119aa5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610947565b6000818152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60606000611a54836121ec565b600101905060008167ffffffffffffffff811115611a7457611a7461277f565b6040519080825280601f01601f191660200182016040528015611a9e576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611aa857509392505050565b60606000611af68360026137ce565b611b019060026130e5565b67ffffffffffffffff811115611b1957611b1961277f565b6040519080825280601f01601f191660200182016040528015611b43576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611b7a57611b7a61336f565b60200101906001600160f81b031916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611bc557611bc561336f565b60200101906001600160f81b031916908160001a9053506000611be98460026137ce565b611bf49060016130e5565b90505b6001811115611c79577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611c3557611c3561336f565b1a60f81b828281518110611c4b57611c4b61336f565b60200101906001600160f81b031916908160001a90535060049490941c93611c72816137e5565b9050611bf7565b508315611cc85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610947565b9392505050565b6040805180820190915260018152605b60f81b602082015260609060005b8351811015611d935760018451611d0491906137fc565b811015611d4d5781848281518110611d1e57611d1e61336f565b6020026020010151604051602001611d3792919061380f565b6040516020818303038152906040529150611d8b565b81848281518110611d6057611d6061336f565b6020026020010151604051602001611d79929190613866565b60405160208183030381529060405291505b600101611ced565b5092915050565b6040805180820190915260018152605b60f81b602082015260609060005b8351811015611d935760018451611dcf91906137fc565b811015611e2b5781611e04858381518110611dec57611dec61336f565b60200260200101516001600160a01b03166014611ae7565b604051602001611e1592919061380f565b6040516020818303038152906040529150611e64565b81611e41858381518110611dec57611dec61336f565b604051602001611e52929190613866565b60405160208183030381529060405291505b600101611db8565b6006546001600160a01b031633146110a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610947565b600680546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603611f865760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610947565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611ffe848484611834565b61200a848484846122ce565b6107f85760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610947565b6040805180820190915260018152605b60f81b602082015260609060005b8351811015611d9357600184516120a691906137fc565b8110156120f757816120d08583815181106120c3576120c361336f565b6020026020010151611a47565b6040516020016120e192919061380f565b6040516020818303038152906040529150612130565b8161210d8583815181106120c3576120c361336f565b60405160200161211e929190613866565b60405160208183030381529060405291505b60010161208f565b60026007540361218a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610947565b6002600755565b6111bd82826040518060200160405280600081525061241a565b6001600160a01b038416156107f8576040517f6e10574900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612235577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612261576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061227f57662386f26fc10000830492506010015b6305f5e1008310612297576305f5e100830492506008015b61271083106122ab57612710830492506004015b606483106122bd576064830492506002015b600a831061053d5760010192915050565b60006001600160a01b0384163b1561240f57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906123129033908990889088906004016138bd565b6020604051808303816000875af192505050801561234d575060408051601f3d908101601f1916820190925261234a918101906138f9565b60015b6123f5573d80801561237b576040519150601f19603f3d011682016040523d82523d6000602084013e612380565b606091505b5080516000036123ed5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610947565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061182c565b506001949350505050565b6124248383612498565b61243160008484846122ce565b610a065760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610947565b6001600160a01b0382166124ee5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610947565b6000818152600260205260409020546001600160a01b0316156125535760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610947565b6125616000838360016121ab565b6000818152600260205260409020546001600160a01b0316156125c65760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610947565b6001600160a01b0382166000818152600360209081526040808320805460010190558483526002909152808220805473ffffffffffffffffffffffffffffffffffffffff19168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60405180604001604052806060815260200161266d604051806040016040528060608152602001600081525090565b905290565b6001600160e01b03198116811461152c57600080fd5b60006020828403121561269a57600080fd5b8135611cc881612672565b6001600160a01b038116811461152c57600080fd5b6000602082840312156126cc57600080fd5b8135611cc8816126a5565b60005b838110156126f25781810151838201526020016126da565b50506000910152565b600081518084526127138160208601602086016126d7565b601f01601f19169290920160200192915050565b602081526000611cc860208301846126fb565b60006020828403121561274c57600080fd5b5035919050565b6000806040838503121561276657600080fd5b8235612771816126a5565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156127b8576127b861277f565b60405290565b60405160a0810167ffffffffffffffff811182821017156127b8576127b861277f565b604051601f8201601f1916810167ffffffffffffffff8111828210171561280a5761280a61277f565b604052919050565b600067ffffffffffffffff82111561282c5761282c61277f565b50601f01601f191660200190565b600082601f83011261284b57600080fd5b813561285e61285982612812565b6127e1565b81815284602083860101111561287357600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156128a357600080fd5b823567ffffffffffffffff808211156128bb57600080fd5b6128c78683870161283a565b935060208501359150808211156128dd57600080fd5b506128ea8582860161283a565b9150509250929050565b8051151582526000602082015160a0602085015261291560a08501826126fb565b90506040830151848203604086015261292e82826126fb565b9150506060830151848203606086015261294882826126fb565b9150506080830151848203608086015261296282826126fb565b95945050505050565b602081526000611cc860208301846128f4565b60008060006060848603121561299357600080fd5b833561299e816126a5565b925060208401356129ae816126a5565b929592945050506040919091013590565b600080604083850312156129d257600080fd5b50508035926020909101359150565b600080604083850312156129f457600080fd5b82356129ff816126a5565b91506020830135612a0f816126a5565b809150509250929050565b801515811461152c57600080fd5b8035612a3381612a1a565b919050565b600060208284031215612a4a57600080fd5b8135611cc881612a1a565b600067ffffffffffffffff821115612a6f57612a6f61277f565b5060051b60200190565b600082601f830112612a8a57600080fd5b81356020612a9a61285983612a55565b82815260059290921b84018101918181019086841115612ab957600080fd5b8286015b84811015612af957803567ffffffffffffffff811115612add5760008081fd5b612aeb8986838b010161283a565b845250918301918301612abd565b509695505050505050565b60008060408385031215612b1757600080fd5b823567ffffffffffffffff80821115612b2f57600080fd5b612b3b86838701612a79565b93506020850135915080821115612b5157600080fd5b506128ea85828601612a79565b600082601f830112612b6f57600080fd5b81356020612b7f61285983612a55565b8083825260208201915060208460051b870101935086841115612ba157600080fd5b602086015b84811015612af9578035612bb9816126a5565b8352918301918301612ba6565b60008060408385031215612bd957600080fd5b823567ffffffffffffffff80821115612bf157600080fd5b612bfd86838701612b5e565b93506020850135915080821115612c1357600080fd5b506128ea85828601612b5e565b60008060408385031215612c3357600080fd5b8235612c3e816126a5565b91506020830135612a0f81612a1a565b60008060008060808587031215612c6457600080fd5b8435612c6f816126a5565b93506020850135612c7f816126a5565b925060408501359150606085013567ffffffffffffffff811115612ca257600080fd5b612cae8782880161283a565b91505092959194509250565b600060208284031215612ccc57600080fd5b813567ffffffffffffffff811115612ce357600080fd5b61182c8482850161283a565b600082601f830112612d0057600080fd5b81356020612d1061285983612a55565b8083825260208201915060208460051b870101935086841115612d3257600080fd5b602086015b84811015612af95780358352918301918301612d37565b60008060408385031215612d6157600080fd5b823567ffffffffffffffff80821115612d7957600080fd5b612d8586838701612cef565b93506020850135915080821115612d9b57600080fd5b506128ea85828601612cef565b600060208284031215612dba57600080fd5b67ffffffffffffffff82351115612dd057600080fd5b82601f833584010112612de257600080fd5b612df26128598335840135612a55565b8235830180358083526020808401939260059290921b90910101851015612e1857600080fd5b602084358501015b84358501803560051b016020018110156130c65767ffffffffffffffff81351115612e4a57600080fd5b6040853586018235018703601f19011215612e6457600080fd5b612e6c612795565b67ffffffffffffffff60208335883589010101351115612e8b57600080fd5b612ea3876020843589358a010181810135010161283a565b815267ffffffffffffffff60408335883589010101351115612ec457600080fd5b60408635870183350180820135018803601f19011215612ee357600080fd5b612eeb612795565b67ffffffffffffffff87358801843501604081013501602001351115612f1057600080fd5b86358701833501604081013501602081013501603f81018913612f3257600080fd5b612f426128596020830135612a55565b602082810135808352908201919060051b83016040018b1015612f6457600080fd5b604083015b6040602085013560051b8501018110156130945767ffffffffffffffff81351115612f9357600080fd5b8035840160a0818e03603f19011215612fab57600080fd5b612fb36127be565b612fbf60408301612a28565b815267ffffffffffffffff60608301351115612fda57600080fd5b612fed8e6040606085013585010161283a565b602082015267ffffffffffffffff6080830135111561300b57600080fd5b61301e8e6040608085013585010161283a565b604082015267ffffffffffffffff60a0830135111561303c57600080fd5b61304f8e604060a085013585010161283a565b606082015267ffffffffffffffff60c0830135111561306d57600080fd5b6130808e604060c085013585010161283a565b608082015284525060209283019201612f69565b508352505060408335883589010181810135010135602080830191909152828101919091529084529283019201612e20565b50949350505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561053d5761053d6130cf565b60006001820161310a5761310a6130cf565b5060010190565b600082601f83011261312257600080fd5b815161313061285982612812565b81815284602083860101111561314557600080fd5b61182c8260208301602087016126d7565b8051612a3381612a1a565b60006040828403121561317357600080fd5b61317b612795565b9050815167ffffffffffffffff8082111561319557600080fd5b6131a185838601613111565b83526020915081840151818111156131b857600080fd5b8401604081870312156131ca57600080fd5b6131d2612795565b8151838111156131e157600080fd5b8201601f810188136131f257600080fd5b805161320061285982612a55565b81815260059190911b8201860190868101908a83111561321f57600080fd5b8784015b8381101561330c5780518881111561323a57600080fd5b850160a0818e03601f1901121561325057600080fd5b6132586127be565b6132638b8301613156565b815260408201518a81111561327757600080fd5b6132858f8d83860101613111565b8c8301525060608201518a81111561329c57600080fd5b6132aa8f8d83860101613111565b60408301525060808201518a8111156132c35760008081fd5b6132d18f8d83860101613111565b60608301525060a08201518a8111156132ea5760008081fd5b6132f88f8d83860101613111565b608083015250845250918801918801613223565b5084525050509083015183820152918301919091525092915050565b6000806040838503121561333b57600080fd5b825167ffffffffffffffff81111561335257600080fd5b61335e85828601613161565b9250506020830151612a0f816126a5565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561339757600080fd5b815167ffffffffffffffff8111156133ae57600080fd5b61182c84828501613161565b600181811c908216806133ce57607f821691505b6020821081036133ee57634e487b7160e01b600052602260045260246000fd5b50919050565b7f417373657274696f6e4572726f723a200000000000000000000000000000000081526000835161342c8160108501602088016126d7565b7f206973206e6f7420657175616c20746f2000000000000000000000000000000060109184019182015283516134698160218401602088016126d7565b01602101949350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b828110156134cc57603f198886030184526134ba8583516126fb565b9450928501929085019060010161349e565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561351a5783516001600160a01b0316835292840192918401916001016134f5565b50909695505050505050565b7f417373657274696f6e4572726f723a200000000000000000000000000000000081527f20426f74682076616c75657320617265000000000000000000000000000000006010820152600082516135848160208501602087016126d7565b9190910160200192915050565b601f821115610a06576000816000526020600020601f850160051c810160208610156135ba5750805b601f850160051c820191505b818110156135d9578281556001016135c6565b505050505050565b815167ffffffffffffffff8111156135fb576135fb61277f565b61360f8161360984546133ba565b84613591565b602080601f831160018114613644576000841561362c5750858301515b600019600386901b1c1916600185901b1785556135d9565b600085815260208120601f198616915b8281101561367357888601518255948401946001909101908401613654565b50858210156136915787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252825182820181905260009190848201906040850190845b8181101561351a578351835292840192918401916001016136bd565b600060608083016001600160a01b038716845260208615158186015260406060604087015282875180855260808801915060808160051b89010194508389016000805b838110156137bc578a8803607f1901855282518051878a52613740888b01826126fb565b918901518a83038b8b0152805189845280518a850181905291939250600582901b83018d0191908b01908d840190875b8181101561379e57605f1986860301835261378c8585516128f4565b9450928d0192918d0191600101613770565b5050505091890151908901529750938601939186019160010161371c565b50959c9b505050505050505050505050565b808202811582820484141761053d5761053d6130cf565b6000816137f4576137f46130cf565b506000190190565b8181038181111561053d5761053d6130cf565b600083516138218184602088016126d7565b8351908301906138358183602088016126d7565b7f2c200000000000000000000000000000000000000000000000000000000000009101908152600201949350505050565b600083516138788184602088016126d7565b83519083019061388c8183602088016126d7565b7f5d000000000000000000000000000000000000000000000000000000000000009101908152600101949350505050565b60006001600160a01b038087168352808616602084015250836040830152608060608301526138ef60808301846126fb565b9695505050505050565b60006020828403121561390b57600080fd5b8151611cc88161267256fe417373657274696f6e4572726f723a20726573756c74206973206e6f742066616c7365417373657274696f6e4572726f723a20726573756c74206973206e6f742074727565a26469706673582212208b9549de1e6e93a6f1547889c8fb53fe1497764005c1bbcf01a869dd01a09ccc64736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001874cd8447434f9fd51f4f82c391112cd30eb2c2000000000000000000000000098160628022693008f0f0d4096861331ca223db000000000000000000000000e14f50f4dd0a970c0e8e4201f553f66986bb1544
-----Decoded View---------------
Arg [0] : _secondCallerAddress (address): 0x1874CD8447434F9FD51f4F82C391112CD30eB2C2
Arg [1] : _thirdCallerAddress (address): 0x098160628022693008f0F0D4096861331ca223dB
Arg [2] : _fourthCallerAddress (address): 0xe14F50f4dd0a970c0e8e4201f553f66986bb1544
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000001874cd8447434f9fd51f4f82c391112cd30eb2c2
Arg [1] : 000000000000000000000000098160628022693008f0f0d4096861331ca223db
Arg [2] : 000000000000000000000000e14f50f4dd0a970c0e8e4201f553f66986bb1544
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.