@venusprotocol/isolated-pools 3.3.0-dev.1 → 3.3.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.
Files changed (81) hide show
  1. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV5.sol/AccessControlledV5.dbg.json +1 -1
  2. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV5.sol/IAccessControlManagerV5.dbg.json +1 -1
  3. package/artifacts/@venusprotocol/solidity-utilities/contracts/TimeManagerV5.sol/TimeManagerV5.dbg.json +4 -0
  4. package/artifacts/@venusprotocol/{venus-protocol/contracts/XVSVault → solidity-utilities/contracts}/TimeManagerV5.sol/TimeManagerV5.json +3 -3
  5. package/artifacts/@venusprotocol/venus-protocol/contracts/Tokens/Prime/IPrime.sol/IPrime.dbg.json +1 -1
  6. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/Address.sol/Address.dbg.json +1 -1
  7. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/ECDSA.sol/ECDSA.dbg.json +1 -1
  8. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/IBEP20.sol/IBEP20.dbg.json +1 -1
  9. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/SafeBEP20.sol/SafeBEP20.dbg.json +1 -1
  10. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/SafeCast.sol/SafeCast.dbg.json +1 -1
  11. package/artifacts/@venusprotocol/venus-protocol/contracts/Utils/SafeMath.sol/SafeMath.dbg.json +1 -1
  12. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSStore.sol/XVSStore.dbg.json +1 -1
  13. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVault.sol/XVSVault.dbg.json +1 -1
  14. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVault.sol/XVSVault.json +28 -2
  15. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultErrorReporter.sol/XVSVaultErrorReporter.dbg.json +1 -1
  16. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultProxy.sol/XVSVaultProxy.dbg.json +1 -1
  17. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultProxy.sol/XVSVaultProxy.json +2 -2
  18. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultAdminStorage.dbg.json +1 -1
  19. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultAdminStorage.json +2 -2
  20. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultStorage.dbg.json +1 -1
  21. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultStorage.json +28 -2
  22. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultStorageV1.dbg.json +1 -1
  23. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/XVSVaultStorage.sol/XVSVaultStorageV1.json +2 -2
  24. package/artifacts/build-info/8eba699f268bc7041b7f29e3b1d105df.json +1 -0
  25. package/artifacts/contracts/test/XVSStoreScenario.sol/XVSStoreScenario.dbg.json +1 -1
  26. package/artifacts/contracts/test/XVSVaultScenario.sol/XVSVaultScenario.dbg.json +1 -1
  27. package/artifacts/contracts/test/XVSVaultScenario.sol/XVSVaultScenario.json +28 -2
  28. package/deployments/arbitrumone/ComptrollerBeacon.json +206 -0
  29. package/deployments/arbitrumone/ComptrollerImpl.json +3227 -0
  30. package/deployments/arbitrumone/Comptroller_Core.json +187 -0
  31. package/deployments/arbitrumone/DefaultProxyAdmin.json +257 -0
  32. package/deployments/arbitrumone/JumpRateModelV2_base0bps_slope1500bps_jump25000bps_kink4500bps.json +608 -0
  33. package/deployments/arbitrumone/JumpRateModelV2_base0bps_slope350bps_jump25000bps_kink8000bps.json +608 -0
  34. package/deployments/arbitrumone/JumpRateModelV2_base0bps_slope875bps_jump25000bps_kink8000bps.json +608 -0
  35. package/deployments/arbitrumone/PoolRegistry.json +945 -0
  36. package/deployments/arbitrumone/PoolRegistry_Implementation.json +1194 -0
  37. package/deployments/arbitrumone/PoolRegistry_Proxy.json +267 -0
  38. package/deployments/arbitrumone/VTokenBeacon.json +206 -0
  39. package/deployments/arbitrumone/VTokenImpl.json +3269 -0
  40. package/deployments/arbitrumone/VToken_vARB_Core.json +257 -0
  41. package/deployments/arbitrumone/VToken_vUSDC_Core.json +257 -0
  42. package/deployments/arbitrumone/VToken_vUSDT_Core.json +257 -0
  43. package/deployments/arbitrumone/VToken_vWBTC_Core.json +257 -0
  44. package/deployments/arbitrumone/VToken_vWETH_Core.json +257 -0
  45. package/deployments/arbitrumone/solcInputs/0e89febeebc7444140de8e67c9067d2c.json +78 -0
  46. package/deployments/arbitrumone/solcInputs/6908ef056fe5b90d510a922d922ed1be.json +397 -0
  47. package/deployments/arbitrumone.json +8553 -895
  48. package/deployments/arbitrumone_addresses.json +18 -1
  49. package/dist/hardhat.config.js +1 -0
  50. package/dist/helpers/deploymentConfig.d.ts +8 -0
  51. package/dist/helpers/deploymentConfig.js +157 -0
  52. package/dist/typechain/factories/TimeManagerV5__factory.d.ts +1 -1
  53. package/dist/typechain/factories/TimeManagerV5__factory.js +1 -1
  54. package/dist/typechain/factories/XVSVaultAdminStorage__factory.d.ts +1 -1
  55. package/dist/typechain/factories/XVSVaultAdminStorage__factory.js +1 -1
  56. package/dist/typechain/factories/XVSVaultProxy__factory.d.ts +1 -1
  57. package/dist/typechain/factories/XVSVaultProxy__factory.js +1 -1
  58. package/dist/typechain/factories/XVSVaultScenario__factory.d.ts +1 -1
  59. package/dist/typechain/factories/XVSVaultScenario__factory.js +27 -1
  60. package/dist/typechain/factories/XVSVaultStorageV1__factory.d.ts +1 -1
  61. package/dist/typechain/factories/XVSVaultStorageV1__factory.js +1 -1
  62. package/dist/typechain/factories/XVSVaultStorage__factory.d.ts +1 -1
  63. package/dist/typechain/factories/XVSVaultStorage__factory.js +27 -1
  64. package/dist/typechain/factories/XVSVault__factory.d.ts +1 -1
  65. package/dist/typechain/factories/XVSVault__factory.js +27 -1
  66. package/dist/typechain/index.d.ts +2 -2
  67. package/dist/typechain/index.js +4 -4
  68. package/package.json +4 -4
  69. package/typechain/XVSVault.d.ts +39 -0
  70. package/typechain/XVSVaultScenario.d.ts +39 -0
  71. package/typechain/XVSVaultStorage.d.ts +39 -0
  72. package/typechain/factories/TimeManagerV5__factory.ts +1 -1
  73. package/typechain/factories/XVSVaultAdminStorage__factory.ts +1 -1
  74. package/typechain/factories/XVSVaultProxy__factory.ts +1 -1
  75. package/typechain/factories/XVSVaultScenario__factory.ts +27 -1
  76. package/typechain/factories/XVSVaultStorageV1__factory.ts +1 -1
  77. package/typechain/factories/XVSVaultStorage__factory.ts +27 -1
  78. package/typechain/factories/XVSVault__factory.ts +27 -1
  79. package/typechain/index.ts +2 -2
  80. package/artifacts/@venusprotocol/venus-protocol/contracts/XVSVault/TimeManagerV5.sol/TimeManagerV5.dbg.json +0 -4
  81. package/artifacts/build-info/a6010b45c0c8965ed7c62ff62b41af46.json +0 -1
@@ -1590,6 +1590,32 @@ const _abi = [
1590
1590
  stateMutability: "view",
1591
1591
  type: "function",
1592
1592
  },
1593
+ {
1594
+ constant: true,
1595
+ inputs: [
1596
+ {
1597
+ internalType: "address",
1598
+ name: "",
1599
+ type: "address",
1600
+ },
1601
+ {
1602
+ internalType: "uint256",
1603
+ name: "",
1604
+ type: "uint256",
1605
+ },
1606
+ ],
1607
+ name: "totalPendingWithdrawals",
1608
+ outputs: [
1609
+ {
1610
+ internalType: "uint256",
1611
+ name: "",
1612
+ type: "uint256",
1613
+ },
1614
+ ],
1615
+ payable: false,
1616
+ stateMutability: "view",
1617
+ type: "function",
1618
+ },
1593
1619
  {
1594
1620
  constant: false,
1595
1621
  inputs: [
@@ -1656,7 +1682,7 @@ const _abi = [
1656
1682
  type: "function",
1657
1683
  },
1658
1684
  ];
1659
- const _bytecode = "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561577f80620000336000396000f3fe608060405234801561001057600080fd5b506004361061035d5760003560e01c806392e35000116101d3578063c7ad089511610104578063e7a324dc116100a2578063f55401621161007c578063f554016214610704578063f851a4401461070c578063fba1b1f914610714578063fe5a451a146107275761035d565b8063e7a324dc146106d3578063e8f2be6f146106db578063f1127ed8146106e35761035d565b8063dae66bbe116100de578063dae66bbe146106a8578063de0368b2146106bb578063e1d146fb146106c3578063e6a69ab8146106cb5761035d565b8063c7ad08951461067a578063cd9b94e714610682578063d7ae45e2146106955761035d565b8063add8933711610171578063b6a5fd2f1161014b578063b6a5fd2f14610621578063c210259614610634578063c3c754a814610654578063c3cda520146106675761035d565b8063add89337146105f1578063b4a0bdf3146105f9578063b4b5ea571461060e5761035d565b80639e2b6c4d116101ad5780639e2b6c4d146105a5578063a09eab7a146105b8578063a6997762146105cb578063a9d69a69146105de5761035d565b806392e350001461054c57806398e1b31b14610570578063996cba68146105925761035d565b8063587cde1e116102ad57806373d025d61161024b5780637ecebe00116102255780637ecebe001461050b5780638308d7e91461051e5780638456cb59146105315780638ed7333d146105395761035d565b806373d025d6146104c3578063782d6fe1146104d85780637ac92456146104f85761035d565b80635ff56315116102875780635ff56315146104755780636857249c146104885780636dd77cbd146104905780636fcfff45146104a35761035d565b8063587cde1e146104475780635c19a95c1461045a5780635c60da1b1461046d5761035d565b806320606b701161031a5780632eda5c6c116102f45780632eda5c6c14610406578063358ae036146104195780633d4180f9146104215780634298bdbd146104345761035d565b806320606b70146103e157806324f52bbf146103e957806326782247146103fe5761035d565b8063046f7da2146103625780630af137281461036c5780630efe6a8b14610395578063115b512f146103a857806319129e5a146103bb5780631d504dc6146103ce575b600080fd5b61036a61072f565b005b61037f61037a3660046140b4565b6107ba565b60405161038c91906150a4565b60405180910390f35b61036a6103a336600461416c565b610800565b61036a6103b636600461416c565b610af5565b61036a6103c9366004613fc1565b610ea9565b61036a6103dc3660046142b3565b610edf565b61037f611010565b6103f1611027565b60405161038c9190614f42565b6103f1611036565b61037f610414366004613fc1565b611045565b6103f1611064565b61037f61042f366004613ffd565b611073565b61037f610442366004613fc1565b611090565b6103f1610455366004613fc1565b6110a2565b61036a610468366004613fc1565b6110bd565b6103f16110ea565b61036a610483366004613ffd565b6110f9565b61037f6111ed565b61037f61049e3660046140b4565b6111f3565b6104b66104b1366004613fc1565b6112a8565b60405161038c9190615452565b6104cb6112c0565b60405161038c9190615096565b6104eb6104e6366004614084565b6112c9565b60405161038c919061547b565b61036a610506366004614084565b6114df565b61037f610519366004613fc1565b611828565b61036a61052c36600461416c565b61183a565b61036a6119e0565b61036a610547366004614084565b611a65565b61055f61055a366004614084565b611aa0565b60405161038c959493929190615111565b61058361057e3660046140b4565b611af5565b60405161038c93929190615437565b61036a6105a0366004614037565b611b47565b61036a6105b336600461416c565b611cd9565b61037f6105c63660046140b4565b611dc4565b61036a6105d9366004614273565b612014565b61037f6105ec3660046140b4565b612048565b6103f161208a565b610601612099565b60405161038c9190615103565b6104eb61061c366004613fc1565b6120a8565b61036a61062f366004614084565b612118565b6106476106423660046140b4565b61223e565b60405161038c9190615085565b6104cb610662366004613fc1565b6122f8565b61036a61067536600461419e565b61230d565b6104cb6124b1565b61037f610690366004613fc1565b6124ba565b61037f6106a3366004613fc1565b6124cc565b61036a6106b6366004614292565b6124e7565b6103f16125f3565b61037f612602565b61037f612632565b61037f61263a565b61037f612646565b6106f66106f1366004614225565b61264c565b60405161038c929190615460565b61037f612681565b6103f1612689565b61036a6107223660046140f7565b612698565b61060161297d565b61075860405180604001604052806008815260200167726573756d65282960c01b81525061298c565b60135460ff166107835760405162461bcd60e51b815260040161077a906151ce565b60405180910390fd5b6013805460ff1916905560405133907fd2619572a1464e0df0bb351d834fd47f3350984d7bfdb1ab69cfcb0b8e42141590600090a2565b60006107c68484612a2e565b506001600160a01b0380841660009081526007602090815260408083208684528252808320938516835292905220600201545b9392505050565b600354600160a01b900460ff166108295760405162461bcd60e51b815260040161077a9061533e565b6003805460ff60a01b1916905560135460ff16156108595760405162461bcd60e51b815260040161077a906151be565b6108638383612a2e565b6001600160a01b038316600090815260086020526040812080548490811061088757fe5b600091825260208083206001600160a01b038816845260078252604080852088865283528085203386529092529220600590910290910191506108ca8585612a65565b6108d5858533612048565b156108f25760405162461bcd60e51b815260040161077a906152de565b8054156109675760006109058284612c42565b9050801561096557610918863383612c56565b84866001600160a01b0316336001600160a01b03167f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946458460405161095c91906150a4565b60405180910390a45b505b8154610984906001600160a01b031633308663ffffffff612ecf16565b8054610996908463ffffffff612f3016565b81556109a28183612f72565b600182015560055482546001600160a01b0390811691161415610a0957336000908152600f60209081526040808320548151606081019092526021808352610a0994936001600160a01b0390921692610a049289929061561f90830139612fa0565b612fcf565b6017546001600160a01b038681169116148015610a27575060185484145b15610a8f576016546040516337f23cd360e01b81526001600160a01b03909116906337f23cd390610a5c903390600401614f50565b600060405180830381600087803b158015610a7657600080fd5b505af1158015610a8a573d6000803e3d6000fd5b505050505b83856001600160a01b0316336001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d786604051610ad391906150a4565b60405180910390a450506003805460ff60a01b1916600160a01b179055505050565b600354600160a01b900460ff16610b1e5760405162461bcd60e51b815260040161077a9061533e565b6003805460ff60a01b1916905560135460ff1615610b4e5760405162461bcd60e51b815260040161077a906151be565b610b588383612a2e565b60008111610b785760405162461bcd60e51b815260040161077a906152fe565b6001600160a01b0383166000908152600760209081526040808320858452825280832033845290915290206002810154610bb8908363ffffffff612f3016565b81541015610bd85760405162461bcd60e51b815260040161077a906153de565b6001600160a01b0384166000908152600860205260408120805485908110610bfc57fe5b600091825260208083206001600160a01b0389168452600a825260408085208986528352808520338652909252908320600590920201925090610c3e82613161565b5090508015610c5f5760405162461bcd60e51b815260040161077a906152de565b610c698787612a65565b6000610c758585612c42565b9050610c82883383612c56565b6004840154600090610c9a904263ffffffff612f3016565b9050610ca886858984613205565b6001600160a01b03891660009081526012602090815260408083208b8452909152902054610cdc908863ffffffff612f3016565b6001600160a01b038a1660009081526012602090815260408083208c8452909152902055610d0a8686612f72565b600187015560055485546001600160a01b0390811691161415610d6d57336000908152600f6020908152604080832054815160608101909252602b808352610d6d946001600160a01b03909216939192610a04928d92906155cc90830139612fa0565b6017546001600160a01b038a81169116148015610d8b575060185488145b15610df3576016546040516337f23cd360e01b81526001600160a01b03909116906337f23cd390610dc0903390600401614f50565b600060405180830381600087803b158015610dda57600080fd5b505af1158015610dee573d6000803e3d6000fd5b505050505b87896001600160a01b0316336001600160a01b03167f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e9464585604051610e3791906150a4565b60405180910390a487896001600160a01b0316336001600160a01b03167f88a254a0ef28a0b9e957ff600beae69870f6f924065147f3627c3f814e60ec118a604051610e8391906150a4565b60405180910390a450506003805460ff60a01b1916600160a01b17905550505050505050565b6000546001600160a01b03163314610ed35760405162461bcd60e51b815260040161077a9061535e565b610edc816133e9565b50565b806001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b158015610f1857600080fd5b505afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f509190810190613fdf565b6001600160a01b0316336001600160a01b031614610f805760405162461bcd60e51b815260040161077a906153ee565b806001600160a01b031663c1e803346040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbb57600080fd5b505af1158015610fcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ff391908101906142d1565b15610edc5760405162461bcd60e51b815260040161077a9061536e565b60405161101c90614f2c565b604051809103902081565b6004546001600160a01b031681565b6001546001600160a01b031681565b6001600160a01b0381166000908152600660205260409020545b919050565b6005546001600160a01b031681565b601560209081526000928352604080842090915290825290205481565b60096020526000908152604090205481565b600f602052600090815260409020546001600160a01b031681565b60135460ff16156110e05760405162461bcd60e51b815260040161077a906151be565b610edc338261346e565b6002546001600160a01b031681565b6000546001600160a01b031633146111235760405162461bcd60e51b815260040161077a9061535e565b61112c826134fd565b611135816134fd565b6005546004546001600160a01b03918216911681156111665760405162461bcd60e51b815260040161077a9061529e565b600580546001600160a01b038087166001600160a01b03199283161790925560048054928616929091169190911790556003805460ff60a01b1916600160a01b1790556040517f559f314bb90394a4a9ceb724f365b36a53587d894352c43d12901fd680101456906111df908490849088908890614fc1565b60405180910390a150505050565b60795481565b60006111ff8484612a2e565b6001600160a01b038085166000908152600a60209081526040808320878452825280832093861683529290522080545b60008111801561125f575061125f82600183038154811061124c57fe5b9060005260206000209060020201613523565b1561129f5761129482600183038154811061127657fe5b6000918252602090912060029091020154849063ffffffff612f3016565b92506000190161122f565b50509392505050565b60116020526000908152604090205463ffffffff1681565b60135460ff1681565b60006112d3612602565b82106112f15760405162461bcd60e51b815260040161077a906152ae565b6001600160a01b03831660009081526011602052604090205463ffffffff168061131f5760009150506114d9565b6001600160a01b038416600090815260106020908152604080832063ffffffff60001986018116855292529091205416831061139b576001600160a01b03841660009081526010602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b031690506114d9565b6001600160a01b038416600090815260106020908152604080832083805290915290205463ffffffff168310156113d65760009150506114d9565b600060001982015b8163ffffffff168163ffffffff16111561149957600282820363ffffffff16048103611408613f45565b506001600160a01b038716600090815260106020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b03169181019190915290871415611474576020015194506114d99350505050565b805163ffffffff1687111561148b57819350611492565b6001820392505b50506113de565b506001600160a01b038516600090815260106020908152604080832063ffffffff909416835292905220546001600160601b03600160201b909104169150505b92915050565b600354600160a01b900460ff166115085760405162461bcd60e51b815260040161077a9061533e565b6003805460ff60a01b1916905560135460ff16156115385760405162461bcd60e51b815260040161077a906151be565b6115428282612a2e565b6001600160a01b038216600090815260086020526040812080548390811061156657fe5b600091825260208083206001600160a01b038716808552600783526040808620888752845280862033808852908552818720928752600a85528187208988528552818720908752909352918420600590930201935091806115c78484613538565b9092509050811515806115da5750600081115b6115f65760405162461bcd60e51b815260040161077a9061537e565b811580611601575080155b61161d5760405162461bcd60e51b815260040161077a9061517e565b81156117365761162d8787612a65565b6000611673856001015461166764e8d4a5100061165b8a600301548a6000015461362f90919063ffffffff16565b9063ffffffff61366916565b9063ffffffff6136ab16565b6004805460405163135b33cd60e31b81529293506001600160a01b031691639ad99e68916116a7918c913391879101614f99565b600060405180830381600087803b1580156116c157600080fd5b505af11580156116d5573d6000803e3d6000fd5b505086546116ec925090508463ffffffff6136ab16565b808655600387015461170f9164e8d4a510009161165b919063ffffffff61362f16565b60018601558554611730906001600160a01b0316338563ffffffff6136ed16565b506117ba565b8354611748908263ffffffff6136ab16565b84556001600160a01b038716600090815260126020908152604080832089845290915290205461177e908263ffffffff6136ab16565b6001600160a01b0380891660009081526012602090815260408083208b845290915290209190915585546117ba9116338363ffffffff6136ed16565b856001600160a01b038816337fe31da05fae6db869f5ea51f4b638aa6884070b6c87f18f63bd2291a12cb2f5186117f7868663ffffffff612f3016565b60405161180491906150a4565b60405180910390a450506003805460ff60a01b1916600160a01b1790555050505050565b600e6020526000908152604090205481565b6118786040518060400160405280601c81526020017f73657428616464726573732c75696e743235362c75696e74323536290000000081525061298c565b6118828383612a2e565b61188b8361370f565b6001600160a01b038316600090815260086020526040812080549091906119049084906118f8908590889081106118be57fe5b60009182526020808320600160059093020191909101546001600160a01b038b16835260099091526040909120549063ffffffff6136ab16565b9063ffffffff612f3016565b9050600081116119265760405162461bcd60e51b815260040161077a906153fe565b600082858154811061193457fe5b90600052602060002090600502016001015490508383868154811061195557fe5b9060005260206000209060050201600101819055508160096000886001600160a01b03166001600160a01b031681526020019081526020016000208190555084866001600160a01b03167f6ee09c6cb801194690c195c69f465aaf7c80255cbeafaab9600f47ed79de2ca983876040516119d0929190615429565b60405180910390a3505050505050565b611a08604051806040016040528060078152602001667061757365282960c81b81525061298c565b60135460ff1615611a2b5760405162461bcd60e51b815260040161077a9061525e565b6013805460ff1916600117905560405133907fdffada2889ebfab9224c24069d833f3de835d8cf99872d49e7b7ba5fccb7a46f90600090a2565b60135460ff1615611a885760405162461bcd60e51b815260040161077a906151be565b611a928282612a2e565b611a9c8282612a65565b5050565b60086020528160005260406000208181548110611ab957fe5b6000918252602090912060059091020180546001820154600283015460038401546004909401546001600160a01b039093169550909350919085565b6000806000611b048686612a2e565b5050506001600160a01b03928316600090815260076020908152604080832094835293815283822092909416815292529020805460018201546002909201549092565b600354600160a01b900460ff16611b705760405162461bcd60e51b815260040161077a9061533e565b6003805460ff60a01b1916905560135460ff1615611ba05760405162461bcd60e51b815260040161077a906151be565b611baa8282612a2e565b6001600160a01b0382166000908152600860205260408120805483908110611bce57fe5b600091825260208083206001600160a01b0380881685526007835260408086208887528452808620918a1686529252922060059091029091019150611c138484612a65565b611c1e848487612048565b15611c3b5760405162461bcd60e51b815260040161077a906152de565b805415611cbf576000611c4e8284612c42565b90508015611cbd57611c608284612f72565b6001830155611c70858783612c56565b83856001600160a01b0316876001600160a01b03167f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e9464584604051611cb491906150a4565b60405180910390a45b505b50506003805460ff60a01b1916600160a01b179055505050565b611cfa6040518060600160405280603381526020016156826033913961298c565b611d048383612a2e565b600081118015611d1757506312cc030081105b611d335760405162461bcd60e51b815260040161077a9061538e565b6001600160a01b0383166000908152600860205260408120805484908110611d5757fe5b9060005260206000209060050201905060008160040154905082826004018190555083856001600160a01b03167f0bcf80c5060ccf99b7a993c57a94b232fc2c5c04bd74c7c7d174595fee6bc31f8386604051611db5929190615429565b60405180910390a35050505050565b6000611dd08484612a2e565b6001600160a01b0384166000908152600860205260408120805485908110611df457fe5b600091825260208083206001600160a01b03808a168086526007845260408087208b885285528087208a8416885285528087206003600590970290940195860154918752601285528087208b885290945283862054855494516370a0823160e01b8152959750929590949093611ecb939216906370a0823190611e7b903090600401614f42565b60206040518083038186803b158015611e9357600080fd5b505afa158015611ea7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061166791908101906142d1565b90506000611ed7612602565b6001600160a01b038a1660009081526006602052604090205460028701549192509082118015611f0657508215155b15611f9c576000611f248760020154846136ab90919063ffffffff16565b6001600160a01b038c1660009081526009602052604081205460018a01549293509091611f6c919061165b90611f60868863ffffffff61362f16565b9063ffffffff61362f16565b9050611f97611f8a8661165b8464e8d4a5100063ffffffff61362f16565b879063ffffffff612f3016565b955050505b6001600160a01b03808b166000908152600a602090815260408083208d84528252808320938c16835292905290812090611fd582613161565b915050612004876001015461166764e8d4a5100061165b8a611f60878e600001546136ab90919063ffffffff16565b9c9b505050505050505050505050565b6000546001600160a01b0316331461203e5760405162461bcd60e51b815260040161077a9061535e565b611a9c8282613744565b6001600160a01b038084166000908152600a602090815260408083208684528252808320938516835292905290812061208081613161565b5095945050505050565b6017546001600160a01b031681565b6047546001600160a01b031690565b6001600160a01b03811660009081526011602052604081205463ffffffff16806120d35760006107f9565b6001600160a01b0383166000908152601060209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03169392505050565b6121396040518060600160405280603081526020016156e16030913961298c565b60048054604051633d6ac5b360e21b81526001600160a01b039091169163f5ab16cc9161216891869101614f42565b60206040518083038186803b15801561218057600080fd5b505afa158015612194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121b89190810190614255565b6121d45760405162461bcd60e51b815260040161077a9061534e565b6121dd8261370f565b6001600160a01b0382166000818152600660205260409081902080549084905590519091907fad96cee0d692f0250b98e085504f399da6733854908215f6203fe3c69366d9f5906122319084908690615429565b60405180910390a2505050565b606061224a8484612a2e565b6001600160a01b038085166000908152600a602090815260408083208784528252808320938616835292815282822080548451818402810184019095528085529092909184015b828210156122eb5760008481526020908190206040805160608101825260028602909201805483526001908101546001600160801b0380821685870152600160801b90910416918301919091529083529092019101612291565b5050505090509392505050565b60146020526000908152604090205460ff1681565b60135460ff16156123305760405162461bcd60e51b815260040161077a906151be565b600060405161233e90614f2c565b604080519182900382208282019091526008825267161594d5985d5b1d60c21b6020909201919091527fddfcc46608a8bd52ebf900f03a24cc97b73a6046cec8c5d0f74a211e376e967a612390613829565b306040516020016123a494939291906150c0565b60405160208183030381529060405280519060200120905060006040516123ca90614f37565b6040519081900381206123e5918a908a908a906020016150b2565b60405160208183030381529060405280519060200120905060008282604051602001612412929190614efb565b60405160208183030381529060405280519060200120905060006124388288888861382d565b6001600160a01b0381166000908152600e60205260409020805460018101909155909150891461247a5760405162461bcd60e51b815260040161077a9061522e565b8742111561249a5760405162461bcd60e51b815260040161077a9061520e565b6124a4818b61346e565b505050505b505050505050565b607a5460ff1681565b60066020526000908152604090205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b031633146125115760405162461bcd60e51b815260040161077a9061535e565b6001600160a01b0383166125375760405162461bcd60e51b815260040161077a9061521e565b6001600160a01b03821661255d5760405162461bcd60e51b815260040161077a906152be565b6125678282612a2e565b6016546017546018546040516001600160a01b03808816948116937f8def9436d6e31b89ed00948ba91d0cb6936eada5154cb1b45b55683fb9e49237936125b69391909216918891889061501a565b60405180910390a3601680546001600160a01b039485166001600160a01b0319918216179091556017805493909416921691909117909155601855565b6003546001600160a01b031681565b600061262d607a60029054906101000a90048015613f5c021767ffffffffffffffff1663ffffffff16565b905090565b6301e1338081565b60405161101c90614f37565b60185481565b601060209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b6312cc030081565b6000546001600160a01b031681565b6126b96040518060600160405280602c8152602001615711602c913961298c565b6126c2856134fd565b6126cb836134fd565b6004546001600160a01b03166126f35760405162461bcd60e51b815260040161077a9061519e565b600084116127135760405162461bcd60e51b815260040161077a9061539e565b61271c8561370f565b6001600160a01b0385166000908152600860205260408120805490915b8181101561279757856001600160a01b031683828154811061275757fe5b60009182526020909120600590910201546001600160a01b0316141561278f5760405162461bcd60e51b815260040161077a9061531e565b600101612739565b506001600160a01b03851660009081526014602052604090205460ff16156127d15760405162461bcd60e51b815260040161077a9061528e565b6001600160a01b0387166000908152600960205260409020546127fa908763ffffffff612f3016565b6001600160a01b038089166000908152600960209081526040808320949094556006815290839020879055825160a0810184529188168252810188905283918101612843612602565b8152600060208083018290526040928301889052845460018082018755958352818320855160059092020180546001600160a01b0319166001600160a01b039283161781558583015181880155858501516002820155606086015160038201556080909501516004958601558a81168352601490915290829020805460ff1916851790558254915163fb66fb4d60e01b815291169263fb66fb4d926128eb928c92910161504f565b600060405180830381600087803b15801561290557600080fd5b505af1158015612919573d6000803e3d6000fd5b50505050846001600160a01b03166001838054905003886001600160a01b03167fd7fa4bff1cd2253c0789c3291a786a6f6b1a3b4569a75af683a15d52abb6a0bf89888860405161296c93929190615437565b60405180910390a450505050505050565b6016546001600160a01b031681565b6047546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906129bf9033908690600401614f5e565b60206040518083038186803b1580156129d757600080fd5b505afa1580156129eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a0f9190810190614255565b905080611a9c5760405162461bcd60e51b815260040161077a906151de565b6001600160a01b0382166000908152600860205260409020548110611a9c5760405162461bcd60e51b815260040161077a9061518e565b6001600160a01b0382166000908152600860205260408120805483908110612a8957fe5b906000526020600020906005020190508060020154612aa6612602565b11612ab15750611a9c565b80546040516370a0823160e01b81526000916001600160a01b0316906370a0823190612ae1903090600401614f42565b60206040518083038186803b158015612af957600080fd5b505afa158015612b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b3191908101906142d1565b6001600160a01b0385166000908152601260209081526040808320878452909152902054909150612b6990829063ffffffff6136ab16565b905080612b8757612b78612602565b82600201819055505050611a9c565b6000612b91612602565b90506000612bac8460020154836136ab90919063ffffffff16565b6001600160a01b03871660009081526009602090815260408083205460018901546006909352908320549394509192612bf5929161165b91611f6090879063ffffffff61362f16565b9050612c24612c138561165b8464e8d4a5100063ffffffff61362f16565b60038701549063ffffffff612f3016565b6003860155612c31612602565b856002018190555050505050505050565b60006107f983600101546116678585612f72565b600480546040516370a0823160e01b81526001600160a01b03918216926000928716916370a0823191612c8b91869101614f42565b60206040518083038186803b158015612ca357600080fd5b505afa158015612cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612cdb91908101906142d1565b6001600160a01b038087166000908152601560209081526040808320938916835292905290812054919250612d16858363ffffffff612f3016565b9050828111612df4578115612d89576001600160a01b038088166000818152601560209081526040808320948b1680845294909152808220829055517f6bdfd5e51d01475945224d3d37965916fd8df699ef9e8888af4359aa8622216091612d809187919061540e565b60405180910390a35b60405163135b33cd60e31b81526001600160a01b03851690639ad99e6890612db9908a908a908690600401614fff565b600060405180830381600087803b158015612dd357600080fd5b505af1158015612de7573d6000803e3d6000fd5b5050505050505050612eca565b6001600160a01b038088166000818152601560209081526040808320948b168084529490915290819020868503908190559051909291907f6bdfd5e51d01475945224d3d37965916fd8df699ef9e8888af4359aa8622216090612e5a9087908690615429565b60405180910390a360405163135b33cd60e31b81526001600160a01b03861690639ad99e6890612e92908b908b908990600401614fff565b600060405180830381600087803b158015612eac57600080fd5b505af1158015612ec0573d6000803e3d6000fd5b5050505050505050505b505050565b604051612f2a9085906323b872dd60e01b90612ef390879087908790602401614fff565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613857565b50505050565b60006107f983836040518060400160405280601b81526020017f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525061393c565b60006107f964e8d4a5100061165b8460030154611f60876002015488600001546136ab90919063ffffffff16565b600081600160601b8410612fc75760405162461bcd60e51b815260040161077a919061515d565b509192915050565b816001600160a01b0316836001600160a01b031614158015612ffa57506000816001600160601b0316115b15612eca576001600160a01b038316156130b2576001600160a01b03831660009081526011602052604081205463ffffffff16908161303a576000613079565b6001600160a01b0385166000908152601060209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b905060006130a082856040518060600160405280602c81526020016156b5602c913961396c565b90506130ae868484846139ab565b5050505b6001600160a01b03821615612eca576001600160a01b03821660009081526011602052604081205463ffffffff1690816130ed57600061312c565b6001600160a01b0384166000908152601060209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b9050600061315382856040518060600160405280602b81526020016155a1602b9139613b67565b90506124a9858484846139ab565b805460009081905b80156131ff5783600182038154811061317e57fe5b6000918252602090912060016002909202018101546001600160801b03600160801b9091041614156131e1576131da8460018303815481106131bc57fe5b6000918252602090912060029091020154839063ffffffff612f3016565b91506131f6565b6131f384600183038154811061127657fe5b92505b60001901613169565b50915091565b8254604080516060810182526000808252602080830182815260019484018581528587018a5589845291909220925160028602909301928355905191909201805492516001600160801b03908116600160801b029281166001600160801b0319909416939093179092161790555b6000811180156132ae57508184600183038154811061328e57fe5b60009182526020909120600160029092020101546001600160801b031611155b15613335578360018203815481106132c257fe5b90600052602060002090600202018482815481106132dc57fe5b600091825260209091208254600290920201908155600191820180549290910180546001600160801b0319166001600160801b03938416178082559154600160801b908190048416029190921617905560001901613273565b604051806060016040528084815260200161334f84613b9a565b6001600160801b0316815260200160016001600160801b031681525084828154811061337757fe5b60009182526020918290208351600292830290910190815591830151600190920180546040909401516001600160801b03199094166001600160801b03938416178316600160801b93909416929092029290921790558501546133da9084612f30565b85600201819055505050505050565b6001600160a01b03811661340f5760405162461bcd60e51b815260040161077a9061526e565b604780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906134629083908590614f7e565b60405180910390a15050565b6001600160a01b038083166000908152600f60205260408120549091169061349584613bc3565b6001600160a01b038581166000818152600f602052604080822080546001600160a01b031916898616908117909155905194955093928616927f0cc323ffec3ea49cbcddc0de1480978126d350c6a45dff33ad2f1cda6ae992619190a4612f2a828483612fcf565b6001600160a01b038116610edc5760405162461bcd60e51b815260040161077a906152ce565b60010154426001600160801b03909116111590565b805460009081905b60008111801561355d575061355d84600183038154811061124c57fe5b156135fe5783600182038154811061357157fe5b6000918252602090912060016002909202018101546001600160801b03600160801b9091041614156135b6576135af8460018303815481106131bc57fe5b91506135cb565b6135c884600183038154811061127657fe5b92505b838054806135d557fe5b600082815260208120600019928301600281029091018281556001019190915590915501613540565b50613623613612828463ffffffff612f3016565b60028601549063ffffffff6136ab16565b60028501559250929050565b60008261363e575060006114d9565b8282028284828161364b57fe5b04146107f95760405162461bcd60e51b815260040161077a9061530e565b60006107f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cd9565b60006107f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d10565b604051612eca90849063a9059cbb60e01b90612ef3908690869060240161506a565b6001600160a01b038116600090815260086020526040812054905b81811015612eca5761373c8382612a65565b60010161372a565b607a54610100900460ff161561376c5760405162461bcd60e51b815260040161077a906153ae565b81158015613778575080155b156137955760405162461bcd60e51b815260040161077a9061532e565b8180156137a157508015155b156137be5760405162461bcd60e51b815260040161077a9061524e565b607a805460ff1916831515179055816137d757806137dd565b6301e133805b607955816137ed57613d346137f1565b613d385b607a805461ff001967ffffffffffffffff93909316620100000269ffffffffffffffff00001990911617919091166101001790555050565b4690565b600080600061383e87878787613d3c565b9150915061384b81613e1c565b5090505b949350505050565b613869826001600160a01b0316613ee5565b6138855760405162461bcd60e51b815260040161077a906153ce565b60006060836001600160a01b0316836040516138a19190614eef565b6000604051808303816000865af19150503d80600081146138de576040519150601f19603f3d011682016040523d82523d6000602084013e6138e3565b606091505b5091509150816139055760405162461bcd60e51b815260040161077a906153be565b805115612f2a57808060200190516139209190810190614255565b612f2a5760405162461bcd60e51b815260040161077a906151fe565b600083830182858210156139635760405162461bcd60e51b815260040161077a919061515d565b50949350505050565b6000836001600160601b0316836001600160601b0316111582906139a35760405162461bcd60e51b815260040161077a919061515d565b505050900390565b60006139d66139b8612602565b60405180608001604052806042815260200161564060429139613f1e565b905060008463ffffffff16118015613a1f57506001600160a01b038516600090815260106020908152604080832063ffffffff6000198901811685529252909120548282169116145b15613a7e576001600160a01b0385166000908152601060209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b03851602179055613b1d565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152601083528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252601190935292909220805460018801909316929091169190911790555b846001600160a01b03167f6adb589fed1e8542fb7a6b10f00a85e02265e77f9ae3ca8ff93b22983e1af9a08484604051613b58929190615489565b60405180910390a25050505050565b6000838301826001600160601b0380871690831610156139635760405162461bcd60e51b815260040161077a919061515d565b6000600160801b8210613bbf5760405162461bcd60e51b815260040161077a9061523e565b5090565b6005546000906001600160a01b0316613bee5760405162461bcd60e51b815260040161077a906151ee565b6005546001600160a01b03166000908152600860205260408120805490915b81811015613cce5760055483546001600160a01b0390911690849083908110613c3257fe5b60009182526020909120600590910201546001600160a01b03161415613cc6576005546001600160a01b039081166000908152600760209081526040808320858452825280832093891683529290522060028101548154613cbb91613c9d919063ffffffff6136ab16565b6040518060600160405280602881526020016155f760289139612fa0565b94505050505061105f565b600101613c0d565b506000949350505050565b60008183613cfa5760405162461bcd60e51b815260040161077a919061515d565b506000838581613d0657fe5b0495945050505050565b600081848411156139a35760405162461bcd60e51b815260040161077a919061515d565b4390565b4290565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613d735750600090506003613e13565b8460ff16601b14158015613d8b57508460ff16601c14155b15613d9c5750600090506004613e13565b600060018787878760405160008152602001604052604051613dc194939291906150e8565b6020604051602081039080840390855afa158015613de3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613e0c57506000915060019050613e13565b9150600090505b94509492505050565b6000816004811115613e2a57fe5b1415613e3557610edc565b6001816004811115613e4357fe5b1415613e615760405162461bcd60e51b815260040161077a9061516e565b6002816004811115613e6f57fe5b1415613e8d5760405162461bcd60e51b815260040161077a906151ae565b6003816004811115613e9b57fe5b1415613eb95760405162461bcd60e51b815260040161077a9061527e565b6004816004811115613ec757fe5b1415610edc5760405162461bcd60e51b815260040161077a906152ee565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061384f575050151592915050565b600081600160201b8410612fc75760405162461bcd60e51b815260040161077a919061515d565b604080518082019091526000808252602082015290565bfe5b80356114d98161555f565b80516114d98161555f565b80356114d981615573565b80516114d981615573565b80356114d98161557c565b80356114d981615585565b80516114d98161557c565b80356114d98161558e565b80356114d981615597565b600060208284031215613fd357600080fd5b600061384f8484613f5e565b600060208284031215613ff157600080fd5b600061384f8484613f69565b6000806040838503121561401057600080fd5b600061401c8585613f5e565b925050602061402d85828601613f5e565b9150509250929050565b60008060006060848603121561404c57600080fd5b60006140588686613f5e565b935050602061406986828701613f5e565b925050604061407a86828701613f8a565b9150509250925092565b6000806040838503121561409757600080fd5b60006140a38585613f5e565b925050602061402d85828601613f8a565b6000806000606084860312156140c957600080fd5b60006140d58686613f5e565b93505060206140e686828701613f8a565b925050604061407a86828701613f5e565b600080600080600060a0868803121561410f57600080fd5b600061411b8888613f5e565b955050602061412c88828901613f8a565b945050604061413d88828901613f95565b935050606061414e88828901613f8a565b925050608061415f88828901613f8a565b9150509295509295909350565b60008060006060848603121561418157600080fd5b600061418d8686613f5e565b935050602061406986828701613f8a565b60008060008060008060c087890312156141b757600080fd5b60006141c38989613f5e565b96505060206141d489828a01613f8a565b95505060406141e589828a01613f8a565b94505060606141f689828a01613fb6565b935050608061420789828a01613f8a565b92505060a061421889828a01613f8a565b9150509295509295509295565b6000806040838503121561423857600080fd5b60006142448585613f5e565b925050602061402d85828601613fab565b60006020828403121561426757600080fd5b600061384f8484613f7f565b6000806040838503121561428657600080fd5b60006140a38585613f74565b6000806000606084860312156142a757600080fd5b60006140588686613f95565b6000602082840312156142c557600080fd5b600061384f8484613f95565b6000602082840312156142e357600080fd5b600061384f8484613fa0565b60006142fb8383614e8f565b505060600190565b61430c81615508565b82525050565b61430c816154b7565b6000614326826154aa565b61433081856154ae565b935061433b836154a4565b8060005b8381101561436957815161435388826142ef565b975061435e836154a4565b92505060010161433f565b509495945050505050565b61430c816154c2565b61430c816154c7565b61430c614392826154c7565b6154c7565b60006143a2826154aa565b6143ac818561105f565b93506143bc818560208601615529565b9290920192915050565b61430c816154ca565b61430c81615513565b60006143e3826154aa565b6143ed81856154ae565b93506143fd818560208601615529565b61440681615555565b9093019392505050565b600061441d6018836154ae565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000815260200192915050565b60006144566012836154ae565b71696e636f6e73697374656e7420737461746560701b815260200192915050565b60006144846013836154ae565b727661756c743a20706f6f6c206578697374733f60681b815260200192915050565b60006144b3601f836154ae565b7f53746f726520636f6e7472616374206164647265737320697320656d70747900815260200192915050565b60006144ec601f836154ae565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800815260200192915050565b6000614525600f836154ae565b6e15985d5b1d081a5cc81c185d5cd959608a1b815260200192915050565b60006145506013836154ae565b7215985d5b1d081a5cc81b9bdd081c185d5cd959606a1b815260200192915050565b600061457f600c836154ae565b6b155b985d5d1a1bdc9a5e995960a21b815260200192915050565b60006145a76030836154ae565b7f5856535661756c743a3a6765745374616b65416d6f756e743a2078767320616481526f191c995cdcc81a5cc81b9bdd081cd95d60821b602082015260400192915050565b60006145f9602a836154ae565b7f5361666542455032303a204245503230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015260400192915050565b6000614645602a836154ae565b7f5856535661756c743a3a64656c656761746542795369673a207369676e6174758152691c9948195e1c1a5c995960b21b602082015260400192915050565b60006146916022836154ae565b7f7072696d6520746f6b656e2063616e6e6f74206265207a65726f206164647265815261737360f01b602082015260400192915050565b60006146d56026836154ae565b7f5856535661756c743a3a64656c656761746542795369673a20696e76616c6964815265206e6f6e636560d01b602082015260400192915050565b600061471d60028361105f565b61190160f01b815260020192915050565b600061473b6027836154ae565b7f53616665436173743a2076616c756520646f65736e27742066697420696e20318152663238206269747360c81b602082015260400192915050565b60006147846020836154ae565b7f496e76616c69642074696d6520626173656420636f6e66696775726174696f6e815260200192915050565b60006147bd6017836154ae565b7f5661756c7420697320616c726561647920706175736564000000000000000000815260200192915050565b60006147f66025836154ae565b7f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b602082015260400192915050565b600061483d6022836154ae565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c815261756560f01b602082015260400192915050565b6000614881601a836154ae565b7f546f6b656e2065786973747320696e206f7468657220706f6f6c000000000000815260200192915050565b60006148ba6013836154ae565b72185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b815260200192915050565b60006148e9602b836154ae565b7f5856535661756c743a3a6765745072696f72566f7465733a206e6f742079657481526a0819195d195c9b5a5b995960aa1b602082015260400192915050565b6000614936601d836154ae565b7f7265776172642063616e6e6f74206265207a65726f2061646472657373000000815260200192915050565b600061496f6018836154ae565b7f7a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000815260200192915050565b60006149a8601a836154ae565b7f657865637574652070656e64696e67207769746864726177616c000000000000815260200192915050565b60006149e16022836154ae565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c815261756560f01b602082015260400192915050565b6000614a2560438361105f565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000614a90601f836154ae565b7f72657175657374656420616d6f756e742063616e6e6f74206265207a65726f00815260200192915050565b6000614ac96021836154ae565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000614b0c6012836154ae565b71141bdbdb08185b1c9958591e48185919195960721b815260200192915050565b6000614b3a6017836154ae565b7f496e76616c696420626c6f636b73207065722079656172000000000000000000815260200192915050565b6000614b73600a836154ae565b691c994b595b9d195c995960b21b815260200192915050565b6000614b996014836154ae565b7324b73b30b634b2103932bbb0b932103a37b5b2b760611b815260200192915050565b6000614bc9600e836154ae565b6d37b7363c9030b236b4b71031b0b760911b815260200192915050565b6000614bf36015836154ae565b7418da185b99d9481b9bdd08185d5d1a1bdc9a5e9959605a1b815260200192915050565b6000614c246013836154ae565b726e6f7468696e6720746f20776974686472617760681b815260200192915050565b6000614c53601a836154ae565b7f496e76616c6964206e6577206c6f636b696e6720706572696f64000000000000815260200192915050565b6000614c8c601d836154ae565b7f416c6c6f6320706f696e7473206d757374206e6f74206265207a65726f000000815260200192915050565b6000614cc5601f836154ae565b7f416c726561647920696e697469616c697a65642054696d654d616e6167657200815260200192915050565b6000614cfe6020836154ae565b7f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000614d37603a8361105f565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b6000614d96601f836154ae565b7f5361666542455032303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b6000614dcf601b836154ae565b7f72657175657374656420616d6f756e7420697320696e76616c69640000000000815260200192915050565b6000614e086022836154ae565b7f6f6e6c792070726f78792061646d696e2063616e206368616e676520627261698152616e7360f01b602082015260400192915050565b6000614e4c602e836154ae565b7f416c6c6f6320706f696e7473207065722072657761726420746f6b656e206d7581526d7374206e6f74206265207a65726f60901b602082015260400192915050565b80516060830190614ea0848261437d565b506020820151614eb36020850182614ec2565b506040820151612f2a60408501825b61430c816154d5565b61430c816154ed565b61430c816154f6565b61430c8161551e565b61430c816154fc565b60006107f98284614397565b6000614f0682614710565b9150614f128285614386565b602082019150614f228284614386565b5060200192915050565b60006114d982614a18565b60006114d982614d2a565b602081016114d98284614312565b602081016114d98284614303565b60408101614f6c8285614303565b818103602083015261384f81846143d8565b60408101614f8c8285614312565b6107f96020830184614312565b60608101614fa78286614312565b614fb46020830185614303565b61384f604083018461437d565b60808101614fcf8287614312565b614fdc6020830186614312565b614fe96040830185614312565b614ff66060830184614312565b95945050505050565b6060810161500d8286614312565b614fb46020830185614312565b608081016150288287614312565b6150356020830186614312565b615042604083018561437d565b614ff6606083018461437d565b6040810161505d8285614312565b6107f96020830184614374565b604081016150788285614312565b6107f9602083018461437d565b602080825281016107f9818461431b565b602081016114d98284614374565b602081016114d9828461437d565b60808101615028828761437d565b608081016150ce828761437d565b6150db602083018661437d565b614fe9604083018561437d565b608081016150f6828761437d565b6150356020830186614ed4565b602081016114d982846143c6565b60a0810161511f82886143c6565b61512c602083018761437d565b615139604083018661437d565b615146606083018561437d565b615153608083018461437d565b9695505050505050565b602080825281016107f981846143d8565b602080825281016114d981614410565b602080825281016114d981614449565b602080825281016114d981614477565b602080825281016114d9816144a6565b602080825281016114d9816144df565b602080825281016114d981614518565b602080825281016114d981614543565b602080825281016114d981614572565b602080825281016114d98161459a565b602080825281016114d9816145ec565b602080825281016114d981614638565b602080825281016114d981614684565b602080825281016114d9816146c8565b602080825281016114d98161472e565b602080825281016114d981614777565b602080825281016114d9816147b0565b602080825281016114d9816147e9565b602080825281016114d981614830565b602080825281016114d981614874565b602080825281016114d9816148ad565b602080825281016114d9816148dc565b602080825281016114d981614929565b602080825281016114d981614962565b602080825281016114d98161499b565b602080825281016114d9816149d4565b602080825281016114d981614a83565b602080825281016114d981614abc565b602080825281016114d981614aff565b602080825281016114d981614b2d565b602080825281016114d981614b66565b602080825281016114d981614b8c565b602080825281016114d981614bbc565b602080825281016114d981614be6565b602080825281016114d981614c17565b602080825281016114d981614c46565b602080825281016114d981614c7f565b602080825281016114d981614cb8565b602080825281016114d981614cf1565b602080825281016114d981614d89565b602080825281016114d981614dc2565b602080825281016114d981614dfb565b602080825281016114d981614e3f565b6040810161541c828561437d565b6107f960208301846143cf565b60408101615078828561437d565b60608101615445828661437d565b614fb4602083018561437d565b602081016114d98284614ecb565b6040810161546e8285614ecb565b6107f96020830184614ee6565b602081016114d98284614ee6565b604081016154978285614edd565b6107f96020830184614edd565b60200190565b5190565b90815260200190565b60006114d9826154e1565b151590565b90565b60006114d9826154b7565b6001600160801b031690565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b60006114d9826154ca565b60006114d9826154c7565b60006114d9826154fc565b60005b8381101561554457818101518382015260200161552c565b83811115612f2a5750506000910152565b601f01601f191690565b615568816154b7565b8114610edc57600080fd5b615568816154c2565b615568816154c7565b615568816154ca565b615568816154ed565b615568816154f656fe5856535661756c743a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77735856535661756c743a3a726571756573745769746864726177616c3a20766f746573206f766572666c6f775856535661756c743a3a6765745374616b65416d6f756e743a20766f746573206f766572666c6f775856535661756c743a3a6465706f7369743a20766f746573206f766572666c6f775856535661756c743a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206f72207365636f6e64206578636565647320333220626974737365745769746864726177616c4c6f636b696e67506572696f6428616464726573732c75696e743235362c75696e74323536295856535661756c743a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773736574526577617264416d6f756e74506572426c6f636b4f725365636f6e6428616464726573732c75696e743235362961646428616464726573732c75696e743235362c616464726573732c75696e743235362c75696e7432353629a365627a7a72315820bbd166dc1eacd929c711d8284f44008dbea87ef1942c956368698b17c982038b6c6578706572696d656e74616cf564736f6c63430005100040";
1685
+ const _bytecode = "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556157ca80620000336000396000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c806392e35000116101d3578063c7ad089511610104578063e7a324dc116100a2578063f55401621161007c578063f554016214610732578063f851a4401461073a578063fba1b1f914610742578063fe5a451a1461075557610378565b8063e7a324dc14610701578063e8f2be6f14610709578063f1127ed81461071157610378565b8063dae66bbe116100de578063dae66bbe146106d6578063de0368b2146106e9578063e1d146fb146106f1578063e6a69ab8146106f957610378565b8063c7ad0895146106a8578063cd9b94e7146106b0578063d7ae45e2146106c357610378565b8063add8933711610171578063b6a5fd2f1161014b578063b6a5fd2f1461064f578063c210259614610662578063c3c754a814610682578063c3cda5201461069557610378565b8063add893371461061f578063b4a0bdf314610627578063b4b5ea571461063c57610378565b80639e2b6c4d116101ad5780639e2b6c4d146105d3578063a09eab7a146105e6578063a6997762146105f9578063a9d69a691461060c57610378565b806392e350001461057a57806398e1b31b1461059e578063996cba68146105c057610378565b80635c19a95c116102ad57806373d025d61161024b5780637ecebe00116102255780637ecebe00146105395780638308d7e91461054c5780638456cb591461055f5780638ed7333d1461056757610378565b806373d025d6146104f1578063782d6fe1146105065780637ac924561461052657610378565b80635ff56315116102875780635ff56315146104a35780636857249c146104b65780636dd77cbd146104be5780636fcfff45146104d157610378565b80635c19a95c146104755780635c60da1b146104885780635f14e7001461049057610378565b806324f52bbf1161031a578063358ae036116102f4578063358ae036146104345780633d4180f91461043c5780634298bdbd1461044f578063587cde1e1461046257610378565b806324f52bbf1461040457806326782247146104195780632eda5c6c1461042157610378565b8063115b512f11610356578063115b512f146103c357806319129e5a146103d65780631d504dc6146103e957806320606b70146103fc57610378565b8063046f7da21461037d5780630af13728146103875780630efe6a8b146103b0575b600080fd5b61038561075d565b005b61039a6103953660046140ff565b6107e8565b6040516103a791906150ef565b60405180910390f35b6103856103be3660046141b7565b61082e565b6103856103d13660046141b7565b610b23565b6103856103e436600461400c565b610ed7565b6103856103f73660046142fe565b610f0d565b61039a61103e565b61040c611055565b6040516103a79190614f8d565b61040c611064565b61039a61042f36600461400c565b611073565b61040c611092565b61039a61044a366004614048565b6110a1565b61039a61045d36600461400c565b6110be565b61040c61047036600461400c565b6110d0565b61038561048336600461400c565b6110eb565b61040c611118565b61039a61049e3660046140cf565b611127565b6103856104b1366004614048565b611144565b61039a611238565b61039a6104cc3660046140ff565b61123e565b6104e46104df36600461400c565b6112f3565b6040516103a7919061549d565b6104f961130b565b6040516103a791906150e1565b6105196105143660046140cf565b611314565b6040516103a791906154c6565b6103856105343660046140cf565b61152a565b61039a61054736600461400c565b611873565b61038561055a3660046141b7565b611885565b610385611a2b565b6103856105753660046140cf565b611ab0565b61058d6105883660046140cf565b611aeb565b6040516103a795949392919061515c565b6105b16105ac3660046140ff565b611b40565b6040516103a793929190615482565b6103856105ce366004614082565b611b92565b6103856105e13660046141b7565b611d24565b61039a6105f43660046140ff565b611e0f565b6103856106073660046142be565b61205f565b61039a61061a3660046140ff565b612093565b61040c6120d5565b61062f6120e4565b6040516103a7919061514e565b61051961064a36600461400c565b6120f3565b61038561065d3660046140cf565b612163565b6106756106703660046140ff565b612289565b6040516103a791906150d0565b6104f961069036600461400c565b612343565b6103856106a33660046141e9565b612358565b6104f96124fc565b61039a6106be36600461400c565b612505565b61039a6106d136600461400c565b612517565b6103856106e43660046142dd565b612532565b61040c61263e565b61039a61264d565b61039a61267d565b61039a612685565b61039a612691565b61072461071f366004614270565b612697565b6040516103a79291906154ab565b61039a6126cc565b61040c6126d4565b610385610750366004614142565b6126e3565b61062f6129c8565b61078660405180604001604052806008815260200167726573756d65282960c01b8152506129d7565b60135460ff166107b15760405162461bcd60e51b81526004016107a890615219565b60405180910390fd5b6013805460ff1916905560405133907fd2619572a1464e0df0bb351d834fd47f3350984d7bfdb1ab69cfcb0b8e42141590600090a2565b60006107f48484612a79565b506001600160a01b0380841660009081526007602090815260408083208684528252808320938516835292905220600201545b9392505050565b600354600160a01b900460ff166108575760405162461bcd60e51b81526004016107a890615389565b6003805460ff60a01b1916905560135460ff16156108875760405162461bcd60e51b81526004016107a890615209565b6108918383612a79565b6001600160a01b03831660009081526008602052604081208054849081106108b557fe5b600091825260208083206001600160a01b038816845260078252604080852088865283528085203386529092529220600590910290910191506108f88585612ab0565b610903858533612093565b156109205760405162461bcd60e51b81526004016107a890615329565b8054156109955760006109338284612c8d565b9050801561099357610946863383612ca1565b84866001600160a01b0316336001600160a01b03167f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946458460405161098a91906150ef565b60405180910390a45b505b81546109b2906001600160a01b031633308663ffffffff612f1a16565b80546109c4908463ffffffff612f7b16565b81556109d08183612fbd565b600182015560055482546001600160a01b0390811691161415610a3757336000908152600f60209081526040808320548151606081019092526021808352610a3794936001600160a01b0390921692610a329289929061566a90830139612feb565b61301a565b6017546001600160a01b038681169116148015610a55575060185484145b15610abd576016546040516337f23cd360e01b81526001600160a01b03909116906337f23cd390610a8a903390600401614f9b565b600060405180830381600087803b158015610aa457600080fd5b505af1158015610ab8573d6000803e3d6000fd5b505050505b83856001600160a01b0316336001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d786604051610b0191906150ef565b60405180910390a450506003805460ff60a01b1916600160a01b179055505050565b600354600160a01b900460ff16610b4c5760405162461bcd60e51b81526004016107a890615389565b6003805460ff60a01b1916905560135460ff1615610b7c5760405162461bcd60e51b81526004016107a890615209565b610b868383612a79565b60008111610ba65760405162461bcd60e51b81526004016107a890615349565b6001600160a01b0383166000908152600760209081526040808320858452825280832033845290915290206002810154610be6908363ffffffff612f7b16565b81541015610c065760405162461bcd60e51b81526004016107a890615429565b6001600160a01b0384166000908152600860205260408120805485908110610c2a57fe5b600091825260208083206001600160a01b0389168452600a825260408085208986528352808520338652909252908320600590920201925090610c6c826131ac565b5090508015610c8d5760405162461bcd60e51b81526004016107a890615329565b610c978787612ab0565b6000610ca38585612c8d565b9050610cb0883383612ca1565b6004840154600090610cc8904263ffffffff612f7b16565b9050610cd686858984613250565b6001600160a01b03891660009081526012602090815260408083208b8452909152902054610d0a908863ffffffff612f7b16565b6001600160a01b038a1660009081526012602090815260408083208c8452909152902055610d388686612fbd565b600187015560055485546001600160a01b0390811691161415610d9b57336000908152600f6020908152604080832054815160608101909252602b808352610d9b946001600160a01b03909216939192610a32928d929061561790830139612feb565b6017546001600160a01b038a81169116148015610db9575060185488145b15610e21576016546040516337f23cd360e01b81526001600160a01b03909116906337f23cd390610dee903390600401614f9b565b600060405180830381600087803b158015610e0857600080fd5b505af1158015610e1c573d6000803e3d6000fd5b505050505b87896001600160a01b0316336001600160a01b03167f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e9464585604051610e6591906150ef565b60405180910390a487896001600160a01b0316336001600160a01b03167f88a254a0ef28a0b9e957ff600beae69870f6f924065147f3627c3f814e60ec118a604051610eb191906150ef565b60405180910390a450506003805460ff60a01b1916600160a01b17905550505050505050565b6000546001600160a01b03163314610f015760405162461bcd60e51b81526004016107a8906153a9565b610f0a81613434565b50565b806001600160a01b031663f851a4406040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4657600080fd5b505afa158015610f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f7e919081019061402a565b6001600160a01b0316336001600160a01b031614610fae5760405162461bcd60e51b81526004016107a890615439565b806001600160a01b031663c1e803346040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fe957600080fd5b505af1158015610ffd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611021919081019061431c565b15610f0a5760405162461bcd60e51b81526004016107a8906153b9565b60405161104a90614f77565b604051809103902081565b6004546001600160a01b031681565b6001546001600160a01b031681565b6001600160a01b0381166000908152600660205260409020545b919050565b6005546001600160a01b031681565b601560209081526000928352604080842090915290825290205481565b60096020526000908152604090205481565b600f602052600090815260409020546001600160a01b031681565b60135460ff161561110e5760405162461bcd60e51b81526004016107a890615209565b610f0a33826134b9565b6002546001600160a01b031681565b601260209081526000928352604080842090915290825290205481565b6000546001600160a01b0316331461116e5760405162461bcd60e51b81526004016107a8906153a9565b61117782613548565b61118081613548565b6005546004546001600160a01b03918216911681156111b15760405162461bcd60e51b81526004016107a8906152e9565b600580546001600160a01b038087166001600160a01b03199283161790925560048054928616929091169190911790556003805460ff60a01b1916600160a01b1790556040517f559f314bb90394a4a9ceb724f365b36a53587d894352c43d12901fd6801014569061122a90849084908890889061500c565b60405180910390a150505050565b60795481565b600061124a8484612a79565b6001600160a01b038085166000908152600a60209081526040808320878452825280832093861683529290522080545b6000811180156112aa57506112aa82600183038154811061129757fe5b906000526020600020906002020161356e565b156112ea576112df8260018303815481106112c157fe5b6000918252602090912060029091020154849063ffffffff612f7b16565b92506000190161127a565b50509392505050565b60116020526000908152604090205463ffffffff1681565b60135460ff1681565b600061131e61264d565b821061133c5760405162461bcd60e51b81526004016107a8906152f9565b6001600160a01b03831660009081526011602052604090205463ffffffff168061136a576000915050611524565b6001600160a01b038416600090815260106020908152604080832063ffffffff6000198601811685529252909120541683106113e6576001600160a01b03841660009081526010602090815260408083206000199490940163ffffffff1683529290522054600160201b90046001600160601b03169050611524565b6001600160a01b038416600090815260106020908152604080832083805290915290205463ffffffff16831015611421576000915050611524565b600060001982015b8163ffffffff168163ffffffff1611156114e457600282820363ffffffff16048103611453613f90565b506001600160a01b038716600090815260106020908152604080832063ffffffff858116855290835292819020815180830190925254928316808252600160201b9093046001600160601b031691810191909152908714156114bf576020015194506115249350505050565b805163ffffffff168711156114d6578193506114dd565b6001820392505b5050611429565b506001600160a01b038516600090815260106020908152604080832063ffffffff909416835292905220546001600160601b03600160201b909104169150505b92915050565b600354600160a01b900460ff166115535760405162461bcd60e51b81526004016107a890615389565b6003805460ff60a01b1916905560135460ff16156115835760405162461bcd60e51b81526004016107a890615209565b61158d8282612a79565b6001600160a01b03821660009081526008602052604081208054839081106115b157fe5b600091825260208083206001600160a01b038716808552600783526040808620888752845280862033808852908552818720928752600a85528187208988528552818720908752909352918420600590930201935091806116128484613583565b9092509050811515806116255750600081115b6116415760405162461bcd60e51b81526004016107a8906153c9565b81158061164c575080155b6116685760405162461bcd60e51b81526004016107a8906151c9565b8115611781576116788787612ab0565b60006116be85600101546116b264e8d4a510006116a68a600301548a6000015461367a90919063ffffffff16565b9063ffffffff6136b416565b9063ffffffff6136f616565b6004805460405163135b33cd60e31b81529293506001600160a01b031691639ad99e68916116f2918c913391879101614fe4565b600060405180830381600087803b15801561170c57600080fd5b505af1158015611720573d6000803e3d6000fd5b50508654611737925090508463ffffffff6136f616565b808655600387015461175a9164e8d4a51000916116a6919063ffffffff61367a16565b6001860155855461177b906001600160a01b0316338563ffffffff61373816565b50611805565b8354611793908263ffffffff6136f616565b84556001600160a01b03871660009081526012602090815260408083208984529091529020546117c9908263ffffffff6136f616565b6001600160a01b0380891660009081526012602090815260408083208b845290915290209190915585546118059116338363ffffffff61373816565b856001600160a01b038816337fe31da05fae6db869f5ea51f4b638aa6884070b6c87f18f63bd2291a12cb2f518611842868663ffffffff612f7b16565b60405161184f91906150ef565b60405180910390a450506003805460ff60a01b1916600160a01b1790555050505050565b600e6020526000908152604090205481565b6118c36040518060400160405280601c81526020017f73657428616464726573732c75696e743235362c75696e7432353629000000008152506129d7565b6118cd8383612a79565b6118d68361375a565b6001600160a01b0383166000908152600860205260408120805490919061194f9084906119439085908890811061190957fe5b60009182526020808320600160059093020191909101546001600160a01b038b16835260099091526040909120549063ffffffff6136f616565b9063ffffffff612f7b16565b9050600081116119715760405162461bcd60e51b81526004016107a890615449565b600082858154811061197f57fe5b9060005260206000209060050201600101549050838386815481106119a057fe5b9060005260206000209060050201600101819055508160096000886001600160a01b03166001600160a01b031681526020019081526020016000208190555084866001600160a01b03167f6ee09c6cb801194690c195c69f465aaf7c80255cbeafaab9600f47ed79de2ca98387604051611a1b929190615474565b60405180910390a3505050505050565b611a53604051806040016040528060078152602001667061757365282960c81b8152506129d7565b60135460ff1615611a765760405162461bcd60e51b81526004016107a8906152a9565b6013805460ff1916600117905560405133907fdffada2889ebfab9224c24069d833f3de835d8cf99872d49e7b7ba5fccb7a46f90600090a2565b60135460ff1615611ad35760405162461bcd60e51b81526004016107a890615209565b611add8282612a79565b611ae78282612ab0565b5050565b60086020528160005260406000208181548110611b0457fe5b6000918252602090912060059091020180546001820154600283015460038401546004909401546001600160a01b039093169550909350919085565b6000806000611b4f8686612a79565b5050506001600160a01b03928316600090815260076020908152604080832094835293815283822092909416815292529020805460018201546002909201549092565b600354600160a01b900460ff16611bbb5760405162461bcd60e51b81526004016107a890615389565b6003805460ff60a01b1916905560135460ff1615611beb5760405162461bcd60e51b81526004016107a890615209565b611bf58282612a79565b6001600160a01b0382166000908152600860205260408120805483908110611c1957fe5b600091825260208083206001600160a01b0380881685526007835260408086208887528452808620918a1686529252922060059091029091019150611c5e8484612ab0565b611c69848487612093565b15611c865760405162461bcd60e51b81526004016107a890615329565b805415611d0a576000611c998284612c8d565b90508015611d0857611cab8284612fbd565b6001830155611cbb858783612ca1565b83856001600160a01b0316876001600160a01b03167f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e9464584604051611cff91906150ef565b60405180910390a45b505b50506003805460ff60a01b1916600160a01b179055505050565b611d456040518060600160405280603381526020016156cd603391396129d7565b611d4f8383612a79565b600081118015611d6257506312cc030081105b611d7e5760405162461bcd60e51b81526004016107a8906153d9565b6001600160a01b0383166000908152600860205260408120805484908110611da257fe5b9060005260206000209060050201905060008160040154905082826004018190555083856001600160a01b03167f0bcf80c5060ccf99b7a993c57a94b232fc2c5c04bd74c7c7d174595fee6bc31f8386604051611e00929190615474565b60405180910390a35050505050565b6000611e1b8484612a79565b6001600160a01b0384166000908152600860205260408120805485908110611e3f57fe5b600091825260208083206001600160a01b03808a168086526007845260408087208b885285528087208a8416885285528087206003600590970290940195860154918752601285528087208b885290945283862054855494516370a0823160e01b8152959750929590949093611f16939216906370a0823190611ec6903090600401614f8d565b60206040518083038186803b158015611ede57600080fd5b505afa158015611ef2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116b2919081019061431c565b90506000611f2261264d565b6001600160a01b038a1660009081526006602052604090205460028701549192509082118015611f5157508215155b15611fe7576000611f6f8760020154846136f690919063ffffffff16565b6001600160a01b038c1660009081526009602052604081205460018a01549293509091611fb791906116a690611fab868863ffffffff61367a16565b9063ffffffff61367a16565b9050611fe2611fd5866116a68464e8d4a5100063ffffffff61367a16565b879063ffffffff612f7b16565b955050505b6001600160a01b03808b166000908152600a602090815260408083208d84528252808320938c16835292905290812090612020826131ac565b91505061204f87600101546116b264e8d4a510006116a68a611fab878e600001546136f690919063ffffffff16565b9c9b505050505050505050505050565b6000546001600160a01b031633146120895760405162461bcd60e51b81526004016107a8906153a9565b611ae7828261378f565b6001600160a01b038084166000908152600a60209081526040808320868452825280832093851683529290529081206120cb816131ac565b5095945050505050565b6017546001600160a01b031681565b6047546001600160a01b031690565b6001600160a01b03811660009081526011602052604081205463ffffffff168061211e576000610827565b6001600160a01b0383166000908152601060209081526040808320600019850163ffffffff168452909152902054600160201b90046001600160601b03169392505050565b61218460405180606001604052806030815260200161572c603091396129d7565b60048054604051633d6ac5b360e21b81526001600160a01b039091169163f5ab16cc916121b391869101614f8d565b60206040518083038186803b1580156121cb57600080fd5b505afa1580156121df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061220391908101906142a0565b61221f5760405162461bcd60e51b81526004016107a890615399565b6122288261375a565b6001600160a01b0382166000818152600660205260409081902080549084905590519091907fad96cee0d692f0250b98e085504f399da6733854908215f6203fe3c69366d9f59061227c9084908690615474565b60405180910390a2505050565b60606122958484612a79565b6001600160a01b038085166000908152600a602090815260408083208784528252808320938616835292815282822080548451818402810184019095528085529092909184015b828210156123365760008481526020908190206040805160608101825260028602909201805483526001908101546001600160801b0380821685870152600160801b909104169183019190915290835290920191016122dc565b5050505090509392505050565b60146020526000908152604090205460ff1681565b60135460ff161561237b5760405162461bcd60e51b81526004016107a890615209565b600060405161238990614f77565b604080519182900382208282019091526008825267161594d5985d5b1d60c21b6020909201919091527fddfcc46608a8bd52ebf900f03a24cc97b73a6046cec8c5d0f74a211e376e967a6123db613874565b306040516020016123ef949392919061510b565b604051602081830303815290604052805190602001209050600060405161241590614f82565b604051908190038120612430918a908a908a906020016150fd565b6040516020818303038152906040528051906020012090506000828260405160200161245d929190614f46565b604051602081830303815290604052805190602001209050600061248382888888613878565b6001600160a01b0381166000908152600e6020526040902080546001810190915590915089146124c55760405162461bcd60e51b81526004016107a890615279565b874211156124e55760405162461bcd60e51b81526004016107a890615259565b6124ef818b6134b9565b505050505b505050505050565b607a5460ff1681565b60066020526000908152604090205481565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b0316331461255c5760405162461bcd60e51b81526004016107a8906153a9565b6001600160a01b0383166125825760405162461bcd60e51b81526004016107a890615269565b6001600160a01b0382166125a85760405162461bcd60e51b81526004016107a890615309565b6125b28282612a79565b6016546017546018546040516001600160a01b03808816948116937f8def9436d6e31b89ed00948ba91d0cb6936eada5154cb1b45b55683fb9e492379361260193919092169188918890615065565b60405180910390a3601680546001600160a01b039485166001600160a01b0319918216179091556017805493909416921691909117909155601855565b6003546001600160a01b031681565b6000612678607a60029054906101000a90048015613fa7021767ffffffffffffffff1663ffffffff16565b905090565b6301e1338081565b60405161104a90614f82565b60185481565b601060209081526000928352604080842090915290825290205463ffffffff811690600160201b90046001600160601b031682565b6312cc030081565b6000546001600160a01b031681565b6127046040518060600160405280602c815260200161575c602c91396129d7565b61270d85613548565b61271683613548565b6004546001600160a01b031661273e5760405162461bcd60e51b81526004016107a8906151e9565b6000841161275e5760405162461bcd60e51b81526004016107a8906153e9565b6127678561375a565b6001600160a01b0385166000908152600860205260408120805490915b818110156127e257856001600160a01b03168382815481106127a257fe5b60009182526020909120600590910201546001600160a01b031614156127da5760405162461bcd60e51b81526004016107a890615369565b600101612784565b506001600160a01b03851660009081526014602052604090205460ff161561281c5760405162461bcd60e51b81526004016107a8906152d9565b6001600160a01b038716600090815260096020526040902054612845908763ffffffff612f7b16565b6001600160a01b038089166000908152600960209081526040808320949094556006815290839020879055825160a081018452918816825281018890528391810161288e61264d565b8152600060208083018290526040928301889052845460018082018755958352818320855160059092020180546001600160a01b0319166001600160a01b039283161781558583015181880155858501516002820155606086015160038201556080909501516004958601558a81168352601490915290829020805460ff1916851790558254915163fb66fb4d60e01b815291169263fb66fb4d92612936928c92910161509a565b600060405180830381600087803b15801561295057600080fd5b505af1158015612964573d6000803e3d6000fd5b50505050846001600160a01b03166001838054905003886001600160a01b03167fd7fa4bff1cd2253c0789c3291a786a6f6b1a3b4569a75af683a15d52abb6a0bf8988886040516129b793929190615482565b60405180910390a450505050505050565b6016546001600160a01b031681565b6047546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab90612a0a9033908690600401614fa9565b60206040518083038186803b158015612a2257600080fd5b505afa158015612a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a5a91908101906142a0565b905080611ae75760405162461bcd60e51b81526004016107a890615229565b6001600160a01b0382166000908152600860205260409020548110611ae75760405162461bcd60e51b81526004016107a8906151d9565b6001600160a01b0382166000908152600860205260408120805483908110612ad457fe5b906000526020600020906005020190508060020154612af161264d565b11612afc5750611ae7565b80546040516370a0823160e01b81526000916001600160a01b0316906370a0823190612b2c903090600401614f8d565b60206040518083038186803b158015612b4457600080fd5b505afa158015612b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b7c919081019061431c565b6001600160a01b0385166000908152601260209081526040808320878452909152902054909150612bb490829063ffffffff6136f616565b905080612bd257612bc361264d565b82600201819055505050611ae7565b6000612bdc61264d565b90506000612bf78460020154836136f690919063ffffffff16565b6001600160a01b03871660009081526009602090815260408083205460018901546006909352908320549394509192612c4092916116a691611fab90879063ffffffff61367a16565b9050612c6f612c5e856116a68464e8d4a5100063ffffffff61367a16565b60038701549063ffffffff612f7b16565b6003860155612c7c61264d565b856002018190555050505050505050565b600061082783600101546116b28585612fbd565b600480546040516370a0823160e01b81526001600160a01b03918216926000928716916370a0823191612cd691869101614f8d565b60206040518083038186803b158015612cee57600080fd5b505afa158015612d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d26919081019061431c565b6001600160a01b038087166000908152601560209081526040808320938916835292905290812054919250612d61858363ffffffff612f7b16565b9050828111612e3f578115612dd4576001600160a01b038088166000818152601560209081526040808320948b1680845294909152808220829055517f6bdfd5e51d01475945224d3d37965916fd8df699ef9e8888af4359aa8622216091612dcb91879190615459565b60405180910390a35b60405163135b33cd60e31b81526001600160a01b03851690639ad99e6890612e04908a908a90869060040161504a565b600060405180830381600087803b158015612e1e57600080fd5b505af1158015612e32573d6000803e3d6000fd5b5050505050505050612f15565b6001600160a01b038088166000818152601560209081526040808320948b168084529490915290819020868503908190559051909291907f6bdfd5e51d01475945224d3d37965916fd8df699ef9e8888af4359aa8622216090612ea59087908690615474565b60405180910390a360405163135b33cd60e31b81526001600160a01b03861690639ad99e6890612edd908b908b90899060040161504a565b600060405180830381600087803b158015612ef757600080fd5b505af1158015612f0b573d6000803e3d6000fd5b5050505050505050505b505050565b604051612f759085906323b872dd60e01b90612f3e9087908790879060240161504a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526138a2565b50505050565b600061082783836040518060400160405280601b81526020017f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815250613987565b600061082764e8d4a510006116a68460030154611fab876002015488600001546136f690919063ffffffff16565b600081600160601b84106130125760405162461bcd60e51b81526004016107a891906151a8565b509192915050565b816001600160a01b0316836001600160a01b03161415801561304557506000816001600160601b0316115b15612f15576001600160a01b038316156130fd576001600160a01b03831660009081526011602052604081205463ffffffff1690816130855760006130c4565b6001600160a01b0385166000908152601060209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b905060006130eb82856040518060600160405280602c8152602001615700602c91396139b7565b90506130f9868484846139f6565b5050505b6001600160a01b03821615612f15576001600160a01b03821660009081526011602052604081205463ffffffff169081613138576000613177565b6001600160a01b0384166000908152601060209081526040808320600019860163ffffffff168452909152902054600160201b90046001600160601b03165b9050600061319e82856040518060600160405280602b81526020016155ec602b9139613bb2565b90506124f4858484846139f6565b805460009081905b801561324a578360018203815481106131c957fe5b6000918252602090912060016002909202018101546001600160801b03600160801b90910416141561322c5761322584600183038154811061320757fe5b6000918252602090912060029091020154839063ffffffff612f7b16565b9150613241565b61323e8460018303815481106112c157fe5b92505b600019016131b4565b50915091565b8254604080516060810182526000808252602080830182815260019484018581528587018a5589845291909220925160028602909301928355905191909201805492516001600160801b03908116600160801b029281166001600160801b0319909416939093179092161790555b6000811180156132f95750818460018303815481106132d957fe5b60009182526020909120600160029092020101546001600160801b031611155b156133805783600182038154811061330d57fe5b906000526020600020906002020184828154811061332757fe5b600091825260209091208254600290920201908155600191820180549290910180546001600160801b0319166001600160801b03938416178082559154600160801b9081900484160291909216179055600019016132be565b604051806060016040528084815260200161339a84613be5565b6001600160801b0316815260200160016001600160801b03168152508482815481106133c257fe5b60009182526020918290208351600292830290910190815591830151600190920180546040909401516001600160801b03199094166001600160801b03938416178316600160801b93909416929092029290921790558501546134259084612f7b565b85600201819055505050505050565b6001600160a01b03811661345a5760405162461bcd60e51b81526004016107a8906152b9565b604780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906134ad9083908590614fc9565b60405180910390a15050565b6001600160a01b038083166000908152600f6020526040812054909116906134e084613c0e565b6001600160a01b038581166000818152600f602052604080822080546001600160a01b031916898616908117909155905194955093928616927f0cc323ffec3ea49cbcddc0de1480978126d350c6a45dff33ad2f1cda6ae992619190a4612f7582848361301a565b6001600160a01b038116610f0a5760405162461bcd60e51b81526004016107a890615319565b60010154426001600160801b03909116111590565b805460009081905b6000811180156135a857506135a884600183038154811061129757fe5b15613649578360018203815481106135bc57fe5b6000918252602090912060016002909202018101546001600160801b03600160801b909104161415613601576135fa84600183038154811061320757fe5b9150613616565b6136138460018303815481106112c157fe5b92505b8380548061362057fe5b60008281526020812060001992830160028102909101828155600101919091559091550161358b565b5061366e61365d828463ffffffff612f7b16565b60028601549063ffffffff6136f616565b60028501559250929050565b60008261368957506000611524565b8282028284828161369657fe5b04146108275760405162461bcd60e51b81526004016107a890615359565b600061082783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613d24565b600061082783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d5b565b604051612f1590849063a9059cbb60e01b90612f3e90869086906024016150b5565b6001600160a01b038116600090815260086020526040812054905b81811015612f15576137878382612ab0565b600101613775565b607a54610100900460ff16156137b75760405162461bcd60e51b81526004016107a8906153f9565b811580156137c3575080155b156137e05760405162461bcd60e51b81526004016107a890615379565b8180156137ec57508015155b156138095760405162461bcd60e51b81526004016107a890615299565b607a805460ff1916831515179055816138225780613828565b6301e133805b6079558161383857613d7f61383c565b613d835b607a805461ff001967ffffffffffffffff93909316620100000269ffffffffffffffff00001990911617919091166101001790555050565b4690565b600080600061388987878787613d87565b9150915061389681613e67565b5090505b949350505050565b6138b4826001600160a01b0316613f30565b6138d05760405162461bcd60e51b81526004016107a890615419565b60006060836001600160a01b0316836040516138ec9190614f3a565b6000604051808303816000865af19150503d8060008114613929576040519150601f19603f3d011682016040523d82523d6000602084013e61392e565b606091505b5091509150816139505760405162461bcd60e51b81526004016107a890615409565b805115612f75578080602001905161396b91908101906142a0565b612f755760405162461bcd60e51b81526004016107a890615249565b600083830182858210156139ae5760405162461bcd60e51b81526004016107a891906151a8565b50949350505050565b6000836001600160601b0316836001600160601b0316111582906139ee5760405162461bcd60e51b81526004016107a891906151a8565b505050900390565b6000613a21613a0361264d565b60405180608001604052806042815260200161568b60429139613f69565b905060008463ffffffff16118015613a6a57506001600160a01b038516600090815260106020908152604080832063ffffffff6000198901811685529252909120548282169116145b15613ac9576001600160a01b0385166000908152601060209081526040808320600019880163ffffffff168452909152902080546fffffffffffffffffffffffff000000001916600160201b6001600160601b03851602179055613b68565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000818152601083528781208c871682528352878120965187549451909516600160201b026fffffffffffffffffffffffff000000001995871663ffffffff19958616179590951694909417909555938252601190935292909220805460018801909316929091169190911790555b846001600160a01b03167f6adb589fed1e8542fb7a6b10f00a85e02265e77f9ae3ca8ff93b22983e1af9a08484604051613ba39291906154d4565b60405180910390a25050505050565b6000838301826001600160601b0380871690831610156139ae5760405162461bcd60e51b81526004016107a891906151a8565b6000600160801b8210613c0a5760405162461bcd60e51b81526004016107a890615289565b5090565b6005546000906001600160a01b0316613c395760405162461bcd60e51b81526004016107a890615239565b6005546001600160a01b03166000908152600860205260408120805490915b81811015613d195760055483546001600160a01b0390911690849083908110613c7d57fe5b60009182526020909120600590910201546001600160a01b03161415613d11576005546001600160a01b039081166000908152600760209081526040808320858452825280832093891683529290522060028101548154613d0691613ce8919063ffffffff6136f616565b60405180606001604052806028815260200161564260289139612feb565b94505050505061108d565b600101613c58565b506000949350505050565b60008183613d455760405162461bcd60e51b81526004016107a891906151a8565b506000838581613d5157fe5b0495945050505050565b600081848411156139ee5760405162461bcd60e51b81526004016107a891906151a8565b4390565b4290565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613dbe5750600090506003613e5e565b8460ff16601b14158015613dd657508460ff16601c14155b15613de75750600090506004613e5e565b600060018787878760405160008152602001604052604051613e0c9493929190615133565b6020604051602081039080840390855afa158015613e2e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613e5757506000915060019050613e5e565b9150600090505b94509492505050565b6000816004811115613e7557fe5b1415613e8057610f0a565b6001816004811115613e8e57fe5b1415613eac5760405162461bcd60e51b81526004016107a8906151b9565b6002816004811115613eba57fe5b1415613ed85760405162461bcd60e51b81526004016107a8906151f9565b6003816004811115613ee657fe5b1415613f045760405162461bcd60e51b81526004016107a8906152c9565b6004816004811115613f1257fe5b1415610f0a5760405162461bcd60e51b81526004016107a890615339565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061389a575050151592915050565b600081600160201b84106130125760405162461bcd60e51b81526004016107a891906151a8565b604080518082019091526000808252602082015290565bfe5b8035611524816155aa565b8051611524816155aa565b8035611524816155be565b8051611524816155be565b8035611524816155c7565b8035611524816155d0565b8051611524816155c7565b8035611524816155d9565b8035611524816155e2565b60006020828403121561401e57600080fd5b600061389a8484613fa9565b60006020828403121561403c57600080fd5b600061389a8484613fb4565b6000806040838503121561405b57600080fd5b60006140678585613fa9565b925050602061407885828601613fa9565b9150509250929050565b60008060006060848603121561409757600080fd5b60006140a38686613fa9565b93505060206140b486828701613fa9565b92505060406140c586828701613fd5565b9150509250925092565b600080604083850312156140e257600080fd5b60006140ee8585613fa9565b925050602061407885828601613fd5565b60008060006060848603121561411457600080fd5b60006141208686613fa9565b935050602061413186828701613fd5565b92505060406140c586828701613fa9565b600080600080600060a0868803121561415a57600080fd5b60006141668888613fa9565b955050602061417788828901613fd5565b945050604061418888828901613fe0565b935050606061419988828901613fd5565b92505060806141aa88828901613fd5565b9150509295509295909350565b6000806000606084860312156141cc57600080fd5b60006141d88686613fa9565b93505060206140b486828701613fd5565b60008060008060008060c0878903121561420257600080fd5b600061420e8989613fa9565b965050602061421f89828a01613fd5565b955050604061423089828a01613fd5565b945050606061424189828a01614001565b935050608061425289828a01613fd5565b92505060a061426389828a01613fd5565b9150509295509295509295565b6000806040838503121561428357600080fd5b600061428f8585613fa9565b925050602061407885828601613ff6565b6000602082840312156142b257600080fd5b600061389a8484613fca565b600080604083850312156142d157600080fd5b60006140ee8585613fbf565b6000806000606084860312156142f257600080fd5b60006140a38686613fe0565b60006020828403121561431057600080fd5b600061389a8484613fe0565b60006020828403121561432e57600080fd5b600061389a8484613feb565b60006143468383614eda565b505060600190565b61435781615553565b82525050565b61435781615502565b6000614371826154f5565b61437b81856154f9565b9350614386836154ef565b8060005b838110156143b457815161439e888261433a565b97506143a9836154ef565b92505060010161438a565b509495945050505050565b6143578161550d565b61435781615512565b6143576143dd82615512565b615512565b60006143ed826154f5565b6143f7818561108d565b9350614407818560208601615574565b9290920192915050565b61435781615515565b6143578161555e565b600061442e826154f5565b61443881856154f9565b9350614448818560208601615574565b614451816155a0565b9093019392505050565b60006144686018836154f9565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000815260200192915050565b60006144a16012836154f9565b71696e636f6e73697374656e7420737461746560701b815260200192915050565b60006144cf6013836154f9565b727661756c743a20706f6f6c206578697374733f60681b815260200192915050565b60006144fe601f836154f9565b7f53746f726520636f6e7472616374206164647265737320697320656d70747900815260200192915050565b6000614537601f836154f9565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800815260200192915050565b6000614570600f836154f9565b6e15985d5b1d081a5cc81c185d5cd959608a1b815260200192915050565b600061459b6013836154f9565b7215985d5b1d081a5cc81b9bdd081c185d5cd959606a1b815260200192915050565b60006145ca600c836154f9565b6b155b985d5d1a1bdc9a5e995960a21b815260200192915050565b60006145f26030836154f9565b7f5856535661756c743a3a6765745374616b65416d6f756e743a2078767320616481526f191c995cdcc81a5cc81b9bdd081cd95d60821b602082015260400192915050565b6000614644602a836154f9565b7f5361666542455032303a204245503230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015260400192915050565b6000614690602a836154f9565b7f5856535661756c743a3a64656c656761746542795369673a207369676e6174758152691c9948195e1c1a5c995960b21b602082015260400192915050565b60006146dc6022836154f9565b7f7072696d6520746f6b656e2063616e6e6f74206265207a65726f206164647265815261737360f01b602082015260400192915050565b60006147206026836154f9565b7f5856535661756c743a3a64656c656761746542795369673a20696e76616c6964815265206e6f6e636560d01b602082015260400192915050565b600061476860028361108d565b61190160f01b815260020192915050565b60006147866027836154f9565b7f53616665436173743a2076616c756520646f65736e27742066697420696e20318152663238206269747360c81b602082015260400192915050565b60006147cf6020836154f9565b7f496e76616c69642074696d6520626173656420636f6e66696775726174696f6e815260200192915050565b60006148086017836154f9565b7f5661756c7420697320616c726561647920706175736564000000000000000000815260200192915050565b60006148416025836154f9565b7f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b602082015260400192915050565b60006148886022836154f9565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c815261756560f01b602082015260400192915050565b60006148cc601a836154f9565b7f546f6b656e2065786973747320696e206f7468657220706f6f6c000000000000815260200192915050565b60006149056013836154f9565b72185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b815260200192915050565b6000614934602b836154f9565b7f5856535661756c743a3a6765745072696f72566f7465733a206e6f742079657481526a0819195d195c9b5a5b995960aa1b602082015260400192915050565b6000614981601d836154f9565b7f7265776172642063616e6e6f74206265207a65726f2061646472657373000000815260200192915050565b60006149ba6018836154f9565b7f7a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000815260200192915050565b60006149f3601a836154f9565b7f657865637574652070656e64696e67207769746864726177616c000000000000815260200192915050565b6000614a2c6022836154f9565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c815261756560f01b602082015260400192915050565b6000614a7060438361108d565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000614adb601f836154f9565b7f72657175657374656420616d6f756e742063616e6e6f74206265207a65726f00815260200192915050565b6000614b146021836154f9565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000614b576012836154f9565b71141bdbdb08185b1c9958591e48185919195960721b815260200192915050565b6000614b856017836154f9565b7f496e76616c696420626c6f636b73207065722079656172000000000000000000815260200192915050565b6000614bbe600a836154f9565b691c994b595b9d195c995960b21b815260200192915050565b6000614be46014836154f9565b7324b73b30b634b2103932bbb0b932103a37b5b2b760611b815260200192915050565b6000614c14600e836154f9565b6d37b7363c9030b236b4b71031b0b760911b815260200192915050565b6000614c3e6015836154f9565b7418da185b99d9481b9bdd08185d5d1a1bdc9a5e9959605a1b815260200192915050565b6000614c6f6013836154f9565b726e6f7468696e6720746f20776974686472617760681b815260200192915050565b6000614c9e601a836154f9565b7f496e76616c6964206e6577206c6f636b696e6720706572696f64000000000000815260200192915050565b6000614cd7601d836154f9565b7f416c6c6f6320706f696e7473206d757374206e6f74206265207a65726f000000815260200192915050565b6000614d10601f836154f9565b7f416c726561647920696e697469616c697a65642054696d654d616e6167657200815260200192915050565b6000614d496020836154f9565b7f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000614d82603a8361108d565b7f44656c65676174696f6e28616464726573732064656c6567617465652c75696e81527f74323536206e6f6e63652c75696e7432353620657870697279290000000000006020820152603a0192915050565b6000614de1601f836154f9565b7f5361666542455032303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b6000614e1a601b836154f9565b7f72657175657374656420616d6f756e7420697320696e76616c69640000000000815260200192915050565b6000614e536022836154f9565b7f6f6e6c792070726f78792061646d696e2063616e206368616e676520627261698152616e7360f01b602082015260400192915050565b6000614e97602e836154f9565b7f416c6c6f6320706f696e7473207065722072657761726420746f6b656e206d7581526d7374206e6f74206265207a65726f60901b602082015260400192915050565b80516060830190614eeb84826143c8565b506020820151614efe6020850182614f0d565b506040820151612f7560408501825b61435781615520565b61435781615538565b61435781615541565b61435781615569565b61435781615547565b600061082782846143e2565b6000614f518261475b565b9150614f5d82856143d1565b602082019150614f6d82846143d1565b5060200192915050565b600061152482614a63565b600061152482614d75565b60208101611524828461435d565b60208101611524828461434e565b60408101614fb7828561434e565b818103602083015261389a8184614423565b60408101614fd7828561435d565b610827602083018461435d565b60608101614ff2828661435d565b614fff602083018561434e565b61389a60408301846143c8565b6080810161501a828761435d565b615027602083018661435d565b615034604083018561435d565b615041606083018461435d565b95945050505050565b60608101615058828661435d565b614fff602083018561435d565b60808101615073828761435d565b615080602083018661435d565b61508d60408301856143c8565b61504160608301846143c8565b604081016150a8828561435d565b61082760208301846143bf565b604081016150c3828561435d565b61082760208301846143c8565b602080825281016108278184614366565b6020810161152482846143bf565b6020810161152482846143c8565b6080810161507382876143c8565b6080810161511982876143c8565b61512660208301866143c8565b61503460408301856143c8565b6080810161514182876143c8565b6150806020830186614f1f565b602081016115248284614411565b60a0810161516a8288614411565b61517760208301876143c8565b61518460408301866143c8565b61519160608301856143c8565b61519e60808301846143c8565b9695505050505050565b602080825281016108278184614423565b602080825281016115248161445b565b6020808252810161152481614494565b60208082528101611524816144c2565b60208082528101611524816144f1565b602080825281016115248161452a565b6020808252810161152481614563565b602080825281016115248161458e565b60208082528101611524816145bd565b60208082528101611524816145e5565b6020808252810161152481614637565b6020808252810161152481614683565b60208082528101611524816146cf565b6020808252810161152481614713565b6020808252810161152481614779565b60208082528101611524816147c2565b60208082528101611524816147fb565b6020808252810161152481614834565b602080825281016115248161487b565b60208082528101611524816148bf565b60208082528101611524816148f8565b6020808252810161152481614927565b6020808252810161152481614974565b60208082528101611524816149ad565b60208082528101611524816149e6565b6020808252810161152481614a1f565b6020808252810161152481614ace565b6020808252810161152481614b07565b6020808252810161152481614b4a565b6020808252810161152481614b78565b6020808252810161152481614bb1565b6020808252810161152481614bd7565b6020808252810161152481614c07565b6020808252810161152481614c31565b6020808252810161152481614c62565b6020808252810161152481614c91565b6020808252810161152481614cca565b6020808252810161152481614d03565b6020808252810161152481614d3c565b6020808252810161152481614dd4565b6020808252810161152481614e0d565b6020808252810161152481614e46565b6020808252810161152481614e8a565b6040810161546782856143c8565b610827602083018461441a565b604081016150c382856143c8565b6060810161549082866143c8565b614fff60208301856143c8565b602081016115248284614f16565b604081016154b98285614f16565b6108276020830184614f31565b602081016115248284614f31565b604081016154e28285614f28565b6108276020830184614f28565b60200190565b5190565b90815260200190565b60006115248261552c565b151590565b90565b600061152482615502565b6001600160801b031690565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b6001600160601b031690565b600061152482615515565b600061152482615512565b600061152482615547565b60005b8381101561558f578181015183820152602001615577565b83811115612f755750506000910152565b601f01601f191690565b6155b381615502565b8114610f0a57600080fd5b6155b38161550d565b6155b381615512565b6155b381615515565b6155b381615538565b6155b38161554156fe5856535661756c743a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77735856535661756c743a3a726571756573745769746864726177616c3a20766f746573206f766572666c6f775856535661756c743a3a6765745374616b65416d6f756e743a20766f746573206f766572666c6f775856535661756c743a3a6465706f7369743a20766f746573206f766572666c6f775856535661756c743a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206f72207365636f6e64206578636565647320333220626974737365745769746864726177616c4c6f636b696e67506572696f6428616464726573732c75696e743235362c75696e74323536295856535661756c743a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773736574526577617264416d6f756e74506572426c6f636b4f725365636f6e6428616464726573732c75696e743235362961646428616464726573732c75696e743235362c616464726573732c75696e743235362c75696e7432353629a365627a7a723158204673433c25e10ef6a2f3231af87ba58990cc66dcbfd3b316201ce53bbbdedc176c6578706572696d656e74616cf564736f6c63430005100040";
1660
1686
  class XVSVault__factory extends ethers_1.ContractFactory {
1661
1687
  constructor(...args) {
1662
1688
  if (args.length === 1) {
@@ -47,6 +47,7 @@ export type { IProtocolShareReserve } from "./IProtocolShareReserve";
47
47
  export type { IVToken } from "./IVToken";
48
48
  export type { ProtocolShareReserve } from "./ProtocolShareReserve";
49
49
  export type { MaxLoopsLimitHelper } from "./MaxLoopsLimitHelper";
50
+ export type { TimeManagerV5 } from "./TimeManagerV5";
50
51
  export type { TimeManagerV8 } from "./TimeManagerV8";
51
52
  export type { InterfaceComptroller } from "./InterfaceComptroller";
52
53
  export type { PoolRegistryInterface } from "./PoolRegistryInterface";
@@ -59,7 +60,6 @@ export type { PrimeLiquidityProvider } from "./PrimeLiquidityProvider";
59
60
  export type { PrimeLiquidityProviderStorageV1 } from "./PrimeLiquidityProviderStorageV1";
60
61
  export type { PrimeStorageV1 } from "./PrimeStorageV1";
61
62
  export type { IBEP20 } from "./IBEP20";
62
- export type { TimeManagerV5 } from "./TimeManagerV5";
63
63
  export type { XVSStore } from "./XVSStore";
64
64
  export type { XVSVault } from "./XVSVault";
65
65
  export type { XVSVaultErrorReporter } from "./XVSVaultErrorReporter";
@@ -177,6 +177,7 @@ export { IProtocolShareReserve__factory } from "./factories/IProtocolShareReserv
177
177
  export { IVToken__factory } from "./factories/IVToken__factory";
178
178
  export { ProtocolShareReserve__factory } from "./factories/ProtocolShareReserve__factory";
179
179
  export { MaxLoopsLimitHelper__factory } from "./factories/MaxLoopsLimitHelper__factory";
180
+ export { TimeManagerV5__factory } from "./factories/TimeManagerV5__factory";
180
181
  export { TimeManagerV8__factory } from "./factories/TimeManagerV8__factory";
181
182
  export { InterfaceComptroller__factory } from "./factories/InterfaceComptroller__factory";
182
183
  export { PoolRegistryInterface__factory } from "./factories/PoolRegistryInterface__factory";
@@ -189,7 +190,6 @@ export { PrimeLiquidityProvider__factory } from "./factories/PrimeLiquidityProvi
189
190
  export { PrimeLiquidityProviderStorageV1__factory } from "./factories/PrimeLiquidityProviderStorageV1__factory";
190
191
  export { PrimeStorageV1__factory } from "./factories/PrimeStorageV1__factory";
191
192
  export { IBEP20__factory } from "./factories/IBEP20__factory";
192
- export { TimeManagerV5__factory } from "./factories/TimeManagerV5__factory";
193
193
  export { XVSStore__factory } from "./factories/XVSStore__factory";
194
194
  export { XVSVault__factory } from "./factories/XVSVault__factory";
195
195
  export { XVSVaultErrorReporter__factory } from "./factories/XVSVaultErrorReporter__factory";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TimeManagerV8__factory = exports.MaxLoopsLimitHelper__factory = exports.ProtocolShareReserve__factory = exports.IVToken__factory = exports.IProtocolShareReserve__factory = exports.IPoolRegistry__factory = exports.IIncomeDestination__factory = exports.IComptroller__factory = exports.ChainlinkOracle__factory = exports.BinanceOracle__factory = exports.VBep20Interface__factory = exports.SIDRegistryInterface__factory = exports.PublicResolverInterface__factory = exports.TwapInterface__factory = exports.ResilientOracleInterface__factory = exports.OracleInterface__factory = exports.BoundValidatorInterface__factory = exports.FeedRegistryInterface__factory = exports.IAccessControlManagerV8__factory = exports.IAccessControlManagerV5__factory = exports.AccessControlManager__factory = exports.AccessControlledV8__factory = exports.AccessControlledV5__factory = exports.IERC165__factory = exports.ERC165__factory = exports.IERC20__factory = exports.IERC20Permit__factory = exports.IERC20Metadata__factory = exports.ERC20__factory = exports.Proxy__factory = exports.ERC1967Upgrade__factory = exports.UpgradeableBeacon__factory = exports.IBeacon__factory = exports.BeaconProxy__factory = exports.IERC1967__factory = exports.IERC1822Proxiable__factory = exports.Ownable2Step__factory = exports.Ownable__factory = exports.IAccessControl__factory = exports.AccessControl__factory = exports.ContextUpgradeable__factory = exports.IERC20Upgradeable__factory = exports.IERC20PermitUpgradeable__factory = exports.IERC20MetadataUpgradeable__factory = exports.ReentrancyGuardUpgradeable__factory = exports.PausableUpgradeable__factory = exports.Initializable__factory = exports.OwnableUpgradeable__factory = exports.Ownable2StepUpgradeable__factory = exports.AggregatorV3Interface__factory = void 0;
4
- exports.ERC20NS__factory = exports.ERC20Harness__factory = exports.ERC20Base__factory = exports.ComptrollerScenario__factory = exports.EchoTypesComptroller__factory = exports.ComptrollerHarness__factory = exports.ShortfallStorage__factory = exports.Shortfall__factory = exports.IRiskFund__factory = exports.RewardsDistributorStorage__factory = exports.RewardsDistributor__factory = exports.PoolRegistry__factory = exports.TokenDebtTracker__factory = exports.ApproveOrRevert__factory = exports.PoolLens__factory = exports.PoolLensR2__factory = exports.PoolLensR1__factory = exports.RiskFund__factory = exports.ReserveHelpers__factory = exports.IRiskFundV1__factory = exports.JumpRateModelV2__factory = exports.IPancakeswapV2Router__factory = exports.InterestRateModel__factory = exports.NativeTokenGateway__factory = exports.IWrappedNative__factory = exports.INativeTokenGateway__factory = exports.TokenErrorReporter__factory = exports.ComptrollerStorage__factory = exports.ComptrollerViewInterface__factory = exports.ComptrollerInterface__factory = exports.Comptroller__factory = exports.XVSVaultStorageV1__factory = exports.XVSVaultStorage__factory = exports.XVSVaultAdminStorage__factory = exports.XVSVaultProxy__factory = exports.XVSVaultErrorReporter__factory = exports.XVSVault__factory = exports.XVSStore__factory = exports.TimeManagerV5__factory = exports.IBEP20__factory = exports.PrimeStorageV1__factory = exports.PrimeLiquidityProviderStorageV1__factory = exports.PrimeLiquidityProvider__factory = exports.Prime__factory = exports.FixedMath__factory = exports.IXVSVault__factory = exports.IPrimeLiquidityProvider__factory = exports.IPrime__factory = exports.PoolRegistryInterface__factory = exports.InterfaceComptroller__factory = void 0;
3
+ exports.TimeManagerV5__factory = exports.MaxLoopsLimitHelper__factory = exports.ProtocolShareReserve__factory = exports.IVToken__factory = exports.IProtocolShareReserve__factory = exports.IPoolRegistry__factory = exports.IIncomeDestination__factory = exports.IComptroller__factory = exports.ChainlinkOracle__factory = exports.BinanceOracle__factory = exports.VBep20Interface__factory = exports.SIDRegistryInterface__factory = exports.PublicResolverInterface__factory = exports.TwapInterface__factory = exports.ResilientOracleInterface__factory = exports.OracleInterface__factory = exports.BoundValidatorInterface__factory = exports.FeedRegistryInterface__factory = exports.IAccessControlManagerV8__factory = exports.IAccessControlManagerV5__factory = exports.AccessControlManager__factory = exports.AccessControlledV8__factory = exports.AccessControlledV5__factory = exports.IERC165__factory = exports.ERC165__factory = exports.IERC20__factory = exports.IERC20Permit__factory = exports.IERC20Metadata__factory = exports.ERC20__factory = exports.Proxy__factory = exports.ERC1967Upgrade__factory = exports.UpgradeableBeacon__factory = exports.IBeacon__factory = exports.BeaconProxy__factory = exports.IERC1967__factory = exports.IERC1822Proxiable__factory = exports.Ownable2Step__factory = exports.Ownable__factory = exports.IAccessControl__factory = exports.AccessControl__factory = exports.ContextUpgradeable__factory = exports.IERC20Upgradeable__factory = exports.IERC20PermitUpgradeable__factory = exports.IERC20MetadataUpgradeable__factory = exports.ReentrancyGuardUpgradeable__factory = exports.PausableUpgradeable__factory = exports.Initializable__factory = exports.OwnableUpgradeable__factory = exports.Ownable2StepUpgradeable__factory = exports.AggregatorV3Interface__factory = void 0;
4
+ exports.ERC20NS__factory = exports.ERC20Harness__factory = exports.ERC20Base__factory = exports.ComptrollerScenario__factory = exports.EchoTypesComptroller__factory = exports.ComptrollerHarness__factory = exports.ShortfallStorage__factory = exports.Shortfall__factory = exports.IRiskFund__factory = exports.RewardsDistributorStorage__factory = exports.RewardsDistributor__factory = exports.PoolRegistry__factory = exports.TokenDebtTracker__factory = exports.ApproveOrRevert__factory = exports.PoolLens__factory = exports.PoolLensR2__factory = exports.PoolLensR1__factory = exports.RiskFund__factory = exports.ReserveHelpers__factory = exports.IRiskFundV1__factory = exports.JumpRateModelV2__factory = exports.IPancakeswapV2Router__factory = exports.InterestRateModel__factory = exports.NativeTokenGateway__factory = exports.IWrappedNative__factory = exports.INativeTokenGateway__factory = exports.TokenErrorReporter__factory = exports.ComptrollerStorage__factory = exports.ComptrollerViewInterface__factory = exports.ComptrollerInterface__factory = exports.Comptroller__factory = exports.XVSVaultStorageV1__factory = exports.XVSVaultStorage__factory = exports.XVSVaultAdminStorage__factory = exports.XVSVaultProxy__factory = exports.XVSVaultErrorReporter__factory = exports.XVSVault__factory = exports.XVSStore__factory = exports.IBEP20__factory = exports.PrimeStorageV1__factory = exports.PrimeLiquidityProviderStorageV1__factory = exports.PrimeLiquidityProvider__factory = exports.Prime__factory = exports.FixedMath__factory = exports.IXVSVault__factory = exports.IPrimeLiquidityProvider__factory = exports.IPrime__factory = exports.PoolRegistryInterface__factory = exports.InterfaceComptroller__factory = exports.TimeManagerV8__factory = void 0;
5
5
  exports.WhitePaperInterestRateModel__factory = exports.VTokenStorage__factory = exports.VTokenInterface__factory = exports.VToken__factory = exports.XVSVaultScenario__factory = exports.XVSStoreScenario__factory = exports.WrappedNative__factory = exports.VTokenHarness__factory = exports.UpgradedVToken__factory = exports.PrimeScenario__factory = exports.PrimeLiquidityProviderScenario__factory = exports.MockToken__factory = exports.MockPriceOracle__factory = exports.PancakeRouter__factory = exports.IWETH__factory = exports.IPancakeRouter02__factory = exports.IPancakeRouter01__factory = exports.IPancakePair__factory = exports.IPancakeFactory__factory = exports.MockDeflatingToken__factory = exports.TokenDebtTrackerHarness__factory = exports.ApproveOrRevertHarness__factory = exports.HarnessMaxLoopsLimitHelper__factory = exports.FeeToken__factory = exports.FaucetTokenReEntrantHarness__factory = exports.FaucetToken__factory = exports.FaucetNonStandardToken__factory = exports.EvilToken__factory = exports.StandardToken__factory = exports.NonStandardToken__factory = void 0;
6
6
  var AggregatorV3Interface__factory_1 = require("./factories/AggregatorV3Interface__factory");
7
7
  Object.defineProperty(exports, "AggregatorV3Interface__factory", { enumerable: true, get: function () { return AggregatorV3Interface__factory_1.AggregatorV3Interface__factory; } });
@@ -101,6 +101,8 @@ var ProtocolShareReserve__factory_1 = require("./factories/ProtocolShareReserve_
101
101
  Object.defineProperty(exports, "ProtocolShareReserve__factory", { enumerable: true, get: function () { return ProtocolShareReserve__factory_1.ProtocolShareReserve__factory; } });
102
102
  var MaxLoopsLimitHelper__factory_1 = require("./factories/MaxLoopsLimitHelper__factory");
103
103
  Object.defineProperty(exports, "MaxLoopsLimitHelper__factory", { enumerable: true, get: function () { return MaxLoopsLimitHelper__factory_1.MaxLoopsLimitHelper__factory; } });
104
+ var TimeManagerV5__factory_1 = require("./factories/TimeManagerV5__factory");
105
+ Object.defineProperty(exports, "TimeManagerV5__factory", { enumerable: true, get: function () { return TimeManagerV5__factory_1.TimeManagerV5__factory; } });
104
106
  var TimeManagerV8__factory_1 = require("./factories/TimeManagerV8__factory");
105
107
  Object.defineProperty(exports, "TimeManagerV8__factory", { enumerable: true, get: function () { return TimeManagerV8__factory_1.TimeManagerV8__factory; } });
106
108
  var InterfaceComptroller__factory_1 = require("./factories/InterfaceComptroller__factory");
@@ -125,8 +127,6 @@ var PrimeStorageV1__factory_1 = require("./factories/PrimeStorageV1__factory");
125
127
  Object.defineProperty(exports, "PrimeStorageV1__factory", { enumerable: true, get: function () { return PrimeStorageV1__factory_1.PrimeStorageV1__factory; } });
126
128
  var IBEP20__factory_1 = require("./factories/IBEP20__factory");
127
129
  Object.defineProperty(exports, "IBEP20__factory", { enumerable: true, get: function () { return IBEP20__factory_1.IBEP20__factory; } });
128
- var TimeManagerV5__factory_1 = require("./factories/TimeManagerV5__factory");
129
- Object.defineProperty(exports, "TimeManagerV5__factory", { enumerable: true, get: function () { return TimeManagerV5__factory_1.TimeManagerV5__factory; } });
130
130
  var XVSStore__factory_1 = require("./factories/XVSStore__factory");
131
131
  Object.defineProperty(exports, "XVSStore__factory", { enumerable: true, get: function () { return XVSStore__factory_1.XVSStore__factory; } });
132
132
  var XVSVault__factory_1 = require("./factories/XVSVault__factory");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venusprotocol/isolated-pools",
3
- "version": "3.3.0-dev.1",
3
+ "version": "3.3.0-dev.2",
4
4
  "description": "",
5
5
  "files": [
6
6
  "artifacts",
@@ -71,10 +71,10 @@
71
71
  "@types/node": "^12.20.50",
72
72
  "@typescript-eslint/eslint-plugin": "^5.27.1",
73
73
  "@typescript-eslint/parser": "^5.27.1",
74
- "@venusprotocol/governance-contracts": "2.0.0",
74
+ "@venusprotocol/governance-contracts": "2.1.0",
75
75
  "@venusprotocol/oracle": "2.0.0",
76
- "@venusprotocol/protocol-reserve": "2.1.0",
77
- "@venusprotocol/venus-protocol": "8.0.0",
76
+ "@venusprotocol/protocol-reserve": "2.2.0",
77
+ "@venusprotocol/venus-protocol": "9.0.0",
78
78
  "bignumber.js": "9.0.0",
79
79
  "chai": "^4.3.6",
80
80
  "dotenv": "^10.0.0",
@@ -72,6 +72,7 @@ interface XVSVaultInterface extends ethers.utils.Interface {
72
72
  "setWithdrawalLockingPeriod(address,uint256,uint256)": FunctionFragment;
73
73
  "setXvsStore(address,address)": FunctionFragment;
74
74
  "totalAllocPoints(address)": FunctionFragment;
75
+ "totalPendingWithdrawals(address,uint256)": FunctionFragment;
75
76
  "updatePool(address,uint256)": FunctionFragment;
76
77
  "vaultPaused()": FunctionFragment;
77
78
  "xvsAddress()": FunctionFragment;
@@ -265,6 +266,10 @@ interface XVSVaultInterface extends ethers.utils.Interface {
265
266
  functionFragment: "totalAllocPoints",
266
267
  values: [string]
267
268
  ): string;
269
+ encodeFunctionData(
270
+ functionFragment: "totalPendingWithdrawals",
271
+ values: [string, BigNumberish]
272
+ ): string;
268
273
  encodeFunctionData(
269
274
  functionFragment: "updatePool",
270
275
  values: [string, BigNumberish]
@@ -441,6 +446,10 @@ interface XVSVaultInterface extends ethers.utils.Interface {
441
446
  functionFragment: "totalAllocPoints",
442
447
  data: BytesLike
443
448
  ): Result;
449
+ decodeFunctionResult(
450
+ functionFragment: "totalPendingWithdrawals",
451
+ data: BytesLike
452
+ ): Result;
444
453
  decodeFunctionResult(functionFragment: "updatePool", data: BytesLike): Result;
445
454
  decodeFunctionResult(
446
455
  functionFragment: "vaultPaused",
@@ -922,6 +931,12 @@ export class XVSVault extends BaseContract {
922
931
  overrides?: CallOverrides
923
932
  ): Promise<[BigNumber]>;
924
933
 
934
+ totalPendingWithdrawals(
935
+ arg0: string,
936
+ arg1: BigNumberish,
937
+ overrides?: CallOverrides
938
+ ): Promise<[BigNumber]>;
939
+
925
940
  updatePool(
926
941
  _rewardToken: string,
927
942
  _pid: BigNumberish,
@@ -1191,6 +1206,12 @@ export class XVSVault extends BaseContract {
1191
1206
 
1192
1207
  totalAllocPoints(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
1193
1208
 
1209
+ totalPendingWithdrawals(
1210
+ arg0: string,
1211
+ arg1: BigNumberish,
1212
+ overrides?: CallOverrides
1213
+ ): Promise<BigNumber>;
1214
+
1194
1215
  updatePool(
1195
1216
  _rewardToken: string,
1196
1217
  _pid: BigNumberish,
@@ -1453,6 +1474,12 @@ export class XVSVault extends BaseContract {
1453
1474
  overrides?: CallOverrides
1454
1475
  ): Promise<BigNumber>;
1455
1476
 
1477
+ totalPendingWithdrawals(
1478
+ arg0: string,
1479
+ arg1: BigNumberish,
1480
+ overrides?: CallOverrides
1481
+ ): Promise<BigNumber>;
1482
+
1456
1483
  updatePool(
1457
1484
  _rewardToken: string,
1458
1485
  _pid: BigNumberish,
@@ -2060,6 +2087,12 @@ export class XVSVault extends BaseContract {
2060
2087
  overrides?: CallOverrides
2061
2088
  ): Promise<BigNumber>;
2062
2089
 
2090
+ totalPendingWithdrawals(
2091
+ arg0: string,
2092
+ arg1: BigNumberish,
2093
+ overrides?: CallOverrides
2094
+ ): Promise<BigNumber>;
2095
+
2063
2096
  updatePool(
2064
2097
  _rewardToken: string,
2065
2098
  _pid: BigNumberish,
@@ -2333,6 +2366,12 @@ export class XVSVault extends BaseContract {
2333
2366
  overrides?: CallOverrides
2334
2367
  ): Promise<PopulatedTransaction>;
2335
2368
 
2369
+ totalPendingWithdrawals(
2370
+ arg0: string,
2371
+ arg1: BigNumberish,
2372
+ overrides?: CallOverrides
2373
+ ): Promise<PopulatedTransaction>;
2374
+
2336
2375
  updatePool(
2337
2376
  _rewardToken: string,
2338
2377
  _pid: BigNumberish,
@@ -72,6 +72,7 @@ interface XVSVaultScenarioInterface extends ethers.utils.Interface {
72
72
  "setWithdrawalLockingPeriod(address,uint256,uint256)": FunctionFragment;
73
73
  "setXvsStore(address,address)": FunctionFragment;
74
74
  "totalAllocPoints(address)": FunctionFragment;
75
+ "totalPendingWithdrawals(address,uint256)": FunctionFragment;
75
76
  "updatePool(address,uint256)": FunctionFragment;
76
77
  "vaultPaused()": FunctionFragment;
77
78
  "xvsAddress()": FunctionFragment;
@@ -265,6 +266,10 @@ interface XVSVaultScenarioInterface extends ethers.utils.Interface {
265
266
  functionFragment: "totalAllocPoints",
266
267
  values: [string]
267
268
  ): string;
269
+ encodeFunctionData(
270
+ functionFragment: "totalPendingWithdrawals",
271
+ values: [string, BigNumberish]
272
+ ): string;
268
273
  encodeFunctionData(
269
274
  functionFragment: "updatePool",
270
275
  values: [string, BigNumberish]
@@ -441,6 +446,10 @@ interface XVSVaultScenarioInterface extends ethers.utils.Interface {
441
446
  functionFragment: "totalAllocPoints",
442
447
  data: BytesLike
443
448
  ): Result;
449
+ decodeFunctionResult(
450
+ functionFragment: "totalPendingWithdrawals",
451
+ data: BytesLike
452
+ ): Result;
444
453
  decodeFunctionResult(functionFragment: "updatePool", data: BytesLike): Result;
445
454
  decodeFunctionResult(
446
455
  functionFragment: "vaultPaused",
@@ -922,6 +931,12 @@ export class XVSVaultScenario extends BaseContract {
922
931
  overrides?: CallOverrides
923
932
  ): Promise<[BigNumber]>;
924
933
 
934
+ totalPendingWithdrawals(
935
+ arg0: string,
936
+ arg1: BigNumberish,
937
+ overrides?: CallOverrides
938
+ ): Promise<[BigNumber]>;
939
+
925
940
  updatePool(
926
941
  _rewardToken: string,
927
942
  _pid: BigNumberish,
@@ -1191,6 +1206,12 @@ export class XVSVaultScenario extends BaseContract {
1191
1206
 
1192
1207
  totalAllocPoints(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
1193
1208
 
1209
+ totalPendingWithdrawals(
1210
+ arg0: string,
1211
+ arg1: BigNumberish,
1212
+ overrides?: CallOverrides
1213
+ ): Promise<BigNumber>;
1214
+
1194
1215
  updatePool(
1195
1216
  _rewardToken: string,
1196
1217
  _pid: BigNumberish,
@@ -1453,6 +1474,12 @@ export class XVSVaultScenario extends BaseContract {
1453
1474
  overrides?: CallOverrides
1454
1475
  ): Promise<BigNumber>;
1455
1476
 
1477
+ totalPendingWithdrawals(
1478
+ arg0: string,
1479
+ arg1: BigNumberish,
1480
+ overrides?: CallOverrides
1481
+ ): Promise<BigNumber>;
1482
+
1456
1483
  updatePool(
1457
1484
  _rewardToken: string,
1458
1485
  _pid: BigNumberish,
@@ -2060,6 +2087,12 @@ export class XVSVaultScenario extends BaseContract {
2060
2087
  overrides?: CallOverrides
2061
2088
  ): Promise<BigNumber>;
2062
2089
 
2090
+ totalPendingWithdrawals(
2091
+ arg0: string,
2092
+ arg1: BigNumberish,
2093
+ overrides?: CallOverrides
2094
+ ): Promise<BigNumber>;
2095
+
2063
2096
  updatePool(
2064
2097
  _rewardToken: string,
2065
2098
  _pid: BigNumberish,
@@ -2333,6 +2366,12 @@ export class XVSVaultScenario extends BaseContract {
2333
2366
  overrides?: CallOverrides
2334
2367
  ): Promise<PopulatedTransaction>;
2335
2368
 
2369
+ totalPendingWithdrawals(
2370
+ arg0: string,
2371
+ arg1: BigNumberish,
2372
+ overrides?: CallOverrides
2373
+ ): Promise<PopulatedTransaction>;
2374
+
2336
2375
  updatePool(
2337
2376
  _rewardToken: string,
2338
2377
  _pid: BigNumberish,
@@ -38,6 +38,7 @@ interface XVSVaultStorageInterface extends ethers.utils.Interface {
38
38
  "primeToken()": FunctionFragment;
39
39
  "rewardTokenAmountsPerBlockOrSecond(address)": FunctionFragment;
40
40
  "totalAllocPoints(address)": FunctionFragment;
41
+ "totalPendingWithdrawals(address,uint256)": FunctionFragment;
41
42
  "vaultPaused()": FunctionFragment;
42
43
  "xvsAddress()": FunctionFragment;
43
44
  "xvsStore()": FunctionFragment;
@@ -106,6 +107,10 @@ interface XVSVaultStorageInterface extends ethers.utils.Interface {
106
107
  functionFragment: "totalAllocPoints",
107
108
  values: [string]
108
109
  ): string;
110
+ encodeFunctionData(
111
+ functionFragment: "totalPendingWithdrawals",
112
+ values: [string, BigNumberish]
113
+ ): string;
109
114
  encodeFunctionData(
110
115
  functionFragment: "vaultPaused",
111
116
  values?: undefined
@@ -173,6 +178,10 @@ interface XVSVaultStorageInterface extends ethers.utils.Interface {
173
178
  functionFragment: "totalAllocPoints",
174
179
  data: BytesLike
175
180
  ): Result;
181
+ decodeFunctionResult(
182
+ functionFragment: "totalPendingWithdrawals",
183
+ data: BytesLike
184
+ ): Result;
176
185
  decodeFunctionResult(
177
186
  functionFragment: "vaultPaused",
178
187
  data: BytesLike
@@ -291,6 +300,12 @@ export class XVSVaultStorage extends BaseContract {
291
300
  overrides?: CallOverrides
292
301
  ): Promise<[BigNumber]>;
293
302
 
303
+ totalPendingWithdrawals(
304
+ arg0: string,
305
+ arg1: BigNumberish,
306
+ overrides?: CallOverrides
307
+ ): Promise<[BigNumber]>;
308
+
294
309
  vaultPaused(overrides?: CallOverrides): Promise<[boolean]>;
295
310
 
296
311
  xvsAddress(overrides?: CallOverrides): Promise<[string]>;
@@ -359,6 +374,12 @@ export class XVSVaultStorage extends BaseContract {
359
374
 
360
375
  totalAllocPoints(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
361
376
 
377
+ totalPendingWithdrawals(
378
+ arg0: string,
379
+ arg1: BigNumberish,
380
+ overrides?: CallOverrides
381
+ ): Promise<BigNumber>;
382
+
362
383
  vaultPaused(overrides?: CallOverrides): Promise<boolean>;
363
384
 
364
385
  xvsAddress(overrides?: CallOverrides): Promise<string>;
@@ -430,6 +451,12 @@ export class XVSVaultStorage extends BaseContract {
430
451
  overrides?: CallOverrides
431
452
  ): Promise<BigNumber>;
432
453
 
454
+ totalPendingWithdrawals(
455
+ arg0: string,
456
+ arg1: BigNumberish,
457
+ overrides?: CallOverrides
458
+ ): Promise<BigNumber>;
459
+
433
460
  vaultPaused(overrides?: CallOverrides): Promise<boolean>;
434
461
 
435
462
  xvsAddress(overrides?: CallOverrides): Promise<string>;
@@ -496,6 +523,12 @@ export class XVSVaultStorage extends BaseContract {
496
523
  overrides?: CallOverrides
497
524
  ): Promise<BigNumber>;
498
525
 
526
+ totalPendingWithdrawals(
527
+ arg0: string,
528
+ arg1: BigNumberish,
529
+ overrides?: CallOverrides
530
+ ): Promise<BigNumber>;
531
+
499
532
  vaultPaused(overrides?: CallOverrides): Promise<BigNumber>;
500
533
 
501
534
  xvsAddress(overrides?: CallOverrides): Promise<BigNumber>;
@@ -574,6 +607,12 @@ export class XVSVaultStorage extends BaseContract {
574
607
  overrides?: CallOverrides
575
608
  ): Promise<PopulatedTransaction>;
576
609
 
610
+ totalPendingWithdrawals(
611
+ arg0: string,
612
+ arg1: BigNumberish,
613
+ overrides?: CallOverrides
614
+ ): Promise<PopulatedTransaction>;
615
+
577
616
  vaultPaused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
578
617
 
579
618
  xvsAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;
@@ -70,7 +70,7 @@ const _abi = [
70
70
  ];
71
71
 
72
72
  const _bytecode =
73
- "0x608060405234801561001057600080fd5b50610105806100206000396000f3fe6080604052348015600f57600080fd5b506004361060465760003560e01c80636857249c14604b578063c7ad0895146063578063e1d146fb14607d578063e6a69ab8146083575b600080fd5b60516089565b60408051918252519081900360200190f35b6069608f565b604080519115158252519081900360200190f35b60516098565b605160c6565b60005481565b60015460ff1681565b600060c1600160029054906101000a9004801560ce021767ffffffffffffffff1663ffffffff16565b905090565b6301e1338081565bfefea265627a7a7231582037e59d5f76063c3e55ee987baf0466cc97e434604d9822ce8ac4c9b924160f5464736f6c63430005100032";
73
+ "0x608060405234801561001057600080fd5b50610105806100206000396000f3fe6080604052348015600f57600080fd5b506004361060465760003560e01c80636857249c14604b578063c7ad0895146063578063e1d146fb14607d578063e6a69ab8146083575b600080fd5b60516089565b60408051918252519081900360200190f35b6069608f565b604080519115158252519081900360200190f35b60516098565b605160c6565b60005481565b60015460ff1681565b600060c1600160029054906101000a9004801560ce021767ffffffffffffffff1663ffffffff16565b905090565b6301e1338081565bfefea265627a7a72315820eda1dd6040f646b4dc41f8cd370c8d2d5ba26673d8a5c17ae8522c9937b3a3b964736f6c63430005100032";
74
74
 
75
75
  export class TimeManagerV5__factory extends ContractFactory {
76
76
  constructor(