[ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "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": "string", "name": "parameter", "type": "string" }, { "indexed": false, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "ParameterUpdatedBool", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "parameter", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "ParameterUpdatedUint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "RewardAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "isDevFund", "type": "bool" } ], "name": "RewardPaid", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Staked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdrawn", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "deposits", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "duration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "earned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "exit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "frozenStakingTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getRewardSwitch", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_percent", "type": "uint256" }, { "internalType": "address", "name": "_rewardToken", "type": "address" }, { "internalType": "address", "name": "_lpToken", "type": "address" }, { "internalType": "bool", "name": "_isLpToken", "type": "bool" }, { "internalType": "uint256", "name": "_startTime", "type": "uint256" }, { "internalType": "uint256", "name": "_duration", "type": "uint256" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_reward", "type": "uint256" }, { "internalType": "uint256", "name": "_frozenStakingTime", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "inviter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "inviterAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "inviterSize", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isLpToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "lastStakeTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastTimeRewardApplicable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastUpdateTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "percent", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "periodFinish", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "receivedReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardPerToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardPerTokenStored", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "rewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_duration", "type": "uint256" } ], "name": "setDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_frozenStakingTime", "type": "uint256" } ], "name": "setFrozenStakingTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setGetRewardSwitch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_isLpToken", "type": "bool" } ], "name": "setLpToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_percent", "type": "uint256" } ], "name": "setPercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setStakeSwitch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_startTime", "type": "uint256" } ], "name": "setStartTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setWithdrawSwitch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "from", "type": "address" } ], "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stakeSwitch", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "startTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAccumulatedReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "unfrozenStakeTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "userRewardPerTokenPaid", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawSwitch", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60a0604052620151806080526000606a819055606b819055606c819055606e819055606f556072805463ffffff001916630101010017905534801561004357600080fd5b506080516130b161006d60003960008181610e0401528181610e6201526121e201526130b16000f3fe608060405234801561001057600080fd5b50600436106102fd5760003560e01c806378e979251161019c578063c8f33c91116100ee578063ee8f0b7a11610097578063f6be71d111610071578063f6be71d114610646578063f7c618c114610659578063fc7e286d1461067957600080fd5b8063ee8f0b7a146105dd578063f2fde38b14610613578063f6b73b021461062657600080fd5b8063df136d65116100c8578063df136d65146105c3578063e9fad8ee146105cc578063ebe2b12b146105d457600080fd5b8063c8f33c91146105aa578063cd3daf9d146105b3578063da84f28b146105bb57600080fd5b806380faa57d116101505780638da5cb5b1161012a5780638da5cb5b14610564578063913ad3ef14610582578063be8f6c8a1461058a57600080fd5b806380faa57d1461052857806383bb6ea7146105305780638b8763471461054457600080fd5b80637b0a47ee116101815780637b0a47ee146104ec5780637bb1ca19146104f55780637f7dd7e41461051557600080fd5b806378e97925146104d05780637acb7757146104d957600080fd5b80633a00e9a1116102555780635fcbd2851161020957806370ba1113116101e357806370ba1113146104ac578063715018a6146104b55780637154b8b5146104bd57600080fd5b80635fcbd2851461044357806360d470881461046357806370a082311461047657600080fd5b80633e0a322d1161023a5780633e0a322d1461041457806351b942eb14610427578063580c888c1461043a57600080fd5b80633a00e9a1146104045780633d18b9121461040c57600080fd5b806318160ddd116102b757806324387cdc1161029157806324387cdc146103cc5780632e1a7d4d146103de578063356d23e9146103f157600080fd5b806318160ddd1461039e578063207e821d146103a657806321e8de0e146103af57600080fd5b80630700037d116102e85780630700037d146103605780630fb5a6b4146103805780631629f2701461038957600080fd5b80628cc26214610302578062c3991614610328575b600080fd5b610315610310366004612dd1565b610699565b6040519081526020015b60405180910390f35b61033b610336366004612dec565b610756565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161031f565b61031561036e366004612dd1565b60746020526000908152604090205481565b61031560695481565b61039c610397366004612e24565b61079b565b005b606754610315565b610315606b5481565b6072546103bc9060ff1681565b604051901515815260200161031f565b6072546103bc90610100900460ff1681565b61039c6103ec366004612e41565b6108e3565b61039c6103ff366004612e5a565b610c78565b61039c610f38565b61039c610ff5565b61039c610422366004612e41565b61129d565b6072546103bc9062010000900460ff1681565b610315606a5481565b60665461033b9073ffffffffffffffffffffffffffffffffffffffff1681565b610315610471366004612dd1565b61140c565b610315610484366004612dd1565b73ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b610315606c5481565b61039c611440565b61039c6104cb366004612e41565b611454565b610315606d5481565b61039c6104e7366004612ee1565b6115c3565b610315606f5481565b610315610503366004612dd1565b60776020526000908152604090205481565b61039c610523366004612e41565b611d2f565b610315611e34565b6072546103bc906301000000900460ff1681565b610315610552366004612dd1565b60736020526000908152604090205481565b60335473ffffffffffffffffffffffffffffffffffffffff1661033b565b61039c611e47565b610315610598366004612dd1565b60796020526000908152604090205481565b61031560705481565b610315611efc565b61039c611f4d565b61031560715481565b61039c612001565b610315606e5481565b61033b6105eb366004612dd1565b607a6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61039c610621366004612dd1565b612022565b610315610634366004612dd1565b60756020526000908152604090205481565b61039c610654366004612e41565b6120d9565b60655461033b9073ffffffffffffffffffffffffffffffffffffffff1681565b610315610687366004612dd1565b60766020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff811660009081526074602052604081205461075090670de0b6b3a76400009061074a906106db9083612270565b73ffffffffffffffffffffffffffffffffffffffff86166000908152607360205260409020546107449061071790610711611efc565b90612283565b73ffffffffffffffffffffffffffffffffffffffff88166000908152606860205260409020545b90612270565b9061228f565b9061229b565b92915050565b6078602052816000526040600020818154811061077257600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169150829050565b6107a36122a7565b60725460ff16151581151503610840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4c5054503a204c5020746f6b656e20737461747573206973207468652073616d60448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b607280548215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091161790556040517f6f00ca05f0df4cf7298d1109268ef0777ef8b70f6d467e743f3b90867e21b1b1906108d890839060408082526009908201527f69734c70546f6b656e00000000000000000000000000000000000000000000006060820152901515602082015260800190565b60405180910390a150565b336108ec611efc565b6071556108f7611e34565b60705573ffffffffffffffffffffffffffffffffffffffff8116156109585761091f81610699565b73ffffffffffffffffffffffffffffffffffffffff82166000908152607460209081526040808320939093556071546073909152919020555b606d544210156109c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c5054503a206e6f7420737461727400000000000000000000000000000000006044820152606401610837565b6072546301000000900460ff16610a37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4c5054503a20576974686472617720737769746368206973206f6666000000006044820152606401610837565b60008211610aa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4c5054503a2043616e6e6f7420776974686472617720300000000000000000006044820152606401610837565b33600090815260766020526040902054821115610b1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4c5054503a20496e73756666696369656e742062616c616e63650000000000006044820152606401610837565b610b233361140c565b421015610bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4c5054503a2043616e6e6f74207769746864726177616c20647572696e67206660448201527f7265657a696e67000000000000000000000000000000000000000000000000006064820152608401610837565b33600090815260766020526040902054610bcc9083612283565b33600090815260766020526040902055606754610be99083612283565b60675533600090815260686020526040902054610c069083612283565b33600081815260686020526040902091909155606654610c3f9173ffffffffffffffffffffffffffffffffffffffff9091169084612328565b60405182815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d59060200160405180910390a25050565b600054610100900460ff1615808015610c985750600054600160ff909116105b80610cb25750303b158015610cb2575060005460ff166001145b610d3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610837565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610d9c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610da4612401565b6065805473ffffffffffffffffffffffffffffffffffffffff808c167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560668054928b1692909116919091179055606d869055610e28857f0000000000000000000000000000000000000000000000000000000000000000612270565b606955607280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016881515179055606c8a9055610e86827f0000000000000000000000000000000000000000000000000000000000000000612270565b606a55607280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff166301010100179055610ec0836124a0565b610ec984612022565b8015610f2c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b610f406122a7565b6072805460ff61010080830482161581027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff90931692909217928390556040517f6f00ca05f0df4cf7298d1109268ef0777ef8b70f6d467e743f3b90867e21b1b193610feb939004909116906040808252600b908201527f7374616b655377697463680000000000000000000000000000000000000000006060820152901515602082015260800190565b60405180910390a1565b33610ffe611efc565b607155611009611e34565b60705573ffffffffffffffffffffffffffffffffffffffff81161561106a5761103181610699565b73ffffffffffffffffffffffffffffffffffffffff82166000908152607460209081526040808320939093556071546073909152919020555b606d544210156110d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c5054503a206e6f7420737461727400000000000000000000000000000000006044820152606401610837565b60725462010000900460ff16611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4c5054503a204765742072657761726420737769746368206973206f666600006044820152606401610837565b60008061115433612815565b336000908152607560205260409020549193509150611173908361228f565b336000818152607560205260409020919091556065546111ac9173ffffffffffffffffffffffffffffffffffffffff9091169084612328565b604080518381526000602082015233917f16027d9cd5ffbfabaed8d9c40e1908fdeae11ae44ba883b5eab9c0bcbf1355b0910160405180910390a2336000908152607a602052604090205473ffffffffffffffffffffffffffffffffffffffff16801580159061121c5750600082115b15611297576065546112459073ffffffffffffffffffffffffffffffffffffffff168284612328565b604080518381526001602082015273ffffffffffffffffffffffffffffffffffffffff8316917f16027d9cd5ffbfabaed8d9c40e1908fdeae11ae44ba883b5eab9c0bcbf1355b0910160405180910390a25b50505050565b6112a56122a7565b60008111611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4c5054503a2053746172742074696d65206d757374206265206772656174657260448201527f207468616e2030000000000000000000000000000000000000000000000000006064820152608401610837565b606d5481036113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4c5054503a2053746172742074696d65206973207468652073616d65000000006044820152606401610837565b606d819055604080518181526009918101919091527f737461727454696d6500000000000000000000000000000000000000000000006060820152602081018290527f7976124f67ef9b53fa313ab43cb8f5c809623a36efd57b1a25861a330c596209906080016108d8565b606a5473ffffffffffffffffffffffffffffffffffffffff8216600090815260776020526040812054909161075091612f3c565b6114486122a7565b61145260006128ff565b565b61145c6122a7565b6103e881106114ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4c5054503a2050657263656e74206d757374206265206c657373207468616e2060448201527f31303030000000000000000000000000000000000000000000000000000000006064820152608401610837565b606c548103611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4c5054503a2050657263656e74206973207468652073616d65000000000000006044820152606401610837565b606c819055604080518181526007918101919091527f70657263656e74000000000000000000000000000000000000000000000000006060820152602081018290527f7976124f67ef9b53fa313ab43cb8f5c809623a36efd57b1a25861a330c596209906080016108d8565b6066546040517f70a082310000000000000000000000000000000000000000000000000000000081523360048201819052918491829173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611636573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165a9190612f4f565b10156116e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4c5054503a20496e73756666696369656e742062616c616e6365206f6620737460448201527f616b6520746f6b656e00000000000000000000000000000000000000000000006064820152608401610837565b336116f1611efc565b6071556116fc611e34565b60705573ffffffffffffffffffffffffffffffffffffffff81161561175d5761172481610699565b73ffffffffffffffffffffffffffffffffffffffff82166000908152607460209081526040808320939093556071546073909152919020555b606d544210156117c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c5054503a206e6f7420737461727400000000000000000000000000000000006044820152606401610837565b606954606d546117d99190612f3c565b4210611841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4c5054503a20616c726561647920656e640000000000000000000000000000006044820152606401610837565b607254610100900460ff166118b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4c5054503a205374616b6520737769746368206973206f6666000000000000006044820152606401610837565b6000851161191c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4c5054503a2043616e6e6f74207374616b6520300000000000000000000000006044820152606401610837565b3373ffffffffffffffffffffffffffffffffffffffff85160361199b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4c5054503a20496e76697465722063616e6e6f742062652063616c6c657200006044820152606401610837565b336000908152606860205260408120541580156119db5750336000908152607a602052604090205473ffffffffffffffffffffffffffffffffffffffff16155b80156119fc575073ffffffffffffffffffffffffffffffffffffffff851615155b90508015611a8957336000818152607a60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff8b167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092558185526078845282852080546001810182558187528587200180549092169096179055835292546079909152919020555b6066546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1c9190612f4f565b606654909150611b449073ffffffffffffffffffffffffffffffffffffffff1633308a612976565b6066546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd79190612f4f565b905087611be48383612f68565b1015611c72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4c5054503a205472616e73666572206661696c6564206f7220696e636f72726560448201527f637420616d6f756e7420726563656976656400000000000000000000000000006064820152608401610837565b33600090815260766020526040812054611c8c908a61228f565b336000908152607660205260409020819055606754909150611cae908a61228f565b60675533600090815260686020526040902054611ccb908a61228f565b336000818152606860209081526040808320949094556077905282902042905590517f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90611d1c908c815260200190565b60405180910390a2505050505050505050565b611d376122a7565b606a548103611dc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c5054503a2046726f7a656e207374616b696e672074696d652069732074686560448201527f2073616d650000000000000000000000000000000000000000000000000000006064820152608401610837565b606a819055604080518181526011918101919091527f66726f7a656e5374616b696e6754696d650000000000000000000000000000006060820152602081018290527f7976124f67ef9b53fa313ab43cb8f5c809623a36efd57b1a25861a330c596209906080016108d8565b6000611e4242606e546129d4565b905090565b611e4f6122a7565b6072805460ff630100000080830482161581027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff90931692909217928390556040517f6f00ca05f0df4cf7298d1109268ef0777ef8b70f6d467e743f3b90867e21b1b193610feb939004909116906040808252600e908201527f77697468647261775377697463680000000000000000000000000000000000006060820152901515602082015260800190565b6000611f0760675490565b600003611f15575060715490565b611e42611f44611f2460675490565b61074a670de0b6b3a764000061073e606f5461073e607054610711611e34565b6071549061228f565b611f556122a7565b6072805460ff6201000080830482161581027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff90931692909217928390556040517f6f00ca05f0df4cf7298d1109268ef0777ef8b70f6d467e743f3b90867e21b1b193610feb939004909116906040808252600f908201527f67657452657761726453776974636800000000000000000000000000000000006060820152901515602082015260800190565b3360009081526068602052604090205461201a906108e3565b611452610ff5565b61202a6122a7565b73ffffffffffffffffffffffffffffffffffffffff81166120cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610837565b6120d6816128ff565b50565b6120e16122a7565b60008111612171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4c5054503a204475726174696f6e206d7573742062652067726561746572207460448201527f68616e20300000000000000000000000000000000000000000000000000000006064820152608401610837565b60695481036121dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4c5054503a204475726174696f6e206973207468652073616d650000000000006044820152606401610837565b612206817f0000000000000000000000000000000000000000000000000000000000000000612270565b606955604080518181526008918101919091527f6475726174696f6e0000000000000000000000000000000000000000000000006060820152602081018290527f7976124f67ef9b53fa313ab43cb8f5c809623a36efd57b1a25861a330c596209906080016108d8565b600061227c8284612f7b565b9392505050565b600061227c8284612f68565b600061227c8284612f3c565b600061227c8284612f92565b60335473ffffffffffffffffffffffffffffffffffffffff163314611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610837565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526123fc9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526129ea565b505050565b600054610100900460ff16612498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610837565b611452612af9565b6124a86122a7565b60006124b2611efc565b6071556124bd611e34565b60705573ffffffffffffffffffffffffffffffffffffffff81161561251e576124e581610699565b73ffffffffffffffffffffffffffffffffffffffff82166000908152607460209081526040808320939093556071546073909152919020555b600082116125ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c5054503a20526577617264206d75737420626520677265617465722074686160448201527f6e203000000000000000000000000000000000000000000000000000000000006064820152608401610837565b6065546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561261d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126419190612f4f565b606b54909150612651908461228f565b8110156126e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4c5054503a204e6f7420656e6f75676820746f6b656e7320696e20746865206360448201527f6f6e7472616374000000000000000000000000000000000000000000000000006064820152608401610837565b606d544211156127a357606e54421061275b576000612715600161074460695461074a606d544261228390919063ffffffff16565b905061273861272f6069548361227090919063ffffffff16565b606d549061228f565b606e8190556127529061274b9042612283565b859061229b565b606f555061279a565b606e5460009061276b9042612283565b90506000612784606f548361227090919063ffffffff16565b90506127948261074a878461228f565b606f5550505b426070556127cd565b6069546127b190849061229b565b606f55606954606d546127c39161228f565b606e55606d546070555b606b546127da908461228f565b606b556040518381527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152607460205260408120548190806128a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c5054503a204e6f2072657761726420746f20676574000000000000000000006044820152606401610837565b60006128c16103e861074a606c548561227090919063ffffffff16565b905060006128cf8383612283565b73ffffffffffffffffffffffffffffffffffffffff90961660009081526074602052604081205550939492505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526112979085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161237a565b60008183106129e3578161227c565b5090919050565b6000612a4c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612b999092919063ffffffff16565b9050805160001480612a6d575080806020019051810190612a6d9190612fcd565b6123fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610837565b600054610100900460ff16612b90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610837565b611452336128ff565b6060612ba88484600085612bb0565b949350505050565b606082471015612c42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610837565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612c6b919061300e565b60006040518083038185875af1925050503d8060008114612ca8576040519150601f19603f3d011682016040523d82523d6000602084013e612cad565b606091505b5091509150612cbe87838387612cc9565b979650505050505050565b60608315612d5f578251600003612d585773ffffffffffffffffffffffffffffffffffffffff85163b612d58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610837565b5081612ba8565b612ba88383815115612d745781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610837919061302a565b803573ffffffffffffffffffffffffffffffffffffffff81168114612dcc57600080fd5b919050565b600060208284031215612de357600080fd5b61227c82612da8565b60008060408385031215612dff57600080fd5b612e0883612da8565b946020939093013593505050565b80151581146120d657600080fd5b600060208284031215612e3657600080fd5b813561227c81612e16565b600060208284031215612e5357600080fd5b5035919050565b60008060008060008060008060006101208a8c031215612e7957600080fd5b89359850612e8960208b01612da8565b9750612e9760408b01612da8565b965060608a0135612ea781612e16565b955060808a0135945060a08a01359350612ec360c08b01612da8565b925060e08a013591506101008a013590509295985092959850929598565b60008060408385031215612ef457600080fd5b82359150612f0460208401612da8565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561075057610750612f0d565b600060208284031215612f6157600080fd5b5051919050565b8181038181111561075057610750612f0d565b808202811582820484141761075057610750612f0d565b600082612fc8577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215612fdf57600080fd5b815161227c81612e16565b60005b83811015613005578181015183820152602001612fed565b50506000910152565b60008251613020818460208701612fea565b9190910192915050565b6020815260008251806020840152613049816040850160208701612fea565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220e146f3b1f0b613ddf0fe4964c85f39827e7638b368d70ebf6f98f9136b7d307364736f6c63430008130033