@venusprotocol/venus-protocol 7.0.0-dev.1 → 7.0.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +1 -1
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +1 -1
- package/artifacts/@venusprotocol/solidity-utilities/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +1 -1
- package/artifacts/@venusprotocol/solidity-utilities/contracts/TimeManagerV8.sol/TimeManagerV8.dbg.json +4 -0
- package/artifacts/{contracts/Utils/TimeManager.sol/TimeManager.json → @venusprotocol/solidity-utilities/contracts/TimeManagerV8.sol/TimeManagerV8.json} +3 -3
- package/artifacts/build-info/{c1e9192bdf0be3884d3e141f05178e78.json → 6bc1c116d51070248f3d5e0ecb283449.json} +1 -1
- package/artifacts/contracts/Admin/VBNBAdmin.sol/VBNBAdmin.dbg.json +1 -1
- package/artifacts/contracts/Admin/VBNBAdminStorage.sol/IProtocolShareReserve.dbg.json +1 -1
- package/artifacts/contracts/Admin/VBNBAdminStorage.sol/IWBNB.dbg.json +1 -1
- package/artifacts/contracts/Admin/VBNBAdminStorage.sol/VBNBAdminStorage.dbg.json +1 -1
- package/artifacts/contracts/Admin/VBNBAdminStorage.sol/VTokenInterface.dbg.json +1 -1
- package/artifacts/contracts/DelegateBorrowers/MoveDebtDelegate.sol/MoveDebtDelegate.dbg.json +1 -1
- package/artifacts/contracts/DelegateBorrowers/SwapDebtDelegate.sol/SwapDebtDelegate.dbg.json +1 -1
- package/artifacts/contracts/InterfacesV8.sol/IComptroller.dbg.json +1 -1
- package/artifacts/contracts/InterfacesV8.sol/ILiquidator.dbg.json +1 -1
- package/artifacts/contracts/InterfacesV8.sol/IVAIController.dbg.json +1 -1
- package/artifacts/contracts/InterfacesV8.sol/IVBNB.dbg.json +1 -1
- package/artifacts/contracts/InterfacesV8.sol/IVBep20.dbg.json +1 -1
- package/artifacts/contracts/InterfacesV8.sol/IVToken.dbg.json +1 -1
- package/artifacts/contracts/Liquidator/BUSDLiquidator.sol/BUSDLiquidator.dbg.json +1 -1
- package/artifacts/contracts/Liquidator/Liquidator.sol/Liquidator.dbg.json +1 -1
- package/artifacts/contracts/PegStability/IVAI.sol/IVAI.dbg.json +1 -1
- package/artifacts/contracts/PegStability/PegStability.sol/PegStability.dbg.json +1 -1
- package/artifacts/contracts/Swap/IRouterHelper.sol/IRouterHelper.dbg.json +1 -1
- package/artifacts/contracts/Swap/RouterHelper.sol/RouterHelper.dbg.json +1 -1
- package/artifacts/contracts/Swap/SwapRouter.sol/SwapRouter.dbg.json +1 -1
- package/artifacts/contracts/Swap/interfaces/IPancakePair.sol/IPancakePair.dbg.json +1 -1
- package/artifacts/contracts/Swap/interfaces/IPancakeSwapV2Factory.sol/IPancakeSwapV2Factory.dbg.json +1 -1
- package/artifacts/contracts/Swap/interfaces/IPancakeSwapV2Router.sol/IPancakeSwapV2Router.dbg.json +1 -1
- package/artifacts/contracts/Swap/interfaces/IVBNB.sol/IVBNB.dbg.json +1 -1
- package/artifacts/contracts/Swap/interfaces/IVtoken.sol/IVToken.dbg.json +1 -1
- package/artifacts/contracts/Swap/interfaces/IWBNB.sol/IWBNB.dbg.json +1 -1
- package/artifacts/contracts/Swap/interfaces/InterfaceComptroller.sol/InterfaceComptroller.dbg.json +1 -1
- package/artifacts/contracts/Swap/lib/PancakeLibrary.sol/PancakeLibrary.dbg.json +1 -1
- package/artifacts/contracts/Swap/lib/TransferHelper.sol/TransferHelper.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/Interfaces/IPoolRegistry.sol/PoolRegistryInterface.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/Interfaces/IPrime.sol/IPrime.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/Interfaces/IPrimeLiquidityProvider.sol/IPrimeLiquidityProvider.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/Interfaces/IVToken.sol/IVToken.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/Interfaces/IXVSVault.sol/IXVSVault.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/Interfaces/InterfaceComptroller.sol/InterfaceComptroller.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/Prime.sol/Prime.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/Prime.sol/Prime.json +3 -3
- package/artifacts/contracts/Tokens/Prime/PrimeLiquidityProvider.sol/PrimeLiquidityProvider.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/PrimeLiquidityProvider.sol/PrimeLiquidityProvider.json +3 -3
- package/artifacts/contracts/Tokens/Prime/PrimeStorage.sol/PrimeStorageV1.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/libs/FixedMath.sol/FixedMath.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/libs/FixedMath0x.sol/FixedMath0x.dbg.json +1 -1
- package/artifacts/contracts/Tokens/Prime/libs/Scores.sol/Scores.dbg.json +1 -1
- package/artifacts/contracts/test/AccessControlManagerMock.sol/AccessControlManagerMock.dbg.json +1 -1
- package/artifacts/contracts/test/LiquidatorHarness.sol/LiquidatorHarness.dbg.json +1 -1
- package/artifacts/contracts/test/MockProtocolShareReserve.sol/IComptroller.dbg.json +1 -1
- package/artifacts/contracts/test/MockProtocolShareReserve.sol/IIncomeDestination.dbg.json +1 -1
- package/artifacts/contracts/test/MockProtocolShareReserve.sol/IMockProtocolShareReserve.dbg.json +1 -1
- package/artifacts/contracts/test/MockProtocolShareReserve.sol/IPoolRegistry.dbg.json +1 -1
- package/artifacts/contracts/test/MockProtocolShareReserve.sol/IPrime.dbg.json +1 -1
- package/artifacts/contracts/test/MockProtocolShareReserve.sol/IVToken.dbg.json +1 -1
- package/artifacts/contracts/test/MockProtocolShareReserve.sol/MaxLoopsLimitHelper.dbg.json +1 -1
- package/artifacts/contracts/test/MockProtocolShareReserve.sol/MockProtocolShareReserve.dbg.json +1 -1
- package/artifacts/contracts/test/PrimeScenario.sol/PrimeScenario.dbg.json +1 -1
- package/artifacts/contracts/test/PrimeScenario.sol/PrimeScenario.json +3 -3
- package/contracts/Tokens/Prime/Prime.sol +4 -3
- package/contracts/Tokens/Prime/PrimeLiquidityProvider.sol +3 -3
- package/dist/typechain/{contracts/Utils/TimeManager.d.ts → @venusprotocol/solidity-utilities/contracts/TimeManagerV8.d.ts} +4 -4
- package/dist/typechain/@venusprotocol/solidity-utilities/contracts/index.d.ts +1 -0
- package/dist/typechain/contracts/Utils/index.d.ts +0 -1
- package/dist/typechain/factories/{contracts/Utils/TimeManager__factory.d.ts → @venusprotocol/solidity-utilities/contracts/TimeManagerV8__factory.d.ts} +5 -5
- package/dist/typechain/factories/{contracts/Utils/TimeManager__factory.js → @venusprotocol/solidity-utilities/contracts/TimeManagerV8__factory.js} +5 -5
- package/dist/typechain/factories/@venusprotocol/solidity-utilities/contracts/index.d.ts +1 -0
- package/dist/typechain/factories/@venusprotocol/solidity-utilities/contracts/index.js +3 -1
- package/dist/typechain/factories/contracts/Tokens/Prime/PrimeLiquidityProvider__factory.d.ts +2 -2
- package/dist/typechain/factories/contracts/Tokens/Prime/PrimeLiquidityProvider__factory.js +2 -2
- package/dist/typechain/factories/contracts/Tokens/Prime/Prime__factory.d.ts +2 -2
- package/dist/typechain/factories/contracts/Tokens/Prime/Prime__factory.js +2 -2
- package/dist/typechain/factories/contracts/Utils/index.d.ts +0 -1
- package/dist/typechain/factories/contracts/Utils/index.js +1 -3
- package/dist/typechain/factories/contracts/test/PrimeScenario__factory.d.ts +2 -2
- package/dist/typechain/factories/contracts/test/PrimeScenario__factory.js +2 -2
- package/dist/typechain/index.d.ts +2 -2
- package/dist/typechain/index.js +7 -7
- package/package.json +2 -2
- package/artifacts/contracts/Utils/TimeManager.sol/TimeManager.dbg.json +0 -4
- package/contracts/Utils/TimeManager.sol +0 -66
- /package/dist/typechain/{contracts/Utils/TimeManager.js → @venusprotocol/solidity-utilities/contracts/TimeManagerV8.js} +0 -0
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
"inputs": [],
|
|
121
|
-
"name": "
|
|
121
|
+
"name": "InvalidTimeBasedConfiguration",
|
|
122
122
|
"type": "error"
|
|
123
123
|
},
|
|
124
124
|
{
|
|
@@ -1852,8 +1852,8 @@
|
|
|
1852
1852
|
"type": "function"
|
|
1853
1853
|
}
|
|
1854
1854
|
],
|
|
1855
|
-
"bytecode": "0x6101806040523480156200001257600080fd5b50604051620061243803806200612483398101604081905262000035916200020f565b868686868686868085811580156200004b575080155b156200006a576040516302723dfb60e21b815260040160405180910390fd5b8180156200007757508015155b1562000096576040516313c4172560e01b815260040160405180910390fd5b81151560a05281620000a95780620000af565b6301e133805b60805281620000ca576200012960201b6200275a17620000d7565b6200012d60201b6200275e175b6001600160401b031660c05250506001600160a01b0380881660e0528616610100526101608490526101208390526101408290526200011562000131565b505050505050505050505050505062000288565b4390565b4290565b600054610100900460ff16156200019e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620001f0576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200020a57600080fd5b919050565b600080600080600080600060e0888a0312156200022b57600080fd5b6200023688620001f2565b96506200024660208901620001f2565b955060408801519450606088015193506080880151925060a0880151915060c088015180151581146200027857600080fd5b8091505092959891949750929550565b60805160a05160c05160e05161010051610120516101405161016051615df0620003346000396000818161041c015281816111df015281816122e10152818161230c0152612334015260008181610bfa0152818161362701526136500152600081816106470152612c290152600081816109d601526130d001526000818161046b015261310a015260006122910152600061099b01526000818161066e015261150e0152615df06000f3fe608060405234801561001057600080fd5b50600436106104125760003560e01c80639f6506ce11610220578063ce85361311610130578063e4676f37116100b8578063f2fde38b11610087578063f2fde38b14610b4c578063f6ed201714610b5f578063fa6d5f1814610b7f578063fc720f7014610b92578063fe1006ad14610bf557600080fd5b8063e4676f3714610aaa578063e486033914610abd578063ee6b13fc14610b01578063ef36bbde14610b2b57600080fd5b8063da6ab4f8116100ff578063da6ab4f814610a43578063e18f882214610a4d578063e1d146fb14610a60578063e30c397814610a68578063e335b28c14610a7957600080fd5b8063ce853613146109f8578063cf329d1614610a13578063d65bd24114610a26578063d88b9d2e14610a3957600080fd5b8063ba437c68116101b3578063c3db3c3611610182578063c3db3c3614610984578063c4ae31681461098e578063c7ad089514610996578063c86d1a78146109bd578063cdaa21b7146109d157600080fd5b8063ba437c681461094b578063bc5dc4c31461095e578063bd212c0e14610971578063be26317e1461097b57600080fd5b8063b1a250f2116101ef578063b1a250f214610845578063b4a0bdf314610858578063b7f2d25814610869578063b9eb69f6146108f557600080fd5b80639f6506ce14610808578063a15753dc14610812578063afcff50f1461081c578063b0772d0b1461083057600080fd5b80635fe3b5671161032657806380d45a2d116102ae57806389afcb441161027d57806389afcb44146107375780638da5cb5b1461074a5780638e8f294b1461075b5780639198e515146107c65780639565d3d2146107d957600080fd5b806380d45a2d146106f3578063856c3aa41461070657806388bead731461071057806388d742c21461072457600080fd5b8063715018a6116102f5578063715018a61461069057806379ba5097146106985780637dafcd89146106a05780637dc0d1d0146106b35780637ef82070146106c757600080fd5b80635fe3b567146105cc57806363250887146105de5780636426b4a7146106425780636857249c1461066957600080fd5b806329b6eca9116103a95780634e71d92d116103785780634e71d92d1461058057806355d36c9814610588578063594a67ee1461059b5780635c975abb146105ae5780635d536d30146105b957600080fd5b806329b6eca91461051357806337f23cd31461052657806338f6a43414610539578063487b0dfb1461057657600080fd5b80631bffac89116103e55780631bffac89146104b95780631cb9a02a146104da578063207add91146104ed57806324e6baf21461050057600080fd5b80630104db1b146104175780630e32cb86146104515780631b3f8c5e146104665780631b9ce575146104a5575b600080fd5b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61046461045f366004615205565b610c1c565b005b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610448565b6101375461048d906001600160a01b031681565b61043e6104c7366004615205565b6101406020526000908152604090205481565b61043e6104e8366004615222565b610c30565b6104646104fb366004615222565b610c61565b61046461050e366004615290565b610d1c565b610464610521366004615205565b610ee8565b610464610534366004615205565b610fa0565b610566610547366004615205565b6001600160a01b0316600090815261012d602052604090205460ff1690565b6040519015158152602001610448565b61043e6101395481565b6104646111ac565b6104646105963660046152d2565b61123b565b6104646105a9366004615307565b611306565b60c95460ff16610566565b61043e6105c7366004615205565b61147e565b61013f546001600160a01b031661048d565b6104646105ec366004615205565b604080518082018252600180825260208083019182526001600160a01b0394909416600090815261012d9094529190922091518254915161ffff1990921690151561ff0019161761010091151591909102179055565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b610464611539565b61046461154d565b6104646106ae366004615381565b6115c4565b6101425461048d906001600160a01b031681565b610136546106db906001600160801b031681565b6040516001600160801b039091168152602001610448565b6104646107013660046153d6565b61174e565b61043e6101315481565b6101385461048d906001600160a01b031681565b61043e610732366004615205565b611795565b610464610745366004615205565b6117b1565b6033546001600160a01b031661048d565b61079c610769366004615205565b61013360205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff1685565b6040805195865260208601949094529284019190915260608301521515608082015260a001610448565b6104646107d4366004615205565b6117e8565b6105666107e73660046153ef565b61013a60209081526000928352604080842090915290825290205460ff1681565b61043e61012f5481565b61043e61013b5481565b6101435461048d906001600160a01b031681565b6108386119ac565b604051610448919061541f565b610464610853366004615483565b611a0f565b6097546001600160a01b031661048d565b61087c61087736600461553d565b611c24565b6040516104489190600061014082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525092915050565b61093061090336600461558e565b61013460209081526000928352604080842090915290825290208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610448565b61043e61095936600461558e565b611dde565b61046461096c3660046155bc565b611df2565b61043e61013c5481565b61043e60fb5481565b61043e61013d5481565b610464612110565b6105667f000000000000000000000000000000000000000000000000000000000000000081565b6101415461048d906001600160a01b031681565b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b610136546106db90600160801b90046001600160801b031681565b610464610a2136600461558e565b612159565b61043e610a3436600461558e565b612171565b61043e61012e5481565b61043e6101305481565b610464610a5b366004615602565b612186565b61043e61228a565b6065546001600160a01b031661048d565b610464610a87366004615205565b61014180546001600160a01b0319166001600160a01b0392909216919091179055565b61043e610ab8366004615205565b6122bd565b610aea610acb366004615205565b61012d6020526000908152604090205460ff8082169161010090041682565b604080519215158352901515602083015201610448565b61048d610b0f366004615205565b61013e602052600090815260409020546001600160a01b031681565b61043e610b39366004615205565b6101326020526000908152604090205481565b610464610b5a366004615205565b612365565b610b72610b6d366004615205565b6123d6565b6040516104489190615635565b61087c610b8d36600461558e565b612518565b610464610ba0366004615205565b604080518082018252600080825260208083018281526001600160a01b0395909516825261012d90529190912090518154925161ffff1990931690151561ff0019161761010092151592909202919091179055565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b610c24612762565b610c2d816127bc565b50565b61013654600090610c5890849084906001600160801b0380821691600160801b90041661287a565b90505b92915050565b610c9f6040518060400160405280601981526020017f7365744c696d69742875696e743235362c75696e743235362900000000000000815250612934565b61012e54821080610cb2575061012f5481105b15610cd05760405163e55fb50960e01b815260040160405180910390fd5b8161013054610131547f6c52f3e195bdc534883e903e0612c49261a466aacd492501870b0a0ac0b1835584604051610d0a91815260200190565b60405180910390a46101305561013155565b61013d54600003610d405760405163071a45dd60e31b815260040160405180910390fd5b61013b54600003610d645760405163071a45dd60e31b815260040160405180910390fd5b60005b81811015610ee3576000838383818110610d8357610d8361569a565b9050602002016020810190610d989190615205565b6001600160a01b038116600090815261012d602052604090205490915060ff16610dd557604051633aeb927b60e11b815260040160405180910390fd5b61013b54600090815261013a602090815260408083206001600160a01b038516845290915290205460ff1615610e0e5750600101610d67565b610135805460005b81811015610e66576000838281548110610e3257610e3261569a565b6000918252602090912001546001600160a01b03169050610e5385826129ce565b610e5d8582612aaa565b50600101610e16565b5061013d60008154610e77906156c6565b9091555061013b54600090815261013a602090815260408083206001600160a01b0387168085529252808320805460ff19166001908117909155905196019590917fa699df4aa8f89fc1f5408fe78ae114651f18b25ed1601680e4c70c15177d8b1b91a2505050610d67565b505050565b600054600290610100900460ff16158015610f0a575060005460ff8083169116105b610f2f5760405162461bcd60e51b8152600401610f26906156dd565b60405180910390fd5b6000805461014380546001600160a01b0319166001600160a01b03861617905561ff001961010060ff851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b6000610fab82612b87565b90506000610fb882612c25565b6001600160a01b0384166000908152610132602090815260408083205461012d83529281902081518083019092525460ff808216158015808552610100909304909116151593830193909352939450919290611012575082155b15611074576001600160a01b03851660008181526101326020908152604080832083905551918252600080516020615d71833981519152910160405180910390a280602001511561106b5761106685612c5e565b6111a5565b61106685612cb6565b8215801561108157508051155b801561108c57508115155b156110d3576001600160a01b03851660008181526101326020908152604080832083905551918252600080516020615d7183398151915291015b60405180910390a26111a5565b811580156110de5750825b80156110e957508051155b1561112b576001600160a01b0385166000818152610132602090815260409182902042908190559151918252600080516020615d7183398151915291016110c6565b805180156111365750825b156111a55761114485612c5e565b6001600160a01b0385166000908152610132602052604081205490036111a5576001600160a01b0385166000818152610132602090815260409182902042908190559151918252600080516020615d71833981519152910160405180910390a25b5050505050565b3360009081526101326020526040812054908190036111dd5760405162c4e3d160e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611208824261572b565b10156112275760405163beb98cab60e01b815260040160405180910390fd5b611232600033612e8a565b610c2d33612f9b565b61125c6040518060600160405280602a8152602001615d47602a9139612934565b6001600160a01b038316600090815261013360205260409020600481015460ff1661129a57604051630ff2e4a960e31b815260040160405180910390fd5b6112a3846117e8565b6001810154815460408051868152602081018690526001600160a01b038816917f91e78a55b6df3a0eac1c12a64572a8c0faced385bafba688817f5ce6daa33537910160405180910390a482815560018101829055611300613098565b50505050565b6113446040518060400160405280602081526020017f7365745374616b6564417428616464726573735b5d2c75696e743235365b5d29815250612934565b8281146113645760405163251f56a160e21b815260040160405180910390fd5b60005b838110156111a557428383838181106113825761138261569a565b9050602002013511156113a85760405163b7d0949760e01b815260040160405180910390fd5b8282828181106113ba576113ba61569a565b9050602002013561013260008787858181106113d8576113d861569a565b90506020020160208101906113ed9190615205565b6001600160a01b031681526020810191909152604001600020558484828181106114195761141961569a565b905060200201602081019061142e9190615205565b6001600160a01b0316600080516020615d718339815191528484848181106114585761145861569a565b9050602002013560405161146e91815260200190565b60405180910390a2600101611367565b6101415460009081906001600160a01b031663a666642b61149e856130cc565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156114e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115069190615742565b9050611532817f000000000000000000000000000000000000000000000000000000000000000061575b565b9392505050565b611541612762565b61154b6000613190565b565b60655433906001600160a01b031681146115bb5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610f26565b610c2d81613190565b6115fa60405180604001604052806015815260200174697373756528626f6f6c2c616464726573735b5d2960581b815250612934565b821561170f5760005b8181101561130057600061012d60008585858181106116245761162461569a565b90506020020160208101906116399190615205565b6001600160a01b031681526020810191909152604001600020805490915060ff16801561166d57508054610100900460ff16155b156116a6576116a18484848181106116875761168761569a565b905060200201602081019061169c9190615205565b6131a9565b611706565b6116d760018585858181106116bd576116bd61569a565b90506020020160208101906116d29190615205565b612e8a565b6117068484848181106116ec576116ec61569a565b90506020020160208101906117019190615205565b612f9b565b50600101611603565b60005b818110156113005761173160008484848181106116bd576116bd61569a565b6117468383838181106116ec576116ec61569a565b600101611712565b61178c6040518060400160405280601981526020017f7365744d61784c6f6f70734c696d69742875696e743235362900000000000000815250612934565b610c2d81613259565b600061179f6132f3565b6117a98233613339565b90505b919050565b6117df6040518060400160405280600d81526020016c6275726e28616464726573732960981b815250612934565b610c2d81612cb6565b6001600160a01b038116600090815261013360205260409020600481015460ff1661182657604051630ff2e4a960e31b815260040160405180910390fd5b6000611831836130cc565b61014154604051638aadf79960e01b81526001600160a01b0380841660048301529293509116908190638aadf79990602401600060405180830381600087803b15801561187d57600080fd5b505af1158015611891573d6000803e3d6000fd5b505060405163fa7781ff60e01b81526001600160a01b038581166004830152600093508416915063fa7781ff90602401602060405180830381865afa1580156118de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119029190615742565b6001600160a01b038416600090815261014060205260408120549192509061192a908361572b565b905080600081900361193f5750505050505050565b6001600160a01b03851660009081526101406020526040812084905560038701541561198957600387015461197c670de0b6b3a76400008461575b565b6119869190615790565b90505b8087600201600082825461199d91906157a4565b90915550505050505050505050565b6060610135805480602002602001604051908101604052809291908181526020018280548015611a0557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119e7575b5050505050905090565b600054610100900460ff1615808015611a2f5750600054600160ff909116105b80611a495750303b158015611a49575060005460ff166001145b611a655760405162461bcd60e51b8152600401610f26906156dd565b6000805460ff191660011790558015611a88576000805461ff0019166101001790555b6001600160a01b038b16611aaf5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038a16611ad65760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038316611afd5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038516611b245760405163e6c4247b60e01b815260040160405180910390fd5b611b2e888861351c565b6001600160801b03878116600160801b02908916176101365561013880546001600160a01b03808d166001600160a01b0319928316179092556101398b905561013780548e8416908316179055600061013b55610141805488841690831617905561013f8054878416908316179055610142805492861692909116919091179055611bb886613562565b611bc061359a565b611bc982613259565b611bd16135c9565b8015611c17576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b611c2c61519d565b6001600160a01b03808716600081815261013460209081526040808320948a1683529381528382206001015492825261013390529190912060030154611c72919061572b565b6040820152611c8082613623565b60808201819052600090611c969086868a613678565b805160a0840152602081015160c0840152604081015160e08401526060810151610100840152608081015161012084015290506000611cd4886130cc565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3591906157bc565b60ff169050611d4581601261572b565b611d5090600a6158c3565b8360a00151611d5f919061575b565b60a08401819052608084015161013654611d8d92906001600160801b0380821691600160801b90041661287a565b606084018190526040840151611da391906157a4565b836040018181525050611dcb8886888660c001518760e0015188606001518960400151613986565b6020850152835250909695505050505050565b6000611de86132f3565b610c588383613339565b611e136040518060600160405280602a8152602001615d91602a9139612934565b6001600160a01b038416611e3a576040516383aebebd60e01b815260040160405180910390fd5b61013f546001600160a01b03858116911614801590611ed8575061014354604051637aee632d60e01b81526001600160a01b0386811660048301819052921690637aee632d90602401600060405180830381865afa158015611ea0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ec89190810190615976565b604001516001600160a01b031614155b15611ef6576040516383aebebd60e01b815260040160405180910390fd5b6001600160a01b038316600090815261013360205260409020600481015460ff1615611f3557604051630313b28560e01b815260040160405180910390fd5b604051638e8f294b60e01b81526001600160a01b03858116600483015260009190871690638e8f294b90602401602060405180830381865afa158015611f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa39190615a6c565b905080611fc357604051633d21810360e21b815260040160405180910390fd5b60006002830181905584835560018084018590556003840182905560048401805460ff19169091179055611ff6866130cc565b6001600160a01b03808216600090815261013e602052604090205491925016156120335760405163dc0d0aab60e01b815260040160405180910390fd5b6001600160a01b03808216600090815261013e6020526040812080549289166001600160a01b03199384168117909155610135805460018101825592527fdf37d27e88e3bd0b85262482997e409a463f5be0ebb19232abf994dd8474090d90910180549092161790556120a4613098565b610135546120b190613a72565b856001600160a01b0316876001600160a01b03167f1322eaea77217179bf4ef6084dc2f48c897e0d5a6b8365213804360e4d8ba9a287876040516120ff929190918252602082015260400190565b60405180910390a350505050505050565b61213e6040518060400160405280600d81526020016c746f67676c655061757365282960981b815250612934565b60c95460ff16156121515761154b613aa3565b61154b6135c9565b61216382826129ce565b61216d8282612aaa565b5050565b600061217c836117e8565b610c588383613adc565b6121c46040518060400160405280601c81526020017f757064617465416c7068612875696e743132382c75696e743132382900000000815250612934565b6121ce828261351c565b610136546040516001600160801b03838116825284811692600160801b81048216929116907f9122c3fdea272423a0586803b53902139919baf05be731f04724ef8f363d378d9060200160405180910390a46001600160801b03818116600160801b0290831617610136556101355460005b8181101561228157612279610135828154811061225f5761225f61569a565b6000918252602090912001546001600160a01b03166117e8565b600101612240565b50610ee3613098565b60006122b87f000000000000000000000000000000000000000000000000000000000000000063ffffffff16565b905090565b6001600160a01b0381166000908152610132602052604081205480820361230657507f000000000000000000000000000000000000000000000000000000000000000092915050565b428190037f000000000000000000000000000000000000000000000000000000000000000081101561235b577f0000000000000000000000000000000000000000000000000000000000000000039392505050565b5060009392505050565b61236d612762565b606580546001600160a01b0383166001600160a01b0319909116811790915561239e6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6101358054606091908067ffffffffffffffff8111156123f8576123f86158cf565b60405190808252806020026020018201604052801561244357816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816124165790505b50925060005b818110156125105760008382815481106124655761246561569a565b60009182526020822001546001600160a01b031691506124858288612171565b6001600160a01b03808416600081815261013460209081526040808320948d16835293815290839020548351606081019094529183529293509181016124ca856130cc565b6001600160a01b031681526020016124e283856157a4565b8152508785815181106124f7576124f761569a565b6020026020010181905250836001019350505050612449565b505050919050565b61252061519d565b6040516395dd919360e01b81526001600160a01b03838116600483015284916000918316906395dd919390602401602060405180830381865afa15801561256b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258f9190615742565b90506000826001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f59190615742565b6040516370a0823160e01b81526001600160a01b0387811660048301529192506000918516906370a0823190602401602060405180830381865afa158015612641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126659190615742565b90506000670de0b6b3a764000061267c838561575b565b6126869190615790565b6001600160a01b03808a16600081815261013460209081526040808320948d1683529381528382206001015460608c0152918152610133909152819020600301549088015290506126de6126d988612b87565b613623565b608087018190526000906126f490868489613678565b805160a0890152602081015160c0890181905260408083015160e08b018190526060808501516101008d015260808501516101208d01528b0151918b0151939450612746938d9387938b939192613986565b602089015287525094979650505050505050565b4390565b4290565b6033546001600160a01b0316331461154b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f26565b6001600160a01b0381166128205760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608401610f26565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610f94565b6000841580612887575083155b156128945750600061292c565b8385036128a257508361292c565b8385106000816128bb576128b68688613b73565b6128c5565b6128c58787613b73565b905060006129006128d586613bdb565b6128de88613bdb565b6128e785613c45565b6128f19190615a89565b6128fb9190615b0e565b613c50565b9050821561291c576129128782613c5b565b935050505061292c565b6129268782613c8d565b93505050505b949350505050565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906129679033908690600401615b68565b602060405180830381865afa158015612984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a89190615a6c565b90508061216d57333083604051634a3fa29360e01b8152600401610f2693929190615b8c565b6001600160a01b0381166000908152610133602052604090206004015460ff161580612a1457506001600160a01b038216600090815261012d602052604090205460ff16155b15612a1d575050565b612a26816117e8565b612a308183613adc565b6001600160a01b0380831660009081526101346020908152604080832093871683529290529081208054909190612a689084906157a4565b90915550506001600160a01b03908116600090815261013360209081526040808320600290810154610134845282852096909516845294909152902090910155565b6001600160a01b038116600090815261013360205260409020600481015460ff161580612af157506001600160a01b038316600090815261012d602052604090205460ff16155b15612afb57505050565b6000612b078385613cbf565b6001600160a01b038085166000908152610134602090815260408083209389168352929052206001015460038401549192508291612b45919061572b565b612b4f91906157a4565b6003909201919091556001600160a01b0391821660009081526101346020908152604080832095909416825293909352912060010155565b6101375461013854610139546040516398e1b31b60e01b81526001600160a01b03928316600482015260248101919091528382166044820152600092839283929116906398e1b31b90606401606060405180830381865afa158015612bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c149190615bb8565b9250509150808261292c919061572b565b60007f00000000000000000000000000000000000000000000000000000000000000008210612c5657506001919050565b506000919050565b610135805460005b81811015611300576000838281548110612c8257612c8261569a565b6000918252602090912001546001600160a01b03169050612ca385826129ce565b612cad8582612aaa565b50600101612c66565b6001600160a01b038116600090815261012d602090815260409182902082518084019093525460ff808216151580855261010090920416151591830191909152612d1357604051633aeb927b60e11b815260040160405180910390fd5b610135805460005b81811015612dec576000838281548110612d3757612d3761569a565b6000918252602090912001546001600160a01b03169050612d5886826129ce565b6001600160a01b03808216600081815261013460209081526040808320948b1683529381528382206001015492825261013390529190912060030154612d9e919061572b565b6001600160a01b039182166000908152610133602090815260408083206003019390935561013481528282209389168252929092528120600180820183905560029091019190915501612d1b565b50826020015115612e105761012e60008154612e07906156c6565b90915550612e25565b61012f60008154612e20906156c6565b909155505b6001600160a01b038416600090815261012d60205260409020805461ffff19169055612e508461404f565b6040516001600160a01b038516907fe22de1457cb61fb61b60176bc4235a9abd19466126b46692bc14fc573f09924990600090a250505050565b6001600160a01b038116600090815261012d60205260409020805460ff1615612ec55760405162c4e3d160e01b815260040160405180910390fd5b8054831580156101000261ffff19909216919091176001178255612efc5761012e60008154612ef390615be6565b90915550612f11565b61012f60008154612f0c90615be6565b909155505b6101315461012e541180612f2a57506101305461012f54115b15612f485760405163e55fb50960e01b815260040160405180910390fd5b612f51826140c3565b816001600160a01b03167fdd032f28700d4e4b1719b8fa26918a7d68608b4e36def571ce5fe7a3ecd69f4584604051612f8e911515815260200190565b60405180910390a2505050565b610135805460005b81811015611300576000838281548110612fbf57612fbf61569a565b6000918252602090912001546001600160a01b03169050612fdf816117e8565b6001600160a01b038082166000908152610133602090815260408083206002908101546101348452828520958b16855294909252822001919091556130248287613cbf565b6001600160a01b03808416600081815261013460209081526040808320948c168352938152838220600101859055918152610133909152206003015490915061306e9082906157a4565b6001600160a01b039092166000908152610133602052604090206003019190915550600101612fa3565b61013b80549060006130a983615be6565b919050555061012f5461012e546130c091906157a4565b61013c81905561013d55565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361312e57507f0000000000000000000000000000000000000000000000000000000000000000919050565b816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561316c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a99190615bff565b606580546001600160a01b0319169055610c2d81614101565b6001600160a01b038116600090815261012d60205260408120805461ff00191661010017815561012e8054919290916131e190615be6565b9091555061012f80546000906131f6906156c6565b909155506101315461012e5411156132215760405163e55fb50960e01b815260040160405180910390fd5b6040516001600160a01b038316907f5272e69bcef8da96614ac4a5d1e95ca02c35ea627bf7ecf389ec88d8d78b86bb90600090a25050565b60fb5481116132b55760405162461bcd60e51b815260206004820152602260248201527f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d6044820152611a5d60f21b6064820152608401610f26565b60fb80549082905560408051828152602081018490527fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa9101610f94565b60c95460ff161561154b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610f26565b6000806133468484612171565b6001600160a01b038086166000908152610134602090815260408083209388168352929052205490915061337a90826157a4565b6001600160a01b038581166000908152610133602090815260408083206002908101546101348452828520958a16855294909252822090810192909255908190559091506133c7856130cc565b6040516370a0823160e01b815230600482015290915081906001600160a01b038216906370a0823190602401602060405180830381865afa158015613410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134349190615742565b8311156134b1576001600160a01b03828116600090815261014060205260408082209190915561014154905163192e7a7b60e01b8152838316600482015291169063192e7a7b90602401600060405180830381600087803b15801561349857600080fd5b505af11580156134ac573d6000803e3d6000fd5b505050505b6134c56001600160a01b0382168685614153565b856001600160a01b0316856001600160a01b03167fc7edf5cfe443c04a10a60ff6084c847114348c55b257a01d62700326219adbba8560405161350a91815260200190565b60405180910390a35090949350505050565b806001600160801b0316826001600160801b031610158061354457506001600160801b038216155b1561216d57604051630381eb6d60e61b815260040160405180910390fd5b600054610100900460ff166135895760405162461bcd60e51b8152600401610f2690615c1c565b6135916141a5565b610c2d816141d4565b600054610100900460ff166135c15760405162461bcd60e51b8152600401610f2690615c1c565b61154b6141fb565b6135d16132f3565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586136063390565b6040516001600160a01b03909116815260200160405180910390a1565b60007f000000000000000000000000000000000000000000000000000000000000000082111561367457507f0000000000000000000000000000000000000000000000000000000000000000919050565b5090565b6136aa6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6101375460408051631ac5701b60e11b815290516000926001600160a01b03169163358ae0369160048083019260209291908290030181865afa1580156136f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137199190615bff565b610142546040516341976e0960e01b81526001600160a01b038084166004830152929350600092909116906341976e0990602401602060405180830381865afa15801561376a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061378e9190615742565b6001600160a01b03851660009081526101336020526040902060010154909150670de0b6b3a76400009081906137c4908a61575b565b6137ce9190615790565b6137d8908361575b565b6137e29190615790565b60808401526001600160a01b03841660009081526101336020526040902054670de0b6b3a7640000908190613817908a61575b565b6138219190615790565b61382b908361575b565b6138359190615790565b60608401526101425460405163fc57d4df60e01b81526001600160a01b038681166004830152600092169063fc57d4df90602401602060405180830381865afa158015613886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138aa9190615742565b90506000670de0b6b3a76400006138c1888461575b565b6138cb9190615790565b90506000670de0b6b3a76400006138e28a8561575b565b6138ec9190615790565b9050856060015182106139265781600003613908576000613923565b81866060015189613919919061575b565b6139239190615790565b97505b8560800151811061395e578060000361394057600061395b565b8086608001518a613951919061575b565b61395b9190615790565b98505b61396889896157a4565b86525050505060208201939093526040810193909352509092915050565b6000808260000361399c57506000905080613a66565b6000836139a88b61147e565b6139b2908761575b565b6139bc9190615790565b905060006139ca87896157a4565b9050806000036139e257600080935093505050613a66565b612710600080836139f38c8761575b565b6139fd9190615790565b915083613a0a8b8761575b565b613a149190615790565b90508c15613a36578c613a27848461575b565b613a319190615790565b613a39565b60005b96508b15613a5b578b613a4c848361575b565b613a569190615790565b613a5e565b60005b955050505050505b97509795505050505050565b60fb54811115610c2d5760fb5460405163792bfb1b60e11b8152600481019190915260248101829052604401610f26565b613aab61422e565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613606565b6001600160a01b038083166000818152610134602090815260408083209486168352938152838220845160608101865281548152600182015481840152600291820154818701819052948452610133909252938220909301549092918391613b44919061572b565b6020830151909150670de0b6b3a7640000613b5f828461575b565b613b699190615790565b9695505050505050565b6000613b7e83613bdb565b613b8783613bdb565b1215613bb0576040516360c1ae3960e01b81526004810184905260248101839052604401610f26565b613bb982613bdb565b6001607f1b613bc785613bdb565b613bd19190615a89565b610c589190615b0e565b60006001600160ff1b038211156136745760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610f26565b60006117a982614277565b60006117a982614864565b600080821215613c7e57604051639603648160e01b815260040160405180910390fd5b6001607f1b82613bc785613bdb565b600080821215613cb057604051639603648160e01b815260040160405180910390fd5b816001607f1b613bc785613bdb565b600080613cce6126d984612b87565b6040516395dd919360e01b81526001600160a01b0385811660048301529192508591600091908316906395dd919390602401602060405180830381865afa158015613d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d419190615742565b90506000826001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613da79190615742565b6040516370a0823160e01b81526001600160a01b0388811660048301529192506000918516906370a0823190602401602060405180830381865afa158015613df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e179190615742565b90506000670de0b6b3a7640000613e2e838561575b565b613e389190615790565b9050600061013760009054906101000a90046001600160a01b03166001600160a01b031663358ae0366040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb49190615bff565b6101425460405163b62cad6960e01b81526001600160a01b03808416600483015292935091169063b62cad6990602401600060405180830381600087803b158015613efe57600080fd5b505af1158015613f12573d6000803e3d6000fd5b5050610142546040516396e85ced60e01b81526001600160a01b038e8116600483015290911692506396e85ced9150602401600060405180830381600087803b158015613f5e57600080fd5b505af1158015613f72573d6000803e3d6000fd5b505050506000613f848887858e613678565b90506000613f918c6130cc565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff291906157bc565b60ff16905061400281601261572b565b61400d90600a6158c3565b8251614019919061575b565b8083526101365461403f918b916001600160801b0380821691600160801b90041661287a565b9c9b505050505050505050505050565b61013c541561406d5761013c60008154614068906156c6565b909155505b61013d54158015906140a7575061013b54600090815261013a602090815260408083206001600160a01b038516845290915290205460ff16155b15610c2d5761013d600081546140bc906156c6565b9091555050565b61013c5415610c2d5761013b54600090815261013a602090815260408083206001600160a01b03851684529091529020805460ff1916600117905550565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610ee3908490614f75565b600054610100900460ff166141cc5760405162461bcd60e51b8152600401610f2690615c1c565b61154b61504a565b600054610100900460ff16610c245760405162461bcd60e51b8152600401610f2690615c1c565b600054610100900460ff166142225760405162461bcd60e51b8152600401610f2690615c1c565b60c9805460ff19169055565b60c95460ff1661154b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610f26565b60006001607f1b8213156142a157604051633ce23a3d60e11b815260048101839052602401610f26565b600082136142c5576040516330ecaa3d60e21b815260048101839052602401610f26565b6001607f1b82036142d857506000919050565b640733048c5a82136142f2576117a96101ff607c1b615c67565b60008060006a01c8464f76164760000000851361434057614317600160841b85615c83565b93506a01c8464f761647600000006143336001607f1b87615a89565b61433d9190615b0e565b94505b6cf1aaddd7742e90000000000000851361438d57614362600160831b85615c83565b93506cf1aaddd7742e900000000000006143806001607f1b87615a89565b61438a9190615b0e565b94505b6615fc21041027af603f1b85136143d4576143ac600160821b85615c83565b93506615fc21041027af603f1b6143c76001607f1b87615a89565b6143d19190615b0e565b94505b660960aadc109e7b60461b851361441b576143f3600160811b85615c83565b9350660960aadc109e7b60461b61440e6001607f1b87615a89565b6144189190615b0e565b94505b660454aaa8efe073604a1b85136144625761443a600160801b85615c83565b9350660454aaa8efe073604a1b6144556001607f1b87615a89565b61445f9190615b0e565b94505b6602f16ac6c59de7604c1b85136144a9576144816001607f1b85615c83565b93506602f16ac6c59de7604c1b61449c6001607f1b87615a89565b6144a69190615b0e565b94505b6609b4597e37cb05604b1b85136144f0576144c86001607e1b85615c83565b93506609b4597e37cb05604b1b6144e36001607f1b87615a89565b6144ed9190615b0e565b94505b6618ebef9eac820b604a1b85136145375761450f6001607d1b85615c83565b93506618ebef9eac820b604a1b61452a6001607f1b87615a89565b6145349190615b0e565b94505b6f70f5a893b608861e1f58934f97aea57d851361458a5761455c6001607c1b85615c83565b93506f70f5a893b608861e1f58934f97aea57d61457d6001607f1b87615a89565b6145879190615b0e565b94505b6145986001607f1b86615c83565b92508291506001607f1b6145ac8380615a89565b6145b69190615b0e565b9050600160801b6145c78482615c83565b6145d19084615a89565b6145db9190615b0e565b6145e59085615cc2565b93506001607f1b6145f68284615a89565b6146009190615b0e565b9150600160811b614621846faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa615c83565b61462b9084615a89565b6146359190615b0e565b61463f9085615cc2565b93506001607f1b6146508284615a89565b61465a9190615b0e565b9150600360801b61467b846f99999999999999999999999999999999615c83565b6146859084615a89565b61468f9190615b0e565b6146999085615cc2565b93506001607f1b6146aa8284615a89565b6146b49190615b0e565b9150600160821b6146d5846f92492492492492492492492492492492615c83565b6146df9084615a89565b6146e99190615b0e565b6146f39085615cc2565b93506001607f1b6147048284615a89565b61470e9190615b0e565b9150600560801b61472f846f8e38e38e38e38e38e38e38e38e38e38e615c83565b6147399084615a89565b6147439190615b0e565b61474d9085615cc2565b93506001607f1b61475e8284615a89565b6147689190615b0e565b9150600360811b614789846f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b615c83565b6147939084615a89565b61479d9190615b0e565b6147a79085615cc2565b93506001607f1b6147b88284615a89565b6147c29190615b0e565b9150600760801b6147e3846f89d89d89d89d89d89d89d89d89d89d89615c83565b6147ed9084615a89565b6147f79190615b0e565b6148019085615cc2565b93506001607f1b6148128284615a89565b61481c9190615b0e565b9150600160831b61483d846f88888888888888888888888888888888615c83565b6148479084615a89565b6148519190615b0e565b61485b9085615cc2565b95945050505050565b60006148746101ff607c1b615c67565b82121561488357506000919050565b8160000361489657506001607f1b919050565b60008213156148bb57604051631086170d60e01b815260048101839052602401610f26565b6000806148cc6001607c1b85615d03565b91508190506001607f1b6148e08280615a89565b6148ea9190615b0e565b90506148fe816710e1b3be415a0000615a89565b6149089084615cc2565b92506001607f1b6149198383615a89565b6149239190615b0e565b9050614937816705a0913f6b1e0000615a89565b6149419084615cc2565b92506001607f1b6149528383615a89565b61495c9190615b0e565b905061497081670168244fdac78000615a89565b61497a9084615cc2565b92506001607f1b61498b8383615a89565b6149959190615b0e565b90506149a881664807432bc18000615a89565b6149b29084615cc2565b92506001607f1b6149c38383615a89565b6149cd9190615b0e565b90506149e081660c0135dca04000615a89565b6149ea9084615cc2565b92506001607f1b6149fb8383615a89565b614a059190615b0e565b9050614a18816601b707b1cdc000615a89565b614a229084615cc2565b92506001607f1b614a338383615a89565b614a3d9190615b0e565b9050614a4f816536e0f639b800615a89565b614a599084615cc2565b92506001607f1b614a6a8383615a89565b614a749190615b0e565b9050614a8681650618fee9f800615a89565b614a909084615cc2565b92506001607f1b614aa18383615a89565b614aab9190615b0e565b9050614abc81649c197dcc00615a89565b614ac69084615cc2565b92506001607f1b614ad78383615a89565b614ae19190615b0e565b9050614af281640e30dce400615a89565b614afc9084615cc2565b92506001607f1b614b0d8383615a89565b614b179190615b0e565b9050614b288164012ebd1300615a89565b614b329084615cc2565b92506001607f1b614b438383615a89565b614b4d9190615b0e565b9050614b5d816317499f00615a89565b614b679084615cc2565b92506001607f1b614b788383615a89565b614b829190615b0e565b9050614b92816301a9d480615a89565b614b9c9084615cc2565b92506001607f1b614bad8383615a89565b614bb79190615b0e565b9050614bc681621c6380615a89565b614bd09084615cc2565b92506001607f1b614be18383615a89565b614beb9190615b0e565b9050614bfa816201c638615a89565b614c049084615cc2565b92506001607f1b614c158383615a89565b614c1f9190615b0e565b9050614c2d81611ab8615a89565b614c379084615cc2565b92506001607f1b614c488383615a89565b614c529190615b0e565b9050614c608161017c615a89565b614c6a9084615cc2565b92506001607f1b614c7b8383615a89565b614c859190615b0e565b9050614c92816014615a89565b614c9c9084615cc2565b92506001607f1b614cad8383615a89565b614cb79190615b0e565b9050614cc4816001615a89565b614cce9084615cc2565b92506001607f1b82614ce86721c3677c82b4000086615b0e565b614cf29190615cc2565b614cfc9190615cc2565b9250614d0784615c67565b9350600160841b841615614d4d577243cbaf42a000812488fc5c220ad7b97bf6e99e614d406cf1aaddd7742e56d32fb9f9974485615a89565b614d4a9190615b0e565b92505b600160831b841615614d92577105d27a9f51c31b7c2f8038212a0574779991614d856e0afe10820813d65dfe6a33c07f738f85615a89565b614d8f9190615b0e565b92505b600160821b841615614dd757701b4c902e273a58678d6d3bfdb93db96d02614dca6f02582ab704279e8efd15e0265855c47a85615a89565b614dd49190615b0e565b92505b600160811b841615614e1c577003b1cc971a9bb5b9867477440d6d157750614e0f6f1152aaa3bf81cb9fdb76eae12d02957185615a89565b614e199190615b0e565b92505b600160801b841615614e615770015bf0a8b1457695355fb8ac404e7a79e3614e546f2f16ac6c59de6f8d5d6f63c1482a7c8685615a89565b614e5e9190615b0e565b92505b6001607f1b841615614ea5576fd3094c70f034de4b96ff7d5b6f99fcd8614e986f4da2cbf1be5827f9eb3ad1aa9866ebb385615a89565b614ea29190615b0e565b92505b6001607e1b841615614ee9576fa45af1e1f40c333b3de1db4dd55f29a7614edc6f63afbe7ab2082ba1a0ae5e4eb1b479dc85615a89565b614ee69190615b0e565b92505b6001607d1b841615614f2d576f910b022db7ae67ce76b441c27035c6a1614f206f70f5a893b608861e1f58934f97aea57d85615a89565b614f2a9190615b0e565b92505b6001607c1b841615614f6e576f88415abbe9a76bead8d00cf112e4d4a8614f646f783eafef1c0a8f3978c7f81824d62ebf85615a89565b61292c9190615b0e565b5050919050565b6000614fca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661507a9092919063ffffffff16565b9050805160001480614feb575080806020019051810190614feb9190615a6c565b610ee35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610f26565b600054610100900460ff166150715760405162461bcd60e51b8152600401610f2690615c1c565b61154b33613190565b606061292c848460008585600080866001600160a01b031685876040516150a19190615d17565b60006040518083038185875af1925050503d80600081146150de576040519150601f19603f3d011682016040523d82523d6000602084013e6150e3565b606091505b50915091506150f4878383876150ff565b979650505050505050565b6060831561516e578251600003615167576001600160a01b0385163b6151675760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f26565b508161292c565b61292c83838151156151835781518083602001fd5b8060405162461bcd60e51b8152600401610f269190615d33565b604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c2d57600080fd5b60006020828403121561521757600080fd5b8135611532816151f0565b6000806040838503121561523557600080fd5b50508035926020909101359150565b60008083601f84011261525657600080fd5b50813567ffffffffffffffff81111561526e57600080fd5b6020830191508360208260051b850101111561528957600080fd5b9250929050565b600080602083850312156152a357600080fd5b823567ffffffffffffffff8111156152ba57600080fd5b6152c685828601615244565b90969095509350505050565b6000806000606084860312156152e757600080fd5b83356152f2816151f0565b95602085013595506040909401359392505050565b6000806000806040858703121561531d57600080fd5b843567ffffffffffffffff8082111561533557600080fd5b61534188838901615244565b9096509450602087013591508082111561535a57600080fd5b5061536787828801615244565b95989497509550505050565b8015158114610c2d57600080fd5b60008060006040848603121561539657600080fd5b83356153a181615373565b9250602084013567ffffffffffffffff8111156153bd57600080fd5b6153c986828701615244565b9497909650939450505050565b6000602082840312156153e857600080fd5b5035919050565b6000806040838503121561540257600080fd5b823591506020830135615414816151f0565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156154605783516001600160a01b03168352928401929184019160010161543b565b50909695505050505050565b80356001600160801b03811681146117ac57600080fd5b6000806000806000806000806000806101408b8d0312156154a357600080fd5b8a356154ae816151f0565b995060208b01356154be816151f0565b985060408b013597506154d360608c0161546c565b96506154e160808c0161546c565b955060a08b01356154f1816151f0565b945060c08b0135615501816151f0565b935060e08b0135615511816151f0565b92506101008b0135615522816151f0565b809250506101208b013590509295989b9194979a5092959850565b600080600080600060a0868803121561555557600080fd5b8535615560816151f0565b94506020860135615570816151f0565b94979496505050506040830135926060810135926080909101359150565b600080604083850312156155a157600080fd5b82356155ac816151f0565b91506020830135615414816151f0565b600080600080608085870312156155d257600080fd5b84356155dd816151f0565b935060208501356155ed816151f0565b93969395505050506040820135916060013590565b6000806040838503121561561557600080fd5b61561e8361546c565b915061562c6020840161546c565b90509250929050565b602080825282518282018190526000919060409081850190868401855b8281101561568d57815180516001600160a01b0390811686528782015116878601528501518585015260609093019290850190600101615652565b5091979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816156d5576156d56156b0565b506000190190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008282101561573d5761573d6156b0565b500390565b60006020828403121561575457600080fd5b5051919050565b6000816000190483118215151615615775576157756156b0565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261579f5761579f61577a565b500490565b600082198211156157b7576157b76156b0565b500190565b6000602082840312156157ce57600080fd5b815160ff8116811461153257600080fd5b600181815b8085111561581a578160001904821115615800576158006156b0565b8085161561580d57918102915b93841c93908002906157e4565b509250929050565b60008261583157506001610c5b565b8161583e57506000610c5b565b8160018114615854576002811461585e5761587a565b6001915050610c5b565b60ff84111561586f5761586f6156b0565b50506001821b610c5b565b5060208310610133831016604e8410600b841016171561589d575081810a610c5b565b6158a783836157df565b80600019048211156158bb576158bb6156b0565b029392505050565b6000610c588383615822565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715615908576159086158cf565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615937576159376158cf565b604052919050565b60005b8381101561595a578181015183820152602001615942565b838111156113005750506000910152565b80516117ac816151f0565b6000602080838503121561598957600080fd5b825167ffffffffffffffff808211156159a157600080fd5b9084019060a082870312156159b557600080fd5b6159bd6158e5565b8251828111156159cc57600080fd5b8301601f810188136159dd57600080fd5b8051838111156159ef576159ef6158cf565b615a01601f8201601f1916870161590e565b93508084528886828401011115615a1757600080fd5b615a268187860188850161593f565b5050818152615a3684840161596b565b84820152615a466040840161596b565b604082015260608301516060820152608083015160808201528094505050505092915050565b600060208284031215615a7e57600080fd5b815161153281615373565b60006001600160ff1b0381841382841380821686840486111615615aaf57615aaf6156b0565b600160ff1b6000871282811687830589121615615ace57615ace6156b0565b60008712925087820587128484161615615aea57615aea6156b0565b87850587128184161615615b0057615b006156b0565b505050929093029392505050565b600082615b1d57615b1d61577a565b600160ff1b821460001984141615615b3757615b376156b0565b500590565b60008151808452615b5481602086016020860161593f565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061292c90830184615b3c565b6001600160a01b0384811682528316602082015260606040820181905260009061485b90830184615b3c565b600080600060608486031215615bcd57600080fd5b8351925060208401519150604084015190509250925092565b600060018201615bf857615bf86156b0565b5060010190565b600060208284031215615c1157600080fd5b8151611532816151f0565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000600160ff1b8201615c7c57615c7c6156b0565b5060000390565b60008083128015600160ff1b850184121615615ca157615ca16156b0565b6001600160ff1b0384018313811615615cbc57615cbc6156b0565b50500390565b600080821280156001600160ff1b0384900385131615615ce457615ce46156b0565b600160ff1b8390038412811615615cfd57615cfd6156b0565b50500190565b600082615d1257615d1261577a565b500790565b60008251615d2981846020870161593f565b9190910192915050565b602081526000610c586020830184615b3c56fe7570646174654d756c7469706c6965727328616464726573732c75696e743235362c75696e743235362909d2594e8892daceca055f74be758146a8b8b1167444d0b4ccb96e74168198cc6164644d61726b657428616464726573732c616464726573732c75696e743235362c75696e7432353629a264697066735822122036d48c62a9f6b6c46e510fb25612fccf3bc5d3fccaa92110252f8cbbe1401a8d64736f6c634300080d0033",
|
|
1856
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106104125760003560e01c80639f6506ce11610220578063ce85361311610130578063e4676f37116100b8578063f2fde38b11610087578063f2fde38b14610b4c578063f6ed201714610b5f578063fa6d5f1814610b7f578063fc720f7014610b92578063fe1006ad14610bf557600080fd5b8063e4676f3714610aaa578063e486033914610abd578063ee6b13fc14610b01578063ef36bbde14610b2b57600080fd5b8063da6ab4f8116100ff578063da6ab4f814610a43578063e18f882214610a4d578063e1d146fb14610a60578063e30c397814610a68578063e335b28c14610a7957600080fd5b8063ce853613146109f8578063cf329d1614610a13578063d65bd24114610a26578063d88b9d2e14610a3957600080fd5b8063ba437c68116101b3578063c3db3c3611610182578063c3db3c3614610984578063c4ae31681461098e578063c7ad089514610996578063c86d1a78146109bd578063cdaa21b7146109d157600080fd5b8063ba437c681461094b578063bc5dc4c31461095e578063bd212c0e14610971578063be26317e1461097b57600080fd5b8063b1a250f2116101ef578063b1a250f214610845578063b4a0bdf314610858578063b7f2d25814610869578063b9eb69f6146108f557600080fd5b80639f6506ce14610808578063a15753dc14610812578063afcff50f1461081c578063b0772d0b1461083057600080fd5b80635fe3b5671161032657806380d45a2d116102ae57806389afcb441161027d57806389afcb44146107375780638da5cb5b1461074a5780638e8f294b1461075b5780639198e515146107c65780639565d3d2146107d957600080fd5b806380d45a2d146106f3578063856c3aa41461070657806388bead731461071057806388d742c21461072457600080fd5b8063715018a6116102f5578063715018a61461069057806379ba5097146106985780637dafcd89146106a05780637dc0d1d0146106b35780637ef82070146106c757600080fd5b80635fe3b567146105cc57806363250887146105de5780636426b4a7146106425780636857249c1461066957600080fd5b806329b6eca9116103a95780634e71d92d116103785780634e71d92d1461058057806355d36c9814610588578063594a67ee1461059b5780635c975abb146105ae5780635d536d30146105b957600080fd5b806329b6eca91461051357806337f23cd31461052657806338f6a43414610539578063487b0dfb1461057657600080fd5b80631bffac89116103e55780631bffac89146104b95780631cb9a02a146104da578063207add91146104ed57806324e6baf21461050057600080fd5b80630104db1b146104175780630e32cb86146104515780631b3f8c5e146104665780631b9ce575146104a5575b600080fd5b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61046461045f366004615205565b610c1c565b005b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610448565b6101375461048d906001600160a01b031681565b61043e6104c7366004615205565b6101406020526000908152604090205481565b61043e6104e8366004615222565b610c30565b6104646104fb366004615222565b610c61565b61046461050e366004615290565b610d1c565b610464610521366004615205565b610ee8565b610464610534366004615205565b610fa0565b610566610547366004615205565b6001600160a01b0316600090815261012d602052604090205460ff1690565b6040519015158152602001610448565b61043e6101395481565b6104646111ac565b6104646105963660046152d2565b61123b565b6104646105a9366004615307565b611306565b60c95460ff16610566565b61043e6105c7366004615205565b61147e565b61013f546001600160a01b031661048d565b6104646105ec366004615205565b604080518082018252600180825260208083019182526001600160a01b0394909416600090815261012d9094529190922091518254915161ffff1990921690151561ff0019161761010091151591909102179055565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b610464611539565b61046461154d565b6104646106ae366004615381565b6115c4565b6101425461048d906001600160a01b031681565b610136546106db906001600160801b031681565b6040516001600160801b039091168152602001610448565b6104646107013660046153d6565b61174e565b61043e6101315481565b6101385461048d906001600160a01b031681565b61043e610732366004615205565b611795565b610464610745366004615205565b6117b1565b6033546001600160a01b031661048d565b61079c610769366004615205565b61013360205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff1685565b6040805195865260208601949094529284019190915260608301521515608082015260a001610448565b6104646107d4366004615205565b6117e8565b6105666107e73660046153ef565b61013a60209081526000928352604080842090915290825290205460ff1681565b61043e61012f5481565b61043e61013b5481565b6101435461048d906001600160a01b031681565b6108386119ac565b604051610448919061541f565b610464610853366004615483565b611a0f565b6097546001600160a01b031661048d565b61087c61087736600461553d565b611c24565b6040516104489190600061014082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525092915050565b61093061090336600461558e565b61013460209081526000928352604080842090915290825290208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610448565b61043e61095936600461558e565b611dde565b61046461096c3660046155bc565b611df2565b61043e61013c5481565b61043e60fb5481565b61043e61013d5481565b610464612110565b6105667f000000000000000000000000000000000000000000000000000000000000000081565b6101415461048d906001600160a01b031681565b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b610136546106db90600160801b90046001600160801b031681565b610464610a2136600461558e565b612159565b61043e610a3436600461558e565b612171565b61043e61012e5481565b61043e6101305481565b610464610a5b366004615602565b612186565b61043e61228a565b6065546001600160a01b031661048d565b610464610a87366004615205565b61014180546001600160a01b0319166001600160a01b0392909216919091179055565b61043e610ab8366004615205565b6122bd565b610aea610acb366004615205565b61012d6020526000908152604090205460ff8082169161010090041682565b604080519215158352901515602083015201610448565b61048d610b0f366004615205565b61013e602052600090815260409020546001600160a01b031681565b61043e610b39366004615205565b6101326020526000908152604090205481565b610464610b5a366004615205565b612365565b610b72610b6d366004615205565b6123d6565b6040516104489190615635565b61087c610b8d36600461558e565b612518565b610464610ba0366004615205565b604080518082018252600080825260208083018281526001600160a01b0395909516825261012d90529190912090518154925161ffff1990931690151561ff0019161761010092151592909202919091179055565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b610c24612762565b610c2d816127bc565b50565b61013654600090610c5890849084906001600160801b0380821691600160801b90041661287a565b90505b92915050565b610c9f6040518060400160405280601981526020017f7365744c696d69742875696e743235362c75696e743235362900000000000000815250612934565b61012e54821080610cb2575061012f5481105b15610cd05760405163e55fb50960e01b815260040160405180910390fd5b8161013054610131547f6c52f3e195bdc534883e903e0612c49261a466aacd492501870b0a0ac0b1835584604051610d0a91815260200190565b60405180910390a46101305561013155565b61013d54600003610d405760405163071a45dd60e31b815260040160405180910390fd5b61013b54600003610d645760405163071a45dd60e31b815260040160405180910390fd5b60005b81811015610ee3576000838383818110610d8357610d8361569a565b9050602002016020810190610d989190615205565b6001600160a01b038116600090815261012d602052604090205490915060ff16610dd557604051633aeb927b60e11b815260040160405180910390fd5b61013b54600090815261013a602090815260408083206001600160a01b038516845290915290205460ff1615610e0e5750600101610d67565b610135805460005b81811015610e66576000838281548110610e3257610e3261569a565b6000918252602090912001546001600160a01b03169050610e5385826129ce565b610e5d8582612aaa565b50600101610e16565b5061013d60008154610e77906156c6565b9091555061013b54600090815261013a602090815260408083206001600160a01b0387168085529252808320805460ff19166001908117909155905196019590917fa699df4aa8f89fc1f5408fe78ae114651f18b25ed1601680e4c70c15177d8b1b91a2505050610d67565b505050565b600054600290610100900460ff16158015610f0a575060005460ff8083169116105b610f2f5760405162461bcd60e51b8152600401610f26906156dd565b60405180910390fd5b6000805461014380546001600160a01b0319166001600160a01b03861617905561ff001961010060ff851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b6000610fab82612b87565b90506000610fb882612c25565b6001600160a01b0384166000908152610132602090815260408083205461012d83529281902081518083019092525460ff808216158015808552610100909304909116151593830193909352939450919290611012575082155b15611074576001600160a01b03851660008181526101326020908152604080832083905551918252600080516020615d71833981519152910160405180910390a280602001511561106b5761106685612c5e565b6111a5565b61106685612cb6565b8215801561108157508051155b801561108c57508115155b156110d3576001600160a01b03851660008181526101326020908152604080832083905551918252600080516020615d7183398151915291015b60405180910390a26111a5565b811580156110de5750825b80156110e957508051155b1561112b576001600160a01b0385166000818152610132602090815260409182902042908190559151918252600080516020615d7183398151915291016110c6565b805180156111365750825b156111a55761114485612c5e565b6001600160a01b0385166000908152610132602052604081205490036111a5576001600160a01b0385166000818152610132602090815260409182902042908190559151918252600080516020615d71833981519152910160405180910390a25b5050505050565b3360009081526101326020526040812054908190036111dd5760405162c4e3d160e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611208824261572b565b10156112275760405163beb98cab60e01b815260040160405180910390fd5b611232600033612e8a565b610c2d33612f9b565b61125c6040518060600160405280602a8152602001615d47602a9139612934565b6001600160a01b038316600090815261013360205260409020600481015460ff1661129a57604051630ff2e4a960e31b815260040160405180910390fd5b6112a3846117e8565b6001810154815460408051868152602081018690526001600160a01b038816917f91e78a55b6df3a0eac1c12a64572a8c0faced385bafba688817f5ce6daa33537910160405180910390a482815560018101829055611300613098565b50505050565b6113446040518060400160405280602081526020017f7365745374616b6564417428616464726573735b5d2c75696e743235365b5d29815250612934565b8281146113645760405163251f56a160e21b815260040160405180910390fd5b60005b838110156111a557428383838181106113825761138261569a565b9050602002013511156113a85760405163b7d0949760e01b815260040160405180910390fd5b8282828181106113ba576113ba61569a565b9050602002013561013260008787858181106113d8576113d861569a565b90506020020160208101906113ed9190615205565b6001600160a01b031681526020810191909152604001600020558484828181106114195761141961569a565b905060200201602081019061142e9190615205565b6001600160a01b0316600080516020615d718339815191528484848181106114585761145861569a565b9050602002013560405161146e91815260200190565b60405180910390a2600101611367565b6101415460009081906001600160a01b031663a666642b61149e856130cc565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156114e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115069190615742565b9050611532817f000000000000000000000000000000000000000000000000000000000000000061575b565b9392505050565b611541612762565b61154b6000613190565b565b60655433906001600160a01b031681146115bb5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610f26565b610c2d81613190565b6115fa60405180604001604052806015815260200174697373756528626f6f6c2c616464726573735b5d2960581b815250612934565b821561170f5760005b8181101561130057600061012d60008585858181106116245761162461569a565b90506020020160208101906116399190615205565b6001600160a01b031681526020810191909152604001600020805490915060ff16801561166d57508054610100900460ff16155b156116a6576116a18484848181106116875761168761569a565b905060200201602081019061169c9190615205565b6131a9565b611706565b6116d760018585858181106116bd576116bd61569a565b90506020020160208101906116d29190615205565b612e8a565b6117068484848181106116ec576116ec61569a565b90506020020160208101906117019190615205565b612f9b565b50600101611603565b60005b818110156113005761173160008484848181106116bd576116bd61569a565b6117468383838181106116ec576116ec61569a565b600101611712565b61178c6040518060400160405280601981526020017f7365744d61784c6f6f70734c696d69742875696e743235362900000000000000815250612934565b610c2d81613259565b600061179f6132f3565b6117a98233613339565b90505b919050565b6117df6040518060400160405280600d81526020016c6275726e28616464726573732960981b815250612934565b610c2d81612cb6565b6001600160a01b038116600090815261013360205260409020600481015460ff1661182657604051630ff2e4a960e31b815260040160405180910390fd5b6000611831836130cc565b61014154604051638aadf79960e01b81526001600160a01b0380841660048301529293509116908190638aadf79990602401600060405180830381600087803b15801561187d57600080fd5b505af1158015611891573d6000803e3d6000fd5b505060405163fa7781ff60e01b81526001600160a01b038581166004830152600093508416915063fa7781ff90602401602060405180830381865afa1580156118de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119029190615742565b6001600160a01b038416600090815261014060205260408120549192509061192a908361572b565b905080600081900361193f5750505050505050565b6001600160a01b03851660009081526101406020526040812084905560038701541561198957600387015461197c670de0b6b3a76400008461575b565b6119869190615790565b90505b8087600201600082825461199d91906157a4565b90915550505050505050505050565b6060610135805480602002602001604051908101604052809291908181526020018280548015611a0557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119e7575b5050505050905090565b600054610100900460ff1615808015611a2f5750600054600160ff909116105b80611a495750303b158015611a49575060005460ff166001145b611a655760405162461bcd60e51b8152600401610f26906156dd565b6000805460ff191660011790558015611a88576000805461ff0019166101001790555b6001600160a01b038b16611aaf5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038a16611ad65760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038316611afd5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038516611b245760405163e6c4247b60e01b815260040160405180910390fd5b611b2e888861351c565b6001600160801b03878116600160801b02908916176101365561013880546001600160a01b03808d166001600160a01b0319928316179092556101398b905561013780548e8416908316179055600061013b55610141805488841690831617905561013f8054878416908316179055610142805492861692909116919091179055611bb886613562565b611bc061359a565b611bc982613259565b611bd16135c9565b8015611c17576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b611c2c61519d565b6001600160a01b03808716600081815261013460209081526040808320948a1683529381528382206001015492825261013390529190912060030154611c72919061572b565b6040820152611c8082613623565b60808201819052600090611c969086868a613678565b805160a0840152602081015160c0840152604081015160e08401526060810151610100840152608081015161012084015290506000611cd4886130cc565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3591906157bc565b60ff169050611d4581601261572b565b611d5090600a6158c3565b8360a00151611d5f919061575b565b60a08401819052608084015161013654611d8d92906001600160801b0380821691600160801b90041661287a565b606084018190526040840151611da391906157a4565b836040018181525050611dcb8886888660c001518760e0015188606001518960400151613986565b6020850152835250909695505050505050565b6000611de86132f3565b610c588383613339565b611e136040518060600160405280602a8152602001615d91602a9139612934565b6001600160a01b038416611e3a576040516383aebebd60e01b815260040160405180910390fd5b61013f546001600160a01b03858116911614801590611ed8575061014354604051637aee632d60e01b81526001600160a01b0386811660048301819052921690637aee632d90602401600060405180830381865afa158015611ea0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ec89190810190615976565b604001516001600160a01b031614155b15611ef6576040516383aebebd60e01b815260040160405180910390fd5b6001600160a01b038316600090815261013360205260409020600481015460ff1615611f3557604051630313b28560e01b815260040160405180910390fd5b604051638e8f294b60e01b81526001600160a01b03858116600483015260009190871690638e8f294b90602401602060405180830381865afa158015611f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa39190615a6c565b905080611fc357604051633d21810360e21b815260040160405180910390fd5b60006002830181905584835560018084018590556003840182905560048401805460ff19169091179055611ff6866130cc565b6001600160a01b03808216600090815261013e602052604090205491925016156120335760405163dc0d0aab60e01b815260040160405180910390fd5b6001600160a01b03808216600090815261013e6020526040812080549289166001600160a01b03199384168117909155610135805460018101825592527fdf37d27e88e3bd0b85262482997e409a463f5be0ebb19232abf994dd8474090d90910180549092161790556120a4613098565b610135546120b190613a72565b856001600160a01b0316876001600160a01b03167f1322eaea77217179bf4ef6084dc2f48c897e0d5a6b8365213804360e4d8ba9a287876040516120ff929190918252602082015260400190565b60405180910390a350505050505050565b61213e6040518060400160405280600d81526020016c746f67676c655061757365282960981b815250612934565b60c95460ff16156121515761154b613aa3565b61154b6135c9565b61216382826129ce565b61216d8282612aaa565b5050565b600061217c836117e8565b610c588383613adc565b6121c46040518060400160405280601c81526020017f757064617465416c7068612875696e743132382c75696e743132382900000000815250612934565b6121ce828261351c565b610136546040516001600160801b03838116825284811692600160801b81048216929116907f9122c3fdea272423a0586803b53902139919baf05be731f04724ef8f363d378d9060200160405180910390a46001600160801b03818116600160801b0290831617610136556101355460005b8181101561228157612279610135828154811061225f5761225f61569a565b6000918252602090912001546001600160a01b03166117e8565b600101612240565b50610ee3613098565b60006122b87f000000000000000000000000000000000000000000000000000000000000000063ffffffff16565b905090565b6001600160a01b0381166000908152610132602052604081205480820361230657507f000000000000000000000000000000000000000000000000000000000000000092915050565b428190037f000000000000000000000000000000000000000000000000000000000000000081101561235b577f0000000000000000000000000000000000000000000000000000000000000000039392505050565b5060009392505050565b61236d612762565b606580546001600160a01b0383166001600160a01b0319909116811790915561239e6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6101358054606091908067ffffffffffffffff8111156123f8576123f86158cf565b60405190808252806020026020018201604052801561244357816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816124165790505b50925060005b818110156125105760008382815481106124655761246561569a565b60009182526020822001546001600160a01b031691506124858288612171565b6001600160a01b03808416600081815261013460209081526040808320948d16835293815290839020548351606081019094529183529293509181016124ca856130cc565b6001600160a01b031681526020016124e283856157a4565b8152508785815181106124f7576124f761569a565b6020026020010181905250836001019350505050612449565b505050919050565b61252061519d565b6040516395dd919360e01b81526001600160a01b03838116600483015284916000918316906395dd919390602401602060405180830381865afa15801561256b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258f9190615742565b90506000826001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f59190615742565b6040516370a0823160e01b81526001600160a01b0387811660048301529192506000918516906370a0823190602401602060405180830381865afa158015612641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126659190615742565b90506000670de0b6b3a764000061267c838561575b565b6126869190615790565b6001600160a01b03808a16600081815261013460209081526040808320948d1683529381528382206001015460608c0152918152610133909152819020600301549088015290506126de6126d988612b87565b613623565b608087018190526000906126f490868489613678565b805160a0890152602081015160c0890181905260408083015160e08b018190526060808501516101008d015260808501516101208d01528b0151918b0151939450612746938d9387938b939192613986565b602089015287525094979650505050505050565b4390565b4290565b6033546001600160a01b0316331461154b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f26565b6001600160a01b0381166128205760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608401610f26565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610f94565b6000841580612887575083155b156128945750600061292c565b8385036128a257508361292c565b8385106000816128bb576128b68688613b73565b6128c5565b6128c58787613b73565b905060006129006128d586613bdb565b6128de88613bdb565b6128e785613c45565b6128f19190615a89565b6128fb9190615b0e565b613c50565b9050821561291c576129128782613c5b565b935050505061292c565b6129268782613c8d565b93505050505b949350505050565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906129679033908690600401615b68565b602060405180830381865afa158015612984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a89190615a6c565b90508061216d57333083604051634a3fa29360e01b8152600401610f2693929190615b8c565b6001600160a01b0381166000908152610133602052604090206004015460ff161580612a1457506001600160a01b038216600090815261012d602052604090205460ff16155b15612a1d575050565b612a26816117e8565b612a308183613adc565b6001600160a01b0380831660009081526101346020908152604080832093871683529290529081208054909190612a689084906157a4565b90915550506001600160a01b03908116600090815261013360209081526040808320600290810154610134845282852096909516845294909152902090910155565b6001600160a01b038116600090815261013360205260409020600481015460ff161580612af157506001600160a01b038316600090815261012d602052604090205460ff16155b15612afb57505050565b6000612b078385613cbf565b6001600160a01b038085166000908152610134602090815260408083209389168352929052206001015460038401549192508291612b45919061572b565b612b4f91906157a4565b6003909201919091556001600160a01b0391821660009081526101346020908152604080832095909416825293909352912060010155565b6101375461013854610139546040516398e1b31b60e01b81526001600160a01b03928316600482015260248101919091528382166044820152600092839283929116906398e1b31b90606401606060405180830381865afa158015612bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c149190615bb8565b9250509150808261292c919061572b565b60007f00000000000000000000000000000000000000000000000000000000000000008210612c5657506001919050565b506000919050565b610135805460005b81811015611300576000838281548110612c8257612c8261569a565b6000918252602090912001546001600160a01b03169050612ca385826129ce565b612cad8582612aaa565b50600101612c66565b6001600160a01b038116600090815261012d602090815260409182902082518084019093525460ff808216151580855261010090920416151591830191909152612d1357604051633aeb927b60e11b815260040160405180910390fd5b610135805460005b81811015612dec576000838281548110612d3757612d3761569a565b6000918252602090912001546001600160a01b03169050612d5886826129ce565b6001600160a01b03808216600081815261013460209081526040808320948b1683529381528382206001015492825261013390529190912060030154612d9e919061572b565b6001600160a01b039182166000908152610133602090815260408083206003019390935561013481528282209389168252929092528120600180820183905560029091019190915501612d1b565b50826020015115612e105761012e60008154612e07906156c6565b90915550612e25565b61012f60008154612e20906156c6565b909155505b6001600160a01b038416600090815261012d60205260409020805461ffff19169055612e508461404f565b6040516001600160a01b038516907fe22de1457cb61fb61b60176bc4235a9abd19466126b46692bc14fc573f09924990600090a250505050565b6001600160a01b038116600090815261012d60205260409020805460ff1615612ec55760405162c4e3d160e01b815260040160405180910390fd5b8054831580156101000261ffff19909216919091176001178255612efc5761012e60008154612ef390615be6565b90915550612f11565b61012f60008154612f0c90615be6565b909155505b6101315461012e541180612f2a57506101305461012f54115b15612f485760405163e55fb50960e01b815260040160405180910390fd5b612f51826140c3565b816001600160a01b03167fdd032f28700d4e4b1719b8fa26918a7d68608b4e36def571ce5fe7a3ecd69f4584604051612f8e911515815260200190565b60405180910390a2505050565b610135805460005b81811015611300576000838281548110612fbf57612fbf61569a565b6000918252602090912001546001600160a01b03169050612fdf816117e8565b6001600160a01b038082166000908152610133602090815260408083206002908101546101348452828520958b16855294909252822001919091556130248287613cbf565b6001600160a01b03808416600081815261013460209081526040808320948c168352938152838220600101859055918152610133909152206003015490915061306e9082906157a4565b6001600160a01b039092166000908152610133602052604090206003019190915550600101612fa3565b61013b80549060006130a983615be6565b919050555061012f5461012e546130c091906157a4565b61013c81905561013d55565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361312e57507f0000000000000000000000000000000000000000000000000000000000000000919050565b816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561316c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a99190615bff565b606580546001600160a01b0319169055610c2d81614101565b6001600160a01b038116600090815261012d60205260408120805461ff00191661010017815561012e8054919290916131e190615be6565b9091555061012f80546000906131f6906156c6565b909155506101315461012e5411156132215760405163e55fb50960e01b815260040160405180910390fd5b6040516001600160a01b038316907f5272e69bcef8da96614ac4a5d1e95ca02c35ea627bf7ecf389ec88d8d78b86bb90600090a25050565b60fb5481116132b55760405162461bcd60e51b815260206004820152602260248201527f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d6044820152611a5d60f21b6064820152608401610f26565b60fb80549082905560408051828152602081018490527fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa9101610f94565b60c95460ff161561154b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610f26565b6000806133468484612171565b6001600160a01b038086166000908152610134602090815260408083209388168352929052205490915061337a90826157a4565b6001600160a01b038581166000908152610133602090815260408083206002908101546101348452828520958a16855294909252822090810192909255908190559091506133c7856130cc565b6040516370a0823160e01b815230600482015290915081906001600160a01b038216906370a0823190602401602060405180830381865afa158015613410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134349190615742565b8311156134b1576001600160a01b03828116600090815261014060205260408082209190915561014154905163192e7a7b60e01b8152838316600482015291169063192e7a7b90602401600060405180830381600087803b15801561349857600080fd5b505af11580156134ac573d6000803e3d6000fd5b505050505b6134c56001600160a01b0382168685614153565b856001600160a01b0316856001600160a01b03167fc7edf5cfe443c04a10a60ff6084c847114348c55b257a01d62700326219adbba8560405161350a91815260200190565b60405180910390a35090949350505050565b806001600160801b0316826001600160801b031610158061354457506001600160801b038216155b1561216d57604051630381eb6d60e61b815260040160405180910390fd5b600054610100900460ff166135895760405162461bcd60e51b8152600401610f2690615c1c565b6135916141a5565b610c2d816141d4565b600054610100900460ff166135c15760405162461bcd60e51b8152600401610f2690615c1c565b61154b6141fb565b6135d16132f3565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586136063390565b6040516001600160a01b03909116815260200160405180910390a1565b60007f000000000000000000000000000000000000000000000000000000000000000082111561367457507f0000000000000000000000000000000000000000000000000000000000000000919050565b5090565b6136aa6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6101375460408051631ac5701b60e11b815290516000926001600160a01b03169163358ae0369160048083019260209291908290030181865afa1580156136f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137199190615bff565b610142546040516341976e0960e01b81526001600160a01b038084166004830152929350600092909116906341976e0990602401602060405180830381865afa15801561376a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061378e9190615742565b6001600160a01b03851660009081526101336020526040902060010154909150670de0b6b3a76400009081906137c4908a61575b565b6137ce9190615790565b6137d8908361575b565b6137e29190615790565b60808401526001600160a01b03841660009081526101336020526040902054670de0b6b3a7640000908190613817908a61575b565b6138219190615790565b61382b908361575b565b6138359190615790565b60608401526101425460405163fc57d4df60e01b81526001600160a01b038681166004830152600092169063fc57d4df90602401602060405180830381865afa158015613886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138aa9190615742565b90506000670de0b6b3a76400006138c1888461575b565b6138cb9190615790565b90506000670de0b6b3a76400006138e28a8561575b565b6138ec9190615790565b9050856060015182106139265781600003613908576000613923565b81866060015189613919919061575b565b6139239190615790565b97505b8560800151811061395e578060000361394057600061395b565b8086608001518a613951919061575b565b61395b9190615790565b98505b61396889896157a4565b86525050505060208201939093526040810193909352509092915050565b6000808260000361399c57506000905080613a66565b6000836139a88b61147e565b6139b2908761575b565b6139bc9190615790565b905060006139ca87896157a4565b9050806000036139e257600080935093505050613a66565b612710600080836139f38c8761575b565b6139fd9190615790565b915083613a0a8b8761575b565b613a149190615790565b90508c15613a36578c613a27848461575b565b613a319190615790565b613a39565b60005b96508b15613a5b578b613a4c848361575b565b613a569190615790565b613a5e565b60005b955050505050505b97509795505050505050565b60fb54811115610c2d5760fb5460405163792bfb1b60e11b8152600481019190915260248101829052604401610f26565b613aab61422e565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613606565b6001600160a01b038083166000818152610134602090815260408083209486168352938152838220845160608101865281548152600182015481840152600291820154818701819052948452610133909252938220909301549092918391613b44919061572b565b6020830151909150670de0b6b3a7640000613b5f828461575b565b613b699190615790565b9695505050505050565b6000613b7e83613bdb565b613b8783613bdb565b1215613bb0576040516360c1ae3960e01b81526004810184905260248101839052604401610f26565b613bb982613bdb565b6001607f1b613bc785613bdb565b613bd19190615a89565b610c589190615b0e565b60006001600160ff1b038211156136745760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610f26565b60006117a982614277565b60006117a982614864565b600080821215613c7e57604051639603648160e01b815260040160405180910390fd5b6001607f1b82613bc785613bdb565b600080821215613cb057604051639603648160e01b815260040160405180910390fd5b816001607f1b613bc785613bdb565b600080613cce6126d984612b87565b6040516395dd919360e01b81526001600160a01b0385811660048301529192508591600091908316906395dd919390602401602060405180830381865afa158015613d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d419190615742565b90506000826001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613da79190615742565b6040516370a0823160e01b81526001600160a01b0388811660048301529192506000918516906370a0823190602401602060405180830381865afa158015613df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e179190615742565b90506000670de0b6b3a7640000613e2e838561575b565b613e389190615790565b9050600061013760009054906101000a90046001600160a01b03166001600160a01b031663358ae0366040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb49190615bff565b6101425460405163b62cad6960e01b81526001600160a01b03808416600483015292935091169063b62cad6990602401600060405180830381600087803b158015613efe57600080fd5b505af1158015613f12573d6000803e3d6000fd5b5050610142546040516396e85ced60e01b81526001600160a01b038e8116600483015290911692506396e85ced9150602401600060405180830381600087803b158015613f5e57600080fd5b505af1158015613f72573d6000803e3d6000fd5b505050506000613f848887858e613678565b90506000613f918c6130cc565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff291906157bc565b60ff16905061400281601261572b565b61400d90600a6158c3565b8251614019919061575b565b8083526101365461403f918b916001600160801b0380821691600160801b90041661287a565b9c9b505050505050505050505050565b61013c541561406d5761013c60008154614068906156c6565b909155505b61013d54158015906140a7575061013b54600090815261013a602090815260408083206001600160a01b038516845290915290205460ff16155b15610c2d5761013d600081546140bc906156c6565b9091555050565b61013c5415610c2d5761013b54600090815261013a602090815260408083206001600160a01b03851684529091529020805460ff1916600117905550565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610ee3908490614f75565b600054610100900460ff166141cc5760405162461bcd60e51b8152600401610f2690615c1c565b61154b61504a565b600054610100900460ff16610c245760405162461bcd60e51b8152600401610f2690615c1c565b600054610100900460ff166142225760405162461bcd60e51b8152600401610f2690615c1c565b60c9805460ff19169055565b60c95460ff1661154b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610f26565b60006001607f1b8213156142a157604051633ce23a3d60e11b815260048101839052602401610f26565b600082136142c5576040516330ecaa3d60e21b815260048101839052602401610f26565b6001607f1b82036142d857506000919050565b640733048c5a82136142f2576117a96101ff607c1b615c67565b60008060006a01c8464f76164760000000851361434057614317600160841b85615c83565b93506a01c8464f761647600000006143336001607f1b87615a89565b61433d9190615b0e565b94505b6cf1aaddd7742e90000000000000851361438d57614362600160831b85615c83565b93506cf1aaddd7742e900000000000006143806001607f1b87615a89565b61438a9190615b0e565b94505b6615fc21041027af603f1b85136143d4576143ac600160821b85615c83565b93506615fc21041027af603f1b6143c76001607f1b87615a89565b6143d19190615b0e565b94505b660960aadc109e7b60461b851361441b576143f3600160811b85615c83565b9350660960aadc109e7b60461b61440e6001607f1b87615a89565b6144189190615b0e565b94505b660454aaa8efe073604a1b85136144625761443a600160801b85615c83565b9350660454aaa8efe073604a1b6144556001607f1b87615a89565b61445f9190615b0e565b94505b6602f16ac6c59de7604c1b85136144a9576144816001607f1b85615c83565b93506602f16ac6c59de7604c1b61449c6001607f1b87615a89565b6144a69190615b0e565b94505b6609b4597e37cb05604b1b85136144f0576144c86001607e1b85615c83565b93506609b4597e37cb05604b1b6144e36001607f1b87615a89565b6144ed9190615b0e565b94505b6618ebef9eac820b604a1b85136145375761450f6001607d1b85615c83565b93506618ebef9eac820b604a1b61452a6001607f1b87615a89565b6145349190615b0e565b94505b6f70f5a893b608861e1f58934f97aea57d851361458a5761455c6001607c1b85615c83565b93506f70f5a893b608861e1f58934f97aea57d61457d6001607f1b87615a89565b6145879190615b0e565b94505b6145986001607f1b86615c83565b92508291506001607f1b6145ac8380615a89565b6145b69190615b0e565b9050600160801b6145c78482615c83565b6145d19084615a89565b6145db9190615b0e565b6145e59085615cc2565b93506001607f1b6145f68284615a89565b6146009190615b0e565b9150600160811b614621846faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa615c83565b61462b9084615a89565b6146359190615b0e565b61463f9085615cc2565b93506001607f1b6146508284615a89565b61465a9190615b0e565b9150600360801b61467b846f99999999999999999999999999999999615c83565b6146859084615a89565b61468f9190615b0e565b6146999085615cc2565b93506001607f1b6146aa8284615a89565b6146b49190615b0e565b9150600160821b6146d5846f92492492492492492492492492492492615c83565b6146df9084615a89565b6146e99190615b0e565b6146f39085615cc2565b93506001607f1b6147048284615a89565b61470e9190615b0e565b9150600560801b61472f846f8e38e38e38e38e38e38e38e38e38e38e615c83565b6147399084615a89565b6147439190615b0e565b61474d9085615cc2565b93506001607f1b61475e8284615a89565b6147689190615b0e565b9150600360811b614789846f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b615c83565b6147939084615a89565b61479d9190615b0e565b6147a79085615cc2565b93506001607f1b6147b88284615a89565b6147c29190615b0e565b9150600760801b6147e3846f89d89d89d89d89d89d89d89d89d89d89615c83565b6147ed9084615a89565b6147f79190615b0e565b6148019085615cc2565b93506001607f1b6148128284615a89565b61481c9190615b0e565b9150600160831b61483d846f88888888888888888888888888888888615c83565b6148479084615a89565b6148519190615b0e565b61485b9085615cc2565b95945050505050565b60006148746101ff607c1b615c67565b82121561488357506000919050565b8160000361489657506001607f1b919050565b60008213156148bb57604051631086170d60e01b815260048101839052602401610f26565b6000806148cc6001607c1b85615d03565b91508190506001607f1b6148e08280615a89565b6148ea9190615b0e565b90506148fe816710e1b3be415a0000615a89565b6149089084615cc2565b92506001607f1b6149198383615a89565b6149239190615b0e565b9050614937816705a0913f6b1e0000615a89565b6149419084615cc2565b92506001607f1b6149528383615a89565b61495c9190615b0e565b905061497081670168244fdac78000615a89565b61497a9084615cc2565b92506001607f1b61498b8383615a89565b6149959190615b0e565b90506149a881664807432bc18000615a89565b6149b29084615cc2565b92506001607f1b6149c38383615a89565b6149cd9190615b0e565b90506149e081660c0135dca04000615a89565b6149ea9084615cc2565b92506001607f1b6149fb8383615a89565b614a059190615b0e565b9050614a18816601b707b1cdc000615a89565b614a229084615cc2565b92506001607f1b614a338383615a89565b614a3d9190615b0e565b9050614a4f816536e0f639b800615a89565b614a599084615cc2565b92506001607f1b614a6a8383615a89565b614a749190615b0e565b9050614a8681650618fee9f800615a89565b614a909084615cc2565b92506001607f1b614aa18383615a89565b614aab9190615b0e565b9050614abc81649c197dcc00615a89565b614ac69084615cc2565b92506001607f1b614ad78383615a89565b614ae19190615b0e565b9050614af281640e30dce400615a89565b614afc9084615cc2565b92506001607f1b614b0d8383615a89565b614b179190615b0e565b9050614b288164012ebd1300615a89565b614b329084615cc2565b92506001607f1b614b438383615a89565b614b4d9190615b0e565b9050614b5d816317499f00615a89565b614b679084615cc2565b92506001607f1b614b788383615a89565b614b829190615b0e565b9050614b92816301a9d480615a89565b614b9c9084615cc2565b92506001607f1b614bad8383615a89565b614bb79190615b0e565b9050614bc681621c6380615a89565b614bd09084615cc2565b92506001607f1b614be18383615a89565b614beb9190615b0e565b9050614bfa816201c638615a89565b614c049084615cc2565b92506001607f1b614c158383615a89565b614c1f9190615b0e565b9050614c2d81611ab8615a89565b614c379084615cc2565b92506001607f1b614c488383615a89565b614c529190615b0e565b9050614c608161017c615a89565b614c6a9084615cc2565b92506001607f1b614c7b8383615a89565b614c859190615b0e565b9050614c92816014615a89565b614c9c9084615cc2565b92506001607f1b614cad8383615a89565b614cb79190615b0e565b9050614cc4816001615a89565b614cce9084615cc2565b92506001607f1b82614ce86721c3677c82b4000086615b0e565b614cf29190615cc2565b614cfc9190615cc2565b9250614d0784615c67565b9350600160841b841615614d4d577243cbaf42a000812488fc5c220ad7b97bf6e99e614d406cf1aaddd7742e56d32fb9f9974485615a89565b614d4a9190615b0e565b92505b600160831b841615614d92577105d27a9f51c31b7c2f8038212a0574779991614d856e0afe10820813d65dfe6a33c07f738f85615a89565b614d8f9190615b0e565b92505b600160821b841615614dd757701b4c902e273a58678d6d3bfdb93db96d02614dca6f02582ab704279e8efd15e0265855c47a85615a89565b614dd49190615b0e565b92505b600160811b841615614e1c577003b1cc971a9bb5b9867477440d6d157750614e0f6f1152aaa3bf81cb9fdb76eae12d02957185615a89565b614e199190615b0e565b92505b600160801b841615614e615770015bf0a8b1457695355fb8ac404e7a79e3614e546f2f16ac6c59de6f8d5d6f63c1482a7c8685615a89565b614e5e9190615b0e565b92505b6001607f1b841615614ea5576fd3094c70f034de4b96ff7d5b6f99fcd8614e986f4da2cbf1be5827f9eb3ad1aa9866ebb385615a89565b614ea29190615b0e565b92505b6001607e1b841615614ee9576fa45af1e1f40c333b3de1db4dd55f29a7614edc6f63afbe7ab2082ba1a0ae5e4eb1b479dc85615a89565b614ee69190615b0e565b92505b6001607d1b841615614f2d576f910b022db7ae67ce76b441c27035c6a1614f206f70f5a893b608861e1f58934f97aea57d85615a89565b614f2a9190615b0e565b92505b6001607c1b841615614f6e576f88415abbe9a76bead8d00cf112e4d4a8614f646f783eafef1c0a8f3978c7f81824d62ebf85615a89565b61292c9190615b0e565b5050919050565b6000614fca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661507a9092919063ffffffff16565b9050805160001480614feb575080806020019051810190614feb9190615a6c565b610ee35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610f26565b600054610100900460ff166150715760405162461bcd60e51b8152600401610f2690615c1c565b61154b33613190565b606061292c848460008585600080866001600160a01b031685876040516150a19190615d17565b60006040518083038185875af1925050503d80600081146150de576040519150601f19603f3d011682016040523d82523d6000602084013e6150e3565b606091505b50915091506150f4878383876150ff565b979650505050505050565b6060831561516e578251600003615167576001600160a01b0385163b6151675760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f26565b508161292c565b61292c83838151156151835781518083602001fd5b8060405162461bcd60e51b8152600401610f269190615d33565b604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c2d57600080fd5b60006020828403121561521757600080fd5b8135611532816151f0565b6000806040838503121561523557600080fd5b50508035926020909101359150565b60008083601f84011261525657600080fd5b50813567ffffffffffffffff81111561526e57600080fd5b6020830191508360208260051b850101111561528957600080fd5b9250929050565b600080602083850312156152a357600080fd5b823567ffffffffffffffff8111156152ba57600080fd5b6152c685828601615244565b90969095509350505050565b6000806000606084860312156152e757600080fd5b83356152f2816151f0565b95602085013595506040909401359392505050565b6000806000806040858703121561531d57600080fd5b843567ffffffffffffffff8082111561533557600080fd5b61534188838901615244565b9096509450602087013591508082111561535a57600080fd5b5061536787828801615244565b95989497509550505050565b8015158114610c2d57600080fd5b60008060006040848603121561539657600080fd5b83356153a181615373565b9250602084013567ffffffffffffffff8111156153bd57600080fd5b6153c986828701615244565b9497909650939450505050565b6000602082840312156153e857600080fd5b5035919050565b6000806040838503121561540257600080fd5b823591506020830135615414816151f0565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156154605783516001600160a01b03168352928401929184019160010161543b565b50909695505050505050565b80356001600160801b03811681146117ac57600080fd5b6000806000806000806000806000806101408b8d0312156154a357600080fd5b8a356154ae816151f0565b995060208b01356154be816151f0565b985060408b013597506154d360608c0161546c565b96506154e160808c0161546c565b955060a08b01356154f1816151f0565b945060c08b0135615501816151f0565b935060e08b0135615511816151f0565b92506101008b0135615522816151f0565b809250506101208b013590509295989b9194979a5092959850565b600080600080600060a0868803121561555557600080fd5b8535615560816151f0565b94506020860135615570816151f0565b94979496505050506040830135926060810135926080909101359150565b600080604083850312156155a157600080fd5b82356155ac816151f0565b91506020830135615414816151f0565b600080600080608085870312156155d257600080fd5b84356155dd816151f0565b935060208501356155ed816151f0565b93969395505050506040820135916060013590565b6000806040838503121561561557600080fd5b61561e8361546c565b915061562c6020840161546c565b90509250929050565b602080825282518282018190526000919060409081850190868401855b8281101561568d57815180516001600160a01b0390811686528782015116878601528501518585015260609093019290850190600101615652565b5091979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816156d5576156d56156b0565b506000190190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008282101561573d5761573d6156b0565b500390565b60006020828403121561575457600080fd5b5051919050565b6000816000190483118215151615615775576157756156b0565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261579f5761579f61577a565b500490565b600082198211156157b7576157b76156b0565b500190565b6000602082840312156157ce57600080fd5b815160ff8116811461153257600080fd5b600181815b8085111561581a578160001904821115615800576158006156b0565b8085161561580d57918102915b93841c93908002906157e4565b509250929050565b60008261583157506001610c5b565b8161583e57506000610c5b565b8160018114615854576002811461585e5761587a565b6001915050610c5b565b60ff84111561586f5761586f6156b0565b50506001821b610c5b565b5060208310610133831016604e8410600b841016171561589d575081810a610c5b565b6158a783836157df565b80600019048211156158bb576158bb6156b0565b029392505050565b6000610c588383615822565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715615908576159086158cf565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615937576159376158cf565b604052919050565b60005b8381101561595a578181015183820152602001615942565b838111156113005750506000910152565b80516117ac816151f0565b6000602080838503121561598957600080fd5b825167ffffffffffffffff808211156159a157600080fd5b9084019060a082870312156159b557600080fd5b6159bd6158e5565b8251828111156159cc57600080fd5b8301601f810188136159dd57600080fd5b8051838111156159ef576159ef6158cf565b615a01601f8201601f1916870161590e565b93508084528886828401011115615a1757600080fd5b615a268187860188850161593f565b5050818152615a3684840161596b565b84820152615a466040840161596b565b604082015260608301516060820152608083015160808201528094505050505092915050565b600060208284031215615a7e57600080fd5b815161153281615373565b60006001600160ff1b0381841382841380821686840486111615615aaf57615aaf6156b0565b600160ff1b6000871282811687830589121615615ace57615ace6156b0565b60008712925087820587128484161615615aea57615aea6156b0565b87850587128184161615615b0057615b006156b0565b505050929093029392505050565b600082615b1d57615b1d61577a565b600160ff1b821460001984141615615b3757615b376156b0565b500590565b60008151808452615b5481602086016020860161593f565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061292c90830184615b3c565b6001600160a01b0384811682528316602082015260606040820181905260009061485b90830184615b3c565b600080600060608486031215615bcd57600080fd5b8351925060208401519150604084015190509250925092565b600060018201615bf857615bf86156b0565b5060010190565b600060208284031215615c1157600080fd5b8151611532816151f0565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000600160ff1b8201615c7c57615c7c6156b0565b5060000390565b60008083128015600160ff1b850184121615615ca157615ca16156b0565b6001600160ff1b0384018313811615615cbc57615cbc6156b0565b50500390565b600080821280156001600160ff1b0384900385131615615ce457615ce46156b0565b600160ff1b8390038412811615615cfd57615cfd6156b0565b50500190565b600082615d1257615d1261577a565b500790565b60008251615d2981846020870161593f565b9190910192915050565b602081526000610c586020830184615b3c56fe7570646174654d756c7469706c6965727328616464726573732c75696e743235362c75696e743235362909d2594e8892daceca055f74be758146a8b8b1167444d0b4ccb96e74168198cc6164644d61726b657428616464726573732c616464726573732c75696e743235362c75696e7432353629a264697066735822122036d48c62a9f6b6c46e510fb25612fccf3bc5d3fccaa92110252f8cbbe1401a8d64736f6c634300080d0033",
|
|
1855
|
+
"bytecode": "0x6101806040523480156200001257600080fd5b50604051620061243803806200612483398101604081905262000035916200020f565b868686868686868085811580156200004b575080155b156200006a576040516302723dfb60e21b815260040160405180910390fd5b8180156200007757508015155b15620000965760405163ae0fcab360e01b815260040160405180910390fd5b81151560a05281620000a95780620000af565b6301e133805b60805281620000ca576200012960201b6200275a17620000d7565b6200012d60201b6200275e175b6001600160401b031660c05250506001600160a01b0380881660e0528616610100526101608490526101208390526101408290526200011562000131565b505050505050505050505050505062000288565b4390565b4290565b600054610100900460ff16156200019e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620001f0576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200020a57600080fd5b919050565b600080600080600080600060e0888a0312156200022b57600080fd5b6200023688620001f2565b96506200024660208901620001f2565b955060408801519450606088015193506080880151925060a0880151915060c088015180151581146200027857600080fd5b8091505092959891949750929550565b60805160a05160c05160e05161010051610120516101405161016051615df0620003346000396000818161041c015281816111df015281816122e10152818161230c0152612334015260008181610bfa0152818161362701526136500152600081816106470152612c290152600081816109d601526130d001526000818161046b015261310a015260006122910152600061099b01526000818161066e015261150e0152615df06000f3fe608060405234801561001057600080fd5b50600436106104125760003560e01c80639f6506ce11610220578063ce85361311610130578063e4676f37116100b8578063f2fde38b11610087578063f2fde38b14610b4c578063f6ed201714610b5f578063fa6d5f1814610b7f578063fc720f7014610b92578063fe1006ad14610bf557600080fd5b8063e4676f3714610aaa578063e486033914610abd578063ee6b13fc14610b01578063ef36bbde14610b2b57600080fd5b8063da6ab4f8116100ff578063da6ab4f814610a43578063e18f882214610a4d578063e1d146fb14610a60578063e30c397814610a68578063e335b28c14610a7957600080fd5b8063ce853613146109f8578063cf329d1614610a13578063d65bd24114610a26578063d88b9d2e14610a3957600080fd5b8063ba437c68116101b3578063c3db3c3611610182578063c3db3c3614610984578063c4ae31681461098e578063c7ad089514610996578063c86d1a78146109bd578063cdaa21b7146109d157600080fd5b8063ba437c681461094b578063bc5dc4c31461095e578063bd212c0e14610971578063be26317e1461097b57600080fd5b8063b1a250f2116101ef578063b1a250f214610845578063b4a0bdf314610858578063b7f2d25814610869578063b9eb69f6146108f557600080fd5b80639f6506ce14610808578063a15753dc14610812578063afcff50f1461081c578063b0772d0b1461083057600080fd5b80635fe3b5671161032657806380d45a2d116102ae57806389afcb441161027d57806389afcb44146107375780638da5cb5b1461074a5780638e8f294b1461075b5780639198e515146107c65780639565d3d2146107d957600080fd5b806380d45a2d146106f3578063856c3aa41461070657806388bead731461071057806388d742c21461072457600080fd5b8063715018a6116102f5578063715018a61461069057806379ba5097146106985780637dafcd89146106a05780637dc0d1d0146106b35780637ef82070146106c757600080fd5b80635fe3b567146105cc57806363250887146105de5780636426b4a7146106425780636857249c1461066957600080fd5b806329b6eca9116103a95780634e71d92d116103785780634e71d92d1461058057806355d36c9814610588578063594a67ee1461059b5780635c975abb146105ae5780635d536d30146105b957600080fd5b806329b6eca91461051357806337f23cd31461052657806338f6a43414610539578063487b0dfb1461057657600080fd5b80631bffac89116103e55780631bffac89146104b95780631cb9a02a146104da578063207add91146104ed57806324e6baf21461050057600080fd5b80630104db1b146104175780630e32cb86146104515780631b3f8c5e146104665780631b9ce575146104a5575b600080fd5b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61046461045f366004615205565b610c1c565b005b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610448565b6101375461048d906001600160a01b031681565b61043e6104c7366004615205565b6101406020526000908152604090205481565b61043e6104e8366004615222565b610c30565b6104646104fb366004615222565b610c61565b61046461050e366004615290565b610d1c565b610464610521366004615205565b610ee8565b610464610534366004615205565b610fa0565b610566610547366004615205565b6001600160a01b0316600090815261012d602052604090205460ff1690565b6040519015158152602001610448565b61043e6101395481565b6104646111ac565b6104646105963660046152d2565b61123b565b6104646105a9366004615307565b611306565b60c95460ff16610566565b61043e6105c7366004615205565b61147e565b61013f546001600160a01b031661048d565b6104646105ec366004615205565b604080518082018252600180825260208083019182526001600160a01b0394909416600090815261012d9094529190922091518254915161ffff1990921690151561ff0019161761010091151591909102179055565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b610464611539565b61046461154d565b6104646106ae366004615381565b6115c4565b6101425461048d906001600160a01b031681565b610136546106db906001600160801b031681565b6040516001600160801b039091168152602001610448565b6104646107013660046153d6565b61174e565b61043e6101315481565b6101385461048d906001600160a01b031681565b61043e610732366004615205565b611795565b610464610745366004615205565b6117b1565b6033546001600160a01b031661048d565b61079c610769366004615205565b61013360205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff1685565b6040805195865260208601949094529284019190915260608301521515608082015260a001610448565b6104646107d4366004615205565b6117e8565b6105666107e73660046153ef565b61013a60209081526000928352604080842090915290825290205460ff1681565b61043e61012f5481565b61043e61013b5481565b6101435461048d906001600160a01b031681565b6108386119ac565b604051610448919061541f565b610464610853366004615483565b611a0f565b6097546001600160a01b031661048d565b61087c61087736600461553d565b611c24565b6040516104489190600061014082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525092915050565b61093061090336600461558e565b61013460209081526000928352604080842090915290825290208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610448565b61043e61095936600461558e565b611dde565b61046461096c3660046155bc565b611df2565b61043e61013c5481565b61043e60fb5481565b61043e61013d5481565b610464612110565b6105667f000000000000000000000000000000000000000000000000000000000000000081565b6101415461048d906001600160a01b031681565b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b610136546106db90600160801b90046001600160801b031681565b610464610a2136600461558e565b612159565b61043e610a3436600461558e565b612171565b61043e61012e5481565b61043e6101305481565b610464610a5b366004615602565b612186565b61043e61228a565b6065546001600160a01b031661048d565b610464610a87366004615205565b61014180546001600160a01b0319166001600160a01b0392909216919091179055565b61043e610ab8366004615205565b6122bd565b610aea610acb366004615205565b61012d6020526000908152604090205460ff8082169161010090041682565b604080519215158352901515602083015201610448565b61048d610b0f366004615205565b61013e602052600090815260409020546001600160a01b031681565b61043e610b39366004615205565b6101326020526000908152604090205481565b610464610b5a366004615205565b612365565b610b72610b6d366004615205565b6123d6565b6040516104489190615635565b61087c610b8d36600461558e565b612518565b610464610ba0366004615205565b604080518082018252600080825260208083018281526001600160a01b0395909516825261012d90529190912090518154925161ffff1990931690151561ff0019161761010092151592909202919091179055565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b610c24612762565b610c2d816127bc565b50565b61013654600090610c5890849084906001600160801b0380821691600160801b90041661287a565b90505b92915050565b610c9f6040518060400160405280601981526020017f7365744c696d69742875696e743235362c75696e743235362900000000000000815250612934565b61012e54821080610cb2575061012f5481105b15610cd05760405163e55fb50960e01b815260040160405180910390fd5b8161013054610131547f6c52f3e195bdc534883e903e0612c49261a466aacd492501870b0a0ac0b1835584604051610d0a91815260200190565b60405180910390a46101305561013155565b61013d54600003610d405760405163071a45dd60e31b815260040160405180910390fd5b61013b54600003610d645760405163071a45dd60e31b815260040160405180910390fd5b60005b81811015610ee3576000838383818110610d8357610d8361569a565b9050602002016020810190610d989190615205565b6001600160a01b038116600090815261012d602052604090205490915060ff16610dd557604051633aeb927b60e11b815260040160405180910390fd5b61013b54600090815261013a602090815260408083206001600160a01b038516845290915290205460ff1615610e0e5750600101610d67565b610135805460005b81811015610e66576000838281548110610e3257610e3261569a565b6000918252602090912001546001600160a01b03169050610e5385826129ce565b610e5d8582612aaa565b50600101610e16565b5061013d60008154610e77906156c6565b9091555061013b54600090815261013a602090815260408083206001600160a01b0387168085529252808320805460ff19166001908117909155905196019590917fa699df4aa8f89fc1f5408fe78ae114651f18b25ed1601680e4c70c15177d8b1b91a2505050610d67565b505050565b600054600290610100900460ff16158015610f0a575060005460ff8083169116105b610f2f5760405162461bcd60e51b8152600401610f26906156dd565b60405180910390fd5b6000805461014380546001600160a01b0319166001600160a01b03861617905561ff001961010060ff851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b6000610fab82612b87565b90506000610fb882612c25565b6001600160a01b0384166000908152610132602090815260408083205461012d83529281902081518083019092525460ff808216158015808552610100909304909116151593830193909352939450919290611012575082155b15611074576001600160a01b03851660008181526101326020908152604080832083905551918252600080516020615d71833981519152910160405180910390a280602001511561106b5761106685612c5e565b6111a5565b61106685612cb6565b8215801561108157508051155b801561108c57508115155b156110d3576001600160a01b03851660008181526101326020908152604080832083905551918252600080516020615d7183398151915291015b60405180910390a26111a5565b811580156110de5750825b80156110e957508051155b1561112b576001600160a01b0385166000818152610132602090815260409182902042908190559151918252600080516020615d7183398151915291016110c6565b805180156111365750825b156111a55761114485612c5e565b6001600160a01b0385166000908152610132602052604081205490036111a5576001600160a01b0385166000818152610132602090815260409182902042908190559151918252600080516020615d71833981519152910160405180910390a25b5050505050565b3360009081526101326020526040812054908190036111dd5760405162c4e3d160e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611208824261572b565b10156112275760405163beb98cab60e01b815260040160405180910390fd5b611232600033612e8a565b610c2d33612f9b565b61125c6040518060600160405280602a8152602001615d47602a9139612934565b6001600160a01b038316600090815261013360205260409020600481015460ff1661129a57604051630ff2e4a960e31b815260040160405180910390fd5b6112a3846117e8565b6001810154815460408051868152602081018690526001600160a01b038816917f91e78a55b6df3a0eac1c12a64572a8c0faced385bafba688817f5ce6daa33537910160405180910390a482815560018101829055611300613098565b50505050565b6113446040518060400160405280602081526020017f7365745374616b6564417428616464726573735b5d2c75696e743235365b5d29815250612934565b8281146113645760405163251f56a160e21b815260040160405180910390fd5b60005b838110156111a557428383838181106113825761138261569a565b9050602002013511156113a85760405163b7d0949760e01b815260040160405180910390fd5b8282828181106113ba576113ba61569a565b9050602002013561013260008787858181106113d8576113d861569a565b90506020020160208101906113ed9190615205565b6001600160a01b031681526020810191909152604001600020558484828181106114195761141961569a565b905060200201602081019061142e9190615205565b6001600160a01b0316600080516020615d718339815191528484848181106114585761145861569a565b9050602002013560405161146e91815260200190565b60405180910390a2600101611367565b6101415460009081906001600160a01b031663a666642b61149e856130cc565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156114e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115069190615742565b9050611532817f000000000000000000000000000000000000000000000000000000000000000061575b565b9392505050565b611541612762565b61154b6000613190565b565b60655433906001600160a01b031681146115bb5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610f26565b610c2d81613190565b6115fa60405180604001604052806015815260200174697373756528626f6f6c2c616464726573735b5d2960581b815250612934565b821561170f5760005b8181101561130057600061012d60008585858181106116245761162461569a565b90506020020160208101906116399190615205565b6001600160a01b031681526020810191909152604001600020805490915060ff16801561166d57508054610100900460ff16155b156116a6576116a18484848181106116875761168761569a565b905060200201602081019061169c9190615205565b6131a9565b611706565b6116d760018585858181106116bd576116bd61569a565b90506020020160208101906116d29190615205565b612e8a565b6117068484848181106116ec576116ec61569a565b90506020020160208101906117019190615205565b612f9b565b50600101611603565b60005b818110156113005761173160008484848181106116bd576116bd61569a565b6117468383838181106116ec576116ec61569a565b600101611712565b61178c6040518060400160405280601981526020017f7365744d61784c6f6f70734c696d69742875696e743235362900000000000000815250612934565b610c2d81613259565b600061179f6132f3565b6117a98233613339565b90505b919050565b6117df6040518060400160405280600d81526020016c6275726e28616464726573732960981b815250612934565b610c2d81612cb6565b6001600160a01b038116600090815261013360205260409020600481015460ff1661182657604051630ff2e4a960e31b815260040160405180910390fd5b6000611831836130cc565b61014154604051638aadf79960e01b81526001600160a01b0380841660048301529293509116908190638aadf79990602401600060405180830381600087803b15801561187d57600080fd5b505af1158015611891573d6000803e3d6000fd5b505060405163fa7781ff60e01b81526001600160a01b038581166004830152600093508416915063fa7781ff90602401602060405180830381865afa1580156118de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119029190615742565b6001600160a01b038416600090815261014060205260408120549192509061192a908361572b565b905080600081900361193f5750505050505050565b6001600160a01b03851660009081526101406020526040812084905560038701541561198957600387015461197c670de0b6b3a76400008461575b565b6119869190615790565b90505b8087600201600082825461199d91906157a4565b90915550505050505050505050565b6060610135805480602002602001604051908101604052809291908181526020018280548015611a0557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119e7575b5050505050905090565b600054610100900460ff1615808015611a2f5750600054600160ff909116105b80611a495750303b158015611a49575060005460ff166001145b611a655760405162461bcd60e51b8152600401610f26906156dd565b6000805460ff191660011790558015611a88576000805461ff0019166101001790555b6001600160a01b038b16611aaf5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038a16611ad65760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038316611afd5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038516611b245760405163e6c4247b60e01b815260040160405180910390fd5b611b2e888861351c565b6001600160801b03878116600160801b02908916176101365561013880546001600160a01b03808d166001600160a01b0319928316179092556101398b905561013780548e8416908316179055600061013b55610141805488841690831617905561013f8054878416908316179055610142805492861692909116919091179055611bb886613562565b611bc061359a565b611bc982613259565b611bd16135c9565b8015611c17576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b611c2c61519d565b6001600160a01b03808716600081815261013460209081526040808320948a1683529381528382206001015492825261013390529190912060030154611c72919061572b565b6040820152611c8082613623565b60808201819052600090611c969086868a613678565b805160a0840152602081015160c0840152604081015160e08401526060810151610100840152608081015161012084015290506000611cd4886130cc565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3591906157bc565b60ff169050611d4581601261572b565b611d5090600a6158c3565b8360a00151611d5f919061575b565b60a08401819052608084015161013654611d8d92906001600160801b0380821691600160801b90041661287a565b606084018190526040840151611da391906157a4565b836040018181525050611dcb8886888660c001518760e0015188606001518960400151613986565b6020850152835250909695505050505050565b6000611de86132f3565b610c588383613339565b611e136040518060600160405280602a8152602001615d91602a9139612934565b6001600160a01b038416611e3a576040516383aebebd60e01b815260040160405180910390fd5b61013f546001600160a01b03858116911614801590611ed8575061014354604051637aee632d60e01b81526001600160a01b0386811660048301819052921690637aee632d90602401600060405180830381865afa158015611ea0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ec89190810190615976565b604001516001600160a01b031614155b15611ef6576040516383aebebd60e01b815260040160405180910390fd5b6001600160a01b038316600090815261013360205260409020600481015460ff1615611f3557604051630313b28560e01b815260040160405180910390fd5b604051638e8f294b60e01b81526001600160a01b03858116600483015260009190871690638e8f294b90602401602060405180830381865afa158015611f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa39190615a6c565b905080611fc357604051633d21810360e21b815260040160405180910390fd5b60006002830181905584835560018084018590556003840182905560048401805460ff19169091179055611ff6866130cc565b6001600160a01b03808216600090815261013e602052604090205491925016156120335760405163dc0d0aab60e01b815260040160405180910390fd5b6001600160a01b03808216600090815261013e6020526040812080549289166001600160a01b03199384168117909155610135805460018101825592527fdf37d27e88e3bd0b85262482997e409a463f5be0ebb19232abf994dd8474090d90910180549092161790556120a4613098565b610135546120b190613a72565b856001600160a01b0316876001600160a01b03167f1322eaea77217179bf4ef6084dc2f48c897e0d5a6b8365213804360e4d8ba9a287876040516120ff929190918252602082015260400190565b60405180910390a350505050505050565b61213e6040518060400160405280600d81526020016c746f67676c655061757365282960981b815250612934565b60c95460ff16156121515761154b613aa3565b61154b6135c9565b61216382826129ce565b61216d8282612aaa565b5050565b600061217c836117e8565b610c588383613adc565b6121c46040518060400160405280601c81526020017f757064617465416c7068612875696e743132382c75696e743132382900000000815250612934565b6121ce828261351c565b610136546040516001600160801b03838116825284811692600160801b81048216929116907f9122c3fdea272423a0586803b53902139919baf05be731f04724ef8f363d378d9060200160405180910390a46001600160801b03818116600160801b0290831617610136556101355460005b8181101561228157612279610135828154811061225f5761225f61569a565b6000918252602090912001546001600160a01b03166117e8565b600101612240565b50610ee3613098565b60006122b87f000000000000000000000000000000000000000000000000000000000000000063ffffffff16565b905090565b6001600160a01b0381166000908152610132602052604081205480820361230657507f000000000000000000000000000000000000000000000000000000000000000092915050565b428190037f000000000000000000000000000000000000000000000000000000000000000081101561235b577f0000000000000000000000000000000000000000000000000000000000000000039392505050565b5060009392505050565b61236d612762565b606580546001600160a01b0383166001600160a01b0319909116811790915561239e6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6101358054606091908067ffffffffffffffff8111156123f8576123f86158cf565b60405190808252806020026020018201604052801561244357816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816124165790505b50925060005b818110156125105760008382815481106124655761246561569a565b60009182526020822001546001600160a01b031691506124858288612171565b6001600160a01b03808416600081815261013460209081526040808320948d16835293815290839020548351606081019094529183529293509181016124ca856130cc565b6001600160a01b031681526020016124e283856157a4565b8152508785815181106124f7576124f761569a565b6020026020010181905250836001019350505050612449565b505050919050565b61252061519d565b6040516395dd919360e01b81526001600160a01b03838116600483015284916000918316906395dd919390602401602060405180830381865afa15801561256b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258f9190615742565b90506000826001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f59190615742565b6040516370a0823160e01b81526001600160a01b0387811660048301529192506000918516906370a0823190602401602060405180830381865afa158015612641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126659190615742565b90506000670de0b6b3a764000061267c838561575b565b6126869190615790565b6001600160a01b03808a16600081815261013460209081526040808320948d1683529381528382206001015460608c0152918152610133909152819020600301549088015290506126de6126d988612b87565b613623565b608087018190526000906126f490868489613678565b805160a0890152602081015160c0890181905260408083015160e08b018190526060808501516101008d015260808501516101208d01528b0151918b0151939450612746938d9387938b939192613986565b602089015287525094979650505050505050565b4390565b4290565b6033546001600160a01b0316331461154b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f26565b6001600160a01b0381166128205760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608401610f26565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610f94565b6000841580612887575083155b156128945750600061292c565b8385036128a257508361292c565b8385106000816128bb576128b68688613b73565b6128c5565b6128c58787613b73565b905060006129006128d586613bdb565b6128de88613bdb565b6128e785613c45565b6128f19190615a89565b6128fb9190615b0e565b613c50565b9050821561291c576129128782613c5b565b935050505061292c565b6129268782613c8d565b93505050505b949350505050565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906129679033908690600401615b68565b602060405180830381865afa158015612984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a89190615a6c565b90508061216d57333083604051634a3fa29360e01b8152600401610f2693929190615b8c565b6001600160a01b0381166000908152610133602052604090206004015460ff161580612a1457506001600160a01b038216600090815261012d602052604090205460ff16155b15612a1d575050565b612a26816117e8565b612a308183613adc565b6001600160a01b0380831660009081526101346020908152604080832093871683529290529081208054909190612a689084906157a4565b90915550506001600160a01b03908116600090815261013360209081526040808320600290810154610134845282852096909516845294909152902090910155565b6001600160a01b038116600090815261013360205260409020600481015460ff161580612af157506001600160a01b038316600090815261012d602052604090205460ff16155b15612afb57505050565b6000612b078385613cbf565b6001600160a01b038085166000908152610134602090815260408083209389168352929052206001015460038401549192508291612b45919061572b565b612b4f91906157a4565b6003909201919091556001600160a01b0391821660009081526101346020908152604080832095909416825293909352912060010155565b6101375461013854610139546040516398e1b31b60e01b81526001600160a01b03928316600482015260248101919091528382166044820152600092839283929116906398e1b31b90606401606060405180830381865afa158015612bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c149190615bb8565b9250509150808261292c919061572b565b60007f00000000000000000000000000000000000000000000000000000000000000008210612c5657506001919050565b506000919050565b610135805460005b81811015611300576000838281548110612c8257612c8261569a565b6000918252602090912001546001600160a01b03169050612ca385826129ce565b612cad8582612aaa565b50600101612c66565b6001600160a01b038116600090815261012d602090815260409182902082518084019093525460ff808216151580855261010090920416151591830191909152612d1357604051633aeb927b60e11b815260040160405180910390fd5b610135805460005b81811015612dec576000838281548110612d3757612d3761569a565b6000918252602090912001546001600160a01b03169050612d5886826129ce565b6001600160a01b03808216600081815261013460209081526040808320948b1683529381528382206001015492825261013390529190912060030154612d9e919061572b565b6001600160a01b039182166000908152610133602090815260408083206003019390935561013481528282209389168252929092528120600180820183905560029091019190915501612d1b565b50826020015115612e105761012e60008154612e07906156c6565b90915550612e25565b61012f60008154612e20906156c6565b909155505b6001600160a01b038416600090815261012d60205260409020805461ffff19169055612e508461404f565b6040516001600160a01b038516907fe22de1457cb61fb61b60176bc4235a9abd19466126b46692bc14fc573f09924990600090a250505050565b6001600160a01b038116600090815261012d60205260409020805460ff1615612ec55760405162c4e3d160e01b815260040160405180910390fd5b8054831580156101000261ffff19909216919091176001178255612efc5761012e60008154612ef390615be6565b90915550612f11565b61012f60008154612f0c90615be6565b909155505b6101315461012e541180612f2a57506101305461012f54115b15612f485760405163e55fb50960e01b815260040160405180910390fd5b612f51826140c3565b816001600160a01b03167fdd032f28700d4e4b1719b8fa26918a7d68608b4e36def571ce5fe7a3ecd69f4584604051612f8e911515815260200190565b60405180910390a2505050565b610135805460005b81811015611300576000838281548110612fbf57612fbf61569a565b6000918252602090912001546001600160a01b03169050612fdf816117e8565b6001600160a01b038082166000908152610133602090815260408083206002908101546101348452828520958b16855294909252822001919091556130248287613cbf565b6001600160a01b03808416600081815261013460209081526040808320948c168352938152838220600101859055918152610133909152206003015490915061306e9082906157a4565b6001600160a01b039092166000908152610133602052604090206003019190915550600101612fa3565b61013b80549060006130a983615be6565b919050555061012f5461012e546130c091906157a4565b61013c81905561013d55565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361312e57507f0000000000000000000000000000000000000000000000000000000000000000919050565b816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561316c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a99190615bff565b606580546001600160a01b0319169055610c2d81614101565b6001600160a01b038116600090815261012d60205260408120805461ff00191661010017815561012e8054919290916131e190615be6565b9091555061012f80546000906131f6906156c6565b909155506101315461012e5411156132215760405163e55fb50960e01b815260040160405180910390fd5b6040516001600160a01b038316907f5272e69bcef8da96614ac4a5d1e95ca02c35ea627bf7ecf389ec88d8d78b86bb90600090a25050565b60fb5481116132b55760405162461bcd60e51b815260206004820152602260248201527f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d6044820152611a5d60f21b6064820152608401610f26565b60fb80549082905560408051828152602081018490527fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa9101610f94565b60c95460ff161561154b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610f26565b6000806133468484612171565b6001600160a01b038086166000908152610134602090815260408083209388168352929052205490915061337a90826157a4565b6001600160a01b038581166000908152610133602090815260408083206002908101546101348452828520958a16855294909252822090810192909255908190559091506133c7856130cc565b6040516370a0823160e01b815230600482015290915081906001600160a01b038216906370a0823190602401602060405180830381865afa158015613410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134349190615742565b8311156134b1576001600160a01b03828116600090815261014060205260408082209190915561014154905163192e7a7b60e01b8152838316600482015291169063192e7a7b90602401600060405180830381600087803b15801561349857600080fd5b505af11580156134ac573d6000803e3d6000fd5b505050505b6134c56001600160a01b0382168685614153565b856001600160a01b0316856001600160a01b03167fc7edf5cfe443c04a10a60ff6084c847114348c55b257a01d62700326219adbba8560405161350a91815260200190565b60405180910390a35090949350505050565b806001600160801b0316826001600160801b031610158061354457506001600160801b038216155b1561216d57604051630381eb6d60e61b815260040160405180910390fd5b600054610100900460ff166135895760405162461bcd60e51b8152600401610f2690615c1c565b6135916141a5565b610c2d816141d4565b600054610100900460ff166135c15760405162461bcd60e51b8152600401610f2690615c1c565b61154b6141fb565b6135d16132f3565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586136063390565b6040516001600160a01b03909116815260200160405180910390a1565b60007f000000000000000000000000000000000000000000000000000000000000000082111561367457507f0000000000000000000000000000000000000000000000000000000000000000919050565b5090565b6136aa6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6101375460408051631ac5701b60e11b815290516000926001600160a01b03169163358ae0369160048083019260209291908290030181865afa1580156136f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137199190615bff565b610142546040516341976e0960e01b81526001600160a01b038084166004830152929350600092909116906341976e0990602401602060405180830381865afa15801561376a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061378e9190615742565b6001600160a01b03851660009081526101336020526040902060010154909150670de0b6b3a76400009081906137c4908a61575b565b6137ce9190615790565b6137d8908361575b565b6137e29190615790565b60808401526001600160a01b03841660009081526101336020526040902054670de0b6b3a7640000908190613817908a61575b565b6138219190615790565b61382b908361575b565b6138359190615790565b60608401526101425460405163fc57d4df60e01b81526001600160a01b038681166004830152600092169063fc57d4df90602401602060405180830381865afa158015613886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138aa9190615742565b90506000670de0b6b3a76400006138c1888461575b565b6138cb9190615790565b90506000670de0b6b3a76400006138e28a8561575b565b6138ec9190615790565b9050856060015182106139265781600003613908576000613923565b81866060015189613919919061575b565b6139239190615790565b97505b8560800151811061395e578060000361394057600061395b565b8086608001518a613951919061575b565b61395b9190615790565b98505b61396889896157a4565b86525050505060208201939093526040810193909352509092915050565b6000808260000361399c57506000905080613a66565b6000836139a88b61147e565b6139b2908761575b565b6139bc9190615790565b905060006139ca87896157a4565b9050806000036139e257600080935093505050613a66565b612710600080836139f38c8761575b565b6139fd9190615790565b915083613a0a8b8761575b565b613a149190615790565b90508c15613a36578c613a27848461575b565b613a319190615790565b613a39565b60005b96508b15613a5b578b613a4c848361575b565b613a569190615790565b613a5e565b60005b955050505050505b97509795505050505050565b60fb54811115610c2d5760fb5460405163792bfb1b60e11b8152600481019190915260248101829052604401610f26565b613aab61422e565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613606565b6001600160a01b038083166000818152610134602090815260408083209486168352938152838220845160608101865281548152600182015481840152600291820154818701819052948452610133909252938220909301549092918391613b44919061572b565b6020830151909150670de0b6b3a7640000613b5f828461575b565b613b699190615790565b9695505050505050565b6000613b7e83613bdb565b613b8783613bdb565b1215613bb0576040516360c1ae3960e01b81526004810184905260248101839052604401610f26565b613bb982613bdb565b6001607f1b613bc785613bdb565b613bd19190615a89565b610c589190615b0e565b60006001600160ff1b038211156136745760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610f26565b60006117a982614277565b60006117a982614864565b600080821215613c7e57604051639603648160e01b815260040160405180910390fd5b6001607f1b82613bc785613bdb565b600080821215613cb057604051639603648160e01b815260040160405180910390fd5b816001607f1b613bc785613bdb565b600080613cce6126d984612b87565b6040516395dd919360e01b81526001600160a01b0385811660048301529192508591600091908316906395dd919390602401602060405180830381865afa158015613d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d419190615742565b90506000826001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613da79190615742565b6040516370a0823160e01b81526001600160a01b0388811660048301529192506000918516906370a0823190602401602060405180830381865afa158015613df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e179190615742565b90506000670de0b6b3a7640000613e2e838561575b565b613e389190615790565b9050600061013760009054906101000a90046001600160a01b03166001600160a01b031663358ae0366040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb49190615bff565b6101425460405163b62cad6960e01b81526001600160a01b03808416600483015292935091169063b62cad6990602401600060405180830381600087803b158015613efe57600080fd5b505af1158015613f12573d6000803e3d6000fd5b5050610142546040516396e85ced60e01b81526001600160a01b038e8116600483015290911692506396e85ced9150602401600060405180830381600087803b158015613f5e57600080fd5b505af1158015613f72573d6000803e3d6000fd5b505050506000613f848887858e613678565b90506000613f918c6130cc565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff291906157bc565b60ff16905061400281601261572b565b61400d90600a6158c3565b8251614019919061575b565b8083526101365461403f918b916001600160801b0380821691600160801b90041661287a565b9c9b505050505050505050505050565b61013c541561406d5761013c60008154614068906156c6565b909155505b61013d54158015906140a7575061013b54600090815261013a602090815260408083206001600160a01b038516845290915290205460ff16155b15610c2d5761013d600081546140bc906156c6565b9091555050565b61013c5415610c2d5761013b54600090815261013a602090815260408083206001600160a01b03851684529091529020805460ff1916600117905550565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610ee3908490614f75565b600054610100900460ff166141cc5760405162461bcd60e51b8152600401610f2690615c1c565b61154b61504a565b600054610100900460ff16610c245760405162461bcd60e51b8152600401610f2690615c1c565b600054610100900460ff166142225760405162461bcd60e51b8152600401610f2690615c1c565b60c9805460ff19169055565b60c95460ff1661154b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610f26565b60006001607f1b8213156142a157604051633ce23a3d60e11b815260048101839052602401610f26565b600082136142c5576040516330ecaa3d60e21b815260048101839052602401610f26565b6001607f1b82036142d857506000919050565b640733048c5a82136142f2576117a96101ff607c1b615c67565b60008060006a01c8464f76164760000000851361434057614317600160841b85615c83565b93506a01c8464f761647600000006143336001607f1b87615a89565b61433d9190615b0e565b94505b6cf1aaddd7742e90000000000000851361438d57614362600160831b85615c83565b93506cf1aaddd7742e900000000000006143806001607f1b87615a89565b61438a9190615b0e565b94505b6615fc21041027af603f1b85136143d4576143ac600160821b85615c83565b93506615fc21041027af603f1b6143c76001607f1b87615a89565b6143d19190615b0e565b94505b660960aadc109e7b60461b851361441b576143f3600160811b85615c83565b9350660960aadc109e7b60461b61440e6001607f1b87615a89565b6144189190615b0e565b94505b660454aaa8efe073604a1b85136144625761443a600160801b85615c83565b9350660454aaa8efe073604a1b6144556001607f1b87615a89565b61445f9190615b0e565b94505b6602f16ac6c59de7604c1b85136144a9576144816001607f1b85615c83565b93506602f16ac6c59de7604c1b61449c6001607f1b87615a89565b6144a69190615b0e565b94505b6609b4597e37cb05604b1b85136144f0576144c86001607e1b85615c83565b93506609b4597e37cb05604b1b6144e36001607f1b87615a89565b6144ed9190615b0e565b94505b6618ebef9eac820b604a1b85136145375761450f6001607d1b85615c83565b93506618ebef9eac820b604a1b61452a6001607f1b87615a89565b6145349190615b0e565b94505b6f70f5a893b608861e1f58934f97aea57d851361458a5761455c6001607c1b85615c83565b93506f70f5a893b608861e1f58934f97aea57d61457d6001607f1b87615a89565b6145879190615b0e565b94505b6145986001607f1b86615c83565b92508291506001607f1b6145ac8380615a89565b6145b69190615b0e565b9050600160801b6145c78482615c83565b6145d19084615a89565b6145db9190615b0e565b6145e59085615cc2565b93506001607f1b6145f68284615a89565b6146009190615b0e565b9150600160811b614621846faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa615c83565b61462b9084615a89565b6146359190615b0e565b61463f9085615cc2565b93506001607f1b6146508284615a89565b61465a9190615b0e565b9150600360801b61467b846f99999999999999999999999999999999615c83565b6146859084615a89565b61468f9190615b0e565b6146999085615cc2565b93506001607f1b6146aa8284615a89565b6146b49190615b0e565b9150600160821b6146d5846f92492492492492492492492492492492615c83565b6146df9084615a89565b6146e99190615b0e565b6146f39085615cc2565b93506001607f1b6147048284615a89565b61470e9190615b0e565b9150600560801b61472f846f8e38e38e38e38e38e38e38e38e38e38e615c83565b6147399084615a89565b6147439190615b0e565b61474d9085615cc2565b93506001607f1b61475e8284615a89565b6147689190615b0e565b9150600360811b614789846f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b615c83565b6147939084615a89565b61479d9190615b0e565b6147a79085615cc2565b93506001607f1b6147b88284615a89565b6147c29190615b0e565b9150600760801b6147e3846f89d89d89d89d89d89d89d89d89d89d89615c83565b6147ed9084615a89565b6147f79190615b0e565b6148019085615cc2565b93506001607f1b6148128284615a89565b61481c9190615b0e565b9150600160831b61483d846f88888888888888888888888888888888615c83565b6148479084615a89565b6148519190615b0e565b61485b9085615cc2565b95945050505050565b60006148746101ff607c1b615c67565b82121561488357506000919050565b8160000361489657506001607f1b919050565b60008213156148bb57604051631086170d60e01b815260048101839052602401610f26565b6000806148cc6001607c1b85615d03565b91508190506001607f1b6148e08280615a89565b6148ea9190615b0e565b90506148fe816710e1b3be415a0000615a89565b6149089084615cc2565b92506001607f1b6149198383615a89565b6149239190615b0e565b9050614937816705a0913f6b1e0000615a89565b6149419084615cc2565b92506001607f1b6149528383615a89565b61495c9190615b0e565b905061497081670168244fdac78000615a89565b61497a9084615cc2565b92506001607f1b61498b8383615a89565b6149959190615b0e565b90506149a881664807432bc18000615a89565b6149b29084615cc2565b92506001607f1b6149c38383615a89565b6149cd9190615b0e565b90506149e081660c0135dca04000615a89565b6149ea9084615cc2565b92506001607f1b6149fb8383615a89565b614a059190615b0e565b9050614a18816601b707b1cdc000615a89565b614a229084615cc2565b92506001607f1b614a338383615a89565b614a3d9190615b0e565b9050614a4f816536e0f639b800615a89565b614a599084615cc2565b92506001607f1b614a6a8383615a89565b614a749190615b0e565b9050614a8681650618fee9f800615a89565b614a909084615cc2565b92506001607f1b614aa18383615a89565b614aab9190615b0e565b9050614abc81649c197dcc00615a89565b614ac69084615cc2565b92506001607f1b614ad78383615a89565b614ae19190615b0e565b9050614af281640e30dce400615a89565b614afc9084615cc2565b92506001607f1b614b0d8383615a89565b614b179190615b0e565b9050614b288164012ebd1300615a89565b614b329084615cc2565b92506001607f1b614b438383615a89565b614b4d9190615b0e565b9050614b5d816317499f00615a89565b614b679084615cc2565b92506001607f1b614b788383615a89565b614b829190615b0e565b9050614b92816301a9d480615a89565b614b9c9084615cc2565b92506001607f1b614bad8383615a89565b614bb79190615b0e565b9050614bc681621c6380615a89565b614bd09084615cc2565b92506001607f1b614be18383615a89565b614beb9190615b0e565b9050614bfa816201c638615a89565b614c049084615cc2565b92506001607f1b614c158383615a89565b614c1f9190615b0e565b9050614c2d81611ab8615a89565b614c379084615cc2565b92506001607f1b614c488383615a89565b614c529190615b0e565b9050614c608161017c615a89565b614c6a9084615cc2565b92506001607f1b614c7b8383615a89565b614c859190615b0e565b9050614c92816014615a89565b614c9c9084615cc2565b92506001607f1b614cad8383615a89565b614cb79190615b0e565b9050614cc4816001615a89565b614cce9084615cc2565b92506001607f1b82614ce86721c3677c82b4000086615b0e565b614cf29190615cc2565b614cfc9190615cc2565b9250614d0784615c67565b9350600160841b841615614d4d577243cbaf42a000812488fc5c220ad7b97bf6e99e614d406cf1aaddd7742e56d32fb9f9974485615a89565b614d4a9190615b0e565b92505b600160831b841615614d92577105d27a9f51c31b7c2f8038212a0574779991614d856e0afe10820813d65dfe6a33c07f738f85615a89565b614d8f9190615b0e565b92505b600160821b841615614dd757701b4c902e273a58678d6d3bfdb93db96d02614dca6f02582ab704279e8efd15e0265855c47a85615a89565b614dd49190615b0e565b92505b600160811b841615614e1c577003b1cc971a9bb5b9867477440d6d157750614e0f6f1152aaa3bf81cb9fdb76eae12d02957185615a89565b614e199190615b0e565b92505b600160801b841615614e615770015bf0a8b1457695355fb8ac404e7a79e3614e546f2f16ac6c59de6f8d5d6f63c1482a7c8685615a89565b614e5e9190615b0e565b92505b6001607f1b841615614ea5576fd3094c70f034de4b96ff7d5b6f99fcd8614e986f4da2cbf1be5827f9eb3ad1aa9866ebb385615a89565b614ea29190615b0e565b92505b6001607e1b841615614ee9576fa45af1e1f40c333b3de1db4dd55f29a7614edc6f63afbe7ab2082ba1a0ae5e4eb1b479dc85615a89565b614ee69190615b0e565b92505b6001607d1b841615614f2d576f910b022db7ae67ce76b441c27035c6a1614f206f70f5a893b608861e1f58934f97aea57d85615a89565b614f2a9190615b0e565b92505b6001607c1b841615614f6e576f88415abbe9a76bead8d00cf112e4d4a8614f646f783eafef1c0a8f3978c7f81824d62ebf85615a89565b61292c9190615b0e565b5050919050565b6000614fca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661507a9092919063ffffffff16565b9050805160001480614feb575080806020019051810190614feb9190615a6c565b610ee35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610f26565b600054610100900460ff166150715760405162461bcd60e51b8152600401610f2690615c1c565b61154b33613190565b606061292c848460008585600080866001600160a01b031685876040516150a19190615d17565b60006040518083038185875af1925050503d80600081146150de576040519150601f19603f3d011682016040523d82523d6000602084013e6150e3565b606091505b50915091506150f4878383876150ff565b979650505050505050565b6060831561516e578251600003615167576001600160a01b0385163b6151675760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f26565b508161292c565b61292c83838151156151835781518083602001fd5b8060405162461bcd60e51b8152600401610f269190615d33565b604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c2d57600080fd5b60006020828403121561521757600080fd5b8135611532816151f0565b6000806040838503121561523557600080fd5b50508035926020909101359150565b60008083601f84011261525657600080fd5b50813567ffffffffffffffff81111561526e57600080fd5b6020830191508360208260051b850101111561528957600080fd5b9250929050565b600080602083850312156152a357600080fd5b823567ffffffffffffffff8111156152ba57600080fd5b6152c685828601615244565b90969095509350505050565b6000806000606084860312156152e757600080fd5b83356152f2816151f0565b95602085013595506040909401359392505050565b6000806000806040858703121561531d57600080fd5b843567ffffffffffffffff8082111561533557600080fd5b61534188838901615244565b9096509450602087013591508082111561535a57600080fd5b5061536787828801615244565b95989497509550505050565b8015158114610c2d57600080fd5b60008060006040848603121561539657600080fd5b83356153a181615373565b9250602084013567ffffffffffffffff8111156153bd57600080fd5b6153c986828701615244565b9497909650939450505050565b6000602082840312156153e857600080fd5b5035919050565b6000806040838503121561540257600080fd5b823591506020830135615414816151f0565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156154605783516001600160a01b03168352928401929184019160010161543b565b50909695505050505050565b80356001600160801b03811681146117ac57600080fd5b6000806000806000806000806000806101408b8d0312156154a357600080fd5b8a356154ae816151f0565b995060208b01356154be816151f0565b985060408b013597506154d360608c0161546c565b96506154e160808c0161546c565b955060a08b01356154f1816151f0565b945060c08b0135615501816151f0565b935060e08b0135615511816151f0565b92506101008b0135615522816151f0565b809250506101208b013590509295989b9194979a5092959850565b600080600080600060a0868803121561555557600080fd5b8535615560816151f0565b94506020860135615570816151f0565b94979496505050506040830135926060810135926080909101359150565b600080604083850312156155a157600080fd5b82356155ac816151f0565b91506020830135615414816151f0565b600080600080608085870312156155d257600080fd5b84356155dd816151f0565b935060208501356155ed816151f0565b93969395505050506040820135916060013590565b6000806040838503121561561557600080fd5b61561e8361546c565b915061562c6020840161546c565b90509250929050565b602080825282518282018190526000919060409081850190868401855b8281101561568d57815180516001600160a01b0390811686528782015116878601528501518585015260609093019290850190600101615652565b5091979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816156d5576156d56156b0565b506000190190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008282101561573d5761573d6156b0565b500390565b60006020828403121561575457600080fd5b5051919050565b6000816000190483118215151615615775576157756156b0565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261579f5761579f61577a565b500490565b600082198211156157b7576157b76156b0565b500190565b6000602082840312156157ce57600080fd5b815160ff8116811461153257600080fd5b600181815b8085111561581a578160001904821115615800576158006156b0565b8085161561580d57918102915b93841c93908002906157e4565b509250929050565b60008261583157506001610c5b565b8161583e57506000610c5b565b8160018114615854576002811461585e5761587a565b6001915050610c5b565b60ff84111561586f5761586f6156b0565b50506001821b610c5b565b5060208310610133831016604e8410600b841016171561589d575081810a610c5b565b6158a783836157df565b80600019048211156158bb576158bb6156b0565b029392505050565b6000610c588383615822565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715615908576159086158cf565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615937576159376158cf565b604052919050565b60005b8381101561595a578181015183820152602001615942565b838111156113005750506000910152565b80516117ac816151f0565b6000602080838503121561598957600080fd5b825167ffffffffffffffff808211156159a157600080fd5b9084019060a082870312156159b557600080fd5b6159bd6158e5565b8251828111156159cc57600080fd5b8301601f810188136159dd57600080fd5b8051838111156159ef576159ef6158cf565b615a01601f8201601f1916870161590e565b93508084528886828401011115615a1757600080fd5b615a268187860188850161593f565b5050818152615a3684840161596b565b84820152615a466040840161596b565b604082015260608301516060820152608083015160808201528094505050505092915050565b600060208284031215615a7e57600080fd5b815161153281615373565b60006001600160ff1b0381841382841380821686840486111615615aaf57615aaf6156b0565b600160ff1b6000871282811687830589121615615ace57615ace6156b0565b60008712925087820587128484161615615aea57615aea6156b0565b87850587128184161615615b0057615b006156b0565b505050929093029392505050565b600082615b1d57615b1d61577a565b600160ff1b821460001984141615615b3757615b376156b0565b500590565b60008151808452615b5481602086016020860161593f565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061292c90830184615b3c565b6001600160a01b0384811682528316602082015260606040820181905260009061485b90830184615b3c565b600080600060608486031215615bcd57600080fd5b8351925060208401519150604084015190509250925092565b600060018201615bf857615bf86156b0565b5060010190565b600060208284031215615c1157600080fd5b8151611532816151f0565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000600160ff1b8201615c7c57615c7c6156b0565b5060000390565b60008083128015600160ff1b850184121615615ca157615ca16156b0565b6001600160ff1b0384018313811615615cbc57615cbc6156b0565b50500390565b600080821280156001600160ff1b0384900385131615615ce457615ce46156b0565b600160ff1b8390038412811615615cfd57615cfd6156b0565b50500190565b600082615d1257615d1261577a565b500790565b60008251615d2981846020870161593f565b9190910192915050565b602081526000610c586020830184615b3c56fe7570646174654d756c7469706c6965727328616464726573732c75696e743235362c75696e743235362909d2594e8892daceca055f74be758146a8b8b1167444d0b4ccb96e74168198cc6164644d61726b657428616464726573732c616464726573732c75696e743235362c75696e7432353629a264697066735822122078bfd6a5c459b0b86d39e9f920efd6f3738e5390709bc319b085f34491a9f40b64736f6c634300080d0033",
|
|
1856
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106104125760003560e01c80639f6506ce11610220578063ce85361311610130578063e4676f37116100b8578063f2fde38b11610087578063f2fde38b14610b4c578063f6ed201714610b5f578063fa6d5f1814610b7f578063fc720f7014610b92578063fe1006ad14610bf557600080fd5b8063e4676f3714610aaa578063e486033914610abd578063ee6b13fc14610b01578063ef36bbde14610b2b57600080fd5b8063da6ab4f8116100ff578063da6ab4f814610a43578063e18f882214610a4d578063e1d146fb14610a60578063e30c397814610a68578063e335b28c14610a7957600080fd5b8063ce853613146109f8578063cf329d1614610a13578063d65bd24114610a26578063d88b9d2e14610a3957600080fd5b8063ba437c68116101b3578063c3db3c3611610182578063c3db3c3614610984578063c4ae31681461098e578063c7ad089514610996578063c86d1a78146109bd578063cdaa21b7146109d157600080fd5b8063ba437c681461094b578063bc5dc4c31461095e578063bd212c0e14610971578063be26317e1461097b57600080fd5b8063b1a250f2116101ef578063b1a250f214610845578063b4a0bdf314610858578063b7f2d25814610869578063b9eb69f6146108f557600080fd5b80639f6506ce14610808578063a15753dc14610812578063afcff50f1461081c578063b0772d0b1461083057600080fd5b80635fe3b5671161032657806380d45a2d116102ae57806389afcb441161027d57806389afcb44146107375780638da5cb5b1461074a5780638e8f294b1461075b5780639198e515146107c65780639565d3d2146107d957600080fd5b806380d45a2d146106f3578063856c3aa41461070657806388bead731461071057806388d742c21461072457600080fd5b8063715018a6116102f5578063715018a61461069057806379ba5097146106985780637dafcd89146106a05780637dc0d1d0146106b35780637ef82070146106c757600080fd5b80635fe3b567146105cc57806363250887146105de5780636426b4a7146106425780636857249c1461066957600080fd5b806329b6eca9116103a95780634e71d92d116103785780634e71d92d1461058057806355d36c9814610588578063594a67ee1461059b5780635c975abb146105ae5780635d536d30146105b957600080fd5b806329b6eca91461051357806337f23cd31461052657806338f6a43414610539578063487b0dfb1461057657600080fd5b80631bffac89116103e55780631bffac89146104b95780631cb9a02a146104da578063207add91146104ed57806324e6baf21461050057600080fd5b80630104db1b146104175780630e32cb86146104515780631b3f8c5e146104665780631b9ce575146104a5575b600080fd5b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61046461045f366004615205565b610c1c565b005b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610448565b6101375461048d906001600160a01b031681565b61043e6104c7366004615205565b6101406020526000908152604090205481565b61043e6104e8366004615222565b610c30565b6104646104fb366004615222565b610c61565b61046461050e366004615290565b610d1c565b610464610521366004615205565b610ee8565b610464610534366004615205565b610fa0565b610566610547366004615205565b6001600160a01b0316600090815261012d602052604090205460ff1690565b6040519015158152602001610448565b61043e6101395481565b6104646111ac565b6104646105963660046152d2565b61123b565b6104646105a9366004615307565b611306565b60c95460ff16610566565b61043e6105c7366004615205565b61147e565b61013f546001600160a01b031661048d565b6104646105ec366004615205565b604080518082018252600180825260208083019182526001600160a01b0394909416600090815261012d9094529190922091518254915161ffff1990921690151561ff0019161761010091151591909102179055565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b610464611539565b61046461154d565b6104646106ae366004615381565b6115c4565b6101425461048d906001600160a01b031681565b610136546106db906001600160801b031681565b6040516001600160801b039091168152602001610448565b6104646107013660046153d6565b61174e565b61043e6101315481565b6101385461048d906001600160a01b031681565b61043e610732366004615205565b611795565b610464610745366004615205565b6117b1565b6033546001600160a01b031661048d565b61079c610769366004615205565b61013360205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff1685565b6040805195865260208601949094529284019190915260608301521515608082015260a001610448565b6104646107d4366004615205565b6117e8565b6105666107e73660046153ef565b61013a60209081526000928352604080842090915290825290205460ff1681565b61043e61012f5481565b61043e61013b5481565b6101435461048d906001600160a01b031681565b6108386119ac565b604051610448919061541f565b610464610853366004615483565b611a0f565b6097546001600160a01b031661048d565b61087c61087736600461553d565b611c24565b6040516104489190600061014082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525092915050565b61093061090336600461558e565b61013460209081526000928352604080842090915290825290208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610448565b61043e61095936600461558e565b611dde565b61046461096c3660046155bc565b611df2565b61043e61013c5481565b61043e60fb5481565b61043e61013d5481565b610464612110565b6105667f000000000000000000000000000000000000000000000000000000000000000081565b6101415461048d906001600160a01b031681565b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b610136546106db90600160801b90046001600160801b031681565b610464610a2136600461558e565b612159565b61043e610a3436600461558e565b612171565b61043e61012e5481565b61043e6101305481565b610464610a5b366004615602565b612186565b61043e61228a565b6065546001600160a01b031661048d565b610464610a87366004615205565b61014180546001600160a01b0319166001600160a01b0392909216919091179055565b61043e610ab8366004615205565b6122bd565b610aea610acb366004615205565b61012d6020526000908152604090205460ff8082169161010090041682565b604080519215158352901515602083015201610448565b61048d610b0f366004615205565b61013e602052600090815260409020546001600160a01b031681565b61043e610b39366004615205565b6101326020526000908152604090205481565b610464610b5a366004615205565b612365565b610b72610b6d366004615205565b6123d6565b6040516104489190615635565b61087c610b8d36600461558e565b612518565b610464610ba0366004615205565b604080518082018252600080825260208083018281526001600160a01b0395909516825261012d90529190912090518154925161ffff1990931690151561ff0019161761010092151592909202919091179055565b61043e7f000000000000000000000000000000000000000000000000000000000000000081565b610c24612762565b610c2d816127bc565b50565b61013654600090610c5890849084906001600160801b0380821691600160801b90041661287a565b90505b92915050565b610c9f6040518060400160405280601981526020017f7365744c696d69742875696e743235362c75696e743235362900000000000000815250612934565b61012e54821080610cb2575061012f5481105b15610cd05760405163e55fb50960e01b815260040160405180910390fd5b8161013054610131547f6c52f3e195bdc534883e903e0612c49261a466aacd492501870b0a0ac0b1835584604051610d0a91815260200190565b60405180910390a46101305561013155565b61013d54600003610d405760405163071a45dd60e31b815260040160405180910390fd5b61013b54600003610d645760405163071a45dd60e31b815260040160405180910390fd5b60005b81811015610ee3576000838383818110610d8357610d8361569a565b9050602002016020810190610d989190615205565b6001600160a01b038116600090815261012d602052604090205490915060ff16610dd557604051633aeb927b60e11b815260040160405180910390fd5b61013b54600090815261013a602090815260408083206001600160a01b038516845290915290205460ff1615610e0e5750600101610d67565b610135805460005b81811015610e66576000838281548110610e3257610e3261569a565b6000918252602090912001546001600160a01b03169050610e5385826129ce565b610e5d8582612aaa565b50600101610e16565b5061013d60008154610e77906156c6565b9091555061013b54600090815261013a602090815260408083206001600160a01b0387168085529252808320805460ff19166001908117909155905196019590917fa699df4aa8f89fc1f5408fe78ae114651f18b25ed1601680e4c70c15177d8b1b91a2505050610d67565b505050565b600054600290610100900460ff16158015610f0a575060005460ff8083169116105b610f2f5760405162461bcd60e51b8152600401610f26906156dd565b60405180910390fd5b6000805461014380546001600160a01b0319166001600160a01b03861617905561ff001961010060ff851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b6000610fab82612b87565b90506000610fb882612c25565b6001600160a01b0384166000908152610132602090815260408083205461012d83529281902081518083019092525460ff808216158015808552610100909304909116151593830193909352939450919290611012575082155b15611074576001600160a01b03851660008181526101326020908152604080832083905551918252600080516020615d71833981519152910160405180910390a280602001511561106b5761106685612c5e565b6111a5565b61106685612cb6565b8215801561108157508051155b801561108c57508115155b156110d3576001600160a01b03851660008181526101326020908152604080832083905551918252600080516020615d7183398151915291015b60405180910390a26111a5565b811580156110de5750825b80156110e957508051155b1561112b576001600160a01b0385166000818152610132602090815260409182902042908190559151918252600080516020615d7183398151915291016110c6565b805180156111365750825b156111a55761114485612c5e565b6001600160a01b0385166000908152610132602052604081205490036111a5576001600160a01b0385166000818152610132602090815260409182902042908190559151918252600080516020615d71833981519152910160405180910390a25b5050505050565b3360009081526101326020526040812054908190036111dd5760405162c4e3d160e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611208824261572b565b10156112275760405163beb98cab60e01b815260040160405180910390fd5b611232600033612e8a565b610c2d33612f9b565b61125c6040518060600160405280602a8152602001615d47602a9139612934565b6001600160a01b038316600090815261013360205260409020600481015460ff1661129a57604051630ff2e4a960e31b815260040160405180910390fd5b6112a3846117e8565b6001810154815460408051868152602081018690526001600160a01b038816917f91e78a55b6df3a0eac1c12a64572a8c0faced385bafba688817f5ce6daa33537910160405180910390a482815560018101829055611300613098565b50505050565b6113446040518060400160405280602081526020017f7365745374616b6564417428616464726573735b5d2c75696e743235365b5d29815250612934565b8281146113645760405163251f56a160e21b815260040160405180910390fd5b60005b838110156111a557428383838181106113825761138261569a565b9050602002013511156113a85760405163b7d0949760e01b815260040160405180910390fd5b8282828181106113ba576113ba61569a565b9050602002013561013260008787858181106113d8576113d861569a565b90506020020160208101906113ed9190615205565b6001600160a01b031681526020810191909152604001600020558484828181106114195761141961569a565b905060200201602081019061142e9190615205565b6001600160a01b0316600080516020615d718339815191528484848181106114585761145861569a565b9050602002013560405161146e91815260200190565b60405180910390a2600101611367565b6101415460009081906001600160a01b031663a666642b61149e856130cc565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156114e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115069190615742565b9050611532817f000000000000000000000000000000000000000000000000000000000000000061575b565b9392505050565b611541612762565b61154b6000613190565b565b60655433906001600160a01b031681146115bb5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610f26565b610c2d81613190565b6115fa60405180604001604052806015815260200174697373756528626f6f6c2c616464726573735b5d2960581b815250612934565b821561170f5760005b8181101561130057600061012d60008585858181106116245761162461569a565b90506020020160208101906116399190615205565b6001600160a01b031681526020810191909152604001600020805490915060ff16801561166d57508054610100900460ff16155b156116a6576116a18484848181106116875761168761569a565b905060200201602081019061169c9190615205565b6131a9565b611706565b6116d760018585858181106116bd576116bd61569a565b90506020020160208101906116d29190615205565b612e8a565b6117068484848181106116ec576116ec61569a565b90506020020160208101906117019190615205565b612f9b565b50600101611603565b60005b818110156113005761173160008484848181106116bd576116bd61569a565b6117468383838181106116ec576116ec61569a565b600101611712565b61178c6040518060400160405280601981526020017f7365744d61784c6f6f70734c696d69742875696e743235362900000000000000815250612934565b610c2d81613259565b600061179f6132f3565b6117a98233613339565b90505b919050565b6117df6040518060400160405280600d81526020016c6275726e28616464726573732960981b815250612934565b610c2d81612cb6565b6001600160a01b038116600090815261013360205260409020600481015460ff1661182657604051630ff2e4a960e31b815260040160405180910390fd5b6000611831836130cc565b61014154604051638aadf79960e01b81526001600160a01b0380841660048301529293509116908190638aadf79990602401600060405180830381600087803b15801561187d57600080fd5b505af1158015611891573d6000803e3d6000fd5b505060405163fa7781ff60e01b81526001600160a01b038581166004830152600093508416915063fa7781ff90602401602060405180830381865afa1580156118de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119029190615742565b6001600160a01b038416600090815261014060205260408120549192509061192a908361572b565b905080600081900361193f5750505050505050565b6001600160a01b03851660009081526101406020526040812084905560038701541561198957600387015461197c670de0b6b3a76400008461575b565b6119869190615790565b90505b8087600201600082825461199d91906157a4565b90915550505050505050505050565b6060610135805480602002602001604051908101604052809291908181526020018280548015611a0557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119e7575b5050505050905090565b600054610100900460ff1615808015611a2f5750600054600160ff909116105b80611a495750303b158015611a49575060005460ff166001145b611a655760405162461bcd60e51b8152600401610f26906156dd565b6000805460ff191660011790558015611a88576000805461ff0019166101001790555b6001600160a01b038b16611aaf5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038a16611ad65760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038316611afd5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038516611b245760405163e6c4247b60e01b815260040160405180910390fd5b611b2e888861351c565b6001600160801b03878116600160801b02908916176101365561013880546001600160a01b03808d166001600160a01b0319928316179092556101398b905561013780548e8416908316179055600061013b55610141805488841690831617905561013f8054878416908316179055610142805492861692909116919091179055611bb886613562565b611bc061359a565b611bc982613259565b611bd16135c9565b8015611c17576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b611c2c61519d565b6001600160a01b03808716600081815261013460209081526040808320948a1683529381528382206001015492825261013390529190912060030154611c72919061572b565b6040820152611c8082613623565b60808201819052600090611c969086868a613678565b805160a0840152602081015160c0840152604081015160e08401526060810151610100840152608081015161012084015290506000611cd4886130cc565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3591906157bc565b60ff169050611d4581601261572b565b611d5090600a6158c3565b8360a00151611d5f919061575b565b60a08401819052608084015161013654611d8d92906001600160801b0380821691600160801b90041661287a565b606084018190526040840151611da391906157a4565b836040018181525050611dcb8886888660c001518760e0015188606001518960400151613986565b6020850152835250909695505050505050565b6000611de86132f3565b610c588383613339565b611e136040518060600160405280602a8152602001615d91602a9139612934565b6001600160a01b038416611e3a576040516383aebebd60e01b815260040160405180910390fd5b61013f546001600160a01b03858116911614801590611ed8575061014354604051637aee632d60e01b81526001600160a01b0386811660048301819052921690637aee632d90602401600060405180830381865afa158015611ea0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ec89190810190615976565b604001516001600160a01b031614155b15611ef6576040516383aebebd60e01b815260040160405180910390fd5b6001600160a01b038316600090815261013360205260409020600481015460ff1615611f3557604051630313b28560e01b815260040160405180910390fd5b604051638e8f294b60e01b81526001600160a01b03858116600483015260009190871690638e8f294b90602401602060405180830381865afa158015611f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa39190615a6c565b905080611fc357604051633d21810360e21b815260040160405180910390fd5b60006002830181905584835560018084018590556003840182905560048401805460ff19169091179055611ff6866130cc565b6001600160a01b03808216600090815261013e602052604090205491925016156120335760405163dc0d0aab60e01b815260040160405180910390fd5b6001600160a01b03808216600090815261013e6020526040812080549289166001600160a01b03199384168117909155610135805460018101825592527fdf37d27e88e3bd0b85262482997e409a463f5be0ebb19232abf994dd8474090d90910180549092161790556120a4613098565b610135546120b190613a72565b856001600160a01b0316876001600160a01b03167f1322eaea77217179bf4ef6084dc2f48c897e0d5a6b8365213804360e4d8ba9a287876040516120ff929190918252602082015260400190565b60405180910390a350505050505050565b61213e6040518060400160405280600d81526020016c746f67676c655061757365282960981b815250612934565b60c95460ff16156121515761154b613aa3565b61154b6135c9565b61216382826129ce565b61216d8282612aaa565b5050565b600061217c836117e8565b610c588383613adc565b6121c46040518060400160405280601c81526020017f757064617465416c7068612875696e743132382c75696e743132382900000000815250612934565b6121ce828261351c565b610136546040516001600160801b03838116825284811692600160801b81048216929116907f9122c3fdea272423a0586803b53902139919baf05be731f04724ef8f363d378d9060200160405180910390a46001600160801b03818116600160801b0290831617610136556101355460005b8181101561228157612279610135828154811061225f5761225f61569a565b6000918252602090912001546001600160a01b03166117e8565b600101612240565b50610ee3613098565b60006122b87f000000000000000000000000000000000000000000000000000000000000000063ffffffff16565b905090565b6001600160a01b0381166000908152610132602052604081205480820361230657507f000000000000000000000000000000000000000000000000000000000000000092915050565b428190037f000000000000000000000000000000000000000000000000000000000000000081101561235b577f0000000000000000000000000000000000000000000000000000000000000000039392505050565b5060009392505050565b61236d612762565b606580546001600160a01b0383166001600160a01b0319909116811790915561239e6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6101358054606091908067ffffffffffffffff8111156123f8576123f86158cf565b60405190808252806020026020018201604052801561244357816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816124165790505b50925060005b818110156125105760008382815481106124655761246561569a565b60009182526020822001546001600160a01b031691506124858288612171565b6001600160a01b03808416600081815261013460209081526040808320948d16835293815290839020548351606081019094529183529293509181016124ca856130cc565b6001600160a01b031681526020016124e283856157a4565b8152508785815181106124f7576124f761569a565b6020026020010181905250836001019350505050612449565b505050919050565b61252061519d565b6040516395dd919360e01b81526001600160a01b03838116600483015284916000918316906395dd919390602401602060405180830381865afa15801561256b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258f9190615742565b90506000826001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f59190615742565b6040516370a0823160e01b81526001600160a01b0387811660048301529192506000918516906370a0823190602401602060405180830381865afa158015612641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126659190615742565b90506000670de0b6b3a764000061267c838561575b565b6126869190615790565b6001600160a01b03808a16600081815261013460209081526040808320948d1683529381528382206001015460608c0152918152610133909152819020600301549088015290506126de6126d988612b87565b613623565b608087018190526000906126f490868489613678565b805160a0890152602081015160c0890181905260408083015160e08b018190526060808501516101008d015260808501516101208d01528b0151918b0151939450612746938d9387938b939192613986565b602089015287525094979650505050505050565b4390565b4290565b6033546001600160a01b0316331461154b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f26565b6001600160a01b0381166128205760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164604482015264647265737360d81b6064820152608401610f26565b609780546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610f94565b6000841580612887575083155b156128945750600061292c565b8385036128a257508361292c565b8385106000816128bb576128b68688613b73565b6128c5565b6128c58787613b73565b905060006129006128d586613bdb565b6128de88613bdb565b6128e785613c45565b6128f19190615a89565b6128fb9190615b0e565b613c50565b9050821561291c576129128782613c5b565b935050505061292c565b6129268782613c8d565b93505050505b949350505050565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906129679033908690600401615b68565b602060405180830381865afa158015612984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a89190615a6c565b90508061216d57333083604051634a3fa29360e01b8152600401610f2693929190615b8c565b6001600160a01b0381166000908152610133602052604090206004015460ff161580612a1457506001600160a01b038216600090815261012d602052604090205460ff16155b15612a1d575050565b612a26816117e8565b612a308183613adc565b6001600160a01b0380831660009081526101346020908152604080832093871683529290529081208054909190612a689084906157a4565b90915550506001600160a01b03908116600090815261013360209081526040808320600290810154610134845282852096909516845294909152902090910155565b6001600160a01b038116600090815261013360205260409020600481015460ff161580612af157506001600160a01b038316600090815261012d602052604090205460ff16155b15612afb57505050565b6000612b078385613cbf565b6001600160a01b038085166000908152610134602090815260408083209389168352929052206001015460038401549192508291612b45919061572b565b612b4f91906157a4565b6003909201919091556001600160a01b0391821660009081526101346020908152604080832095909416825293909352912060010155565b6101375461013854610139546040516398e1b31b60e01b81526001600160a01b03928316600482015260248101919091528382166044820152600092839283929116906398e1b31b90606401606060405180830381865afa158015612bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c149190615bb8565b9250509150808261292c919061572b565b60007f00000000000000000000000000000000000000000000000000000000000000008210612c5657506001919050565b506000919050565b610135805460005b81811015611300576000838281548110612c8257612c8261569a565b6000918252602090912001546001600160a01b03169050612ca385826129ce565b612cad8582612aaa565b50600101612c66565b6001600160a01b038116600090815261012d602090815260409182902082518084019093525460ff808216151580855261010090920416151591830191909152612d1357604051633aeb927b60e11b815260040160405180910390fd5b610135805460005b81811015612dec576000838281548110612d3757612d3761569a565b6000918252602090912001546001600160a01b03169050612d5886826129ce565b6001600160a01b03808216600081815261013460209081526040808320948b1683529381528382206001015492825261013390529190912060030154612d9e919061572b565b6001600160a01b039182166000908152610133602090815260408083206003019390935561013481528282209389168252929092528120600180820183905560029091019190915501612d1b565b50826020015115612e105761012e60008154612e07906156c6565b90915550612e25565b61012f60008154612e20906156c6565b909155505b6001600160a01b038416600090815261012d60205260409020805461ffff19169055612e508461404f565b6040516001600160a01b038516907fe22de1457cb61fb61b60176bc4235a9abd19466126b46692bc14fc573f09924990600090a250505050565b6001600160a01b038116600090815261012d60205260409020805460ff1615612ec55760405162c4e3d160e01b815260040160405180910390fd5b8054831580156101000261ffff19909216919091176001178255612efc5761012e60008154612ef390615be6565b90915550612f11565b61012f60008154612f0c90615be6565b909155505b6101315461012e541180612f2a57506101305461012f54115b15612f485760405163e55fb50960e01b815260040160405180910390fd5b612f51826140c3565b816001600160a01b03167fdd032f28700d4e4b1719b8fa26918a7d68608b4e36def571ce5fe7a3ecd69f4584604051612f8e911515815260200190565b60405180910390a2505050565b610135805460005b81811015611300576000838281548110612fbf57612fbf61569a565b6000918252602090912001546001600160a01b03169050612fdf816117e8565b6001600160a01b038082166000908152610133602090815260408083206002908101546101348452828520958b16855294909252822001919091556130248287613cbf565b6001600160a01b03808416600081815261013460209081526040808320948c168352938152838220600101859055918152610133909152206003015490915061306e9082906157a4565b6001600160a01b039092166000908152610133602052604090206003019190915550600101612fa3565b61013b80549060006130a983615be6565b919050555061012f5461012e546130c091906157a4565b61013c81905561013d55565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361312e57507f0000000000000000000000000000000000000000000000000000000000000000919050565b816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561316c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a99190615bff565b606580546001600160a01b0319169055610c2d81614101565b6001600160a01b038116600090815261012d60205260408120805461ff00191661010017815561012e8054919290916131e190615be6565b9091555061012f80546000906131f6906156c6565b909155506101315461012e5411156132215760405163e55fb50960e01b815260040160405180910390fd5b6040516001600160a01b038316907f5272e69bcef8da96614ac4a5d1e95ca02c35ea627bf7ecf389ec88d8d78b86bb90600090a25050565b60fb5481116132b55760405162461bcd60e51b815260206004820152602260248201527f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d6044820152611a5d60f21b6064820152608401610f26565b60fb80549082905560408051828152602081018490527fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa9101610f94565b60c95460ff161561154b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610f26565b6000806133468484612171565b6001600160a01b038086166000908152610134602090815260408083209388168352929052205490915061337a90826157a4565b6001600160a01b038581166000908152610133602090815260408083206002908101546101348452828520958a16855294909252822090810192909255908190559091506133c7856130cc565b6040516370a0823160e01b815230600482015290915081906001600160a01b038216906370a0823190602401602060405180830381865afa158015613410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134349190615742565b8311156134b1576001600160a01b03828116600090815261014060205260408082209190915561014154905163192e7a7b60e01b8152838316600482015291169063192e7a7b90602401600060405180830381600087803b15801561349857600080fd5b505af11580156134ac573d6000803e3d6000fd5b505050505b6134c56001600160a01b0382168685614153565b856001600160a01b0316856001600160a01b03167fc7edf5cfe443c04a10a60ff6084c847114348c55b257a01d62700326219adbba8560405161350a91815260200190565b60405180910390a35090949350505050565b806001600160801b0316826001600160801b031610158061354457506001600160801b038216155b1561216d57604051630381eb6d60e61b815260040160405180910390fd5b600054610100900460ff166135895760405162461bcd60e51b8152600401610f2690615c1c565b6135916141a5565b610c2d816141d4565b600054610100900460ff166135c15760405162461bcd60e51b8152600401610f2690615c1c565b61154b6141fb565b6135d16132f3565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586136063390565b6040516001600160a01b03909116815260200160405180910390a1565b60007f000000000000000000000000000000000000000000000000000000000000000082111561367457507f0000000000000000000000000000000000000000000000000000000000000000919050565b5090565b6136aa6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6101375460408051631ac5701b60e11b815290516000926001600160a01b03169163358ae0369160048083019260209291908290030181865afa1580156136f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137199190615bff565b610142546040516341976e0960e01b81526001600160a01b038084166004830152929350600092909116906341976e0990602401602060405180830381865afa15801561376a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061378e9190615742565b6001600160a01b03851660009081526101336020526040902060010154909150670de0b6b3a76400009081906137c4908a61575b565b6137ce9190615790565b6137d8908361575b565b6137e29190615790565b60808401526001600160a01b03841660009081526101336020526040902054670de0b6b3a7640000908190613817908a61575b565b6138219190615790565b61382b908361575b565b6138359190615790565b60608401526101425460405163fc57d4df60e01b81526001600160a01b038681166004830152600092169063fc57d4df90602401602060405180830381865afa158015613886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138aa9190615742565b90506000670de0b6b3a76400006138c1888461575b565b6138cb9190615790565b90506000670de0b6b3a76400006138e28a8561575b565b6138ec9190615790565b9050856060015182106139265781600003613908576000613923565b81866060015189613919919061575b565b6139239190615790565b97505b8560800151811061395e578060000361394057600061395b565b8086608001518a613951919061575b565b61395b9190615790565b98505b61396889896157a4565b86525050505060208201939093526040810193909352509092915050565b6000808260000361399c57506000905080613a66565b6000836139a88b61147e565b6139b2908761575b565b6139bc9190615790565b905060006139ca87896157a4565b9050806000036139e257600080935093505050613a66565b612710600080836139f38c8761575b565b6139fd9190615790565b915083613a0a8b8761575b565b613a149190615790565b90508c15613a36578c613a27848461575b565b613a319190615790565b613a39565b60005b96508b15613a5b578b613a4c848361575b565b613a569190615790565b613a5e565b60005b955050505050505b97509795505050505050565b60fb54811115610c2d5760fb5460405163792bfb1b60e11b8152600481019190915260248101829052604401610f26565b613aab61422e565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33613606565b6001600160a01b038083166000818152610134602090815260408083209486168352938152838220845160608101865281548152600182015481840152600291820154818701819052948452610133909252938220909301549092918391613b44919061572b565b6020830151909150670de0b6b3a7640000613b5f828461575b565b613b699190615790565b9695505050505050565b6000613b7e83613bdb565b613b8783613bdb565b1215613bb0576040516360c1ae3960e01b81526004810184905260248101839052604401610f26565b613bb982613bdb565b6001607f1b613bc785613bdb565b613bd19190615a89565b610c589190615b0e565b60006001600160ff1b038211156136745760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610f26565b60006117a982614277565b60006117a982614864565b600080821215613c7e57604051639603648160e01b815260040160405180910390fd5b6001607f1b82613bc785613bdb565b600080821215613cb057604051639603648160e01b815260040160405180910390fd5b816001607f1b613bc785613bdb565b600080613cce6126d984612b87565b6040516395dd919360e01b81526001600160a01b0385811660048301529192508591600091908316906395dd919390602401602060405180830381865afa158015613d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d419190615742565b90506000826001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613da79190615742565b6040516370a0823160e01b81526001600160a01b0388811660048301529192506000918516906370a0823190602401602060405180830381865afa158015613df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e179190615742565b90506000670de0b6b3a7640000613e2e838561575b565b613e389190615790565b9050600061013760009054906101000a90046001600160a01b03166001600160a01b031663358ae0366040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb49190615bff565b6101425460405163b62cad6960e01b81526001600160a01b03808416600483015292935091169063b62cad6990602401600060405180830381600087803b158015613efe57600080fd5b505af1158015613f12573d6000803e3d6000fd5b5050610142546040516396e85ced60e01b81526001600160a01b038e8116600483015290911692506396e85ced9150602401600060405180830381600087803b158015613f5e57600080fd5b505af1158015613f72573d6000803e3d6000fd5b505050506000613f848887858e613678565b90506000613f918c6130cc565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff291906157bc565b60ff16905061400281601261572b565b61400d90600a6158c3565b8251614019919061575b565b8083526101365461403f918b916001600160801b0380821691600160801b90041661287a565b9c9b505050505050505050505050565b61013c541561406d5761013c60008154614068906156c6565b909155505b61013d54158015906140a7575061013b54600090815261013a602090815260408083206001600160a01b038516845290915290205460ff16155b15610c2d5761013d600081546140bc906156c6565b9091555050565b61013c5415610c2d5761013b54600090815261013a602090815260408083206001600160a01b03851684529091529020805460ff1916600117905550565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610ee3908490614f75565b600054610100900460ff166141cc5760405162461bcd60e51b8152600401610f2690615c1c565b61154b61504a565b600054610100900460ff16610c245760405162461bcd60e51b8152600401610f2690615c1c565b600054610100900460ff166142225760405162461bcd60e51b8152600401610f2690615c1c565b60c9805460ff19169055565b60c95460ff1661154b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610f26565b60006001607f1b8213156142a157604051633ce23a3d60e11b815260048101839052602401610f26565b600082136142c5576040516330ecaa3d60e21b815260048101839052602401610f26565b6001607f1b82036142d857506000919050565b640733048c5a82136142f2576117a96101ff607c1b615c67565b60008060006a01c8464f76164760000000851361434057614317600160841b85615c83565b93506a01c8464f761647600000006143336001607f1b87615a89565b61433d9190615b0e565b94505b6cf1aaddd7742e90000000000000851361438d57614362600160831b85615c83565b93506cf1aaddd7742e900000000000006143806001607f1b87615a89565b61438a9190615b0e565b94505b6615fc21041027af603f1b85136143d4576143ac600160821b85615c83565b93506615fc21041027af603f1b6143c76001607f1b87615a89565b6143d19190615b0e565b94505b660960aadc109e7b60461b851361441b576143f3600160811b85615c83565b9350660960aadc109e7b60461b61440e6001607f1b87615a89565b6144189190615b0e565b94505b660454aaa8efe073604a1b85136144625761443a600160801b85615c83565b9350660454aaa8efe073604a1b6144556001607f1b87615a89565b61445f9190615b0e565b94505b6602f16ac6c59de7604c1b85136144a9576144816001607f1b85615c83565b93506602f16ac6c59de7604c1b61449c6001607f1b87615a89565b6144a69190615b0e565b94505b6609b4597e37cb05604b1b85136144f0576144c86001607e1b85615c83565b93506609b4597e37cb05604b1b6144e36001607f1b87615a89565b6144ed9190615b0e565b94505b6618ebef9eac820b604a1b85136145375761450f6001607d1b85615c83565b93506618ebef9eac820b604a1b61452a6001607f1b87615a89565b6145349190615b0e565b94505b6f70f5a893b608861e1f58934f97aea57d851361458a5761455c6001607c1b85615c83565b93506f70f5a893b608861e1f58934f97aea57d61457d6001607f1b87615a89565b6145879190615b0e565b94505b6145986001607f1b86615c83565b92508291506001607f1b6145ac8380615a89565b6145b69190615b0e565b9050600160801b6145c78482615c83565b6145d19084615a89565b6145db9190615b0e565b6145e59085615cc2565b93506001607f1b6145f68284615a89565b6146009190615b0e565b9150600160811b614621846faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa615c83565b61462b9084615a89565b6146359190615b0e565b61463f9085615cc2565b93506001607f1b6146508284615a89565b61465a9190615b0e565b9150600360801b61467b846f99999999999999999999999999999999615c83565b6146859084615a89565b61468f9190615b0e565b6146999085615cc2565b93506001607f1b6146aa8284615a89565b6146b49190615b0e565b9150600160821b6146d5846f92492492492492492492492492492492615c83565b6146df9084615a89565b6146e99190615b0e565b6146f39085615cc2565b93506001607f1b6147048284615a89565b61470e9190615b0e565b9150600560801b61472f846f8e38e38e38e38e38e38e38e38e38e38e615c83565b6147399084615a89565b6147439190615b0e565b61474d9085615cc2565b93506001607f1b61475e8284615a89565b6147689190615b0e565b9150600360811b614789846f8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b615c83565b6147939084615a89565b61479d9190615b0e565b6147a79085615cc2565b93506001607f1b6147b88284615a89565b6147c29190615b0e565b9150600760801b6147e3846f89d89d89d89d89d89d89d89d89d89d89615c83565b6147ed9084615a89565b6147f79190615b0e565b6148019085615cc2565b93506001607f1b6148128284615a89565b61481c9190615b0e565b9150600160831b61483d846f88888888888888888888888888888888615c83565b6148479084615a89565b6148519190615b0e565b61485b9085615cc2565b95945050505050565b60006148746101ff607c1b615c67565b82121561488357506000919050565b8160000361489657506001607f1b919050565b60008213156148bb57604051631086170d60e01b815260048101839052602401610f26565b6000806148cc6001607c1b85615d03565b91508190506001607f1b6148e08280615a89565b6148ea9190615b0e565b90506148fe816710e1b3be415a0000615a89565b6149089084615cc2565b92506001607f1b6149198383615a89565b6149239190615b0e565b9050614937816705a0913f6b1e0000615a89565b6149419084615cc2565b92506001607f1b6149528383615a89565b61495c9190615b0e565b905061497081670168244fdac78000615a89565b61497a9084615cc2565b92506001607f1b61498b8383615a89565b6149959190615b0e565b90506149a881664807432bc18000615a89565b6149b29084615cc2565b92506001607f1b6149c38383615a89565b6149cd9190615b0e565b90506149e081660c0135dca04000615a89565b6149ea9084615cc2565b92506001607f1b6149fb8383615a89565b614a059190615b0e565b9050614a18816601b707b1cdc000615a89565b614a229084615cc2565b92506001607f1b614a338383615a89565b614a3d9190615b0e565b9050614a4f816536e0f639b800615a89565b614a599084615cc2565b92506001607f1b614a6a8383615a89565b614a749190615b0e565b9050614a8681650618fee9f800615a89565b614a909084615cc2565b92506001607f1b614aa18383615a89565b614aab9190615b0e565b9050614abc81649c197dcc00615a89565b614ac69084615cc2565b92506001607f1b614ad78383615a89565b614ae19190615b0e565b9050614af281640e30dce400615a89565b614afc9084615cc2565b92506001607f1b614b0d8383615a89565b614b179190615b0e565b9050614b288164012ebd1300615a89565b614b329084615cc2565b92506001607f1b614b438383615a89565b614b4d9190615b0e565b9050614b5d816317499f00615a89565b614b679084615cc2565b92506001607f1b614b788383615a89565b614b829190615b0e565b9050614b92816301a9d480615a89565b614b9c9084615cc2565b92506001607f1b614bad8383615a89565b614bb79190615b0e565b9050614bc681621c6380615a89565b614bd09084615cc2565b92506001607f1b614be18383615a89565b614beb9190615b0e565b9050614bfa816201c638615a89565b614c049084615cc2565b92506001607f1b614c158383615a89565b614c1f9190615b0e565b9050614c2d81611ab8615a89565b614c379084615cc2565b92506001607f1b614c488383615a89565b614c529190615b0e565b9050614c608161017c615a89565b614c6a9084615cc2565b92506001607f1b614c7b8383615a89565b614c859190615b0e565b9050614c92816014615a89565b614c9c9084615cc2565b92506001607f1b614cad8383615a89565b614cb79190615b0e565b9050614cc4816001615a89565b614cce9084615cc2565b92506001607f1b82614ce86721c3677c82b4000086615b0e565b614cf29190615cc2565b614cfc9190615cc2565b9250614d0784615c67565b9350600160841b841615614d4d577243cbaf42a000812488fc5c220ad7b97bf6e99e614d406cf1aaddd7742e56d32fb9f9974485615a89565b614d4a9190615b0e565b92505b600160831b841615614d92577105d27a9f51c31b7c2f8038212a0574779991614d856e0afe10820813d65dfe6a33c07f738f85615a89565b614d8f9190615b0e565b92505b600160821b841615614dd757701b4c902e273a58678d6d3bfdb93db96d02614dca6f02582ab704279e8efd15e0265855c47a85615a89565b614dd49190615b0e565b92505b600160811b841615614e1c577003b1cc971a9bb5b9867477440d6d157750614e0f6f1152aaa3bf81cb9fdb76eae12d02957185615a89565b614e199190615b0e565b92505b600160801b841615614e615770015bf0a8b1457695355fb8ac404e7a79e3614e546f2f16ac6c59de6f8d5d6f63c1482a7c8685615a89565b614e5e9190615b0e565b92505b6001607f1b841615614ea5576fd3094c70f034de4b96ff7d5b6f99fcd8614e986f4da2cbf1be5827f9eb3ad1aa9866ebb385615a89565b614ea29190615b0e565b92505b6001607e1b841615614ee9576fa45af1e1f40c333b3de1db4dd55f29a7614edc6f63afbe7ab2082ba1a0ae5e4eb1b479dc85615a89565b614ee69190615b0e565b92505b6001607d1b841615614f2d576f910b022db7ae67ce76b441c27035c6a1614f206f70f5a893b608861e1f58934f97aea57d85615a89565b614f2a9190615b0e565b92505b6001607c1b841615614f6e576f88415abbe9a76bead8d00cf112e4d4a8614f646f783eafef1c0a8f3978c7f81824d62ebf85615a89565b61292c9190615b0e565b5050919050565b6000614fca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661507a9092919063ffffffff16565b9050805160001480614feb575080806020019051810190614feb9190615a6c565b610ee35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610f26565b600054610100900460ff166150715760405162461bcd60e51b8152600401610f2690615c1c565b61154b33613190565b606061292c848460008585600080866001600160a01b031685876040516150a19190615d17565b60006040518083038185875af1925050503d80600081146150de576040519150601f19603f3d011682016040523d82523d6000602084013e6150e3565b606091505b50915091506150f4878383876150ff565b979650505050505050565b6060831561516e578251600003615167576001600160a01b0385163b6151675760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f26565b508161292c565b61292c83838151156151835781518083602001fd5b8060405162461bcd60e51b8152600401610f269190615d33565b604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c2d57600080fd5b60006020828403121561521757600080fd5b8135611532816151f0565b6000806040838503121561523557600080fd5b50508035926020909101359150565b60008083601f84011261525657600080fd5b50813567ffffffffffffffff81111561526e57600080fd5b6020830191508360208260051b850101111561528957600080fd5b9250929050565b600080602083850312156152a357600080fd5b823567ffffffffffffffff8111156152ba57600080fd5b6152c685828601615244565b90969095509350505050565b6000806000606084860312156152e757600080fd5b83356152f2816151f0565b95602085013595506040909401359392505050565b6000806000806040858703121561531d57600080fd5b843567ffffffffffffffff8082111561533557600080fd5b61534188838901615244565b9096509450602087013591508082111561535a57600080fd5b5061536787828801615244565b95989497509550505050565b8015158114610c2d57600080fd5b60008060006040848603121561539657600080fd5b83356153a181615373565b9250602084013567ffffffffffffffff8111156153bd57600080fd5b6153c986828701615244565b9497909650939450505050565b6000602082840312156153e857600080fd5b5035919050565b6000806040838503121561540257600080fd5b823591506020830135615414816151f0565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156154605783516001600160a01b03168352928401929184019160010161543b565b50909695505050505050565b80356001600160801b03811681146117ac57600080fd5b6000806000806000806000806000806101408b8d0312156154a357600080fd5b8a356154ae816151f0565b995060208b01356154be816151f0565b985060408b013597506154d360608c0161546c565b96506154e160808c0161546c565b955060a08b01356154f1816151f0565b945060c08b0135615501816151f0565b935060e08b0135615511816151f0565b92506101008b0135615522816151f0565b809250506101208b013590509295989b9194979a5092959850565b600080600080600060a0868803121561555557600080fd5b8535615560816151f0565b94506020860135615570816151f0565b94979496505050506040830135926060810135926080909101359150565b600080604083850312156155a157600080fd5b82356155ac816151f0565b91506020830135615414816151f0565b600080600080608085870312156155d257600080fd5b84356155dd816151f0565b935060208501356155ed816151f0565b93969395505050506040820135916060013590565b6000806040838503121561561557600080fd5b61561e8361546c565b915061562c6020840161546c565b90509250929050565b602080825282518282018190526000919060409081850190868401855b8281101561568d57815180516001600160a01b0390811686528782015116878601528501518585015260609093019290850190600101615652565b5091979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816156d5576156d56156b0565b506000190190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008282101561573d5761573d6156b0565b500390565b60006020828403121561575457600080fd5b5051919050565b6000816000190483118215151615615775576157756156b0565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261579f5761579f61577a565b500490565b600082198211156157b7576157b76156b0565b500190565b6000602082840312156157ce57600080fd5b815160ff8116811461153257600080fd5b600181815b8085111561581a578160001904821115615800576158006156b0565b8085161561580d57918102915b93841c93908002906157e4565b509250929050565b60008261583157506001610c5b565b8161583e57506000610c5b565b8160018114615854576002811461585e5761587a565b6001915050610c5b565b60ff84111561586f5761586f6156b0565b50506001821b610c5b565b5060208310610133831016604e8410600b841016171561589d575081810a610c5b565b6158a783836157df565b80600019048211156158bb576158bb6156b0565b029392505050565b6000610c588383615822565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715615908576159086158cf565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615937576159376158cf565b604052919050565b60005b8381101561595a578181015183820152602001615942565b838111156113005750506000910152565b80516117ac816151f0565b6000602080838503121561598957600080fd5b825167ffffffffffffffff808211156159a157600080fd5b9084019060a082870312156159b557600080fd5b6159bd6158e5565b8251828111156159cc57600080fd5b8301601f810188136159dd57600080fd5b8051838111156159ef576159ef6158cf565b615a01601f8201601f1916870161590e565b93508084528886828401011115615a1757600080fd5b615a268187860188850161593f565b5050818152615a3684840161596b565b84820152615a466040840161596b565b604082015260608301516060820152608083015160808201528094505050505092915050565b600060208284031215615a7e57600080fd5b815161153281615373565b60006001600160ff1b0381841382841380821686840486111615615aaf57615aaf6156b0565b600160ff1b6000871282811687830589121615615ace57615ace6156b0565b60008712925087820587128484161615615aea57615aea6156b0565b87850587128184161615615b0057615b006156b0565b505050929093029392505050565b600082615b1d57615b1d61577a565b600160ff1b821460001984141615615b3757615b376156b0565b500590565b60008151808452615b5481602086016020860161593f565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061292c90830184615b3c565b6001600160a01b0384811682528316602082015260606040820181905260009061485b90830184615b3c565b600080600060608486031215615bcd57600080fd5b8351925060208401519150604084015190509250925092565b600060018201615bf857615bf86156b0565b5060010190565b600060208284031215615c1157600080fd5b8151611532816151f0565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000600160ff1b8201615c7c57615c7c6156b0565b5060000390565b60008083128015600160ff1b850184121615615ca157615ca16156b0565b6001600160ff1b0384018313811615615cbc57615cbc6156b0565b50500390565b600080821280156001600160ff1b0384900385131615615ce457615ce46156b0565b600160ff1b8390038412811615615cfd57615cfd6156b0565b50500190565b600082615d1257615d1261577a565b500790565b60008251615d2981846020870161593f565b9190910192915050565b602081526000610c586020830184615b3c56fe7570646174654d756c7469706c6965727328616464726573732c75696e743235362c75696e743235362909d2594e8892daceca055f74be758146a8b8b1167444d0b4ccb96e74168198cc6164644d61726b657428616464726573732c616464726573732c75696e743235362c75696e7432353629a264697066735822122078bfd6a5c459b0b86d39e9f920efd6f3738e5390709bc319b085f34491a9f40b64736f6c634300080d0033",
|
|
1857
1857
|
"linkReferences": {},
|
|
1858
1858
|
"deployedLinkReferences": {}
|
|
1859
1859
|
}
|
|
@@ -6,6 +6,8 @@ import { AccessControlledV8 } from "@venusprotocol/governance-contracts/contract
|
|
|
6
6
|
import { ResilientOracleInterface } from "@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol";
|
|
7
7
|
import { PausableUpgradeable } from "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";
|
|
8
8
|
import { MaxLoopsLimitHelper } from "@venusprotocol/solidity-utilities/contracts/MaxLoopsLimitHelper.sol";
|
|
9
|
+
import { TimeManagerV8 } from "@venusprotocol/solidity-utilities/contracts/TimeManagerV8.sol";
|
|
10
|
+
|
|
9
11
|
import { IERC20MetadataUpgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol";
|
|
10
12
|
|
|
11
13
|
import { PrimeStorageV1 } from "./PrimeStorage.sol";
|
|
@@ -16,7 +18,6 @@ import { IPrime } from "./Interfaces/IPrime.sol";
|
|
|
16
18
|
import { IXVSVault } from "./Interfaces/IXVSVault.sol";
|
|
17
19
|
import { IVToken } from "./Interfaces/IVToken.sol";
|
|
18
20
|
import { InterfaceComptroller } from "./Interfaces/InterfaceComptroller.sol";
|
|
19
|
-
import { TimeManager } from "../../Utils/TimeManager.sol";
|
|
20
21
|
import { PoolRegistryInterface } from "./Interfaces/IPoolRegistry.sol";
|
|
21
22
|
|
|
22
23
|
/**
|
|
@@ -25,7 +26,7 @@ import { PoolRegistryInterface } from "./Interfaces/IPoolRegistry.sol";
|
|
|
25
26
|
* @notice Prime Token is used to provide extra rewards to the users who have staked a minimum of `MINIMUM_STAKED_XVS` XVS in the XVSVault for `STAKING_PERIOD` days
|
|
26
27
|
* @custom:security-contact https://github.com/VenusProtocol/venus-protocol
|
|
27
28
|
*/
|
|
28
|
-
contract Prime is IPrime, AccessControlledV8, PausableUpgradeable, MaxLoopsLimitHelper, PrimeStorageV1,
|
|
29
|
+
contract Prime is IPrime, AccessControlledV8, PausableUpgradeable, MaxLoopsLimitHelper, PrimeStorageV1, TimeManagerV8 {
|
|
29
30
|
using SafeERC20Upgradeable for IERC20Upgradeable;
|
|
30
31
|
|
|
31
32
|
/// @notice address of wrapped native token contract
|
|
@@ -160,7 +161,7 @@ contract Prime is IPrime, AccessControlledV8, PausableUpgradeable, MaxLoopsLimit
|
|
|
160
161
|
uint256 _minimumStakedXVS,
|
|
161
162
|
uint256 _maximumXVSCap,
|
|
162
163
|
bool _timeBased
|
|
163
|
-
)
|
|
164
|
+
) TimeManagerV8(_timeBased, _blocksPerYear) {
|
|
164
165
|
WRAPPED_NATIVE_TOKEN = _wrappedNativeToken;
|
|
165
166
|
NATIVE_MARKET = _nativeMarket;
|
|
166
167
|
STAKING_PERIOD = _stakingPeriod;
|
|
@@ -6,7 +6,7 @@ import { AccessControlledV8 } from "@venusprotocol/governance-contracts/contract
|
|
|
6
6
|
import { PausableUpgradeable } from "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";
|
|
7
7
|
import { IPrimeLiquidityProvider } from "./Interfaces/IPrimeLiquidityProvider.sol";
|
|
8
8
|
import { MaxLoopsLimitHelper } from "@venusprotocol/solidity-utilities/contracts/MaxLoopsLimitHelper.sol";
|
|
9
|
-
import {
|
|
9
|
+
import { TimeManagerV8 } from "@venusprotocol/solidity-utilities/contracts/TimeManagerV8.sol";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* @title PrimeLiquidityProvider
|
|
@@ -18,7 +18,7 @@ contract PrimeLiquidityProvider is
|
|
|
18
18
|
AccessControlledV8,
|
|
19
19
|
PausableUpgradeable,
|
|
20
20
|
MaxLoopsLimitHelper,
|
|
21
|
-
|
|
21
|
+
TimeManagerV8
|
|
22
22
|
{
|
|
23
23
|
using SafeERC20Upgradeable for IERC20Upgradeable;
|
|
24
24
|
|
|
@@ -103,7 +103,7 @@ contract PrimeLiquidityProvider is
|
|
|
103
103
|
* @param _blocksPerYear total blocks per year
|
|
104
104
|
*/
|
|
105
105
|
/// @custom:oz-upgrades-unsafe-allow constructor
|
|
106
|
-
constructor(bool _timeBased, uint256 _blocksPerYear)
|
|
106
|
+
constructor(bool _timeBased, uint256 _blocksPerYear) TimeManagerV8(_timeBased, _blocksPerYear) {
|
|
107
107
|
_disableInitializers();
|
|
108
108
|
}
|
|
109
109
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "
|
|
1
|
+
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "../../../common";
|
|
2
2
|
import type { FunctionFragment, Result } from "@ethersproject/abi";
|
|
3
3
|
import type { Listener, Provider } from "@ethersproject/providers";
|
|
4
4
|
import type { BaseContract, BigNumber, BytesLike, CallOverrides, PopulatedTransaction, Signer, utils } from "ethers";
|
|
5
|
-
export interface
|
|
5
|
+
export interface TimeManagerV8Interface extends utils.Interface {
|
|
6
6
|
functions: {
|
|
7
7
|
"blocksOrSecondsPerYear()": FunctionFragment;
|
|
8
8
|
"getBlockNumberOrTimestamp()": FunctionFragment;
|
|
@@ -17,11 +17,11 @@ export interface TimeManagerInterface extends utils.Interface {
|
|
|
17
17
|
decodeFunctionResult(functionFragment: "isTimeBased", data: BytesLike): Result;
|
|
18
18
|
events: {};
|
|
19
19
|
}
|
|
20
|
-
export interface
|
|
20
|
+
export interface TimeManagerV8 extends BaseContract {
|
|
21
21
|
connect(signerOrProvider: Signer | Provider | string): this;
|
|
22
22
|
attach(addressOrName: string): this;
|
|
23
23
|
deployed(): Promise<this>;
|
|
24
|
-
interface:
|
|
24
|
+
interface: TimeManagerV8Interface;
|
|
25
25
|
queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
|
|
26
26
|
listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
|
|
27
27
|
listeners(eventName?: string): Array<Listener>;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TimeManagerV8, TimeManagerV8Interface } from "../../../../@venusprotocol/solidity-utilities/contracts/TimeManagerV8";
|
|
2
2
|
import type { Provider } from "@ethersproject/providers";
|
|
3
3
|
import { Signer } from "ethers";
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class TimeManagerV8__factory {
|
|
5
5
|
static readonly abi: readonly [{
|
|
6
6
|
readonly inputs: readonly [];
|
|
7
7
|
readonly name: "InvalidBlocksPerYear";
|
|
8
8
|
readonly type: "error";
|
|
9
9
|
}, {
|
|
10
10
|
readonly inputs: readonly [];
|
|
11
|
-
readonly name: "
|
|
11
|
+
readonly name: "InvalidTimeBasedConfiguration";
|
|
12
12
|
readonly type: "error";
|
|
13
13
|
}, {
|
|
14
14
|
readonly inputs: readonly [];
|
|
@@ -41,6 +41,6 @@ export declare class TimeManager__factory {
|
|
|
41
41
|
readonly stateMutability: "view";
|
|
42
42
|
readonly type: "function";
|
|
43
43
|
}];
|
|
44
|
-
static createInterface():
|
|
45
|
-
static connect(address: string, signerOrProvider: Signer | Provider):
|
|
44
|
+
static createInterface(): TimeManagerV8Interface;
|
|
45
|
+
static connect(address: string, signerOrProvider: Signer | Provider): TimeManagerV8;
|
|
46
46
|
}
|