[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ETHReceived", "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": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum BeekToken.SaleStage", "name": "stage", "type": "uint8" } ], "name": "SaleStageEnded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum BeekToken.SaleStage", "name": "stage", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "tokenPriceWei", "type": "uint256" } ], "name": "SaleStageStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newTokenPriceWei", "type": "uint256" } ], "name": "TokenPriceSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "buyer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokensPurchased", "type": "uint256" } ], "name": "TokensPurchased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "authorizeAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTokensETH", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "canTransferTokens", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentStage", "outputs": [ { "internalType": "enum BeekToken.SaleStage", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "deauthorizeAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "endICO", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "endOTC", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "endPresale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getTokenPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalETHReceived", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialTokenPriceWei", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPresaleIcoSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "otcTokenPriceWei", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "remainingTokensForSale", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newTokenPriceWei", "type": "uint256" } ], "name": "setTokenPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newTokenPriceWei", "type": "uint256" } ], "name": "startICO", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenPriceWei", "type": "uint256" } ], "name": "startOTC", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newTokenPriceWei", "type": "uint256" } ], "name": "startPresale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenSaleClosed", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalTokensSold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600b805460ff19908116909155600e80549091169055348015610025575f80fd5b50604051806040016040528060088152602001672132b2b5b1b7b4b760c11b815250604051806040016040528060048152602001634245454b60e01b81525061007a6100756101c260201b60201c565b6101c6565b600461008683826104e7565b50600561009382826104e7565b50506001600655506007805460ff191690555f6100b26012600a610698565b6100c390660199e8c56678006106a6565b90506100fa730b26057569e2eabb87766495cd13a0708e69351c6100f56103e86100ef85610145610215565b9061024e565b610260565b6101247332c9eb2752d98d4dae1f9ae20549c76b048cdd896100f56103e86100ef85610145610215565b61014d73759c7d04ff0502626920327fcad28eece33da12c6100f56103e86100ef856096610215565b61017673e51bf32a2185fac2276a196f0d72bbfd9f3881eb6100f56103e86100ef856064610215565b61019f73eaa81445c9c5d5956965be56a8c4a2ec9e5cf1856100f56103e86100ef856064610215565b630ee6b2806008556101b96103e86100ef83610145610215565b600c5550610703565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f825f0361022457505f610248565b61022e82846106a6565b90508161023b84836106bd565b14610248576102486106dc565b92915050565b5f61025982846106bd565b9392505050565b6001600160a01b0382166102bb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6102c65f838361034c565b8060035f8282546102d791906106f0565b90915550506001600160a01b0382165f90815260016020526040812080548392906103039084906106f0565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b0383161580159061037157505f546001600160a01b03848116911614155b1561044b57600b5460ff166103d45760405162461bcd60e51b8152602060048201526024808201527f546f6b656e207472616e7366657273206172652063757272656e746c79206c6f60448201526318dad95960e21b60648201526084016102b2565b806103f3846001600160a01b03165f9081526001602052604090205490565b101561044b5760405162461bcd60e51b815260206004820152602160248201527f496e73756666696369656e742062616c616e636520666f72207472616e7366656044820152603960f91b60648201526084016102b2565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061047857607f821691505b60208210810361049657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561044b57805f5260205f20601f840160051c810160208510156104c15750805b601f840160051c820191505b818110156104e0575f81556001016104cd565b5050505050565b81516001600160401b0381111561050057610500610450565b6105148161050e8454610464565b8461049c565b6020601f821160018114610546575f831561052f5750848201515b5f19600385901b1c1916600184901b1784556104e0565b5f84815260208120601f198516915b828110156105755787850151825560209485019460019092019101610555565b508482101561059257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156105f0578085048111156105d4576105d46105a1565b60018416156105e257908102905b60019390931c9280026105b9565b935093915050565b5f8261060657506001610248565b8161061257505f610248565b816001811461062857600281146106325761064e565b6001915050610248565b60ff841115610643576106436105a1565b50506001821b610248565b5060208310610133831016604e8410600b8410161715610671575081810a610248565b61067d5f1984846105b5565b805f1904821115610690576106906105a1565b029392505050565b5f61025960ff8416836105f8565b8082028115828204841417610248576102486105a1565b5f826106d757634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52600160045260245ffd5b80820180821115610248576102486105a1565b611f0e806107105f395ff3fe6080604052600436106101ff575f3560e01c8063715018a611610113578063a43be57b1161009d578063dd62ed3e1161006d578063dd62ed3e14610559578063dde0c0111461059d578063e55a07c2146105a5578063f2fde38b146105b9578063f73857cc146105d8575f80fd5b8063a43be57b146104f2578063a457c2d714610506578063a9059cbb14610525578063b1298a0514610544575f80fd5b80638da5cb5b116100e35780638da5cb5b1461046657806395d89b411461048c57806398180dde146104a05780639b39f9bf146104bf578063a132aad1146104d3575f80fd5b8063715018a6146104105780637177a7dd14610424578063796ca42d1461043d57806385e5d35814610452575f80fd5b806339509351116101945780635bf5d54c116101645780635bf5d54c1461036b5780635c975abb1461039157806363b20117146103a85780636a61e5fc146103bd57806370a08231146103dc575f80fd5b806339509351146103055780634a5db3b5146103245780634b94f50e146103435780634f24840914610357575f80fd5b806319f87bc6116101cf57806319f87bc6146102a257806323b872dd146102b65780632e394551146102d5578063313ce567146102ea575f80fd5b806306fdde031461020a578063095ea7b3146102345780630b7502871461026357806318160ddd14610284575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021e6105f7565b60405161022b9190611acd565b60405180910390f35b34801561023f575f80fd5b5061025361024e366004611b1d565b610687565b604051901515815260200161022b565b34801561026e575f80fd5b5061028261027d366004611b45565b61069d565b005b34801561028f575f80fd5b506003545b60405190815260200161022b565b3480156102ad575f80fd5b50600a54610294565b3480156102c1575f80fd5b506102536102d0366004611b5c565b61085b565b3480156102e0575f80fd5b50610294600c5481565b3480156102f5575f80fd5b506040516012815260200161022b565b348015610310575f80fd5b5061025361031f366004611b1d565b610903565b34801561032f575f80fd5b5061028261033e366004611b96565b61093e565b34801561034e575f80fd5b5061029461098a565b348015610362575f80fd5b50610282610a3f565b348015610376575f80fd5b50600e546103849060ff1681565b60405161022b9190611be3565b34801561039c575f80fd5b5060075460ff16610253565b3480156103b3575f80fd5b5061029460095481565b3480156103c8575f80fd5b506102826103d7366004611b45565b610b37565b3480156103e7575f80fd5b506102946103f6366004611b96565b6001600160a01b03165f9081526001602052604090205490565b34801561041b575f80fd5b50610282610c91565b34801561042f575f80fd5b50600b546102539060ff1681565b348015610448575f80fd5b5061029460085481565b34801561045d575f80fd5b50610282610cc5565b348015610471575f80fd5b505f546040516001600160a01b03909116815260200161022b565b348015610497575f80fd5b5061021e610db3565b3480156104ab575f80fd5b506102826104ba366004611b45565b610dc2565b3480156104ca575f80fd5b50610294610edd565b3480156104de575f80fd5b506102826104ed366004611b45565b610efa565b3480156104fd575f80fd5b50610282610fe4565b348015610511575f80fd5b50610253610520366004611b1d565b6110d6565b348015610530575f80fd5b5061025361053f366004611b1d565b61116e565b34801561054f575f80fd5b50610294600d5481565b348015610564575f80fd5b50610294610573366004611bf1565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b61028261117a565b3480156105b0575f80fd5b506102826113b7565b3480156105c4575f80fd5b506102826105d3366004611b96565b611490565b3480156105e3575f80fd5b506102826105f2366004611b96565b61152a565b60606004805461060690611c22565b80601f016020809104026020016040519081016040528092919081815260200182805461063290611c22565b801561067d5780601f106106545761010080835404028352916020019161067d565b820191905f5260205f20905b81548152906001019060200180831161066057829003601f168201915b5050505050905090565b5f610693338484611573565b5060015b92915050565b335f908152600f602052604090205460ff16806106d25750336106c75f546001600160a01b031690565b6001600160a01b0316145b6106f75760405162461bcd60e51b81526004016106ee90611c5a565b60405180910390fd5b600b5460ff166107555760405162461bcd60e51b815260206004820152602360248201527f546f6b656e2073616c6520686173206e6f74206265656e20636c6f736564207960448201526232ba1760e91b60648201526084016106ee565b5f600e5460ff16600381111561076d5761076d611baf565b1461078a5760405162461bcd60e51b81526004016106ee90611c82565b600c54600954106107ec5760405162461bcd60e51b815260206004820152602660248201527f416c6c20746f6b656e7320616c6c6f636174656420666f722073616c6520617260448201526519481cdbdb1960d21b60648201526084016106ee565b5f811161080b5760405162461bcd60e51b81526004016106ee90611cce565b600d819055600e805460ff191660039081179091556040517fedec6f934751c5301796f878dd1bac76eab3a19521458aeebac58fc777a99efe91610850918490611d13565b60405180910390a150565b5f610867848484611696565b6001600160a01b0384165f908152600260209081526040808320338452909152902054828110156108eb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106ee565b6108f88533858403611573565b506001949350505050565b335f8181526002602090815260408083206001600160a01b03871684529091528120549091610693918590610939908690611d42565b611573565b5f546001600160a01b031633146109675760405162461bcd60e51b81526004016106ee90611d55565b6001600160a01b03165f908152600f60205260409020805460ff19166001179055565b5f6001600e5460ff1660038111156109a4576109a4611baf565b14806109c657506002600e5460ff1660038111156109c4576109c4611baf565b145b156109d2575060085490565b6003600e5460ff1660038111156109eb576109eb611baf565b036109f75750600d5490565b60405162461bcd60e51b815260206004820181905260248201527f4e6f206163746976652073616c6520746f206765742070726963652066726f6d60448201526064016106ee565b335f908152600f602052604090205460ff1680610a74575033610a695f546001600160a01b031690565b6001600160a01b0316145b610a905760405162461bcd60e51b81526004016106ee90611c5a565b6002600e5460ff166003811115610aa957610aa9611baf565b14610aea5760405162461bcd60e51b815260206004820152601160248201527049434f206973206e6f742061637469766560781b60448201526064016106ee565b610af261186e565b600e805460ff191690556040517f376a240723d36c0e935650eab13f3619c85e501cc9035171a3d451c650a7971a90610b2d90600290611be3565b60405180910390a1565b335f908152600f602052604090205460ff1680610b6c575033610b615f546001600160a01b031690565b6001600160a01b0316145b610b885760405162461bcd60e51b81526004016106ee90611c5a565b5f8111610ba75760405162461bcd60e51b81526004016106ee90611cce565b6001600e5460ff166003811115610bc057610bc0611baf565b1480610be257506002600e5460ff166003811115610be057610be0611baf565b145b15610bf1576008819055610c61565b6003600e5460ff166003811115610c0a57610c0a611baf565b03610c1957600d819055610c61565b60405162461bcd60e51b815260206004820152601f60248201527f4e6f206163746976652073616c6520746f2073657420707269636520666f720060448201526064016106ee565b6040518181527f4b59d61d9ffdc3db926d0ce7e06ebabb6bd1bf9dcdae262667e48be36822721690602001610850565b5f546001600160a01b03163314610cba5760405162461bcd60e51b81526004016106ee90611d55565b610cc35f6118af565b565b335f908152600f602052604090205460ff1680610cfa575033610cef5f546001600160a01b031690565b6001600160a01b0316145b610d165760405162461bcd60e51b81526004016106ee90611c5a565b6003600e5460ff166003811115610d2f57610d2f611baf565b14610d705760405162461bcd60e51b81526020600482015260116024820152704f5443206973206e6f742061637469766560781b60448201526064016106ee565b610d7861186e565b600e805460ff191690556040517f376a240723d36c0e935650eab13f3619c85e501cc9035171a3d451c650a7971a90610b2d90600390611be3565b60606005805461060690611c22565b335f908152600f602052604090205460ff1680610df7575033610dec5f546001600160a01b031690565b6001600160a01b0316145b610e135760405162461bcd60e51b81526004016106ee90611c5a565b6001600e5460ff166003811115610e2c57610e2c611baf565b14610e795760405162461bcd60e51b815260206004820181905260248201527f49434f2063616e206f6e6c792073746172742061667465722050726573616c6560448201526064016106ee565b5f8111610e985760405162461bcd60e51b81526004016106ee90611cce565b600e805460ff1916600290811790915560088290556040517fedec6f934751c5301796f878dd1bac76eab3a19521458aeebac58fc777a99efe91610850918490611d13565b5f610ef5600954600c546118fe90919063ffffffff16565b905090565b335f908152600f602052604090205460ff1680610f2f575033610f245f546001600160a01b031690565b6001600160a01b0316145b610f4b5760405162461bcd60e51b81526004016106ee90611c5a565b5f600e5460ff166003811115610f6357610f63611baf565b14610f805760405162461bcd60e51b81526004016106ee90611c82565b5f8111610f9f5760405162461bcd60e51b81526004016106ee90611cce565b600e805460ff1916600190811790915560088290556040517fedec6f934751c5301796f878dd1bac76eab3a19521458aeebac58fc777a99efe91610850918490611d13565b335f908152600f602052604090205460ff168061101957503361100e5f546001600160a01b031690565b6001600160a01b0316145b6110355760405162461bcd60e51b81526004016106ee90611c5a565b6001600e5460ff16600381111561104e5761104e611baf565b146110935760405162461bcd60e51b815260206004820152601560248201527450726573616c65206973206e6f742061637469766560581b60448201526064016106ee565b61109b61186e565b600e805460ff191690556040517f376a240723d36c0e935650eab13f3619c85e501cc9035171a3d451c650a7971a90610b2d90600190611be3565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156111575760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106ee565b6111643385858403611573565b5060019392505050565b5f610693338484611696565b611182611920565b61118a61194a565b5f600e5460ff1660038111156111a2576111a2611baf565b036111e35760405162461bcd60e51b81526020600482015260116024820152704e6f2073616c652069732061637469766560781b60448201526064016106ee565b5f341161123e5760405162461bcd60e51b8152602060048201526024808201527f45544820616d6f756e74206d7573742062652067726561746572207468616e206044820152637a65726f60e01b60648201526084016106ee565b5f61124761098a565b90505f61126a8261126461125d6012600a611e6d565b349061196e565b906119a1565b90505f81116112b15760405162461bcd60e51b8152602060048201526013602482015272139bdd08195b9bdd59da08115512081cd95b9d606a1b60448201526064016106ee565b600c546009546112c190836119ac565b11156113065760405162461bcd60e51b8152602060048201526014602482015273115e18d959591cc81cdd5c1c1b1e481b1a5b5a5d60621b60448201526064016106ee565b60095461131390826119ac565b600955600a5461132390346119ac565b600a5561134161133a5f546001600160a01b031690565b3383611696565b60405181815233907f8f28852646c20cc973d3a8218f7eefed58c25c909f78f0265af4818c3d4dc2719060200160405180910390a260405134815233907fbfe611b001dfcd411432f7bf0d79b82b4b2ee81511edac123a3403c357fb972a9060200160405180910390a25050610cc36001600655565b335f908152600f602052604090205460ff16806113ec5750336113e15f546001600160a01b031690565b6001600160a01b0316145b6114085760405162461bcd60e51b81526004016106ee90611c5a565b5f600e5460ff16600381111561142057611420611baf565b146114815760405162461bcd60e51b815260206004820152602b60248201527f43616e6e6f7420636c6f73652073616c652c20616e6f7468657220706861736560448201526a1034b99030b1ba34bb329760a91b60648201526084016106ee565b600b805460ff19166001179055565b5f546001600160a01b031633146114b95760405162461bcd60e51b81526004016106ee90611d55565b6001600160a01b03811661151e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ee565b611527816118af565b50565b5f546001600160a01b031633146115535760405162461bcd60e51b81526004016106ee90611d55565b6001600160a01b03165f908152600f60205260409020805460ff19169055565b6001600160a01b0383166115d55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ee565b6001600160a01b0382166116365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ee565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ee565b6001600160a01b03821661175c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ee565b6117678383836119c9565b6001600160a01b0383165f90815260016020526040902054818110156117de5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106ee565b6001600160a01b038085165f90815260016020526040808220858503905591851681529081208054849290611814908490611d42565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161186091815260200190565b60405180910390a350505050565b478015611527575f80546040516001600160a01b039091169183156108fc02918491818181858888f193505050501580156118ab573d5f803e3d5ffd5b5050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8282111561190f5761190f611e7b565b6119198284611e8f565b9392505050565b60026006540361194357604051633ee5aeb560e01b815260040160405180910390fd5b6002600655565b60075460ff1615610cc35760405163d93c066560e01b815260040160405180910390fd5b5f825f0361197d57505f610697565b6119878284611ea2565b9050816119948483611eb9565b1461069757610697611e7b565b5f6119198284611eb9565b5f6119b78284611d42565b90508281101561069757610697611e7b565b6001600160a01b038316158015906119ee57505f546001600160a01b03848116911614155b15611ac857600b5460ff16611a515760405162461bcd60e51b8152602060048201526024808201527f546f6b656e207472616e7366657273206172652063757272656e746c79206c6f60448201526318dad95960e21b60648201526084016106ee565b80611a70846001600160a01b03165f9081526001602052604090205490565b1015611ac85760405162461bcd60e51b815260206004820152602160248201527f496e73756666696369656e742062616c616e636520666f72207472616e7366656044820152603960f91b60648201526084016106ee565b505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611b18575f80fd5b919050565b5f8060408385031215611b2e575f80fd5b611b3783611b02565b946020939093013593505050565b5f60208284031215611b55575f80fd5b5035919050565b5f805f60608486031215611b6e575f80fd5b611b7784611b02565b9250611b8560208501611b02565b929592945050506040919091013590565b5f60208284031215611ba6575f80fd5b61191982611b02565b634e487b7160e01b5f52602160045260245ffd5b60048110611bdf57634e487b7160e01b5f52602160045260245ffd5b9052565b602081016106978284611bc3565b5f8060408385031215611c02575f80fd5b611c0b83611b02565b9150611c1960208401611b02565b90509250929050565b600181811c90821680611c3657607f821691505b602082108103611c5457634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b6020808252602c908201527f416e6f746865722073616c6520697320616374697665206f72206e6f7420726560408201526b7365742070726f7065726c7960a01b606082015260800190565b60208082526025908201527f546f6b656e207072696365206d7573742062652067726561746572207468616e604082015264207a65726f60d81b606082015260800190565b60408101611d218285611bc3565b8260208301529392505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561069757610697611d2e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6001815b6001841115611dc557808504811115611da957611da9611d2e565b6001841615611db757908102905b60019390931c928002611d8e565b935093915050565b5f82611ddb57506001610697565b81611de757505f610697565b8160018114611dfd5760028114611e0757611e23565b6001915050610697565b60ff841115611e1857611e18611d2e565b50506001821b610697565b5060208310610133831016604e8410600b8410161715611e46575081810a610697565b611e525f198484611d8a565b805f1904821115611e6557611e65611d2e565b029392505050565b5f61191960ff841683611dcd565b634e487b7160e01b5f52600160045260245ffd5b8181038181111561069757610697611d2e565b808202811582820484141761069757610697611d2e565b5f82611ed357634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212202a6097bb2e77b45faa671ddbe19bf59dd06743beacc9204af3ee1da88663bb9564736f6c634300081a0033