contract

package

Versions in this module

v1
Apr 1, 2022
Apr 1, 2022
Apr 1, 2022
Apr 1, 2022
Mar 31, 2022
Mar 31, 2022
Mar 31, 2022
Mar 31, 2022
Mar 30, 2022
Mar 29, 2022
Mar 1, 2022
Mar 29, 2022
Mar 29, 2022
Mar 29, 2022
Mar 29, 2022
Mar 29, 2022
Mar 28, 2022
Mar 28, 2022
Mar 28, 2022
Mar 28, 2022
Mar 28, 2022
Mar 1, 2022
Mar 25, 2022
Mar 25, 2022
Mar 25, 2022
Mar 25, 2022
Mar 25, 2022
Mar 25, 2022
Mar 25, 2022
Mar 23, 2022
Mar 24, 2022
Mar 24, 2022
Mar 1, 2022
Mar 24, 2022
Mar 24, 2022
Mar 23, 2022
Mar 23, 2022
Mar 23, 2022
Mar 23, 2022
Mar 23, 2022
Mar 22, 2022
Mar 22, 2022
Mar 22, 2022
Mar 1, 2022
Mar 21, 2022
Mar 17, 2022
Mar 17, 2022
Mar 17, 2022
Mar 17, 2022
Mar 16, 2022
Mar 16, 2022
Mar 15, 2022
Mar 15, 2022
Mar 15, 2022
Feb 28, 2022
Mar 14, 2022
Mar 14, 2022
Mar 11, 2022
Mar 11, 2022
Mar 10, 2022
Mar 10, 2022
Mar 10, 2022
Mar 10, 2022
Mar 9, 2022
Mar 9, 2022
Feb 28, 2022
Mar 9, 2022
Mar 9, 2022
Mar 9, 2022
Sep 6, 2022
Sep 6, 2022
Sep 5, 2022
Sep 5, 2022
Sep 5, 2022
Sep 5, 2022
Sep 1, 2022
Aug 30, 2022
Mar 9, 2022
Aug 30, 2022
Aug 30, 2022
Aug 30, 2022
Aug 29, 2022
Aug 29, 2022
Aug 29, 2022
Aug 29, 2022
Aug 26, 2022
Aug 25, 2022
Mar 8, 2022
Aug 24, 2022
Aug 24, 2022
Aug 24, 2022
Aug 24, 2022
Aug 24, 2022
Aug 24, 2022
Aug 24, 2022
Aug 24, 2022
Aug 24, 2022
Aug 24, 2022
Mar 8, 2022
Aug 24, 2022
Aug 23, 2022
Aug 23, 2022
Aug 23, 2022
Aug 23, 2022
Aug 22, 2022
Aug 22, 2022
Aug 22, 2022
Aug 22, 2022
Aug 22, 2022
Mar 7, 2022
Aug 22, 2022
Aug 22, 2022
Aug 22, 2022
Aug 22, 2022
Aug 22, 2022
Aug 22, 2022
Aug 19, 2022
Aug 19, 2022
Aug 19, 2022
Aug 18, 2022
Mar 7, 2022
Aug 18, 2022
Aug 18, 2022
Aug 18, 2022
Aug 17, 2022
Aug 17, 2022
Aug 15, 2022
Aug 15, 2022
Aug 11, 2022
Aug 11, 2022
Aug 11, 2022
Mar 5, 2022
Aug 11, 2022
Aug 11, 2022
Aug 11, 2022
Aug 11, 2022
Aug 11, 2022
Aug 10, 2022
Aug 10, 2022
Aug 9, 2022
Aug 8, 2022
Aug 8, 2022
Mar 4, 2022
Feb 25, 2022
Aug 6, 2022
Aug 6, 2022
Aug 6, 2022
Aug 5, 2022
Aug 5, 2022
Aug 4, 2022
Aug 4, 2022
Aug 4, 2022
Aug 4, 2022
Aug 4, 2022
Mar 4, 2022
Aug 3, 2022
Aug 3, 2022
Aug 3, 2022
Aug 3, 2022
Aug 3, 2022
Aug 3, 2022
Aug 2, 2022
Aug 1, 2022
Jul 29, 2022
Jul 29, 2022
Mar 3, 2022
Jul 29, 2022
Jul 29, 2022
Jul 28, 2022
Jul 27, 2022
Jul 27, 2022
Jul 27, 2022
Jul 26, 2022
Jul 26, 2022
Jul 25, 2022
Jul 25, 2022
Mar 3, 2022
Jul 25, 2022
Jul 24, 2022
Jul 24, 2022
Jul 24, 2022
Jul 24, 2022
Jul 24, 2022
Jul 24, 2022
Jul 22, 2022
Jul 22, 2022
Jul 21, 2022
Mar 3, 2022
Jul 21, 2022
Jul 20, 2022
Jul 20, 2022
Jul 20, 2022
Jul 20, 2022
Jul 19, 2022
Jul 19, 2022
Jul 19, 2022
Jul 15, 2022
Jul 14, 2022
Mar 3, 2022
Jul 13, 2022
Jul 13, 2022
Jul 13, 2022
Jul 13, 2022
Jul 13, 2022
Jul 13, 2022
Jul 13, 2022
Jul 13, 2022
Jul 13, 2022
Jul 13, 2022
Mar 3, 2022
Jul 12, 2022
Jul 13, 2022
Jul 12, 2022
Jul 12, 2022
Jul 12, 2022
Jul 12, 2022
Jul 11, 2022
Jul 11, 2022
Jul 8, 2022
Jul 7, 2022
Mar 3, 2022
Jul 7, 2022
Jul 5, 2022
Jul 5, 2022
Jul 5, 2022
Jul 4, 2022
Jul 4, 2022
Jul 4, 2022
Jun 30, 2022
Jun 29, 2022
Jun 28, 2022
Mar 2, 2022
Jun 27, 2022
Jun 26, 2022
Jun 26, 2022
Jun 26, 2022
Jun 26, 2022
Jun 24, 2022
Jun 24, 2022
Jun 24, 2022
Jun 24, 2022
Jun 24, 2022
Mar 2, 2022
Jun 24, 2022
Jun 24, 2022
Jun 24, 2022
Jun 23, 2022
Jun 23, 2022
Jun 23, 2022
Jun 22, 2022
Jun 22, 2022
Jun 20, 2022
Jun 17, 2022
Mar 2, 2022
Feb 25, 2022
Jun 17, 2022
Jun 17, 2022
Jun 16, 2022
Jun 16, 2022
Jun 16, 2022
Jun 10, 2022
Jun 8, 2022
Jun 7, 2022
Jun 7, 2022
Jun 3, 2022
Mar 2, 2022
Jun 3, 2022
May 27, 2022
May 27, 2022
May 26, 2022
May 26, 2022
May 26, 2022
May 24, 2022
May 24, 2022
May 24, 2022
May 20, 2022
Mar 2, 2022
May 20, 2022
May 20, 2022
May 19, 2022
May 19, 2022
May 18, 2022
May 18, 2022
May 17, 2022
May 17, 2022
May 17, 2022
May 16, 2022
May 16, 2022
May 16, 2022
May 13, 2022
May 13, 2022
May 13, 2022
May 13, 2022
May 11, 2022
May 11, 2022
May 10, 2022
May 10, 2022
Mar 2, 2022
May 9, 2022
May 4, 2022
May 4, 2022
May 3, 2022
May 3, 2022
May 2, 2022
May 2, 2022
May 1, 2022
Apr 30, 2022
Apr 30, 2022
Mar 2, 2022
Apr 30, 2022
Apr 29, 2022
Apr 29, 2022
Apr 29, 2022
Apr 29, 2022
Apr 29, 2022
Apr 29, 2022
Apr 29, 2022
Apr 29, 2022
Apr 29, 2022
Apr 28, 2022
Mar 2, 2022
Apr 28, 2022
Apr 28, 2022
Apr 26, 2022
Apr 26, 2022
Apr 26, 2022
Apr 26, 2022
Apr 26, 2022
Apr 26, 2022
Apr 25, 2022
Apr 21, 2022
Mar 1, 2022
Apr 21, 2022
Apr 20, 2022
Apr 20, 2022
Apr 20, 2022
Apr 20, 2022
Apr 19, 2022
Apr 19, 2022
Apr 14, 2022
Apr 12, 2022
Apr 11, 2022
Mar 1, 2022
Apr 11, 2022
Apr 11, 2022
Apr 11, 2022
Apr 10, 2022
Apr 10, 2022
Apr 8, 2022
Apr 8, 2022
Apr 12, 2022
Apr 12, 2022
Apr 12, 2022
Apr 12, 2022
Apr 12, 2022
Apr 12, 2022
Apr 12, 2022
Apr 12, 2022
Apr 13, 2022
Apr 12, 2022
Apr 12, 2022
Apr 7, 2022
Apr 8, 2022
Apr 7, 2022
Apr 7, 2022
Mar 1, 2022
Apr 6, 2022
Apr 6, 2022
Apr 6, 2022
Apr 6, 2022
Apr 5, 2022
Apr 5, 2022
Apr 5, 2022
Apr 4, 2022
Apr 4, 2022
Apr 4, 2022
Mar 1, 2022
Feb 24, 2022
Aug 29, 2022
Feb 23, 2022
Feb 22, 2022
Feb 22, 2022
Feb 22, 2022
Feb 22, 2022
Feb 22, 2022
Feb 22, 2022
Feb 22, 2022
Feb 22, 2022
Feb 21, 2022
Feb 21, 2022
Jan 3, 2022
Feb 21, 2022
Feb 21, 2022
Feb 21, 2022
Feb 21, 2022
Feb 21, 2022
Feb 21, 2022
Feb 21, 2022
Feb 21, 2022
Feb 18, 2022
Feb 18, 2022
Dec 30, 2021
Feb 18, 2022
Feb 18, 2022
Feb 18, 2022
Feb 18, 2022
Feb 17, 2022
Feb 17, 2022
Feb 17, 2022
Feb 17, 2022
Feb 15, 2022
Feb 15, 2022
Dec 30, 2021
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Dec 29, 2021
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 15, 2022
Feb 14, 2022
Feb 4, 2022
Feb 4, 2022
Dec 22, 2021
Feb 4, 2022
Feb 3, 2022
Feb 3, 2022
Feb 3, 2022
Feb 3, 2022
Feb 2, 2022
Feb 2, 2022
Feb 2, 2022
Feb 1, 2022
Feb 1, 2022
Dec 22, 2021
Feb 1, 2022
Feb 1, 2022
Feb 1, 2022
Jan 31, 2022
Jan 31, 2022
Jan 28, 2022
Jan 27, 2022
Jan 26, 2022
Jan 26, 2022
Jan 25, 2022
Dec 21, 2021
Jan 22, 2022
Jan 22, 2022
Jan 21, 2022
Jan 20, 2022
Jan 19, 2022
Jan 18, 2022
Jan 18, 2022
Jan 16, 2022
Jan 16, 2022
Jan 14, 2022
Dec 20, 2021
Jan 13, 2022
Jan 13, 2022
Jan 13, 2022
Jan 12, 2022
Jan 11, 2022
Jan 11, 2022
Jan 7, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Jan 4, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Jan 4, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 23, 2022
Feb 22, 2022
Feb 22, 2022
Feb 22, 2022
Feb 22, 2022
Jan 4, 2022
Dec 16, 2021
Dec 16, 2021
Dec 9, 2021
Dec 9, 2021
Dec 9, 2021
Dec 9, 2021
Dec 9, 2021
Dec 9, 2021
Dec 9, 2021
Dec 16, 2021
Dec 16, 2021
Dec 15, 2021
Dec 14, 2021
Dec 14, 2021
Dec 14, 2021
Dec 8, 2021
Dec 14, 2021
Dec 14, 2021
Dec 13, 2021
Dec 13, 2021
Dec 13, 2021
Dec 13, 2021
Dec 13, 2021
Dec 13, 2021
Dec 10, 2021
Dec 9, 2021
Dec 8, 2021
Dec 8, 2021
Dec 8, 2021
Dec 8, 2021
Dec 7, 2021
Dec 7, 2021
Dec 7, 2021
Dec 7, 2021
Dec 7, 2021
Dec 7, 2021
Dec 7, 2021
Dec 7, 2021
Nov 17, 2021
Nov 23, 2021
Nov 22, 2021
Nov 19, 2021
Nov 19, 2021
Nov 18, 2021
Nov 18, 2021
Dec 6, 2021
Nov 18, 2021
Dec 6, 2021
Dec 6, 2021
Dec 3, 2021
Dec 3, 2021
Dec 2, 2021
Dec 2, 2021
Dec 2, 2021
Dec 2, 2021
Dec 1, 2021
Dec 1, 2021
Nov 17, 2021
Dec 1, 2021
Dec 1, 2021
Nov 30, 2021
Nov 29, 2021
Nov 29, 2021
Nov 25, 2021
Nov 24, 2021
Nov 24, 2021
Nov 23, 2021
Nov 23, 2021
Nov 17, 2021
Nov 17, 2021
Changes in this version
+ var ATokenBin = "0x610100604052600080553480156200001657600080fd5b5060405162002b8438038062002b84833981810160405260c08110156200003c57600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200007057600080fd5b9083019060208201858111156200008657600080fd5b8251640100000000811182820188101715620000a157600080fd5b82525081516020918201929091019080838360005b83811015620000d0578181015183820152602001620000b6565b50505050905090810190601f168015620000fe5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012257600080fd5b9083019060208201858111156200013857600080fd5b82516401000000008111828201881017156200015357600080fd5b82525081516020918201929091019080838360005b838110156200018257818101518382015260200162000168565b50505050905090810190601f168015620001b05780820380516001836020036101000a031916815260200191505b50604052602090810151855190935085925084916012918591620001da916037918701906200023b565b508251620001f09060389060208601906200023b565b506039805460ff90931660ff19909316929092179091556001600160601b0319606091821b811660805298811b891660e05296871b881660a0525050505050901b1660c052620002d7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200027e57805160ff1916838001178555620002ae565b82800160010185558215620002ae579182015b82811115620002ae57825182559160200191906001019062000291565b50620002bc929150620002c0565b5090565b5b80821115620002bc5760008155600101620002c1565b60805160601c60a05160601c60c05160601c60e05160601c6127fd62000387600039806107c652806109ce5280610dc05280610ea35280610f6b5280610fac5280611520528061172b5280611e785280611fd452508061105d528061109e52806110f4528061126a5250806109fd5280610e6f5280610ed2528061128e528061164e5280611ea75280611f85525080611ae95280611b1052806123bf52806123ed528061249d52506127fd6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80637535d24611610104578063b16a19de116100a2578063d505accf11610071578063d505accf146105fa578063d7020d0a1461064b578063dd62ed3e14610687578063f866c319146106b5576101da565b8063b16a19de146105bc578063b1bf962d146105c4578063b9844d8d146105cc578063d0fc81d2146105f2576101da565b806395d89b41116100de57806395d89b4114610554578063a457c2d71461055c578063a9059cbb14610588578063ae167335146105b4576101da565b80637535d2461461050557806378160376146105295780637df5bd3b14610531576101da565b806323b872dd1161017c5780633644e5151161014b5780633644e5151461047f57806339509351146104875780634efecaa5146104b357806370a08231146104df576101da565b806323b872dd1461035557806330adf81f1461038b5780633118724e14610393578063313ce56714610461576101da565b80630bd7ad3b116101b85780630bd7ad3b146102db578063156e29f6146102f557806318160ddd146103275780631da24f3e1461032f576101da565b806306fdde03146101df578063095ea7b31461025c5780630afbcdc91461029c575b600080fd5b6101e76106eb565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610221578181015183820152602001610209565b50505050905090810190601f16801561024e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102886004803603604081101561027257600080fd5b506001600160a01b038135169060200135610782565b604080519115158252519081900360200190f35b6102c2600480360360208110156102b257600080fd5b50356001600160a01b03166107a0565b6040805192835260208301919091528051918290030190f35b6102e36107bd565b60408051918252519081900360200190f35b6102886004803603606081101561030b57600080fd5b506001600160a01b0381351690602081013590604001356107c2565b6102e36109ad565b6102e36004803603602081101561034557600080fd5b50356001600160a01b0316610a92565b6102886004803603606081101561036b57600080fd5b506001600160a01b03813581169160208101359091169060400135610a9d565b6102e3610b5d565b61045f600480360360608110156103a957600080fd5b60ff82351691908101906040810160208201356401000000008111156103ce57600080fd5b8201836020820111156103e057600080fd5b8035906020019184600183028401116401000000008311171561040257600080fd5b91939092909160208101903564010000000081111561042057600080fd5b82018360208201111561043257600080fd5b8035906020019184600183028401116401000000008311171561045457600080fd5b509092509050610b81565b005b610469610d5f565b6040805160ff9092168252519081900360200190f35b6102e3610d68565b6102886004803603604081101561049d57600080fd5b506001600160a01b038135169060200135610d6e565b6102e3600480360360408110156104c957600080fd5b506001600160a01b038135169060200135610dbc565b6102e3600480360360208110156104f557600080fd5b50356001600160a01b0316610e9c565b61050d610f69565b604080516001600160a01b039092168252519081900360200190f35b6101e7610f8d565b61045f6004803603604081101561054757600080fd5b5080359060200135610faa565b6101e7611142565b6102886004803603604081101561057257600080fd5b506001600160a01b0381351690602001356111a3565b6102886004803603604081101561059e57600080fd5b506001600160a01b03813516906020013561120b565b61050d611268565b61050d61128c565b6102e36112b0565b6102e3600480360360208110156105e257600080fd5b50356001600160a01b03166112bf565b6102e36112d1565b61045f600480360360e081101561061057600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356112d7565b61045f6004803603608081101561066157600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561151e565b6102e36004803603604081101561069d57600080fd5b506001600160a01b03813581169160200135166116fe565b61045f600480360360608110156106cb57600080fd5b506001600160a01b03813581169160208101359091169060400135611729565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107775780601f1061074c57610100808354040283529160200191610777565b820191906000526020600020905b81548152906001019060200180831161075a57829003601f168201915b505050505090505b90565b600061079661078f611818565b848461181c565b5060015b92915050565b6000806107ac83611908565b6107b4611923565b91509150915091565b600181565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107f6611818565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906108a45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610869578181015183820152602001610851565b50505050905090810190601f1680156108965780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060006108b085611908565b905060006108be8585611929565b6040805180820190915260028152611a9b60f11b6020820152909150816109265760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b506109318682611a30565b6040805186815290516001600160a01b038816916000916000805160206126ef8339815191529181900360200190a3604080518681526020810186905281516001600160a01b038916927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25015949350505050565b6000806109b8611923565b9050806109c957600091505061077f565b610a8c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a5957600080fd5b505afa158015610a6d573d6000803e3d6000fd5b505050506040513d6020811015610a8357600080fd5b50518290611bac565b91505090565b600061079a82611908565b6000610aaa848484611c6a565b610b1a84610ab6611818565b610b1585604051806060016040528060288152602001612699602891396001600160a01b038a16600090815260356020526040812090610af4611818565b6001600160a01b031681526020810191909152604001600020549190611c7c565b61181c565b826001600160a01b0316846001600160a01b03166000805160206126ef833981519152846040518082815260200191505060405180910390a35060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6000610b8b611cd6565b60015490915060ff1680610ba25750610ba2611cdb565b80610bae575060005481115b610be95760405162461bcd60e51b815260040180806020018281038252602e8152602001806126c1602e913960400191505060405180910390fd5b60015460ff16158015610c08576001805460ff19168117905560008290555b60004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f87876040518083838082843760408051939091018390038320838201825260018452603160f81b602094850152815180850198909852878201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060880152608087018890523060a0808901919091528151808903909101815260c08801808352815191850191909120603b5560e0601f8f01859004909402880184019091528c8152610cfc969095508d94508c93508392019050838280828437600092019190915250611ce192505050565b610d3b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611cf492505050565b610d4488611d07565b508015610d56576001805460ff191690555b50505050505050565b60395460ff1690565b603b5481565b6000610796610d7b611818565b84610b158560356000610d8c611818565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611d1d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610df0611818565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610e615760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b50610e966001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484611d7e565b50919050565b600061079a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b505050506040513d6020811015610f5857600080fd5b5051610f6384611908565b90611bac565b7f000000000000000000000000000000000000000000000000000000000000000081565b604051806040016040528060018152602001603160f81b81525081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fdc611818565b6001600160a01b03161460405180604001604052806002815260200161323960f01b8152509061104d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b50816110585761113e565b61108b7f00000000000000000000000000000000000000000000000000000000000000006110868484611929565b611a30565b6040805183815290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916000916000805160206126ef8339815191529181900360200190a3604080518381526020810183905281516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25b5050565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107775780601f1061074c57610100808354040283529160200191610777565b60006107966111b0611818565b84610b15856040518060600160405280602581526020016127a360259139603560006111da611818565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611c7c565b600061121f611218611818565b8484611c6a565b826001600160a01b0316611231611818565b6001600160a01b03166000805160206126ef833981519152846040518082815260200191505060405180910390a350600192915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006112ba611923565b905090565b603a6020526000908152604090205481565b60001981565b6001600160a01b038716611322576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22fa7aba722a960991b604482015290519081900360640190fd5b8342111561136c576040805162461bcd60e51b815260206004820152601260248201527124a72b20a624a22fa2ac2824a920aa24a7a760711b604482015290519081900360640190fd5b6001600160a01b038088166000818152603a6020908152604080832054603b5482517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958c166060860152608085018b905260a0850181905260c08086018b90528251808703909101815260e08601835280519084012061190160f01b6101008701526101028601969096526101228086019690965281518086039096018652610142850180835286519684019690962093909552610162840180825283905260ff88166101828501526101a284018790526101c284018690525191926001926101e28083019392601f198301929081900390910190855afa158015611481573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316146114e4576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b6114ef826001611d1d565b6001600160a01b038a166000908152603a602052604090205561151389898961181c565b505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611550611818565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906115c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5060006115ce8383611929565b60408051808201909152600281526106a760f31b6020820152909150816116365760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b506116418582611dd0565b6116756001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611d7e565b6040805184815290516000916001600160a01b038816916000805160206126ef8339815191529181900360200190a3836001600160a01b0316856001600160a01b03167f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa28585604051808381526020018281526020019250505060405180910390a35050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661175b611818565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906117cc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b506117da8383836000611e74565b816001600160a01b0316836001600160a01b03166000805160206126ef833981519152836040518082815260200191505060405180910390a3505050565b3390565b6001600160a01b0383166118615760405162461bcd60e51b81526004018080602001828103825260248152602001806127556024913960400191505060405180910390fd5b6001600160a01b0382166118a65760405162461bcd60e51b81526004018080602001828103825260228152602001806126516022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b031660009081526034602052604090205490565b60365490565b604080518082019091526002815261035360f41b6020820152600090826119915760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce8000000821904851115611a0d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5082816b033b2e3c9fd0803ce800000086020181611a2757fe5b04949350505050565b6001600160a01b038216611a8b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611a9760008383611c77565b603654611aa48183611d1d565b6036556001600160a01b038316600090815260346020526040902054611aca8184611d1d565b6001600160a01b038086166000908152603460205260409020919091557f00000000000000000000000000000000000000000000000000000000000000001615611ba6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8584846040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b158015611b8d57600080fd5b505af1158015611ba1573d6000803e3d6000fd5b505050505b50505050565b6000821580611bb9575081155b15611bc65750600061079a565b816b019d971e4fe8401e740000001981611bdc57fe5b0483111560405180604001604052806002815260200161068760f31b81525090611c475760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b611c778383836001611e74565b505050565b60008184841115611cce5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b505050900390565b600190565b303b1590565b805161113e906037906020840190612578565b805161113e906038906020840190612578565b6039805460ff191660ff92909216919091179055565b600082820183811015611d77576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611c77908490612093565b6001600160a01b038216611e155760405162461bcd60e51b815260040180806020018281038252602181526020018061270f6021913960400191505060405180910390fd5b611e2182600083611c77565b603654611e2e818361224b565b6036556001600160a01b0383166000908152603460209081526040918290205482516060810190935260228084529092611aca9286929061262f90830139839190611c7c565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611f0357600080fd5b505afa158015611f17573d6000803e3d6000fd5b505050506040513d6020811015611f2d57600080fd5b505190506000611f4082610f6388611908565b90506000611f5183610f6388611908565b9050611f678787611f628887611929565b61228d565b8315612037576040805163d5ed393360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015289811660248301528881166044830152606482018890526084820185905260a4820184905291517f00000000000000000000000000000000000000000000000000000000000000009092169163d5ed39339160c48082019260009290919082900301818387803b15801561201e57600080fd5b505af1158015612032573d6000803e3d6000fd5b505050505b856001600160a01b0316876001600160a01b03167f4beccb90f994c31aced7a23b5611020728a23d8ec5cddd1a3e9d97b96fda86668786604051808381526020018281526020019250505060405180910390a350505050505050565b6120a5826001600160a01b031661253c565b6120f6576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106121345780518252601f199092019160209182019101612115565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612196576040519150601f19603f3d011682016040523d82523d6000602084013e61219b565b606091505b5091509150816121f2576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611ba65780806020019051602081101561220e57600080fd5b5051611ba65760405162461bcd60e51b815260040180806020018281038252602a815260200180612779602a913960400191505060405180910390fd5b6000611d7783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c7c565b6001600160a01b0383166122d25760405162461bcd60e51b81526004018080602001828103825260258152602001806127306025913960400191505060405180910390fd5b6001600160a01b0382166123175760405162461bcd60e51b815260040180806020018281038252602381526020018061260c6023913960400191505060405180910390fd5b612322838383611c77565b600060346000856001600160a01b03166001600160a01b031681526020019081526020016000205490506123718260405180606001604052806026815260200161267360269139839190611c7c565b6001600160a01b0380861660009081526034602052604080822093909355908516815220546123a08184611d1d565b6001600160a01b038086166000908152603460205260409020919091557f0000000000000000000000000000000000000000000000000000000000000000161561253557600060365490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8783866040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561246a57600080fd5b505af115801561247e573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b031614612533577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8683856040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561251a57600080fd5b505af115801561252e573d6000803e3d6000fd5b505050505b505b5050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061257057508115155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125b957805160ff19168380011785556125e6565b828001600101855582156125e6579182015b828111156125e65782518255916020019190600101906125cb565b506125f29291506125f6565b5090565b5b808211156125f257600081556001016125f756fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205b0b3f9168c0027abdb233b4a23c4f38cfbd6a90a7056c9499a7c33a6c77b8c464736f6c634300060c0033"
+ var ATokensAndRatesHelperBin = "0x60806040523480156200001157600080fd5b5060405162004cd538038062004cd58339810160408190526200003491620000d1565b600062000040620000cd565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039485166001600160a01b0319918216179091556002805493851693821693909317909255600380549190931691161790556200013d565b3390565b600080600060608486031215620000e6578283fd5b8351620000f38162000124565b6020850151909350620001068162000124565b6040850151909250620001198162000124565b809150509250925092565b6001600160a01b03811681146200013a57600080fd5b50565b614b88806200014d6000396000f3fe60806040523480156200001157600080fd5b50600436106200006a5760003560e01c8063715018a6146200006f5780637f11f88d146200007b5780638cd5cc6014620000925780638da5cb5b14620000a9578063f2fde38b14620000cb578063f62be74914620000e2575b600080fd5b62000079620000f9565b005b620000796200008c36600462000cab565b62000186565b62000079620000a336600462000bb6565b6200043e565b620000b362000767565b604051620000c2919062000ea0565b60405180910390f35b62000079620000dc36600462000a96565b62000776565b62000079620000f336600462000abb565b62000834565b62000103620009e3565b6000546001600160a01b039081169116146200013c5760405162461bcd60e51b8152600401620001339062001072565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b62000190620009e3565b6000546001600160a01b03908116911614620001c05760405162461bcd60e51b8152600401620001339062001072565b888b14620001cd57600080fd5b868b14620001da57600080fd5b848b14620001e757600080fd5b808b14620001f457600080fd5b828b146200020157600080fd5b6003546001600160a01b031660005b8c8110156200042e57816001600160a01b0316637c4e560b8f8f848181106200023557fe5b90506020020160208101906200024c919062000a96565b8e8e858181106200025957fe5b905060200201358d8d868181106200026d57fe5b905060200201358c8c878181106200028157fe5b905060200201356040518563ffffffff1660e01b8152600401620002a9949392919062000f35565b600060405180830381600087803b158015620002c457600080fd5b505af1158015620002d9573d6000803e3d6000fd5b50505050816001600160a01b031663eede87c18f8f84818110620002f957fe5b905060200201602081019062000310919062000a96565b8686858181106200031d57fe5b905060200201602081019062000334919062000dfa565b6040518363ffffffff1660e01b81526004016200035392919062000f01565b600060405180830381600087803b1580156200036e57600080fd5b505af115801562000383573d6000803e3d6000fd5b50505050816001600160a01b0316634b4e67538f8f84818110620003a357fe5b9050602002016020810190620003ba919062000a96565b888885818110620003c757fe5b905060200201356040518363ffffffff1660e01b8152600401620003ed92919062000f1c565b600060405180830381600087803b1580156200040857600080fd5b505af11580156200041d573d6000803e3d6000fd5b505060019092019150620002109050565b5050505050505050505050505050565b62000448620009e3565b6000546001600160a01b03908116911614620004785760405162461bcd60e51b8152600401620001339062001072565b8685146200049a5760405162461bcd60e51b815260040162000133906200103b565b828514620004bc5760405162461bcd60e51b81526004016200013390620010a7565b60005b878110156200075c576001547f1c1768aab1796270c7034dc781c2951065e6afb7a946269746521002443b8ea4906001600160a01b03168a8a848181106200050357fe5b90506020020160208101906200051a919062000a96565b85620005aa60405180604001604052806016815260200175020b0bb329034b73a32b932b9ba103132b0b934b733960551b8152508c8c888181106200055b57fe5b90506020028101906200056f9190620010de565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250620009e792505050565b620005d5604051806040016040528060018152602001606160f81b8152508d8d898181106200055b57fe5b87604051620005e49062000a16565b620005f59695949392919062000f96565b604051809103906000f08015801562000612573d6000803e3d6000fd5b506002546001600160a01b03168787858181106200062c57fe5b905060c002016000600681106200063f57fe5b60200201358888868181106200065157fe5b905060c002016001600681106200066457fe5b60200201358989878181106200067657fe5b905060c002016002600681106200068957fe5b60200201358a8a888181106200069b57fe5b905060c00201600360068110620006ae57fe5b60200201358b8b89818110620006c057fe5b905060c00201600460068110620006d357fe5b60200201358c8c8a818110620006e557fe5b905060c00201600560068110620006f857fe5b60200201356040516200070b9062000a24565b6200071d979695949392919062000f5b565b604051809103906000f0801580156200073a573d6000803e3d6000fd5b506040516200074b92919062000eb4565b60405180910390a1600101620004bf565b505050505050505050565b6000546001600160a01b031690565b62000780620009e3565b6000546001600160a01b03908116911614620007b05760405162461bcd60e51b8152600401620001339062001072565b6001600160a01b038116620007d95760405162461bcd60e51b8152600401620001339062000ff5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6200083e620009e3565b6000546001600160a01b039081169116146200086e5760405162461bcd60e51b8152600401620001339062001072565b8689146200087b57600080fd5b8489146200088857600080fd5b8289146200089557600080fd5b808914620008a257600080fd5b60005b89811015620009d6576003546001600160a01b0316636e801a71888884818110620008cc57fe5b9050602002016020810190620008e3919062000a96565b8d8d85818110620008f057fe5b905060200201602081019062000907919062000a96565b8c8c868181106200091457fe5b90506020020160208101906200092b919062000a96565b8787878181106200093857fe5b90506020020160208101906200094f919062000e1c565b8a8a888181106200095c57fe5b905060200201602081019062000973919062000a96565b6040518663ffffffff1660e01b81526004016200099595949392919062000ece565b600060405180830381600087803b158015620009b057600080fd5b505af1158015620009c5573d6000803e3d6000fd5b505060019092019150620008a59050565b5050505050505050505050565b3390565b60608282604051602001620009fe92919062000e6d565b60405160208183030381529060405290505b92915050565b612b84806200115a83390190565b610e758062003cde83390190565b80356001600160a01b038116811462000a1057600080fd5b60008083601f84011262000a5c578182fd5b50813567ffffffffffffffff81111562000a74578182fd5b602083019150836020808302850101111562000a8f57600080fd5b9250929050565b60006020828403121562000aa8578081fd5b62000ab4838362000a32565b9392505050565b60008060008060008060008060008060a08b8d03121562000ada578586fd5b8a3567ffffffffffffffff8082111562000af2578788fd5b62000b008e838f0162000a4a565b909c509a5060208d013591508082111562000b19578788fd5b62000b278e838f0162000a4a565b909a50985060408d013591508082111562000b40578788fd5b62000b4e8e838f0162000a4a565b909850965060608d013591508082111562000b67578586fd5b62000b758e838f0162000a4a565b909650945060808d013591508082111562000b8e578384fd5b5062000b9d8d828e0162000a4a565b915080935050809150509295989b9194979a5092959850565b60008060008060008060008060a0898b03121562000bd2578384fd5b883567ffffffffffffffff8082111562000bea578586fd5b62000bf88c838d0162000a4a565b909a50985060208b013591508082111562000c11578586fd5b62000c1f8c838d0162000a4a565b909850965060408b013591508082111562000c38578586fd5b818b0191508b601f83011262000c4c578586fd5b81358181111562000c5b578687fd5b8c602060c08302850101111562000c70578687fd5b60208301965080955050505062000c8b8a60608b0162000a32565b915062000c9c8a60808b0162000a32565b90509295985092959890939650565b60008060008060008060008060008060008060c08d8f03121562000ccd578081fd5b67ffffffffffffffff8d35111562000ce3578081fd5b62000cf28e8e358f0162000a4a565b909c509a5067ffffffffffffffff60208e0135111562000d10578081fd5b62000d228e60208f01358f0162000a4a565b909a50985067ffffffffffffffff60408e0135111562000d40578081fd5b62000d528e60408f01358f0162000a4a565b909850965067ffffffffffffffff60608e0135111562000d70578081fd5b62000d828e60608f01358f0162000a4a565b909650945067ffffffffffffffff60808e0135111562000da0578081fd5b62000db28e60808f01358f0162000a4a565b909450925067ffffffffffffffff60a08e0135111562000dd0578081fd5b62000de28e60a08f01358f0162000a4a565b81935080925050509295989b509295989b509295989b565b60006020828403121562000e0c578081fd5b8135801515811462000ab4578182fd5b60006020828403121562000e2e578081fd5b813560ff8116811462000ab4578182fd5b6000815180845262000e5981602086016020860162001126565b601f01601f19169290920160200192915050565b6000835162000e8181846020880162001126565b83519083019062000e9781836020880162001126565b01949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0395861681529385166020850152918416604084015260ff166060830152909116608082015260a00190565b6001600160a01b039290921682521515602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6001600160a01b03979097168752602087019590955260408601939093526060850191909152608084015260a083015260c082015260e00190565b600060018060a01b0380891683528088166020840152808716604084015260c0606084015262000fca60c084018762000e3f565b838103608085015262000fde818762000e3f565b92505080841660a084015250979650505050505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526018908201527f7420417272617973206e6f742073616d65206c656e6774680000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526018908201527f7220417272617973206e6f742073616d65206c656e6774680000000000000000604082015260600190565b6000808335601e19843603018112620010f5578283fd5b83018035915067ffffffffffffffff82111562001110578283fd5b60200191503681900382131562000a8f57600080fd5b60005b838110156200114357818101518382015260200162001129565b8381111562001153576000848401525b5050505056fe610100604052600080553480156200001657600080fd5b5060405162002b8438038062002b84833981810160405260c08110156200003c57600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200007057600080fd5b9083019060208201858111156200008657600080fd5b8251640100000000811182820188101715620000a157600080fd5b82525081516020918201929091019080838360005b83811015620000d0578181015183820152602001620000b6565b50505050905090810190601f168015620000fe5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012257600080fd5b9083019060208201858111156200013857600080fd5b82516401000000008111828201881017156200015357600080fd5b82525081516020918201929091019080838360005b838110156200018257818101518382015260200162000168565b50505050905090810190601f168015620001b05780820380516001836020036101000a031916815260200191505b50604052602090810151855190935085925084916012918591620001da916037918701906200023b565b508251620001f09060389060208601906200023b565b506039805460ff90931660ff19909316929092179091556001600160601b0319606091821b811660805298811b891660e05296871b881660a0525050505050901b1660c052620002d7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200027e57805160ff1916838001178555620002ae565b82800160010185558215620002ae579182015b82811115620002ae57825182559160200191906001019062000291565b50620002bc929150620002c0565b5090565b5b80821115620002bc5760008155600101620002c1565b60805160601c60a05160601c60c05160601c60e05160601c6127fd62000387600039806107c652806109ce5280610dc05280610ea35280610f6b5280610fac5280611520528061172b5280611e785280611fd452508061105d528061109e52806110f4528061126a5250806109fd5280610e6f5280610ed2528061128e528061164e5280611ea75280611f85525080611ae95280611b1052806123bf52806123ed528061249d52506127fd6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80637535d24611610104578063b16a19de116100a2578063d505accf11610071578063d505accf146105fa578063d7020d0a1461064b578063dd62ed3e14610687578063f866c319146106b5576101da565b8063b16a19de146105bc578063b1bf962d146105c4578063b9844d8d146105cc578063d0fc81d2146105f2576101da565b806395d89b41116100de57806395d89b4114610554578063a457c2d71461055c578063a9059cbb14610588578063ae167335146105b4576101da565b80637535d2461461050557806378160376146105295780637df5bd3b14610531576101da565b806323b872dd1161017c5780633644e5151161014b5780633644e5151461047f57806339509351146104875780634efecaa5146104b357806370a08231146104df576101da565b806323b872dd1461035557806330adf81f1461038b5780633118724e14610393578063313ce56714610461576101da565b80630bd7ad3b116101b85780630bd7ad3b146102db578063156e29f6146102f557806318160ddd146103275780631da24f3e1461032f576101da565b806306fdde03146101df578063095ea7b31461025c5780630afbcdc91461029c575b600080fd5b6101e76106eb565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610221578181015183820152602001610209565b50505050905090810190601f16801561024e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102886004803603604081101561027257600080fd5b506001600160a01b038135169060200135610782565b604080519115158252519081900360200190f35b6102c2600480360360208110156102b257600080fd5b50356001600160a01b03166107a0565b6040805192835260208301919091528051918290030190f35b6102e36107bd565b60408051918252519081900360200190f35b6102886004803603606081101561030b57600080fd5b506001600160a01b0381351690602081013590604001356107c2565b6102e36109ad565b6102e36004803603602081101561034557600080fd5b50356001600160a01b0316610a92565b6102886004803603606081101561036b57600080fd5b506001600160a01b03813581169160208101359091169060400135610a9d565b6102e3610b5d565b61045f600480360360608110156103a957600080fd5b60ff82351691908101906040810160208201356401000000008111156103ce57600080fd5b8201836020820111156103e057600080fd5b8035906020019184600183028401116401000000008311171561040257600080fd5b91939092909160208101903564010000000081111561042057600080fd5b82018360208201111561043257600080fd5b8035906020019184600183028401116401000000008311171561045457600080fd5b509092509050610b81565b005b610469610d5f565b6040805160ff9092168252519081900360200190f35b6102e3610d68565b6102886004803603604081101561049d57600080fd5b506001600160a01b038135169060200135610d6e565b6102e3600480360360408110156104c957600080fd5b506001600160a01b038135169060200135610dbc565b6102e3600480360360208110156104f557600080fd5b50356001600160a01b0316610e9c565b61050d610f69565b604080516001600160a01b039092168252519081900360200190f35b6101e7610f8d565b61045f6004803603604081101561054757600080fd5b5080359060200135610faa565b6101e7611142565b6102886004803603604081101561057257600080fd5b506001600160a01b0381351690602001356111a3565b6102886004803603604081101561059e57600080fd5b506001600160a01b03813516906020013561120b565b61050d611268565b61050d61128c565b6102e36112b0565b6102e3600480360360208110156105e257600080fd5b50356001600160a01b03166112bf565b6102e36112d1565b61045f600480360360e081101561061057600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356112d7565b61045f6004803603608081101561066157600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561151e565b6102e36004803603604081101561069d57600080fd5b506001600160a01b03813581169160200135166116fe565b61045f600480360360608110156106cb57600080fd5b506001600160a01b03813581169160208101359091169060400135611729565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107775780601f1061074c57610100808354040283529160200191610777565b820191906000526020600020905b81548152906001019060200180831161075a57829003601f168201915b505050505090505b90565b600061079661078f611818565b848461181c565b5060015b92915050565b6000806107ac83611908565b6107b4611923565b91509150915091565b600181565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107f6611818565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906108a45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610869578181015183820152602001610851565b50505050905090810190601f1680156108965780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060006108b085611908565b905060006108be8585611929565b6040805180820190915260028152611a9b60f11b6020820152909150816109265760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b506109318682611a30565b6040805186815290516001600160a01b038816916000916000805160206126ef8339815191529181900360200190a3604080518681526020810186905281516001600160a01b038916927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25015949350505050565b6000806109b8611923565b9050806109c957600091505061077f565b610a8c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a5957600080fd5b505afa158015610a6d573d6000803e3d6000fd5b505050506040513d6020811015610a8357600080fd5b50518290611bac565b91505090565b600061079a82611908565b6000610aaa848484611c6a565b610b1a84610ab6611818565b610b1585604051806060016040528060288152602001612699602891396001600160a01b038a16600090815260356020526040812090610af4611818565b6001600160a01b031681526020810191909152604001600020549190611c7c565b61181c565b826001600160a01b0316846001600160a01b03166000805160206126ef833981519152846040518082815260200191505060405180910390a35060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6000610b8b611cd6565b60015490915060ff1680610ba25750610ba2611cdb565b80610bae575060005481115b610be95760405162461bcd60e51b815260040180806020018281038252602e8152602001806126c1602e913960400191505060405180910390fd5b60015460ff16158015610c08576001805460ff19168117905560008290555b60004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f87876040518083838082843760408051939091018390038320838201825260018452603160f81b602094850152815180850198909852878201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060880152608087018890523060a0808901919091528151808903909101815260c08801808352815191850191909120603b5560e0601f8f01859004909402880184019091528c8152610cfc969095508d94508c93508392019050838280828437600092019190915250611ce192505050565b610d3b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611cf492505050565b610d4488611d07565b508015610d56576001805460ff191690555b50505050505050565b60395460ff1690565b603b5481565b6000610796610d7b611818565b84610b158560356000610d8c611818565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611d1d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610df0611818565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610e615760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b50610e966001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484611d7e565b50919050565b600061079a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b505050506040513d6020811015610f5857600080fd5b5051610f6384611908565b90611bac565b7f000000000000000000000000000000000000000000000000000000000000000081565b604051806040016040528060018152602001603160f81b81525081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fdc611818565b6001600160a01b03161460405180604001604052806002815260200161323960f01b8152509061104d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b50816110585761113e565b61108b7f00000000000000000000000000000000000000000000000000000000000000006110868484611929565b611a30565b6040805183815290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916000916000805160206126ef8339815191529181900360200190a3604080518381526020810183905281516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25b5050565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107775780601f1061074c57610100808354040283529160200191610777565b60006107966111b0611818565b84610b15856040518060600160405280602581526020016127a360259139603560006111da611818565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611c7c565b600061121f611218611818565b8484611c6a565b826001600160a01b0316611231611818565b6001600160a01b03166000805160206126ef833981519152846040518082815260200191505060405180910390a350600192915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006112ba611923565b905090565b603a6020526000908152604090205481565b60001981565b6001600160a01b038716611322576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22fa7aba722a960991b604482015290519081900360640190fd5b8342111561136c576040805162461bcd60e51b815260206004820152601260248201527124a72b20a624a22fa2ac2824a920aa24a7a760711b604482015290519081900360640190fd5b6001600160a01b038088166000818152603a6020908152604080832054603b5482517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958c166060860152608085018b905260a0850181905260c08086018b90528251808703909101815260e08601835280519084012061190160f01b6101008701526101028601969096526101228086019690965281518086039096018652610142850180835286519684019690962093909552610162840180825283905260ff88166101828501526101a284018790526101c284018690525191926001926101e28083019392601f198301929081900390910190855afa158015611481573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316146114e4576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b6114ef826001611d1d565b6001600160a01b038a166000908152603a602052604090205561151389898961181c565b505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611550611818565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906115c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5060006115ce8383611929565b60408051808201909152600281526106a760f31b6020820152909150816116365760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b506116418582611dd0565b6116756001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611d7e565b6040805184815290516000916001600160a01b038816916000805160206126ef8339815191529181900360200190a3836001600160a01b0316856001600160a01b03167f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa28585604051808381526020018281526020019250505060405180910390a35050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661175b611818565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906117cc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b506117da8383836000611e74565b816001600160a01b0316836001600160a01b03166000805160206126ef833981519152836040518082815260200191505060405180910390a3505050565b3390565b6001600160a01b0383166118615760405162461bcd60e51b81526004018080602001828103825260248152602001806127556024913960400191505060405180910390fd5b6001600160a01b0382166118a65760405162461bcd60e51b81526004018080602001828103825260228152602001806126516022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b031660009081526034602052604090205490565b60365490565b604080518082019091526002815261035360f41b6020820152600090826119915760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce8000000821904851115611a0d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5082816b033b2e3c9fd0803ce800000086020181611a2757fe5b04949350505050565b6001600160a01b038216611a8b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611a9760008383611c77565b603654611aa48183611d1d565b6036556001600160a01b038316600090815260346020526040902054611aca8184611d1d565b6001600160a01b038086166000908152603460205260409020919091557f00000000000000000000000000000000000000000000000000000000000000001615611ba6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8584846040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b158015611b8d57600080fd5b505af1158015611ba1573d6000803e3d6000fd5b505050505b50505050565b6000821580611bb9575081155b15611bc65750600061079a565b816b019d971e4fe8401e740000001981611bdc57fe5b0483111560405180604001604052806002815260200161068760f31b81525090611c475760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b611c778383836001611e74565b505050565b60008184841115611cce5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b505050900390565b600190565b303b1590565b805161113e906037906020840190612578565b805161113e906038906020840190612578565b6039805460ff191660ff92909216919091179055565b600082820183811015611d77576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611c77908490612093565b6001600160a01b038216611e155760405162461bcd60e51b815260040180806020018281038252602181526020018061270f6021913960400191505060405180910390fd5b611e2182600083611c77565b603654611e2e818361224b565b6036556001600160a01b0383166000908152603460209081526040918290205482516060810190935260228084529092611aca9286929061262f90830139839190611c7c565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611f0357600080fd5b505afa158015611f17573d6000803e3d6000fd5b505050506040513d6020811015611f2d57600080fd5b505190506000611f4082610f6388611908565b90506000611f5183610f6388611908565b9050611f678787611f628887611929565b61228d565b8315612037576040805163d5ed393360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015289811660248301528881166044830152606482018890526084820185905260a4820184905291517f00000000000000000000000000000000000000000000000000000000000000009092169163d5ed39339160c48082019260009290919082900301818387803b15801561201e57600080fd5b505af1158015612032573d6000803e3d6000fd5b505050505b856001600160a01b0316876001600160a01b03167f4beccb90f994c31aced7a23b5611020728a23d8ec5cddd1a3e9d97b96fda86668786604051808381526020018281526020019250505060405180910390a350505050505050565b6120a5826001600160a01b031661253c565b6120f6576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106121345780518252601f199092019160209182019101612115565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612196576040519150601f19603f3d011682016040523d82523d6000602084013e61219b565b606091505b5091509150816121f2576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611ba65780806020019051602081101561220e57600080fd5b5051611ba65760405162461bcd60e51b815260040180806020018281038252602a815260200180612779602a913960400191505060405180910390fd5b6000611d7783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c7c565b6001600160a01b0383166122d25760405162461bcd60e51b81526004018080602001828103825260258152602001806127306025913960400191505060405180910390fd5b6001600160a01b0382166123175760405162461bcd60e51b815260040180806020018281038252602381526020018061260c6023913960400191505060405180910390fd5b612322838383611c77565b600060346000856001600160a01b03166001600160a01b031681526020019081526020016000205490506123718260405180606001604052806026815260200161267360269139839190611c7c565b6001600160a01b0380861660009081526034602052604080822093909355908516815220546123a08184611d1d565b6001600160a01b038086166000908152603460205260409020919091557f0000000000000000000000000000000000000000000000000000000000000000161561253557600060365490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8783866040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561246a57600080fd5b505af115801561247e573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b031614612533577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8683856040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561251a57600080fd5b505af115801561252e573d6000803e3d6000fd5b505050505b505b5050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061257057508115155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125b957805160ff19168380011785556125e6565b828001600101855582156125e6579182015b828111156125e65782518255916020019190600101906125cb565b506125f29291506125f6565b5090565b5b808211156125f257600081556001016125f756fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205b0b3f9168c0027abdb233b4a23c4f38cfbd6a90a7056c9499a7c33a6c77b8c464736f6c634300060c003361018060405234801561001157600080fd5b50604051610e75380380610e75833981810160405260e081101561003457600080fd5b5080516020808301516040840151606085015160808087015160a088015160c0909801519185905295969395929491939161008e90879061007c9061070c6100c3821b17901c565b6100d360201b61071c1790919060201c565b60a05260609690961b6001600160601b03191660c05260e09390935261010091909152610120526101405250610160526101b9565b6b033b2e3c9fd0803ce800000090565b600061011b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061012260201b60201c565b9392505050565b600081848411156101b15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561017657818101518382015260200161015e565b50505050905090810190601f1680156101a35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60805160a05160c05160601c60e05161010051610120516101405161016051610c0761026e6000398061046852806106ea52508061017d528061049852806105755250806101c5528061021252806104c95250806101e95280610257528061051452806105d752508061023652806104f352806105fd52806106a25250806102e252806106c65250806101a1528061040f5250806103e25280610434528061054f52806105b2528061067e5250610c076000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80639584df28116100665780639584df28146100dd578063a15f30ac1461013f578063b258954414610147578063c72c4d101461014f578063ccab01a3146101735761009e565b80630bdf953f146100a357806317319873146100bd57806365614f81146100c55780637b832f58146100cd57806380031e37146100d5575b600080fd5b6100ab61017b565b60408051918252519081900360200190f35b6100ab61019f565b6100ab6101c3565b6100ab6101e7565b6100ab61020b565b610121600480360360c08110156100f357600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a00135610286565b60408051938452602084019290925282820152519081900360600190f35b6100ab61067c565b6100ab6106a0565b6101576106c4565b604080516001600160a01b039092168252519081900360200190f35b6100ab6106e8565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006102817f000000000000000000000000000000000000000000000000000000000000000061027b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610767565b90610767565b905090565b6000806000610293610ba2565b61029d8888610767565b808252600060208301819052604083018190526060830181905290156102db5781516102d6906102ce908c90610767565b8351906107c1565b6102de565b60005b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633618abba6040518163ffffffff1660e01b815260040160206040518083038186803b15801561033957600080fd5b505afa15801561034d573d6000803e3d6000fd5b505050506040513d602081101561036357600080fd5b50516040805163bb85c0bb60e01b81526001600160a01b038e811660048301529151919092169163bb85c0bb916024808301926020929190829003018186803b1580156103af57600080fd5b505afa1580156103c3573d6000803e3d6000fd5b505050506040513d60208110156103d957600080fd5b505160408301527f000000000000000000000000000000000000000000000000000000000000000081111561054357600061045e7f0000000000000000000000000000000000000000000000000000000000000000610458847f000000000000000000000000000000000000000000000000000000000000000061071c565b906107c1565b90506104bc61048d7f000000000000000000000000000000000000000000000000000000000000000083610905565b604085015161027b907f0000000000000000000000000000000000000000000000000000000000000000610767565b60408401526105386104ee7f000000000000000000000000000000000000000000000000000000000000000083610905565b61027b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610767565b602084015250610628565b6105a561059a610573837f00000000000000000000000000000000000000000000000000000000000000006107c1565b7f000000000000000000000000000000000000000000000000000000000000000090610905565b604084015190610767565b60408301526106226105fb7f0000000000000000000000000000000000000000000000000000000000000000610458847f0000000000000000000000000000000000000000000000000000000000000000610905565b7f000000000000000000000000000000000000000000000000000000000000000090610767565b60208301525b6106576106376127108861071c565b6106518361064b8d8d88602001518e6109c6565b90610905565b90610a2d565b606083018190526040830151602090930151909c929b50995090975050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000090565b6b033b2e3c9fd0803ce800000090565b600061075e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610aca565b90505b92915050565b60008282018381101561075e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080518082019091526002815261035360f41b6020820152600090826108665760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561082b578181015183820152602001610813565b50505050905090810190601f1680156108585780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156108e25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561082b578181015183820152602001610813565b5082816b033b2e3c9fd0803ce8000000860201816108fc57fe5b04949350505050565b6000821580610912575081155b1561091f57506000610761565b816b019d971e4fe8401e74000000198161093557fe5b0483111560405180604001604052806002815260200161068760f31b815250906109a05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561082b578181015183820152602001610813565b506b033b2e3c9fd0803ce80000006002815b0483850201816109be57fe5b049392505050565b6000806109d38686610767565b9050806109e4576000915050610a25565b60006109f38561064b88610b24565b90506000610a048561064b8a610b24565b90506000610a1e610a1485610b24565b6104588585610767565b9450505050505b949350505050565b6000821580610a3a575081155b15610a4757506000610761565b816113881981610a5357fe5b0483111560405180604001604052806002815260200161068760f31b81525090610abe5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561082b578181015183820152602001610813565b506127106002816109b2565b60008184841115610b1c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561082b578181015183820152602001610813565b505050900390565b6000633b9aca0082810290839082041460405180604001604052806002815260200161068760f31b81525090610b9b5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561082b578181015183820152602001610813565b5092915050565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fea2646970667358221220e2814b5d9722115d8879b36b40da5284349e8d6b3d0e0bdaf722d365af5e076564736f6c634300060c0033a26469706673582212207b0ba2ce4abae979ce50f4714001c70d1b0102541f1af196681beb6d7a8a672764736f6c634300060c0033"
+ var AaveOracleBin = "0x60a06040523480156200001157600080fd5b5060405162000ead38038062000ead833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82518660208202830111640100000000821117156200008c57600080fd5b82525081516020918201928201910280838360005b83811015620000bb578181015183820152602001620000a1565b5050505090500160405260200180516040519392919084640100000000821115620000e557600080fd5b908301906020820185811115620000fb57600080fd5b82518660208202830111640100000000821117156200011957600080fd5b82525081516020918201928201910280838360005b83811015620001485781810151838201526020016200012e565b505050509190910160409081526020830151920151919350909150600090506200017162000222565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001c68262000226565b620001d2848462000270565b6001600160601b0319606082901b166080526040516001600160a01b038216907f13a533084dcbb1cfe0dbea708ea977223c27c44d94f2fa3867a167c9cd340bf990600090a250505050620003bc565b3390565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fce7a780d33665b1ea097af5f155e3821b809ecbaa839d3b33aa83ba28168cefb90600090a250565b8051825114620002c7576040805162461bcd60e51b815260206004820152601a60248201527f494e434f4e53495354454e545f504152414d535f4c454e475448000000000000604482015290519081900360640190fd5b60005b8251811015620003b757818181518110620002e157fe5b602002602001015160016000858481518110620002fa57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508181815181106200035357fe5b60200260200101516001600160a01b03168382815181106200037157fe5b60200260200101516001600160a01b03167f22c5b7b2d8561d39f7f210b6b326a1aa69f15311163082308ac4877db6339dc160405160405180910390a3600101620002ca565b505050565b60805160601c610ace620003df600039806105bc52806106005250610ace6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80639d23d9f2116100665780639d23d9f214610125578063abfd5310146101e5578063ad5c4648146102a7578063b3596f07146102af578063f2fde38b146102e75761009e565b8063170aee73146100a35780636210308c146100cb578063715018a6146100ef5780638da5cb5b146100f757806392bf2be0146100ff575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b031661030d565b005b6100d3610371565b604080516001600160a01b039092168252519081900360200190f35b6100c9610380565b6100d3610422565b6100d36004803603602081101561011557600080fd5b50356001600160a01b0316610431565b6101956004803603602081101561013b57600080fd5b81019060208101813564010000000081111561015657600080fd5b82018360208201111561016857600080fd5b8035906020019184602083028401116401000000008311171561018a57600080fd5b509092509050610452565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101d15781810151838201526020016101b9565b505050509050019250505060405180910390f35b6100c9600480360360408110156101fb57600080fd5b81019060208101813564010000000081111561021657600080fd5b82018360208201111561022857600080fd5b8035906020019184602083028401116401000000008311171561024a57600080fd5b91939092909160208101903564010000000081111561026857600080fd5b82018360208201111561027a57600080fd5b8035906020019184602083028401116401000000008311171561029c57600080fd5b5090925090506104ef565b6100d36105ba565b6102d5600480360360208110156102c557600080fd5b50356001600160a01b03166105de565b60408051918252519081900360200190f35b6100c9600480360360208110156102fd57600080fd5b50356001600160a01b03166107c7565b6103156108bf565b6000546001600160a01b03908116911614610365576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b61036e816108c3565b50565b6002546001600160a01b031690565b6103886108bf565b6000546001600160a01b039081169116146103d8576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6001600160a01b03808216600090815260016020526040902054165b919050565b6060808267ffffffffffffffff8111801561046c57600080fd5b50604051908082528060200260200182016040528015610496578160200160208202803683370190505b50905060005b838110156104e7576104c88585838181106104b357fe5b905060200201356001600160a01b03166105de565b8282815181106104d457fe5b602090810291909101015260010161049c565b509392505050565b6104f76108bf565b6000546001600160a01b03908116911614610547576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b6105b48484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080880282810182019093528782529093508792508691829185019084908082843760009201919091525061090d92505050565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b038082166000818152600160205260408120549092908116917f0000000000000000000000000000000000000000000000000000000000000000909116141561063957670de0b6b3a764000091505061044d565b6001600160a01b0381166106c9576002546040805163b3596f0760e01b81526001600160a01b0386811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561069457600080fd5b505afa1580156106a8573d6000803e3d6000fd5b505050506040513d60208110156106be57600080fd5b5051915061044d9050565b6000816001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561070457600080fd5b505afa158015610718573d6000803e3d6000fd5b505050506040513d602081101561072e57600080fd5b50519050600081131561074457915061044d9050565b6002546040805163b3596f0760e01b81526001600160a01b0387811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561079157600080fd5b505afa1580156107a5573d6000803e3d6000fd5b505050506040513d60208110156107bb57600080fd5b5051925061044d915050565b6107cf6108bf565b6000546001600160a01b0390811691161461081f576040805162461bcd60e51b81526020600482018190526024820152600080516020610a79833981519152604482015290519081900360640190fd5b6001600160a01b0381166108645760405162461bcd60e51b8152600401808060200182810382526026815260200180610a536026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fce7a780d33665b1ea097af5f155e3821b809ecbaa839d3b33aa83ba28168cefb90600090a250565b8051825114610963576040805162461bcd60e51b815260206004820152601a60248201527f494e434f4e53495354454e545f504152414d535f4c454e475448000000000000604482015290519081900360640190fd5b60005b8251811015610a4d5781818151811061097b57fe5b60200260200101516001600085848151811061099357fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508181815181106109eb57fe5b60200260200101516001600160a01b0316838281518110610a0857fe5b60200260200101516001600160a01b03167f22c5b7b2d8561d39f7f210b6b326a1aa69f15311163082308ac4877db6339dc160405160405180910390a3600101610966565b50505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220f2d473c7c44ff4aeb5f5df00a1fbf0146d84a2110fba9e25484cc09e378238b564736f6c634300060c0033"
+ var AaveProtocolDataProviderBin = "0x60a060405234801561001057600080fd5b50604051611be3380380611be383398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c611b316100b26000398061015b528061019552806102ac52806107a75280610b2b5280610c7b5280610ff952806111295250611b316000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633e1501411161005b5780633e150141146100f1578063b316ff891461011a578063d2493b6c1461012f578063f561ae41146101515761007d565b80630542975c1461008257806328dd2d01146100a057806335ea6a75146100c8575b600080fd5b61008a610159565b60405161009791906118e3565b60405180910390f35b6100b36100ae3660046115f5565b61017d565b60405161009799989796959493929190611a44565b6100db6100d63660046115b6565b61078e565b6040516100979a999897969594939291906119f8565b6101046100ff3660046115b6565b610b12565b6040516100979a999897969594939291906119a9565b610122610c75565b604051610097919061191a565b61014261013d3660046115b6565b610fea565b604051610097939291906118f7565b610122611123565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060008060008060008060006101936114b3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101ec57600080fd5b505afa158015610200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022491906115d9565b6001600160a01b03166335ea6a758d6040518263ffffffff1660e01b815260040161024f91906118e3565b6101806040518083038186803b15801561026857600080fd5b505afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a0919061177f565b90506102aa61151e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561030357600080fd5b505afa158015610317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033b91906115d9565b6001600160a01b0316634417a5838d6040518263ffffffff1660e01b815260040161036691906118e3565b60206040518083038186803b15801561037e57600080fd5b505afa158015610392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b69190611764565b60e08301516040516370a0823160e01b81529192506001600160a01b0316906370a08231906103e9908f906004016118e3565b60206040518083038186803b15801561040157600080fd5b505afa158015610415573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610439919061187a565b6101208301516040516370a0823160e01b8152919c506001600160a01b0316906370a082319061046d908f906004016118e3565b60206040518083038186803b15801561048557600080fd5b505afa158015610499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bd919061187a565b6101008301516040516370a0823160e01b8152919a506001600160a01b0316906370a08231906104f1908f906004016118e3565b60206040518083038186803b15801561050957600080fd5b505afa15801561051d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610541919061187a565b61010083015160405163631a6fd560e11b8152919b506001600160a01b03169063c634dfaa90610575908f906004016118e3565b60206040518083038186803b15801561058d57600080fd5b505afa1580156105a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c5919061187a565b610120830151604051630ed1279f60e11b81529199506001600160a01b031690631da24f3e906105f9908f906004016118e3565b60206040518083038186803b15801561061157600080fd5b505afa158015610625573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610649919061187a565b965081606001516001600160801b031694508161010001516001600160a01b031663e78c9b3b8d6040518263ffffffff1660e01b815260040161068c91906118e3565b60206040518083038186803b1580156106a457600080fd5b505afa1580156106b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106dc919061187a565b610100830151604051631e739ae360e21b81529197506001600160a01b0316906379ce6b8c90610710908f906004016118e3565b60206040518083038186803b15801561072857600080fd5b505afa15801561073c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107609190611892565b935061077d82610160015160ff16826113ea90919063ffffffff16565b925050509295985092959850929598565b6000806000806000806000806000806107a56114b3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107fe57600080fd5b505afa158015610812573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083691906115d9565b6001600160a01b03166335ea6a758d6040518263ffffffff1660e01b815260040161086191906118e3565b6101806040518083038186803b15801561087a57600080fd5b505afa15801561088e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b2919061177f565b60e08101516040516370a0823160e01b81529192506001600160a01b038e16916370a08231916108e4916004016118e3565b60206040518083038186803b1580156108fc57600080fd5b505afa158015610910573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610934919061187a565b8161010001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061187a565b8261012001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e857600080fd5b505afa1580156109fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a20919061187a565b836060015184608001518560a001518661010001516001600160a01b03166390f6fcf26040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6d57600080fd5b505afa158015610a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa5919061187a565b876020015188604001518960c00151866001600160801b03169650856001600160801b03169550846001600160801b03169450826001600160801b03169250816001600160801b031691509a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b600080600080600080600080600080610b2961151e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8257600080fd5b505afa158015610b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bba91906115d9565b6001600160a01b031663c44b11f78d6040518263ffffffff1660e01b8152600401610be591906118e3565b60206040518083038186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c359190611764565b9050610c408161144c565b909e50929c50909a5098509650610c5681611477565b9d9f9c9e509a9c999b989a8d15159a9099909850919650945092505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd257600080fd5b505afa158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a91906115d9565b90506060816001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b158015610d4757600080fd5b505afa158015610d5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d83919081019061162d565b90506060815167ffffffffffffffff81118015610d9f57600080fd5b50604051908082528060200260200182016040528015610dd957816020015b610dc6611531565b815260200190600190039081610dbe5790505b50905060005b8251811015610fe257739f8f72aa9304c8b593d555f12ef6589cc3a579a26001600160a01b0316838281518110610e1257fe5b60200260200101516001600160a01b03161415610e915760405180604001604052806040518060400160405280600381526020016226a5a960e91b8152508152602001848381518110610e6157fe5b60200260200101516001600160a01b0316815250828281518110610e8157fe5b6020026020010181905250610fda565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316838281518110610ebb57fe5b60200260200101516001600160a01b03161415610f0a5760405180604001604052806040518060400160405280600381526020016208aa8960eb1b8152508152602001848381518110610e6157fe5b6040518060400160405280848381518110610f2157fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015610f6157600080fd5b505afa158015610f75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f9d91908101906116d8565b8152602001848381518110610fae57fe5b60200260200101516001600160a01b0316815250828281518110610fce57fe5b60200260200101819052505b600101610ddf565b509250505090565b6000806000610ff76114b3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561105057600080fd5b505afa158015611064573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108891906115d9565b6001600160a01b03166335ea6a75866040518263ffffffff1660e01b81526004016110b391906118e3565b6101806040518083038186803b1580156110cc57600080fd5b505afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611104919061177f565b60e0810151610100820151610120909201519097919650945092505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561118057600080fd5b505afa158015611194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b891906115d9565b90506060816001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156111f557600080fd5b505afa158015611209573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611231919081019061162d565b90506060815167ffffffffffffffff8111801561124d57600080fd5b5060405190808252806020026020018201604052801561128757816020015b611274611531565b81526020019060019003908161126c5790505b50905060005b8251811015610fe25761129e6114b3565b846001600160a01b03166335ea6a758584815181106112b957fe5b60200260200101516040518263ffffffff1660e01b81526004016112dd91906118e3565b6101806040518083038186803b1580156112f657600080fd5b505afa15801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e919061177f565b905060405180604001604052808260e001516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561137857600080fd5b505afa15801561138c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113b491908101906116d8565b81526020018260e001516001600160a01b03168152508383815181106113d657fe5b60209081029190910101525060010161128d565b60006080821060405180604001604052806002815260200161373760f01b815250906114325760405162461bcd60e51b81526004016114299190611996565b60405180910390fd5b5050815160016002830281019190911c1615155b92915050565b5161ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b51670100000000000000811615159167020000000000000082161515916704000000000000008116151591670800000000000000909116151590565b6040518061018001604052806114c761151e565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820181905261014082018190526101609091015290565b6040518060200160405280600081525090565b60408051808201909152606081526000602082015290565b805161144681611ae3565b600060208284031215611565578081fd5b61156f6020611a8c565b9151825250919050565b80516001600160801b038116811461144657600080fd5b805164ffffffffff8116811461144657600080fd5b805160ff8116811461144657600080fd5b6000602082840312156115c7578081fd5b81356115d281611ae3565b9392505050565b6000602082840312156115ea578081fd5b81516115d281611ae3565b60008060408385031215611607578081fd5b823561161281611ae3565b9150602083013561162281611ae3565b809150509250929050565b6000602080838503121561163f578182fd5b825167ffffffffffffffff80821115611656578384fd5b818501915085601f830112611669578384fd5b815181811115611677578485fd5b8381029150611687848301611a8c565b8181528481019084860184860187018a10156116a1578788fd5b8795505b838610156116cb576116b78a82611549565b8352600195909501949186019186016116a5565b5098975050505050505050565b6000602082840312156116e9578081fd5b815167ffffffffffffffff80821115611700578283fd5b818401915084601f830112611713578283fd5b815181811115611721578384fd5b611734601f8201601f1916602001611a8c565b915080825285602082850101111561174a578384fd5b61175b816020840160208601611ab3565b50949350505050565b600060208284031215611775578081fd5b6115d28383611554565b6000610180808385031215611792578182fd5b61179b81611a8c565b90506117a78484611554565b81526117b68460208501611579565b60208201526117c88460408501611579565b60408201526117da8460608501611579565b60608201526117ec8460808501611579565b60808201526117fe8460a08501611579565b60a08201526118108460c08501611590565b60c08201526118228460e08501611549565b60e082015261010061183685828601611549565b9082015261012061184985858301611549565b9082015261014061185c85858301611549565b9082015261016061186f858583016115a5565b908201529392505050565b60006020828403121561188b578081fd5b5051919050565b6000602082840312156118a3578081fd5b815164ffffffffff811681146115d2578182fd5b600081518084526118cf816020860160208601611ab3565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561198857888303603f1901855281518051878552611962888601826118b7565b918901516001600160a01b0316948901949094529487019492509086019060010161193e565b509098975050505050505050565b6000602082526115d260208301846118b7565b998a5260208a0198909852604089019690965260608801949094526080870192909252151560a0860152151560c0850152151560e0840152151561010083015215156101208201526101400190565b998a5260208a019890985260408901969096526060880194909452608087019290925260a086015260c085015260e084015261010083015264ffffffffff166101208201526101400190565b988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015264ffffffffff1660e083015215156101008201526101200190565b60405181810167ffffffffffffffff81118282101715611aab57600080fd5b604052919050565b60005b83811015611ace578181015183820152602001611ab6565b83811115611add576000848401525b50505050565b6001600160a01b0381168114611af857600080fd5b5056fea26469706673582212205d8442ffcc375241169cdf1e8c39968c4d659e1f6366da20046f6f50fe32f1b664736f6c634300060c0033"
+ var AdminUpgradeabilityProxyBin = "0x60806040526040516109353803806109358339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b50604052508491508290506100ee826101bf565b8051156101a6576000826001600160a01b0316826040518082805190602001908083835b602083106101315780518252601f199092019160209182019101610112565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610191576040519150601f19603f3d011682016040523d82523d6000602084013e610196565b606091505b50509050806101a457600080fd5b505b506101ae9050565b6101b782610231565b505050610291565b6101d28161025560201b6103a31760201c565b61020d5760405162461bcd60e51b815260040180806020018281038252603b8152602001806108fa603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061028957508115155b949350505050565b61065a806102a06000396000f3fe60806040526004361061004a5760003560e01c80633659cfe6146100545780634f1ef286146100875780635c60da1b146101075780638f28397014610138578063f851a4401461016b575b610052610180565b005b34801561006057600080fd5b506100526004803603602081101561007757600080fd5b50356001600160a01b031661019a565b6100526004803603604081101561009d57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c857600080fd5b8201836020820111156100da57600080fd5b803590602001918460018302840111640100000000831117156100fc57600080fd5b5090925090506101d4565b34801561011357600080fd5b5061011c610281565b604080516001600160a01b039092168252519081900360200190f35b34801561014457600080fd5b506100526004803603602081101561015b57600080fd5b50356001600160a01b03166102be565b34801561017757600080fd5b5061011c610378565b6101886103df565b6101986101936103e7565b61040c565b565b6101a2610430565b6001600160a01b0316336001600160a01b031614156101c9576101c481610455565b6101d1565b6101d1610180565b50565b6101dc610430565b6001600160a01b0316336001600160a01b03161415610274576101fe83610455565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461025b576040519150601f19603f3d011682016040523d82523d6000602084013e610260565b606091505b505090508061026e57600080fd5b5061027c565b61027c610180565b505050565b600061028b610430565b6001600160a01b0316336001600160a01b031614156102b3576102ac6103e7565b90506102bb565b6102bb610180565b90565b6102c6610430565b6001600160a01b0316336001600160a01b031614156101c9576001600160a01b0381166103245760405162461bcd60e51b81526004018080602001828103825260368152602001806105b46036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61034d610430565b604080516001600160a01b03928316815291841660208301528051918290030190a16101c481610495565b6000610382610430565b6001600160a01b0316336001600160a01b031614156102b3576102ac610430565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906103d757508115155b949350505050565b6101986104b9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561042b573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61045e81610519565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104c1610430565b6001600160a01b0316336001600160a01b031614156105115760405162461bcd60e51b81526004018080602001828103825260328152602001806105826032913960400191505060405180910390fd5b610198610198565b610522816103a3565b61055d5760405162461bcd60e51b815260040180806020018281038252603b8152602001806105ea603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220fecfd7434e622e53daba46a14cab5752277fb7d695fd3ed534cdcc0841f5cf4064736f6c634300060c003343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373"
+ var BaseAdminUpgradeabilityProxyBin = "0x608060405234801561001057600080fd5b50610652806100206000396000f3fe60806040526004361061004a5760003560e01c80633659cfe6146100545780634f1ef286146100875780635c60da1b146101075780638f28397014610138578063f851a4401461016b575b610052610180565b005b34801561006057600080fd5b506100526004803603602081101561007757600080fd5b50356001600160a01b031661019a565b6100526004803603604081101561009d57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c857600080fd5b8201836020820111156100da57600080fd5b803590602001918460018302840111640100000000831117156100fc57600080fd5b5090925090506101d4565b34801561011357600080fd5b5061011c610281565b604080516001600160a01b039092168252519081900360200190f35b34801561014457600080fd5b506100526004803603602081101561015b57600080fd5b50356001600160a01b03166102be565b34801561017757600080fd5b5061011c610378565b6101886103a3565b610198610193610403565b610428565b565b6101a261044c565b6001600160a01b0316336001600160a01b031614156101c9576101c481610471565b6101d1565b6101d1610180565b50565b6101dc61044c565b6001600160a01b0316336001600160a01b03161415610274576101fe83610471565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461025b576040519150601f19603f3d011682016040523d82523d6000602084013e610260565b606091505b505090508061026e57600080fd5b5061027c565b61027c610180565b505050565b600061028b61044c565b6001600160a01b0316336001600160a01b031614156102b3576102ac610403565b90506102bb565b6102bb610180565b90565b6102c661044c565b6001600160a01b0316336001600160a01b031614156101c9576001600160a01b0381166103245760405162461bcd60e51b81526004018080602001828103825260368152602001806105ac6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61034d61044c565b604080516001600160a01b03928316815291841660208301528051918290030190a16101c4816104b1565b600061038261044c565b6001600160a01b0316336001600160a01b031614156102b3576102ac61044c565b6103ab61044c565b6001600160a01b0316336001600160a01b031614156103fb5760405162461bcd60e51b815260040180806020018281038252603281526020018061057a6032913960400191505060405180910390fd5b610198610198565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e808015610447573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61047a816104d5565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104de8161053d565b6105195760405162461bcd60e51b815260040180806020018281038252603b8152602001806105e2603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061057157508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220809bc327cb9d46ad344ead71fc7c83bacee8bc77b01455129f54e2e84495db2b64736f6c634300060c0033"
+ var BaseImmutableAdminUpgradeabilityProxyBin = "0x60a060405234801561001057600080fd5b506040516105ca3803806105ca8339818101604052602081101561003357600080fd5b5051606081901b6001600160601b0319166080526001600160a01b031661054a6100806000398061016752806101b1528061027052806102bd52806102e65280610315525061054a6000f3fe60806040526004361061003f5760003560e01c80633659cfe6146100495780634f1ef2861461007c5780635c60da1b146100fc578063f851a4401461012d575b610047610142565b005b34801561005557600080fd5b506100476004803603602081101561006c57600080fd5b50356001600160a01b031661015c565b6100476004803603604081101561009257600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100bd57600080fd5b8201836020820111156100cf57600080fd5b803590602001918460018302840111640100000000831117156100f157600080fd5b5090925090506101a6565b34801561010857600080fd5b50610111610263565b604080516001600160a01b039092168252519081900360200190f35b34801561013957600080fd5b506101116102b0565b61014a61030a565b61015a61015561037a565b61039f565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561019b57610196816103c3565b6101a3565b6101a3610142565b50565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610256576101e0836103c3565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461023d576040519150601f19603f3d011682016040523d82523d6000602084013e610242565b606091505b505090508061025057600080fd5b5061025e565b61025e610142565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156102a55761029e61037a565b90506102ad565b6102ad610142565b90565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156102a557507f00000000000000000000000000000000000000000000000000000000000000006102ad565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156103725760405162461bcd60e51b81526004018080602001828103825260328152602001806104a86032913960400191505060405180910390fd5b61015a61015a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156103be573d6000f35b3d6000fd5b6103cc81610403565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61040c8161046b565b6104475760405162461bcd60e51b815260040180806020018281038252603b8152602001806104da603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061049f57508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a264697066735822122013ca3c0ed26db10d1853aec6562f3fdd65da23df2455f57382bd6505151e0af264736f6c634300060c0033"
+ var DefaultReserveInterestRateStrategyBin = "0x61018060405234801561001157600080fd5b50604051610e75380380610e75833981810160405260e081101561003457600080fd5b5080516020808301516040840151606085015160808087015160a088015160c0909801519185905295969395929491939161008e90879061007c9061070c6100c3821b17901c565b6100d360201b61071c1790919060201c565b60a05260609690961b6001600160601b03191660c05260e09390935261010091909152610120526101405250610160526101b9565b6b033b2e3c9fd0803ce800000090565b600061011b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061012260201b60201c565b9392505050565b600081848411156101b15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561017657818101518382015260200161015e565b50505050905090810190601f1680156101a35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60805160a05160c05160601c60e05161010051610120516101405161016051610c0761026e6000398061046852806106ea52508061017d528061049852806105755250806101c5528061021252806104c95250806101e95280610257528061051452806105d752508061023652806104f352806105fd52806106a25250806102e252806106c65250806101a1528061040f5250806103e25280610434528061054f52806105b2528061067e5250610c076000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80639584df28116100665780639584df28146100dd578063a15f30ac1461013f578063b258954414610147578063c72c4d101461014f578063ccab01a3146101735761009e565b80630bdf953f146100a357806317319873146100bd57806365614f81146100c55780637b832f58146100cd57806380031e37146100d5575b600080fd5b6100ab61017b565b60408051918252519081900360200190f35b6100ab61019f565b6100ab6101c3565b6100ab6101e7565b6100ab61020b565b610121600480360360c08110156100f357600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a00135610286565b60408051938452602084019290925282820152519081900360600190f35b6100ab61067c565b6100ab6106a0565b6101576106c4565b604080516001600160a01b039092168252519081900360200190f35b6100ab6106e8565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006102817f000000000000000000000000000000000000000000000000000000000000000061027b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610767565b90610767565b905090565b6000806000610293610ba2565b61029d8888610767565b808252600060208301819052604083018190526060830181905290156102db5781516102d6906102ce908c90610767565b8351906107c1565b6102de565b60005b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633618abba6040518163ffffffff1660e01b815260040160206040518083038186803b15801561033957600080fd5b505afa15801561034d573d6000803e3d6000fd5b505050506040513d602081101561036357600080fd5b50516040805163bb85c0bb60e01b81526001600160a01b038e811660048301529151919092169163bb85c0bb916024808301926020929190829003018186803b1580156103af57600080fd5b505afa1580156103c3573d6000803e3d6000fd5b505050506040513d60208110156103d957600080fd5b505160408301527f000000000000000000000000000000000000000000000000000000000000000081111561054357600061045e7f0000000000000000000000000000000000000000000000000000000000000000610458847f000000000000000000000000000000000000000000000000000000000000000061071c565b906107c1565b90506104bc61048d7f000000000000000000000000000000000000000000000000000000000000000083610905565b604085015161027b907f0000000000000000000000000000000000000000000000000000000000000000610767565b60408401526105386104ee7f000000000000000000000000000000000000000000000000000000000000000083610905565b61027b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610767565b602084015250610628565b6105a561059a610573837f00000000000000000000000000000000000000000000000000000000000000006107c1565b7f000000000000000000000000000000000000000000000000000000000000000090610905565b604084015190610767565b60408301526106226105fb7f0000000000000000000000000000000000000000000000000000000000000000610458847f0000000000000000000000000000000000000000000000000000000000000000610905565b7f000000000000000000000000000000000000000000000000000000000000000090610767565b60208301525b6106576106376127108861071c565b6106518361064b8d8d88602001518e6109c6565b90610905565b90610a2d565b606083018190526040830151602090930151909c929b50995090975050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000090565b6b033b2e3c9fd0803ce800000090565b600061075e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610aca565b90505b92915050565b60008282018381101561075e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080518082019091526002815261035360f41b6020820152600090826108665760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561082b578181015183820152602001610813565b50505050905090810190601f1680156108585780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156108e25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561082b578181015183820152602001610813565b5082816b033b2e3c9fd0803ce8000000860201816108fc57fe5b04949350505050565b6000821580610912575081155b1561091f57506000610761565b816b019d971e4fe8401e74000000198161093557fe5b0483111560405180604001604052806002815260200161068760f31b815250906109a05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561082b578181015183820152602001610813565b506b033b2e3c9fd0803ce80000006002815b0483850201816109be57fe5b049392505050565b6000806109d38686610767565b9050806109e4576000915050610a25565b60006109f38561064b88610b24565b90506000610a048561064b8a610b24565b90506000610a1e610a1485610b24565b6104588585610767565b9450505050505b949350505050565b6000821580610a3a575081155b15610a4757506000610761565b816113881981610a5357fe5b0483111560405180604001604052806002815260200161068760f31b81525090610abe5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561082b578181015183820152602001610813565b506127106002816109b2565b60008184841115610b1c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561082b578181015183820152602001610813565b505050900390565b6000633b9aca0082810290839082041460405180604001604052806002815260200161068760f31b81525090610b9b5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561082b578181015183820152602001610813565b5092915050565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fea2646970667358221220e2814b5d9722115d8879b36b40da5284349e8d6b3d0e0bdaf722d365af5e076564736f6c634300060c0033"
+ var DelegationAwareATokenBin = "0x610100604052600080553480156200001657600080fd5b5060405162002dd238038062002dd2833981810160405260c08110156200003c57600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200007057600080fd5b9083019060208201858111156200008657600080fd5b8251640100000000811182820188101715620000a157600080fd5b82525081516020918201929091019080838360005b83811015620000d0578181015183820152602001620000b6565b50505050905090810190601f168015620000fe5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012257600080fd5b9083019060208201858111156200013857600080fd5b82516401000000008111828201881017156200015357600080fd5b82525081516020918201929091019080838360005b838110156200018257818101518382015260200162000168565b50505050905090810190601f168015620001b05780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919050505085858585858582826012838360379080519060200190620001e79291906200024f565b508251620001fd9060389060208601906200024f565b506039805460ff90931660ff19909316929092179091556001600160601b0319606091821b811660805298811b891660e05296871b881660a0525050505050901b1660c05250620002eb945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029257805160ff1916838001178555620002c2565b82800160010185558215620002c2579182015b82811115620002c2578251825591602001919060010190620002a5565b50620002d0929150620002d4565b5090565b5b80821115620002d05760008155600101620002d5565b60805160601c60a05160601c60c05160601c60e05160601c612a2d620003a5600039806107f752806109ff5280610b905280610ff152806110d4528061119c52806111dd5280611751528061195c52806120a9528061220552508061128e52806112cf5280611325528061149b525080610a2e5280610d0652806110a0528061110352806114bf528061187f52806120d852806121b6525080611d1a5280611d4152806125f0528061261e52806126ce5250612a2d6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063b16a19de116100a2578063d505accf11610071578063d505accf1461062b578063d7020d0a1461067c578063dd62ed3e146106b8578063f866c319146106e6576101e5565b8063b16a19de146105ed578063b1bf962d146105f5578063b9844d8d146105fd578063d0fc81d214610623576101e5565b806395d89b41116100de57806395d89b4114610585578063a457c2d71461058d578063a9059cbb146105b9578063ae167335146105e5576101e5565b806370a08231146105105780637535d24614610536578063781603761461055a5780637df5bd3b14610562576101e5565b806323b872dd11610187578063313ce56711610156578063313ce567146104925780633644e515146104b057806339509351146104b85780634efecaa5146104e4576101e5565b806323b872dd146103605780632f1146181461039657806330adf81f146103be5780633118724e146103c6576101e5565b80630bd7ad3b116101c35780630bd7ad3b146102e6578063156e29f61461030057806318160ddd146103325780631da24f3e1461033a576101e5565b806306fdde03146101ea578063095ea7b3146102675780630afbcdc9146102a7575b600080fd5b6101f261071c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022c578181015183820152602001610214565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102936004803603604081101561027d57600080fd5b506001600160a01b0381351690602001356107b3565b604080519115158252519081900360200190f35b6102cd600480360360208110156102bd57600080fd5b50356001600160a01b03166107d1565b6040805192835260208301919091528051918290030190f35b6102ee6107ee565b60408051918252519081900360200190f35b6102936004803603606081101561031657600080fd5b506001600160a01b0381351690602081013590604001356107f3565b6102ee6109de565b6102ee6004803603602081101561035057600080fd5b50356001600160a01b0316610ac3565b6102936004803603606081101561037657600080fd5b506001600160a01b03813581169160208101359091169060400135610ace565b6103bc600480360360208110156103ac57600080fd5b50356001600160a01b0316610b8e565b005b6102ee610d8e565b6103bc600480360360608110156103dc57600080fd5b60ff823516919081019060408101602082013564010000000081111561040157600080fd5b82018360208201111561041357600080fd5b8035906020019184600183028401116401000000008311171561043557600080fd5b91939092909160208101903564010000000081111561045357600080fd5b82018360208201111561046557600080fd5b8035906020019184600183028401116401000000008311171561048757600080fd5b509092509050610db2565b61049a610f90565b6040805160ff9092168252519081900360200190f35b6102ee610f99565b610293600480360360408110156104ce57600080fd5b506001600160a01b038135169060200135610f9f565b6102ee600480360360408110156104fa57600080fd5b506001600160a01b038135169060200135610fed565b6102ee6004803603602081101561052657600080fd5b50356001600160a01b03166110cd565b61053e61119a565b604080516001600160a01b039092168252519081900360200190f35b6101f26111be565b6103bc6004803603604081101561057857600080fd5b50803590602001356111db565b6101f2611373565b610293600480360360408110156105a357600080fd5b506001600160a01b0381351690602001356113d4565b610293600480360360408110156105cf57600080fd5b506001600160a01b03813516906020013561143c565b61053e611499565b61053e6114bd565b6102ee6114e1565b6102ee6004803603602081101561061357600080fd5b50356001600160a01b03166114f0565b6102ee611502565b6103bc600480360360e081101561064157600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611508565b6103bc6004803603608081101561069257600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561174f565b6102ee600480360360408110156106ce57600080fd5b506001600160a01b038135811691602001351661192f565b6103bc600480360360608110156106fc57600080fd5b506001600160a01b0381358116916020810135909116906040013561195a565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107a85780601f1061077d576101008083540402835291602001916107a8565b820191906000526020600020905b81548152906001019060200180831161078b57829003601f168201915b505050505090505b90565b60006107c76107c0611a49565b8484611a4d565b5060015b92915050565b6000806107dd83611b39565b6107e5611b54565b91509150915091565b600181565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610827611a49565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906108d55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561089a578181015183820152602001610882565b50505050905090810190601f1680156108c75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060006108e185611b39565b905060006108ef8585611b5a565b6040805180820190915260028152611a9b60f11b6020820152909150816109575760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b506109628682611c61565b6040805186815290516001600160a01b0388169160009160008051602061291f8339815191529181900360200190a3604080518681526020810186905281516001600160a01b038916927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25015949350505050565b6000806109e9611b54565b9050806109fa5760009150506107b0565b610abd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a8a57600080fd5b505afa158015610a9e573d6000803e3d6000fd5b505050506040513d6020811015610ab457600080fd5b50518290611ddd565b91505090565b60006107cb82611b39565b6000610adb848484611e9b565b610b4b84610ae7611a49565b610b46856040518060600160405280602881526020016128c9602891396001600160a01b038a16600090815260356020526040812090610b25611a49565b6001600160a01b031681526020810191909152604001600020549190611ead565b611a4d565b826001600160a01b0316846001600160a01b031660008051602061291f833981519152846040518082815260200191505060405180910390a35060019392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fe65acfe6040518163ffffffff1660e01b815260040160206040518083038186803b158015610be757600080fd5b505afa158015610bfb573d6000803e3d6000fd5b505050506040513d6020811015610c1157600080fd5b5051604080516315d9b46f60e31b815290516001600160a01b039092169163aecda37891600480820192602092909190829003018186803b158015610c5557600080fd5b505afa158015610c69573d6000803e3d6000fd5b505050506040513d6020811015610c7f57600080fd5b50516001600160a01b0316610c92611a49565b6001600160a01b03161460405180604001604052806002815260200161333360f01b81525090610d035760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c19a95c826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015610d7357600080fd5b505af1158015610d87573d6000803e3d6000fd5b5050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6000610dbc611f07565b60015490915060ff1680610dd35750610dd3611f0c565b80610ddf575060005481115b610e1a5760405162461bcd60e51b815260040180806020018281038252602e8152602001806128f1602e913960400191505060405180910390fd5b60015460ff16158015610e39576001805460ff19168117905560008290555b60004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f87876040518083838082843760408051939091018390038320838201825260018452603160f81b602094850152815180850198909852878201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060880152608087018890523060a0808901919091528151808903909101815260c08801808352815191850191909120603b5560e0601f8f01859004909402880184019091528c8152610f2d969095508d94508c93508392019050838280828437600092019190915250611f1292505050565b610f6c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f2592505050565b610f7588611f38565b508015610f87576001805460ff191690555b50505050505050565b60395460ff1690565b603b5481565b60006107c7610fac611a49565b84610b468560356000610fbd611a49565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611f4e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611021611a49565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906110925760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b506110c76001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484611faf565b50919050565b60006107cb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561115f57600080fd5b505afa158015611173573d6000803e3d6000fd5b505050506040513d602081101561118957600080fd5b505161119484611b39565b90611ddd565b7f000000000000000000000000000000000000000000000000000000000000000081565b604051806040016040528060018152602001603160f81b81525081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661120d611a49565b6001600160a01b03161460405180604001604052806002815260200161323960f01b8152509061127e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b50816112895761136f565b6112bc7f00000000000000000000000000000000000000000000000000000000000000006112b78484611b5a565b611c61565b6040805183815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169160009160008051602061291f8339815191529181900360200190a3604080518381526020810183905281516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25b5050565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107a85780601f1061077d576101008083540402835291602001916107a8565b60006107c76113e1611a49565b84610b46856040518060600160405280602581526020016129d3602591396035600061140b611a49565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611ead565b6000611450611449611a49565b8484611e9b565b826001600160a01b0316611462611a49565b6001600160a01b031660008051602061291f833981519152846040518082815260200191505060405180910390a350600192915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006114eb611b54565b905090565b603a6020526000908152604090205481565b60001981565b6001600160a01b038716611553576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22fa7aba722a960991b604482015290519081900360640190fd5b8342111561159d576040805162461bcd60e51b815260206004820152601260248201527124a72b20a624a22fa2ac2824a920aa24a7a760711b604482015290519081900360640190fd5b6001600160a01b038088166000818152603a6020908152604080832054603b5482517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958c166060860152608085018b905260a0850181905260c08086018b90528251808703909101815260e08601835280519084012061190160f01b6101008701526101028601969096526101228086019690965281518086039096018652610142850180835286519684019690962093909552610162840180825283905260ff88166101828501526101a284018790526101c284018690525191926001926101e28083019392601f198301929081900390910190855afa1580156116b2573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614611715576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b611720826001611f4e565b6001600160a01b038a166000908152603a6020526040902055611744898989611a4d565b505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611781611a49565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906117f25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b5060006117ff8383611b5a565b60408051808201909152600281526106a760f31b6020820152909150816118675760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b506118728582612001565b6118a66001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611faf565b6040805184815290516000916001600160a01b0388169160008051602061291f8339815191529181900360200190a3836001600160a01b0316856001600160a01b03167f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa28585604051808381526020018281526020019250505060405180910390a35050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661198c611a49565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906119fd5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b50611a0b83838360006120a5565b816001600160a01b0316836001600160a01b031660008051602061291f833981519152836040518082815260200191505060405180910390a3505050565b3390565b6001600160a01b038316611a925760405162461bcd60e51b81526004018080602001828103825260248152602001806129856024913960400191505060405180910390fd5b6001600160a01b038216611ad75760405162461bcd60e51b81526004018080602001828103825260228152602001806128816022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b031660009081526034602052604090205490565b60365490565b604080518082019091526002815261035360f41b602082015260009082611bc25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce8000000821904851115611c3e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b5082816b033b2e3c9fd0803ce800000086020181611c5857fe5b04949350505050565b6001600160a01b038216611cbc576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611cc860008383611ea8565b603654611cd58183611f4e565b6036556001600160a01b038316600090815260346020526040902054611cfb8184611f4e565b6001600160a01b038086166000908152603460205260409020919091557f00000000000000000000000000000000000000000000000000000000000000001615611dd7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8584846040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b158015611dbe57600080fd5b505af1158015611dd2573d6000803e3d6000fd5b505050505b50505050565b6000821580611dea575081155b15611df7575060006107cb565b816b019d971e4fe8401e740000001981611e0d57fe5b0483111560405180604001604052806002815260200161068760f31b81525090611e785760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b611ea883838360016120a5565b505050565b60008184841115611eff5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561089a578181015183820152602001610882565b505050900390565b600190565b303b1590565b805161136f9060379060208401906127a8565b805161136f9060389060208401906127a8565b6039805460ff191660ff92909216919091179055565b600082820183811015611fa8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611ea89084906122c4565b6001600160a01b0382166120465760405162461bcd60e51b815260040180806020018281038252602181526020018061293f6021913960400191505060405180910390fd5b61205282600083611ea8565b60365461205f818361247c565b6036556001600160a01b0383166000908152603460209081526040918290205482516060810190935260228084529092611cfb9286929061285f90830139839190611ead565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561213457600080fd5b505afa158015612148573d6000803e3d6000fd5b505050506040513d602081101561215e57600080fd5b5051905060006121718261119488611b39565b905060006121828361119488611b39565b905061219887876121938887611b5a565b6124be565b8315612268576040805163d5ed393360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015289811660248301528881166044830152606482018890526084820185905260a4820184905291517f00000000000000000000000000000000000000000000000000000000000000009092169163d5ed39339160c48082019260009290919082900301818387803b15801561224f57600080fd5b505af1158015612263573d6000803e3d6000fd5b505050505b856001600160a01b0316876001600160a01b03167f4beccb90f994c31aced7a23b5611020728a23d8ec5cddd1a3e9d97b96fda86668786604051808381526020018281526020019250505060405180910390a350505050505050565b6122d6826001600160a01b031661276c565b612327576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106123655780518252601f199092019160209182019101612346565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146123c7576040519150601f19603f3d011682016040523d82523d6000602084013e6123cc565b606091505b509150915081612423576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611dd75780806020019051602081101561243f57600080fd5b5051611dd75760405162461bcd60e51b815260040180806020018281038252602a8152602001806129a9602a913960400191505060405180910390fd5b6000611fa883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ead565b6001600160a01b0383166125035760405162461bcd60e51b81526004018080602001828103825260258152602001806129606025913960400191505060405180910390fd5b6001600160a01b0382166125485760405162461bcd60e51b815260040180806020018281038252602381526020018061283c6023913960400191505060405180910390fd5b612553838383611ea8565b600060346000856001600160a01b03166001600160a01b031681526020019081526020016000205490506125a2826040518060600160405280602681526020016128a360269139839190611ead565b6001600160a01b0380861660009081526034602052604080822093909355908516815220546125d18184611f4e565b6001600160a01b038086166000908152603460205260409020919091557f00000000000000000000000000000000000000000000000000000000000000001615610d8757600060365490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8783866040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561269b57600080fd5b505af11580156126af573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b031614612764577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8683856040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561274b57600080fd5b505af115801561275f573d6000803e3d6000fd5b505050505b505050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906127a057508115155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106127e957805160ff1916838001178555612816565b82800160010185558215612816579182015b828111156128165782518255916020019190600101906127fb565b50612822929150612826565b5090565b5b80821115612822576000815560010161282756fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206e6c103aae734ca1800e939360cdce0c4b324f1fa73e48564ca480091a250e0964736f6c634300060c0033"
+ var ERC20Bin = "0x608060405234801561001057600080fd5b5060405162000c6238038062000c628339818101604052604081101561003557600080fd5b810190808051604051939291908464010000000082111561005557600080fd5b90830190602082018581111561006a57600080fd5b825164010000000081118282018810171561008457600080fd5b82525081516020918201929091019080838360005b838110156100b1578181015183820152602001610099565b50505050905090810190601f1680156100de5780820380516001836020036101000a031916815260200191505b506040526020018051604051939291908464010000000082111561010157600080fd5b90830190602082018581111561011657600080fd5b825164010000000081118282018810171561013057600080fd5b82525081516020918201929091019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b50604052505082516101a4915060039060208501906101cd565b5080516101b89060049060208401906101cd565b50506005805460ff1916601217905550610260565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061020e57805160ff191683800117855561023b565b8280016001018555821561023b579182015b8281111561023b578251825591602001919060010190610220565b5061024792915061024b565b5090565b5b80821115610247576000815560010161024c565b6109f280620002706000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063395093511161007157806339509351146101d957806370a082311461020557806395d89b411461022b578063a457c2d714610233578063a9059cbb1461025f578063dd62ed3e1461028b576100a9565b806306fdde03146100ae578063095ea7b31461012b57806318160ddd1461016b57806323b872dd14610185578063313ce567146101bb575b600080fd5b6100b66102b9565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101576004803603604081101561014157600080fd5b506001600160a01b03813516906020013561034f565b604080519115158252519081900360200190f35b61017361036c565b60408051918252519081900360200190f35b6101576004803603606081101561019b57600080fd5b506001600160a01b03813581169160208101359091169060400135610372565b6101c36103f9565b6040805160ff9092168252519081900360200190f35b610157600480360360408110156101ef57600080fd5b506001600160a01b038135169060200135610402565b6101736004803603602081101561021b57600080fd5b50356001600160a01b0316610450565b6100b661046b565b6101576004803603604081101561024957600080fd5b506001600160a01b0381351690602001356104cc565b6101576004803603604081101561027557600080fd5b506001600160a01b038135169060200135610534565b610173600480360360408110156102a157600080fd5b506001600160a01b0381358116916020013516610548565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103455780601f1061031a57610100808354040283529160200191610345565b820191906000526020600020905b81548152906001019060200180831161032857829003601f168201915b5050505050905090565b600061036361035c610573565b8484610577565b50600192915050565b60025490565b600061037f848484610663565b6103ef8461038b610573565b6103ea85604051806060016040528060288152602001610927602891396001600160a01b038a166000908152600160205260408120906103c9610573565b6001600160a01b0316815260208101919091526040016000205491906107be565b610577565b5060019392505050565b60055460ff1690565b600061036361040f610573565b846103ea8560016000610420610573565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610855565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103455780601f1061031a57610100808354040283529160200191610345565b60006103636104d9610573565b846103ea856040518060600160405280602581526020016109986025913960016000610503610573565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906107be565b6000610363610541610573565b8484610663565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166105bc5760405162461bcd60e51b81526004018080602001828103825260248152602001806109746024913960400191505060405180910390fd5b6001600160a01b0382166106015760405162461bcd60e51b81526004018080602001828103825260228152602001806108df6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106a85760405162461bcd60e51b815260040180806020018281038252602581526020018061094f6025913960400191505060405180910390fd5b6001600160a01b0382166106ed5760405162461bcd60e51b81526004018080602001828103825260238152602001806108bc6023913960400191505060405180910390fd5b6106f88383836108b6565b61073581604051806060016040528060268152602001610901602691396001600160a01b03861660009081526020819052604090205491906107be565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107649082610855565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561084d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108125781810151838201526020016107fa565b50505050905090810190601f16801561083f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156108af576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e7683903b331745d3e03c36154ab2bb503a9dd30b12fa302fe2b372f0c4424ad64736f6c634300060c0033"
+ var ErrorsBin = "0x611111610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061048a5760003560e01c80636ba4271f11610261578063cdad445a11610150578063e2c16d69116100cd578063f11c672011610091578063f11c67201461075c578063f3d9cc1114610764578063f902735d1461076c578063fb681def14610774578063fe75fd261461077c5761048a565b8063e2c16d6914610734578063e66327481461073c578063e7bf91b314610744578063eca85d3a1461074c578063f0473259146107545761048a565b8063d7510e0c11610114578063d7510e0c1461070c578063d7b079aa14610714578063daf235471461071c578063e0d7dfd714610724578063e29425dc1461072c5761048a565b8063cdad445a146106e4578063d3e370ee146106ec578063d44e8e88146106f4578063d57bb964146106fc578063d6f681b6146107045761048a565b8063a39ed4ff116101de578063b89652cd116101a2578063b89652cd146106bc578063bd013f5b146106c4578063c09e2618146106cc578063c2d628df146106d4578063cc5fc44c146106dc5761048a565b8063a39ed4ff14610694578063a84402411461069c578063ac753236146106a4578063b36a2cf3146106ac578063b72e40c7146106b45761048a565b80637865a627116102255780637865a6271461066c578063871938a81461067457806391a9fb181461067c5780639be4f03a14610684578063a2fbc8ad1461068c5761048a565b80636ba4271f146106445780636d422aa11461064c578063708b8dd31461065457806371a629da1461065c57806376f19030146106645761048a565b80633aa786a81161037d5780634a529f91116102fa578063614cf6a1116102be578063614cf6a11461061c578063637a5a12146106245780636422b2571461062c57806365344799146106345780636ab5e6151461063c5761048a565b80634a529f91146105f45780634fe4f1ab146105fc57806355bab12c146106045780635a9786d41461060c5780635e869ff1146106145761048a565b80634349e3d8116103415780634349e3d8146105cc57806344942004146105d457806344dc4f70146105dc57806347d25300146105e45780634927c63a146105ec5761048a565b80633aa786a8146105a45780633b5d25aa146105ac5780633f5d6ec8146105b4578063407374a4146105bc57806341b40ba5146105c45761048a565b806322a6f08e1161040b578063333e8ea8116103cf578063333e8ea81461057c57806335a9d21d1461058457806336565ab11461058c5780633872b0ad14610594578063390f34ba1461059c5761048a565b806322a6f08e146105545780632ace698a1461055c5780632b34c349146105645780632b9c57f61461056c5780632ea347b0146105745761048a565b80631291a38b116104525780631291a38b1461052c578063179476c5146105345780631befa78d1461053c5780631ea7c604146105445780631ec68b1d1461054c5761048a565b806302454ad31461048f578063029d23441461050c57806306f355ad146105145780630b8fd5881461051c5780630f5ee48214610524575b600080fd5b610497610784565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104d15781810151838201526020016104b9565b50505050905090810190601f1680156104fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104976107a2565b6104976107c0565b6104976107de565b6104976107fc565b61049761081a565b610497610838565b610497610855565b610497610873565b610497610891565b6104976108af565b6104976108cd565b6104976108eb565b610497610909565b610497610927565b610497610945565b610497610963565b610497610981565b61049761099e565b6104976109bc565b6104976109da565b6104976109f8565b610497610a15565b610497610a33565b610497610a51565b610497610a6f565b610497610a8d565b610497610aab565b610497610ac9565b610497610ae7565b610497610b05565b610497610b23565b610497610b41565b610497610b5f565b610497610b7d565b610497610b9b565b610497610bb9565b610497610bd7565b610497610bf5565b610497610c13565b610497610c31565b610497610c4f565b610497610c6d565b610497610c8a565b610497610ca8565b610497610cc6565b610497610ce3565b610497610d00565b610497610d1e565b610497610d3c565b610497610d5a565b610497610d78565b610497610d95565b610497610db3565b610497610dd1565b610497610def565b610497610e0d565b610497610e2b565b610497610e49565b610497610e67565b610497610e85565b610497610ea3565b610497610ec1565b610497610edf565b610497610efd565b610497610f1b565b610497610f38565b610497610f56565b610497610f74565b610497610f92565b610497610fb0565b610497610fce565b610497610fec565b61049761100a565b610497611028565b610497611046565b610497611064565b610497611081565b61049761109f565b6104976110bd565b60405180604001604052806002815260200161373760f01b81525081565b60405180604001604052806002815260200161068760f31b81525081565b60405180604001604052806002815260200161033360f41b81525081565b60405180604001604052806002815260200161191b60f11b81525081565b60405180604001604052806002815260200161343960f01b81525081565b604051806040016040528060028152602001611a9b60f11b81525081565b604051806040016040528060018152602001600d60fa1b81525081565b60405180604001604052806002815260200161038360f41b81525081565b604051806040016040528060028152602001611a1b60f11b81525081565b60405180604001604052806002815260200161031360f41b81525081565b604051806040016040528060028152602001610c8d60f21b81525081565b60405180604001604052806002815260200161313160f01b81525081565b60405180604001604052806002815260200161064760f31b81525081565b6040518060400160405280600281526020016106a760f31b81525081565b604051806040016040528060028152602001610d4d60f21b81525081565b604051806040016040528060028152602001611b9960f11b81525081565b60405180604001604052806002815260200161313960f01b81525081565b604051806040016040528060018152602001603760f81b81525081565b60405180604001604052806002815260200161333960f01b81525081565b60405180604001604052806002815260200161323560f01b81525081565b604051806040016040528060028152602001610c4d60f21b81525081565b604051806040016040528060018152602001600760fb1b81525081565b60405180604001604052806002815260200161037360f41b81525081565b60405180604001604052806002815260200161343360f01b81525081565b60405180604001604052806002815260200161066760f31b81525081565b60405180604001604052806002815260200161035360f41b81525081565b604051806040016040528060028152602001611a9960f11b81525081565b60405180604001604052806002815260200161323160f01b81525081565b60405180604001604052806002815260200161373560f01b81525081565b60405180604001604052806002815260200161189960f11b81525081565b60405180604001604052806002815260200161323360f01b81525081565b60405180604001604052806002815260200161353160f01b81525081565b60405180604001604052806002815260200161036360f41b81525081565b60405180604001604052806002815260200161034360f41b81525081565b60405180604001604052806002815260200161363960f01b81525081565b60405180604001604052806002815260200161363760f01b81525081565b6040518060400160405280600281526020016106e760f31b81525081565b60405180604001604052806002815260200161313760f01b81525081565b604051806040016040528060028152602001610ccd60f21b81525081565b60405180604001604052806002815260200161062760f31b81525081565b60405180604001604052806002815260200161323960f01b81525081565b60405180604001604052806002815260200161353560f01b81525081565b604051806040016040528060018152602001603960f81b81525081565b604051806040016040528060028152602001610d0d60f21b81525081565b60405180604001604052806002815260200161363560f01b81525081565b604051806040016040528060018152602001601960f91b81525081565b604051806040016040528060018152602001603160f81b81525081565b60405180604001604052806002815260200161313560f01b81525081565b60405180604001604052806002815260200161373160f01b81525081565b60405180604001604052806002815260200161333160f01b81525081565b60405180604001604052806002815260200161313360f01b81525081565b604051806040016040528060018152602001603560f81b81525081565b60405180604001604052806002815260200161333360f01b81525081565b60405180604001604052806002815260200161323760f01b81525081565b604051806040016040528060028152602001610dcd60f21b81525081565b60405180604001604052806002815260200161191960f11b81525081565b6040518060400160405280600281526020016106c760f31b81525081565b60405180604001604052806002815260200161333760f01b81525081565b60405180604001604052806002815260200161363160f01b81525081565b60405180604001604052806002815260200161343560f01b81525081565b60405180604001604052806002815260200161373960f01b81525081565b604051806040016040528060028152602001611b9b60f11b81525081565b604051806040016040528060028152602001611b1b60f11b81525081565b604051806040016040528060028152602001610d8d60f21b81525081565b60405180604001604052806002815260200161343160f01b81525081565b604051806040016040528060018152602001603360f81b81525081565b60405180604001604052806002815260200161373360f01b81525081565b60405180604001604052806002815260200161189b60f11b81525081565b60405180604001604052806002815260200161199b60f11b81525081565b60405180604001604052806002815260200161032360f41b81525081565b60405180604001604052806002815260200161353960f01b81525081565b60405180604001604052806002815260200161353760f01b81525081565b60405180604001604052806002815260200161343760f01b81525081565b60405180604001604052806002815260200161363360f01b81525081565b60405180604001604052806002815260200161333560f01b81525081565b60405180604001604052806002815260200161353360f01b81525081565b604051806040016040528060018152602001601b60f91b81525081565b604051806040016040528060028152602001611b1960f11b81525081565b604051806040016040528060028152602001611a1960f11b81525081565b60405180604001604052806002815260200161199960f11b8152508156fea264697066735822122059411b2dc1e9085a5f7c85b487f6893a1de544a18d99c46e90fd47e380cc215264736f6c634300060c0033"
+ var GenericLogicBin = "0x610e86610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c8063c3525c2814610045578063e617042414610063575b600080fd5b61004d610083565b60405161005a9190610e2f565b60405180910390f35b610076610071366004610c58565b61008f565b60405161005a9190610d59565b670de0b6b3a764000081565b60006100a86100a336879003870187610cf0565b6102be565b15806100f057506001600160a01b0389166000908152602087905260409020600701546100ee90600160a01b900460ff166100e836889003880188610cf0565b906102e6565b155b156100fd575060016102b2565b610105610b69565b6001600160a01b038a16600090815260208890526040902061012690610348565b5084525060208301819052151590506101435760019150506102b2565b61015f8988610157368a90038a018a610cf0565b888888610373565b506080850152506060830181905260408301919091526101835760019150506102b2565b61021a8160000151600a0a6102148a866001600160a01b031663b3596f078f6040518263ffffffff1660e01b81526004016101be9190610d45565b60206040518083038186803b1580156101d657600080fd5b505afa1580156101ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020e9190610d2d565b90610834565b90610875565b60a08201819052604082015161022f916108b7565b60c082018190526102445760009150506102b2565b6102838160c0015161021461026a84602001518560a0015161083490919063ffffffff16565b6080850151604086015161027d91610834565b906108b7565b60e0820181905260c082015160608301516000926102a29291906108f9565b670de0b6b3a76400001115925050505b98975050505050505050565b517f555555555555555555555555555555555555555555555555555555555555555516151590565b60006080821060405180604001604052806002815260200161373760f01b8152509061032e5760405162461bcd60e51b81526004016103259190610d64565b60405180910390fd5b5050815160016002830281019190911c1615155b92915050565b5461ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b6000806000806000610383610bbe565b61038c8a610925565b156103aa576000806000806000199550955095509550955050610826565b600060e08201525b878160e0015110156107855760e08101516103ce908b9061092a565b6103d757610775565b60e0810151600090815260208a81526040808320546001600160a01b03166101e085018190528352908d9052902061040e81610348565b506080860181905260c08601929092525060a0840191909152600a0a60208301526101e082015160405163b3596f0760e01b81526001600160a01b038a169163b3596f07916104609190600401610d45565b60206040518083038186803b15801561047857600080fd5b505afa15801561048c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b09190610d2d565b825260c0820151158015906104d0575060e08201516104d0908c906102e6565b156105ee578060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b81526004016105189190610d45565b60206040518083038186803b15801561053057600080fd5b505afa158015610544573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105689190610d2d565b6040830181905260208301518351600092610587929161021491610834565b61012084015190915061059a908261097b565b61012084015260a08301516105c0906105b4908390610834565b6101608501519061097b565b61016084015260c08301516105e6906105da908390610834565b6101808501519061097b565b610180840152505b60e08201516105fe908c906109a0565b15610773578060050160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b81526004016106469190610d45565b60206040518083038186803b15801561065e57600080fd5b505afa158015610672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106969190610d2d565b8260600181815250506107408160060160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b81526004016106e59190610d45565b60206040518083038186803b1580156106fd57600080fd5b505afa158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190610d2d565b60608401519061097b565b606083018190526020830151835161076c92610760929161021491610834565b6101408401519061097b565b6101408301525b505b60e08101805160010190526103b2565b6000816101200151116107995760006107ae565b6101208101516101608201516107ae91610875565b6101608201526101208101516107c55760006107da565b6101208101516101808201516107da91610875565b61018082018190526101208201516101408301516107f7926108f9565b610100820181905261012082015161014083015161016084015161018090940151919850965091945090925090505b965096509650965096915050565b60008261084357506000610342565b8282028284828161085057fe5b041461086e5760405162461bcd60e51b815260040161032590610dee565b9392505050565b600061086e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506109f1565b600061086e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a28565b600082610909575060001961086e565b61091d836109178685610a54565b90610ac6565b949350505050565b511590565b60006080821060405180604001604052806002815260200161373760f01b815250906109695760405162461bcd60e51b81526004016103259190610d64565b50509051600360029092021c16151590565b60008282018381101561086e5760405162461bcd60e51b815260040161032590610db7565b60006080821060405180604001604052806002815260200161373760f01b815250906109df5760405162461bcd60e51b81526004016103259190610d64565b50509051600160029092021c16151590565b60008183610a125760405162461bcd60e51b81526004016103259190610d64565b506000838581610a1e57fe5b0495945050505050565b60008184841115610a4c5760405162461bcd60e51b81526004016103259190610d64565b505050900390565b6000821580610a61575081155b15610a6e57506000610342565b816113881981610a7a57fe5b0483111560405180604001604052806002815260200161068760f31b81525090610ab75760405162461bcd60e51b81526004016103259190610d64565b50506127109102611388010490565b604080518082019091526002815261035360f41b602082015260009082610b005760405162461bcd60e51b81526004016103259190610d64565b5060408051808201909152600280825261068760f31b6020830152830490670de0b6b3a7640000821904851115610b4a5760405162461bcd60e51b81526004016103259190610d64565b508281670de0b6b3a764000086020181610b6057fe5b04949350505050565b6040518061014001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b604051806102400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160006001600160a01b031681526020016000151581526020016000151581525090565b600080600080600080600080888a03610100811215610c75578485fd5b8935610c8081610e38565b985060208a0135610c9081610e38565b975060408a0135965060608a013595506020607f1982011215610cb1578485fd5b5060808901935060a0890135925060c0890135915060e08901356001600160a01b0381168114610cdf578182fd5b809150509295985092959890939650565b600060208284031215610d01578081fd5b6040516020810181811067ffffffffffffffff82111715610d20578283fd5b6040529135825250919050565b600060208284031215610d3e578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610d9057858101830151858201604001528201610d74565b81811115610da15783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b6001600160a01b0381168114610e4d57600080fd5b5056fea26469706673582212204601c7b350884fb667559083c586cf4e1edf45660de16733cb6a53d97c6c078f64736f6c634300060c0033"
+ var IncentivizedERC20Bin = "0x60a06040523480156200001157600080fd5b5060405162000eb538038062000eb5833981810160405260808110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b506040908152602082810151929091015186519294509250620001c19160039187019062000206565b508251620001d790600490602086019062000206565b506005805460ff191660ff939093169290921790915560601b6001600160601b03191660805250620002a29050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024957805160ff191683800117855562000279565b8280016001018555821562000279579182015b82811115620002795782518255916020019190600101906200025c565b50620002879291506200028b565b5090565b5b808211156200028757600081556001016200028c565b60805160601c610beb620002ca6000398061083a528061086852806109185250610beb6000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063395093511161007157806339509351146101d957806370a082311461020557806395d89b411461022b578063a457c2d714610233578063a9059cbb1461025f578063dd62ed3e1461028b576100a9565b806306fdde03146100ae578063095ea7b31461012b57806318160ddd1461016b57806323b872dd14610185578063313ce567146101bb575b600080fd5b6100b66102b9565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f05781810151838201526020016100d8565b50505050905090810190601f16801561011d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101576004803603604081101561014157600080fd5b506001600160a01b03813516906020013561034f565b604080519115158252519081900360200190f35b61017361036c565b60408051918252519081900360200190f35b6101576004803603606081101561019b57600080fd5b506001600160a01b03813581169160208101359091169060400135610372565b6101c3610444565b6040805160ff9092168252519081900360200190f35b610157600480360360408110156101ef57600080fd5b506001600160a01b03813516906020013561044d565b6101736004803603602081101561021b57600080fd5b50356001600160a01b031661049b565b6100b66104b6565b6101576004803603604081101561024957600080fd5b506001600160a01b038135169060200135610517565b6101576004803603604081101561027557600080fd5b506001600160a01b03813516906020013561057f565b610173600480360360408110156102a157600080fd5b506001600160a01b03813581169160200135166105ee565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103455780601f1061031a57610100808354040283529160200191610345565b820191906000526020600020905b81548152906001019060200180831161032857829003601f168201915b5050505050905090565b600061036361035c610619565b848461061d565b50600192915050565b60025490565b600061037f848484610709565b6103ef8461038b610619565b6103ea85604051806060016040528060288152602001610b20602891396001600160a01b038a166000908152600160205260408120906103c9610619565b6001600160a01b0316815260208101919091526040016000205491906109b7565b61061d565b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060019392505050565b60055460ff1690565b600061036361045a610619565b846103ea856001600061046b610619565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610a4e565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103455780601f1061031a57610100808354040283529160200191610345565b6000610363610524610619565b846103ea85604051806060016040528060258152602001610b91602591396001600061054e610619565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906109b7565b600061059361058c610619565b8484610709565b826001600160a01b03166105a5610619565b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350600192915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166106625760405162461bcd60e51b8152600401808060200182810382526024815260200180610b6d6024913960400191505060405180910390fd5b6001600160a01b0382166106a75760405162461bcd60e51b8152600401808060200182810382526022815260200180610ad86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661074e5760405162461bcd60e51b8152600401808060200182810382526025815260200180610b486025913960400191505060405180910390fd5b6001600160a01b0382166107935760405162461bcd60e51b8152600401808060200182810382526023815260200180610ab56023913960400191505060405180910390fd5b61079e838383610aaf565b6000806000856001600160a01b03166001600160a01b031681526020019081526020016000205490506107ec82604051806060016040528060268152602001610afa602691398391906109b7565b6001600160a01b03808616600090815260208190526040808220939093559085168152205461081b8184610a4e565b6001600160a01b038086166000908152602081905260409020919091557f000000000000000000000000000000000000000000000000000000000000000016156109b057600060025490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8783866040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156108e557600080fd5b505af11580156108f9573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b0316146109ae577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8683856040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561099557600080fd5b505af11580156109a9573d6000803e3d6000fd5b505050505b505b5050505050565b60008184841115610a465760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a0b5781810151838201526020016109f3565b50505050905090810190601f168015610a385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610aa8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122040b9f9919eeca7b8353d2915803597b8c936154eb06a4498ba6d01c12376922f64736f6c634300060c0033"
+ var InitializableAdminUpgradeabilityProxyBin = "0x608060405234801561001057600080fd5b50610905806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610513945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610543945050505050565b34801561031257600080fd5b50610142610623565b61032361064e565b61033361032e610656565b61067b565b565b61033d61069f565b6001600160a01b0316336001600160a01b031614156103645761035f816106c4565b61036c565b61036c61031b565b50565b61037761069f565b6001600160a01b0316336001600160a01b0316141561040f57610399836106c4565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b600061042661069f565b6001600160a01b0316336001600160a01b0316141561044e57610447610656565b9050610456565b61045661031b565b90565b61046161069f565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104bf5760405162461bcd60e51b815260040180806020018281038252603681526020018061085f6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104e861069f565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610704565b600061051d610656565b6001600160a01b03161461053057600080fd5b61053a8382610543565b61041782610704565b600061054d610656565b6001600160a01b03161461056057600080fd5b61056982610728565b80511561061f576000826001600160a01b0316826040518082805190602001908083835b602083106105ac5780518252601f19909201916020918201910161058d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461060c576040519150601f19603f3d011682016040523d82523d6000602084013e610611565b606091505b505090508061041757600080fd5b5050565b600061062d61069f565b6001600160a01b0316336001600160a01b0316141561044e5761044761069f565b610333610790565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561069a573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6106cd81610728565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b610731816107f0565b61076c5760405162461bcd60e51b815260040180806020018281038252603b815260200180610895603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b61079861069f565b6001600160a01b0316336001600160a01b031614156107e85760405162461bcd60e51b815260040180806020018281038252603281526020018061082d6032913960400191505060405180910390fd5b610333610333565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061082457508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220c51d6476a0bf6a2da5622ff4bf1147bbd0c5a4d20b9d01b5121fa0ea947db57e64736f6c634300060c0033"
+ var InitializableImmutableAdminUpgradeabilityProxyBin = "0x60a060405234801561001057600080fd5b506040516107733803806107738339818101604052602081101561003357600080fd5b5051606081901b6001600160601b0319166080526001600160a01b03166106f36100806000398061022852806102725280610331528061045e528061048752806105af52506106f36000f3fe60806040526004361061004a5760003560e01c80633659cfe6146100545780634f1ef286146100875780635c60da1b14610107578063d1f5789414610138578063f851a440146101ee575b610052610203565b005b34801561006057600080fd5b506100526004803603602081101561007757600080fd5b50356001600160a01b031661021d565b6100526004803603604081101561009d57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c857600080fd5b8201836020820111156100da57600080fd5b803590602001918460018302840111640100000000831117156100fc57600080fd5b509092509050610267565b34801561011357600080fd5b5061011c610324565b604080516001600160a01b039092168252519081900360200190f35b6100526004803603604081101561014e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610371945050505050565b3480156101fa57600080fd5b5061011c610451565b61020b6104ab565b61021b6102166104b3565b6104d8565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561025c57610257816104fc565b610264565b610264610203565b50565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610317576102a1836104fc565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146102fe576040519150601f19603f3d011682016040523d82523d6000602084013e610303565b606091505b505090508061031157600080fd5b5061031f565b61031f610203565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156103665761035f6104b3565b905061036e565b61036e610203565b90565b600061037b6104b3565b6001600160a01b03161461038e57600080fd5b6103978261053c565b80511561044d576000826001600160a01b0316826040518082805190602001908083835b602083106103da5780518252601f1990920191602091820191016103bb565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461043a576040519150601f19603f3d011682016040523d82523d6000602084013e61043f565b606091505b505090508061031f57600080fd5b5050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561036657507f000000000000000000000000000000000000000000000000000000000000000061036e565b61021b6105a4565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156104f7573d6000f35b3d6000fd5b6105058161053c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61054581610614565b6105805760405162461bcd60e51b815260040180806020018281038252603b815260200180610683603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561060c5760405162461bcd60e51b81526004018080602001828103825260328152602001806106516032913960400191505060405180910390fd5b61021b61021b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061064857508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220c998aceaee89984e41376643cace9bef07887c2711cb0f7a736da40d75e0ac1164736f6c634300060c0033"
+ var InitializableUpgradeabilityProxyBin = "0x608060405234801561001057600080fd5b50610338806100206000396000f3fe60806040526004361061001e5760003560e01c8063d1f5789414610028575b6100266100de565b005b6100266004803603604081101561003e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561006957600080fd5b82018360208201111561007b57600080fd5b8035906020019184600183028401116401000000008311171561009d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506100f8945050505050565b6100e66100f6565b6100f66100f16101da565b6101ff565b565b60006101026101da565b6001600160a01b03161461011557600080fd5b61011e82610223565b8051156101d6576000826001600160a01b0316826040518082805190602001908083835b602083106101615780518252601f199092019160209182019101610142565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b50509050806101d457600080fd5b505b5050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561021e573d6000f35b3d6000fd5b61022c8161028b565b6102675760405162461bcd60e51b815260040180806020018281038252603b8152602001806102c8603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906102bf57508115155b94935050505056fe43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220211306dbe5716cbe1290b9edacd2f3f97feef02f22517d1059c832fd3fc2228b64736f6c634300060c0033"
+ var LendingPoolAddressesProviderBin = "0x60806040523480156200001157600080fd5b5060405162001dca38038062001dca833981810160405260208110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b506040525050506000620000ff6200015b60201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35062000154816200015f565b50620002b0565b3390565b80516200017490600190602084019062000214565b507f5e667c32fd847cf8bce48ab3400175cbf107bdc82b2dea62e3364909dfaee799816040518080602001828103825283818151815260200191508051906020019080838360005b83811015620001d6578181015183820152602001620001bc565b50505050905090810190601f168015620002045780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200025757805160ff191683800117855562000287565b8280016001018555821562000287579182015b82811115620002875782518255916020019190600101906200026a565b506200029592915062000299565b5090565b5b808211156200029557600081556001016200029a565b611b0a80620002c06000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b8578063c12542df1161007c578063c12542df14610347578063ca446dd91461036d578063ddcaa9ea14610399578063f2fde38b146103a1578063f67b1847146103c7578063fca513a81461046d57610142565b8063715018a614610301578063820d12741461030957806385c858b11461032f5780638da5cb5b14610337578063aecda3781461033f57610142565b8063398e55531161010a578063398e5553146101de578063530e784f14610204578063568ef4701461022a5780635aef021f146102a75780635dcc528c146102cd578063712d9171146102f957610142565b80630261bf8b1461014757806321f8a7211461016b578063283d62ad1461018857806335da3394146101b05780633618abba146101d6575b600080fd5b61014f610475565b604080516001600160a01b039092168252519081900360200190f35b61014f6004803603602081101561018157600080fd5b5035610494565b6101ae6004803603602081101561019e57600080fd5b50356001600160a01b03166104af565b005b6101ae600480360360208110156101c657600080fd5b50356001600160a01b0316610587565b61014f610664565b6101ae600480360360208110156101f457600080fd5b50356001600160a01b0316610685565b6101ae6004803603602081101561021a57600080fd5b50356001600160a01b0316610765565b61023261083f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026c578181015183820152602001610254565b50505050905090810190601f1680156102995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae600480360360208110156102bd57600080fd5b50356001600160a01b03166108d4565b6101ae600480360360408110156102e357600080fd5b50803590602001356001600160a01b031661097c565b61014f610a25565b6101ae610a45565b6101ae6004803603602081101561031f57600080fd5b50356001600160a01b0316610ae7565b61014f610bc8565b61014f610bef565b61014f610bfe565b6101ae6004803603602081101561035d57600080fd5b50356001600160a01b0316610c16565b6101ae6004803603604081101561038357600080fd5b50803590602001356001600160a01b0316610ccb565b61014f610d8c565b6101ae600480360360208110156103b757600080fd5b50356001600160a01b0316610da9565b6101ae600480360360208110156103dd57600080fd5b8101906020810181356401000000008111156103f857600080fd5b82018360208201111561040a57600080fd5b8035906020019184600183028401116401000000008311171561042c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ea1945050505050565b61014f610f05565b600061048f6b13115391125391d7d413d3d360a21b610494565b905090565b6000908152600260205260409020546001600160a01b031690565b6104b7610f1f565b6000546001600160a01b03908116911614610507576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b692827a7a62fa0a226a4a760b11b600090815260026020527f8625fbc469bac10fd11de1d783dcd446542784dbcc535ef64a1da61860fda74c80546001600160a01b0319166001600160a01b03841690811790915560405190917fc20a317155a9e7d84e06b716b4b355d47742ab9f8c5d630e7f556553f582430d91a250565b61058f610f1f565b6000546001600160a01b039081169116146105df576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b6e22a6a2a923a2a721acafa0a226a4a760891b600090815260026020527f767aa9c986e1d88108b2558f00fbd21b689a0397581446e2e868cd70421026cc80546001600160a01b0319166001600160a01b03841690811790915560405190917fe19673fc861bfeb894cf2d6b7662505497ef31c0f489b742db24ee331082691691a250565b600061048f724c454e44494e475f524154455f4f5241434c4560681b610494565b61068d610f1f565b6000546001600160a01b039081169116146106dd576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b7121a7a62620aa22a920a62fa6a0a720a3a2a960711b600090815260026020527f65e3f3080e9127c1765503a54b8dbb495249e66169f096dfc87ee63bed17e22c80546001600160a01b0319166001600160a01b03841690811790915560405190917f991888326f0eab3df6084aadb82bee6781b5c9aa75379e8bc50ae8693454163891a250565b61076d610f1f565b6000546001600160a01b039081169116146107bd576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b6b50524943455f4f5241434c4560a01b600090815260026020527f740f710666bd7a12af42df98311e541e47f7fd33d382d11602457a6d540cbd6380546001600160a01b0319166001600160a01b03841690811790915560405190917fefe8ab924ca486283a79dc604baa67add51afb82af1db8ac386ebbba643cdffd91a250565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156108ca5780601f1061089f576101008083540402835291602001916108ca565b820191906000526020600020905b8154815290600101906020018083116108ad57829003601f168201915b5050505050905090565b6108dc610f1f565b6000546001600160a01b0390811691161461092c576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b6109456b13115391125391d7d413d3d360a21b82610f23565b6040516001600160a01b038216907fc4e6c6cdf28d0edbd8bcf071d724d33cc2e7a30be7d06443925656e9cb492aa490600090a250565b610984610f1f565b6000546001600160a01b039081169116146109d4576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b6109de8282610f23565b604080518381526001602082015281516001600160a01b038416927ff2689d5d5cd0c639e137642cae5d40afced201a1a0327e7ac9358461dc9fff31928290030190a25050565b600061048f7121a7a62620aa22a920a62fa6a0a720a3a2a960711b610494565b610a4d610f1f565b6000546001600160a01b03908116911614610a9d576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610aef610f1f565b6000546001600160a01b03908116911614610b3f576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b724c454e44494e475f524154455f4f5241434c4560681b600090815260026020527f10f0e20294ece4bd93e7a467dbf22ab9ab1740ebd0a532cc53066601e880c0cf80546001600160a01b0319166001600160a01b03841690811790915560405190917f5c29179aba6942020a8a2d38f65de02fb6b7f784e7f049ed3a3cab97621859b591a250565b600061048f782622a72224a723afa827a7a62fa1a7a72324a3aaa920aa27a960391b610494565b6000546001600160a01b031690565b600061048f692827a7a62fa0a226a4a760b11b610494565b610c1e610f1f565b6000546001600160a01b03908116911614610c6e576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b610c94782622a72224a723afa827a7a62fa1a7a72324a3aaa920aa27a960391b82610f23565b6040516001600160a01b038216907fdfabe479bad36782fb1e77fbfddd4e382671713527e4786cfc93a022ae76372990600090a250565b610cd3610f1f565b6000546001600160a01b03908116911614610d23576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b600082815260026020908152604080832080546001600160a01b0319166001600160a01b03861690811790915581518681529283019390935280517ff2689d5d5cd0c639e137642cae5d40afced201a1a0327e7ac9358461dc9fff319281900390910190a25050565b600061048f6e22a6a2a923a2a721acafa0a226a4a760891b610494565b610db1610f1f565b6000546001600160a01b03908116911614610e01576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b6001600160a01b038116610e465760405162461bcd60e51b8152600401808060200182810382526026815260200180611a8f6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610ea9610f1f565b6000546001600160a01b03908116911614610ef9576040805162461bcd60e51b81526020600482018190526024820152600080516020611ab5833981519152604482015290519081900360640190fd5b610f02816111cb565b50565b600061048f6b50524943455f4f5241434c4560a01b610494565b3390565b6000828152600260209081526040918290205482513060248083019190915284518083039091018152604490910190935290820180516001600160e01b031663189acdbd60e31b1790526001600160a01b0316908190816110f25730604051610f8b9061127b565b6001600160a01b03909116815260405190819003602001906000f080158015610fb8573d6000803e3d6000fd5b509150816001600160a01b031663d1f5789485836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561102757818101518382015260200161100f565b50505050905090810190601f1680156110545780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b50505060008681526002602090815260409182902080546001600160a01b0319166001600160a01b038716908117909155825189815292519093507f1eb35cb4b5bbb23d152f3b4016a5a46c37a07ae930ed0956aba951e2311424389281900390910190a26111c4565b816001600160a01b0316634f1ef28685836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115e578181015183820152602001611146565b50505050905090810190601f16801561118b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156111ab57600080fd5b505af11580156111bf573d6000803e3d6000fd5b505050505b5050505050565b80516111de906001906020840190611288565b507f5e667c32fd847cf8bce48ab3400175cbf107bdc82b2dea62e3364909dfaee799816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561123e578181015183820152602001611226565b50505050905090810190601f16801561126b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b6107738061131c83390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106112c957805160ff19168380011785556112f6565b828001600101855582156112f6579182015b828111156112f65782518255916020019190600101906112db565b50611302929150611306565b5090565b5b80821115611302576000815560010161130756fe60a060405234801561001057600080fd5b506040516107733803806107738339818101604052602081101561003357600080fd5b5051606081901b6001600160601b0319166080526001600160a01b03166106f36100806000398061022852806102725280610331528061045e528061048752806105af52506106f36000f3fe60806040526004361061004a5760003560e01c80633659cfe6146100545780634f1ef286146100875780635c60da1b14610107578063d1f5789414610138578063f851a440146101ee575b610052610203565b005b34801561006057600080fd5b506100526004803603602081101561007757600080fd5b50356001600160a01b031661021d565b6100526004803603604081101561009d57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c857600080fd5b8201836020820111156100da57600080fd5b803590602001918460018302840111640100000000831117156100fc57600080fd5b509092509050610267565b34801561011357600080fd5b5061011c610324565b604080516001600160a01b039092168252519081900360200190f35b6100526004803603604081101561014e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610371945050505050565b3480156101fa57600080fd5b5061011c610451565b61020b6104ab565b61021b6102166104b3565b6104d8565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561025c57610257816104fc565b610264565b610264610203565b50565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610317576102a1836104fc565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146102fe576040519150601f19603f3d011682016040523d82523d6000602084013e610303565b606091505b505090508061031157600080fd5b5061031f565b61031f610203565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156103665761035f6104b3565b905061036e565b61036e610203565b90565b600061037b6104b3565b6001600160a01b03161461038e57600080fd5b6103978261053c565b80511561044d576000826001600160a01b0316826040518082805190602001908083835b602083106103da5780518252601f1990920191602091820191016103bb565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461043a576040519150601f19603f3d011682016040523d82523d6000602084013e61043f565b606091505b505090508061031f57600080fd5b5050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561036657507f000000000000000000000000000000000000000000000000000000000000000061036e565b61021b6105a4565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156104f7573d6000f35b3d6000fd5b6105058161053c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61054581610614565b6105805760405162461bcd60e51b815260040180806020018281038252603b815260200180610683603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561060c5760405162461bcd60e51b81526004018080602001828103825260328152602001806106516032913960400191505060405180910390fd5b61021b61021b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061064857508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220c998aceaee89984e41376643cace9bef07887c2711cb0f7a736da40d75e0ac1164736f6c634300060c00334f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220b6d4ea26bd7977c1d547c5e9febafdd740fca986e947334574b428f9782d631464736f6c634300060c0033"
+ var LendingPoolAddressesProviderRegistryBin = "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6108698061007d6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b1461010a578063d0267be71461012e578063d258191e14610166578063f2fde38b146101925761007d565b80630de2670714610082578063365ccbbf146100aa578063715018a614610102575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b03166101b8565b005b6100b2610322565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100ee5781810151838201526020016100d6565b505050509050019250505060405180910390f35b6100a861046b565b61011261050d565b604080516001600160a01b039092168252519081900360200190f35b6101546004803603602081101561014457600080fd5b50356001600160a01b031661051c565b60408051918252519081900360200190f35b6100a86004803603604081101561017c57600080fd5b506001600160a01b038135169060200135610537565b6100a8600480360360208110156101a857600080fd5b50356001600160a01b0316610651565b6101c0610749565b6000546001600160a01b03908116911614610210576040805162461bcd60e51b81526020600482018190526024820152600080516020610814833981519152604482015290519081900360640190fd5b600060016000836001600160a01b03166001600160a01b03168152602001908152602001600020541160405180604001604052806002815260200161343160f01b815250906102dd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102a257818101518382015260200161028a565b50505050905090810190601f1680156102cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001600160a01b038116600081815260016020526040808220829055517f851e5971c053e6b76e3a1e0b8ffa81430df738007fad86e195c409a757faccd29190a250565b606080600280548060200260200160405190810160405280929190818152602001828054801561037b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161035d575b5050505050905060008151905060608167ffffffffffffffff811180156103a157600080fd5b506040519080825280602002602001820160405280156103cb578160200160208202803683370190505b50905060005b82811015610463576000600160008684815181106103eb57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054111561045b5783818151811061042657fe5b602002602001015182828151811061043a57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b6001016103d1565b509250505090565b610473610749565b6000546001600160a01b039081169116146104c3576040805162461bcd60e51b81526020600482018190526024820152600080516020610814833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6001600160a01b031660009081526001602052604090205490565b61053f610749565b6000546001600160a01b0390811691161461058f576040805162461bcd60e51b81526020600482018190526024820152600080516020610814833981519152604482015290519081900360640190fd5b6040805180820190915260028152611b9960f11b6020820152816105f45760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102a257818101518382015260200161028a565b506001600160a01b03821660009081526001602052604090208190556106198261074d565b6040516001600160a01b038316907f2db38786c10176b033a1608361716b0ca992e3af55dc05b6dc710969790beeda90600090a25050565b610659610749565b6000546001600160a01b039081169116146106a9576040805162461bcd60e51b81526020600482018190526024820152600080516020610814833981519152604482015290519081900360640190fd5b6001600160a01b0381166106ee5760405162461bcd60e51b81526004018080602001828103825260268152602001806107ee6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b60025460005b8181101561079c57826001600160a01b03166002828154811061077257fe5b6000918252602090912001546001600160a01b031614156107945750506107ea565b600101610753565b5050600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0383161790555b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220b2a1d7c1d193b33040bb6701d463da22885fb9ad4d6b6e4e11246b07a61d1f9364736f6c634300060c0033"
+ var LendingPoolBin = "0x60806040526000805534801561001457600080fd5b506155cd80620000256000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c8063ab9c4b5d116100f9578063d15e005311610097578063e82fec2f11610071578063e82fec2f146103c2578063e8eda9df146103ca578063f8119d51146103dd578063fe65acfe146103e5576101c3565b8063d15e005314610387578063d1946dbc1461039a578063d5ed3933146103af576101c3565b8063bf92857c116100d3578063bf92857c14610329578063c44b11f71461034e578063c4d66de814610361578063cd11238214610374576101c3565b8063ab9c4b5d146102f0578063b8d2927614610303578063bedb86fb14610316576101c3565b80635a3b74b9116101665780637a708e92116101405780637a708e92146102af5780638afaff02146102c257806394ba89a2146102ca578063a415bcad146102dd576101c3565b80635a3b74b9146102745780635c975abb1461028757806369328dec1461029c576101c3565b806335ea6a75116101a257806335ea6a751461020e578063386497fd1461022e5780634417a58314610241578063573ade8114610261576101c3565b8062a718a9146101c8578063074b2e43146101dd5780631d2118f9146101fb575b600080fd5b6101db6101d636600461488a565b6103fa565b005b6101e56105d0565b6040516101f291906154c4565b60405180910390f35b6101db6102093660046147e2565b6105d5565b61022161021c3660046147aa565b61060e565b6040516101f291906152d9565b6101e561023c3660046147aa565b6106f0565b61025461024f3660046147aa565b610717565b6040516101f291906152cf565b6101e561026f366004614b29565b61074a565b6101db610282366004614a3f565b610a16565b61028f610bdb565b6040516101f29190615115565b6101e56102aa366004614a97565b610be4565b6101db6102bd36600461481a565b610f0e565b6101e5610ff0565b6101db6102d8366004614a6c565b610ff5565b6101db6102eb366004614b72565b611362565b6101db6102fe366004614947565b6113e2565b6101db610311366004614a6c565b611ab5565b6101db610324366004614bb1565b611ad9565b61033c6103373660046147aa565b611b54565b6040516101f296959493929190615516565b61025461035c3660046147aa565b611c50565b6101db61036f3660046147aa565b611c83565b6101db6103823660046147e2565b611d1b565b6101e56103953660046147aa565b611f91565b6103a2611fb2565b6040516101f291906150c8565b6101db6103bd3660046148e3565b612057565b6101e56122a0565b6101db6103d8366004614ad8565b6122a6565b6101e56124d3565b6103ed6124d8565b6040516101f29190614df8565b6104026124e7565b6034546040805163712d917160e01b815290516000926001600160a01b03169163712d9171916004808301926020929190829003018186803b15801561044757600080fd5b505afa15801561045b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047f91906147c6565b905060006060826001600160a01b031688888888886040516024016104a8959493929190614e80565b60408051601f198184030181529181526020820180516001600160e01b031662a718a960e01b179052516104dc9190614ddc565b600060405180830381855af49150503d8060008114610517576040519150601f19603f3d011682016040523d82523d6000602084013e61051c565b606091505b50915091508160405180604001604052806002815260200161323360f01b815250906105645760405162461bcd60e51b815260040161055b9190615120565b60405180910390fd5b50600060608280602001905181019061057d9190614c01565b9150915081600014816040516020016105969190614ddc565b604051602081830303815290604052906105c35760405162461bcd60e51b815260040161055b9190615120565b5050505050505050505050565b600981565b6105dd612525565b6001600160a01b03918216600090815260356020526040902060070180546001600160a01b03191691909216179055565b6106166144f8565b506001600160a01b0381811660009081526035602090815260409182902082516101a08101845281546101808201908152815260018201546001600160801b0380821694830194909452600160801b908190048416948201949094526002820154808416606083015284900483166080820152600382015492831660a08201529290910464ffffffffff1660c08301526004810154831660e0830152600581015483166101008301526006810154831661012083015260070154918216610140820152600160a01b90910460ff166101608201525b919050565b6001600160a01b0381166000908152603560205260408120610711906125e4565b92915050565b61071f614563565b506001600160a01b031660009081526036602090815260409182902082519182019092529054815290565b60006107546124e7565b6001600160a01b038516600090815260356020526040812090806107788584612661565b91509150600086600281111561078a57fe5b60405163fa0c214960e01b815290915073__$1bcb88e8c11bbe24182074a8232234694a$__9063fa0c2149906107ce9087908c9086908c908a908a90600401615480565b60006040518083038186803b1580156107e657600080fd5b505af41580156107fa573d6000803e3d6000fd5b50600092506001915061080a9050565b82600281111561081657fe5b146108215782610823565b835b9050808910156108305750875b61083985612776565b600182600281111561084757fe5b14156108b8576005850154604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90610881908a908590600401614e3d565b600060405180830381600087803b15801561089b57600080fd5b505af11580156108af573d6000803e3d6000fd5b50505050610936565b60068501546001860154604051637a94c56560e11b81526001600160a01b039092169163f5298aca91610903918b918691600160801b9091046001600160801b031690600401614e56565b600060405180830381600087803b15801561091d57600080fd5b505af1158015610931573d6000803e3d6000fd5b505050505b60048501546001600160a01b0316610952868c83856000612843565b610966826109608787612c35565b90612c5a565b61099e5760078601546001600160a01b038916600090815260366020526040812061099e929091600160a01b90910460ff1690612c9c565b6109b36001600160a01b038c16338385612d0c565b336001600160a01b0316886001600160a01b03168c6001600160a01b03167f4cdde6e09bb755c9a5589ebaec640bbfedff1362d4b255ebf8339782b9942faa85604051610a0091906154c4565b60405180910390a4509998505050505050505050565b610a1e6124e7565b6001600160a01b03808316600090815260356020818152604080842033855260368352938190206038546034548351631f94a27560e31b81529351969773__$1bcb88e8c11bbe24182074a8232234694a$__97635fa297e5978a978d978d9792969295603795939493169263fca513a892600480840193919291829003018186803b158015610aac57600080fd5b505afa158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae491906147c6565b6040518963ffffffff1660e01b8152600401610b079897969594939291906153fa565b60006040518083038186803b158015610b1f57600080fd5b505af4158015610b33573d6000803e3d6000fd5b505050506007810154336000908152603660205260409020610b5f91600160a01b900460ff1684612d6a565b8115610b9f5760405133906001600160a01b038516907e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f290600090a3610bd6565b60405133906001600160a01b038516907f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd90600090a35b505050565b60395460ff1690565b6000610bee6124e7565b6001600160a01b0380851660009081526035602052604080822060048082015492516370a0823160e01b8152919492909216929183916370a0823191610c3691339101614df8565b60206040518083038186803b158015610c4e57600080fd5b505afa158015610c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c869190614be9565b905085600019811415610c965750805b73__$1bcb88e8c11bbe24182074a8232234694a$__63d09db04a898385603560366000336001600160a01b03166001600160a01b031681526020019081526020016000206037603854603460009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2d57600080fd5b505afa158015610d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6591906147c6565b6040518963ffffffff1660e01b8152600401610d88989796959493929190614f65565b60006040518083038186803b158015610da057600080fd5b505af4158015610db4573d6000803e3d6000fd5b50505050610dc184612776565b610dcf848985600085612843565b81811415610e39576007840154336000908152603660205260408120610e02929091600160a01b90910460ff1690612d6a565b60405133906001600160a01b038a16907f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd90600090a35b6001840154604051636b81068560e11b81526001600160a01b0385169163d7020d0a91610e7a9133918b9187916001600160801b0390911690600401614e0c565b600060405180830381600087803b158015610e9457600080fd5b505af1158015610ea8573d6000803e3d6000fd5b50505050856001600160a01b0316336001600160a01b0316896001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f784604051610ef991906154c4565b60405180910390a493505050505b9392505050565b610f16612525565b610f1f85612de0565b6040518060400160405280600281526020016106e760f31b81525090610f585760405162461bcd60e51b815260040161055b9190615120565b506001600160a01b038516600090815260356020526040908190209051630acce25f60e21b815273__$40f0de17db8d5bc5f7c18656d6c356a0c7$__91632b33897c91610fb0919088908890889088906004016153cc565b60006040518083038186803b158015610fc857600080fd5b505af4158015610fdc573d6000803e3d6000fd5b50505050610fe985612e19565b5050505050565b600281565b610ffd6124e7565b6001600160a01b038216600090815260356020526040812090806110213384612661565b91509150600084600281111561103357fe5b3360009081526036602052604090819020905163a8695b1d60e01b815291925073__$1bcb88e8c11bbe24182074a8232234694a$__9163a8695b1d916110849188919088908890889060040161543c565b60006040518083038186803b15801561109c57600080fd5b505af41580156110b0573d6000803e3d6000fd5b505050506110bd84612776565b60018160028111156110cb57fe5b14156111db576005840154604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906111059033908790600401614e3d565b600060405180830381600087803b15801561111f57600080fd5b505af1158015611133573d6000803e3d6000fd5b505050506006840154600185015460405163b3f1c93d60e01b81526001600160a01b039092169163b3f1c93d9161118391339182918991600160801b90046001600160801b031690600401614e0c565b602060405180830381600087803b15801561119d57600080fd5b505af11580156111b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d59190614bcd565b506112f1565b60068401546001850154604051637a94c56560e11b81526001600160a01b039092169163f5298aca916112269133918791600160801b9091046001600160801b031690600401614e56565b600060405180830381600087803b15801561124057600080fd5b505af1158015611254573d6000803e3d6000fd5b505050506005840154600385015460405163b3f1c93d60e01b81526001600160a01b039092169163b3f1c93d9161129d913391829188916001600160801b031690600401614e0c565b602060405180830381600087803b1580156112b757600080fd5b505af11580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef9190614bcd565b505b600484015461130f90859088906001600160a01b0316600080612843565b336001600160a01b0316866001600160a01b03167fea368a40e9570069bb8e6511d668293ad2e1f03b0d982431fd223de9f3b70ca68760405161135291906154c4565b60405180910390a3505050505050565b61136a6124e7565b6001600160a01b038086166000818152603560209081526040918290208251610100810184529384523391840191909152848416918301919091526060820187905260808201869052600481015490921660a082015261ffff841660c0820152600160e08201526113da90612f20565b505050505050565b6113ea6124e7565b6113f2614576565b61145f8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d91829185019084908082843760009201919091525061341992505050565b60608a67ffffffffffffffff8111801561147857600080fd5b506040519080825280602002602001820160405280156114a2578160200160208202803683370190505b50905060608b67ffffffffffffffff811180156114be57600080fd5b506040519080825280602002602001820160405280156114e8578160200160208202803683370190505b506001600160a01b038f1684526000604085015290505b60408301518c11156116ab57603560008e8e866040015181811061151f57fe5b905060200201602081019061153491906147aa565b6001600160a01b03166001600160a01b0316815260200190815260200160002060040160009054906101000a90046001600160a01b03168284604001518151811061157b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506115d16127106115cb60098e8e88604001518181106115b657fe5b9050602002013561345790919063ffffffff16565b90613491565b818460400151815181106115e157fe5b602002602001018181525050818360400151815181106115fd57fe5b60200260200101516001600160a01b0316634efecaa58f8d8d876040015181811061162457fe5b905060200201356040518363ffffffff1660e01b8152600401611648929190614e3d565b602060405180830381600087803b15801561166257600080fd5b505af1158015611676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169a9190614be9565b5060408301805160010190526114ff565b82600001516001600160a01b031663920f5c848e8e8e8e86338d8d6040518963ffffffff1660e01b81526004016116e9989796959493929190615004565b602060405180830381600087803b15801561170357600080fd5b505af1158015611717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173b9190614bcd565b604051806040016040528060028152602001611b1b60f11b815250906117745760405162461bcd60e51b815260040161055b9190615120565b50600060408401525b60408301518c1115611aa5578c8c846040015181811061179957fe5b90506020020160208101906117ae91906147aa565b6001600160a01b0316606084015260408301518b908b908181106117ce57fe5b905060200201358360a0018181525050808360400151815181106117ee57fe5b60200260200101518360c00181815250508183604001518151811061180f57fe5b60209081029190910101516001600160a01b0316608084015260c083015160a084015161183b91612c35565b60e084015260008989856040015181811061185257fe5b90506020020135600281111561186457fe5b600281111561186f57fe5b14156119a15760608301516001600160a01b0316600090815260356020526040902061189a90612776565b61193a83608001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118da57600080fd5b505afa1580156118ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119129190614be9565b60c085015160608601516001600160a01b0316600090815260356020526040902091906134d3565b6060830151608084015160e08501516001600160a01b038316600090815260356020526040812061197094909390929091612843565b61199c8e84608001518560e0015186606001516001600160a01b0316612d0c909392919063ffffffff16565b611a30565b611a3060405180610100016040528085606001516001600160a01b03168152602001336001600160a01b03168152602001896001600160a01b031681526020018560a0015181526020018b8b87604001518181106119fb57fe5b90506020020135815260200185608001516001600160a01b031681526020018661ffff16815260200160001515815250612f20565b82606001516001600160a01b0316336001600160a01b03168f6001600160a01b03167f631042c832b07452973831137f2d73e395028b44b250dedc5abb0ee766e168ac8660a001518760c0015189604051611a8d939291906154cd565b60405180910390a4604083018051600101905261177d565b5050505050505050505050505050565b611abd612525565b6001600160a01b03909116600090815260356020526040902055565b611ae1612525565b6039805460ff1916821515179081905560ff1615611b27576040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1611b51565b6040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a15b50565b600080600080600080611c2d876035603660008b6001600160a01b03166001600160a01b031681526020019081526020016000206040518060200160405290816000820154815250506037603854603460009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015611bf057600080fd5b505afa158015611c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2891906147c6565b613590565b93995091975090945092509050611c45868684613a51565b935091939550919395565b611c58614563565b506001600160a01b031660009081526035602090815260409182902082519182019092529054815290565b6000611c8d613a85565b60015490915060ff1680611ca45750611ca4613a8a565b80611cb0575060005481115b611ccc5760405162461bcd60e51b815260040161055b90615200565b60015460ff16158015611ceb576001805460ff19168117905560008290555b603480546001600160a01b0319166001600160a01b0385161790558015610bd6576001805460ff19169055505050565b611d236124e7565b6001600160a01b038083166000908152603560205260408082206005810154600682015460048084015494516370a0823160e01b81529396928316959183169490921692909185916370a0823191611d7d918a9101614df8565b60206040518083038186803b158015611d9557600080fd5b505afa158015611da9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcd9190614be9565b60405163548cad0960e01b815290915073__$1bcb88e8c11bbe24182074a8232234694a$__9063548cad0990611e0f9088908b908990899089906004016153cc565b60006040518083038186803b158015611e2757600080fd5b505af4158015611e3b573d6000803e3d6000fd5b50505050611e4885612776565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac90611e769089908590600401614e3d565b600060405180830381600087803b158015611e9057600080fd5b505af1158015611ea4573d6000803e3d6000fd5b505050600386015460405163b3f1c93d60e01b81526001600160a01b038716925063b3f1c93d91611ee7918a91829187916001600160801b031690600401614e0c565b602060405180830381600087803b158015611f0157600080fd5b505af1158015611f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f399190614bcd565b50611f48858884600080612843565b856001600160a01b0316876001600160a01b03167f9f439ae0c81e41a04d3fdfe07aed54e6a179fb0db15be7702eb66fa8ef6f530060405160405180910390a350505050505050565b6001600160a01b038116600090815260356020526040812061071190613a90565b60608060385467ffffffffffffffff81118015611fce57600080fd5b50604051908082528060200260200182016040528015611ff8578160200160208202803683370190505b50905060005b6038548110156120515760008181526037602052604090205482516001600160a01b039091169083908390811061203157fe5b6001600160a01b0390921660209283029190910190910152600101611ffe565b50905090565b61205f6124e7565b6001600160a01b038681166000908152603560209081526040918290206004015482518084019093526002835261363360f01b9183019190915290911633146120bb5760405162461bcd60e51b815260040161055b9190615120565b5061217785603560366000896001600160a01b03166001600160a01b031681526020019081526020016000206037603854603460009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561213a57600080fd5b505afa15801561214e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217291906147c6565b613aef565b6001600160a01b03868116600090815260356020526040902060070154600160a01b900460ff169085811690871614612297576121b48385612c5a565b612220576001600160a01b0386166000908152603660205260408120906121de9082908490612d6a565b866001600160a01b0316886001600160a01b03167f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd60405160405180910390a3505b8115801561222d57508315155b15612297576001600160a01b038516600090815260366020526040902061225681836001612d6a565b856001600160a01b0316886001600160a01b03167e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f260405160405180910390a3505b50505050505050565b6109c481565b6122ae6124e7565b6001600160a01b038416600090815260356020526040908190209051630eca322b60e01b815273__$1bcb88e8c11bbe24182074a8232234694a$__90630eca322b906123009084908890600401615472565b60006040518083038186803b15801561231857600080fd5b505af415801561232c573d6000803e3d6000fd5b5050505060048101546001600160a01b031661234782612776565b612355828783886000612843565b61236a6001600160a01b038716338388612d0c565b6001820154604051630ab714fb60e11b81526000916001600160a01b0384169163156e29f6916123ac9189918b916001600160801b0390911690600401614e56565b602060405180830381600087803b1580156123c657600080fd5b505af11580156123da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fe9190614bcd565b905080156124785760078301546001600160a01b038616600090815260366020526040902061243891600160a01b900460ff166001612d6a565b846001600160a01b0316876001600160a01b03167e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f260405160405180910390a35b8361ffff16856001600160a01b0316886001600160a01b03167fde6857219544bb5b7746f48ed30be6386fefc61b2f864cacf559893bf50fd951338a6040516124c2929190614e3d565b60405180910390a450505050505050565b608081565b6034546001600160a01b031690565b6039546040805180820190915260028152610d8d60f21b60208201529060ff1615611b515760405162461bcd60e51b815260040161055b9190615120565b603454604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561256957600080fd5b505afa15801561257d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a191906147c6565b6001600160a01b03161460405180604001604052806002815260200161323760f01b81525090611b515760405162461bcd60e51b815260040161055b9190615120565b600381015460009064ffffffffff600160801b90910481169042168114156126225750506001810154600160801b90046001600160801b03166106eb565b60018301546002840154600091612659916001600160801b03600160801b9283900481169261265392041685613b65565b90613b72565b949350505050565b60058101546040516370a0823160e01b815260009182916001600160a01b03909116906370a0823190612698908790600401614df8565b60206040518083038186803b1580156126b057600080fd5b505afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190614be9565b60068401546040516370a0823160e01b81526001600160a01b03909116906370a082319061271a908890600401614df8565b60206040518083038186803b15801561273257600080fd5b505afa158015612746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276a9190614be9565b915091505b9250929050565b60068101546040805163b1bf962d60e01b815290516000926001600160a01b03169163b1bf962d916004808301926020929190829003018186803b1580156127bd57600080fd5b505afa1580156127d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f59190614be9565b60018301546003840154919250600160801b8082046001600160801b03908116939216910464ffffffffff166000806128318787868887613c05565b91509150612297878787858588613d62565b61284b6145c2565b60058601546001600160a01b031680825260408051637b98f4df60e11b8152815163f731e9be92600480840193919291829003018186803b15801561288f57600080fd5b505afa1580156128a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c79190614ca8565b60c083015260408083019190915260018701546006880154825163b1bf962d60e01b8152925161296c93600160801b9093046001600160801b0316926001600160a01b039092169163b1bf962d916004808301926020929190829003018186803b15801561293457600080fd5b505afa158015612948573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126539190614be9565b60e08201526040516370a0823160e01b81526001600160a01b038616906370a082319061299d908790600401614df8565b60206040518083038186803b1580156129b557600080fd5b505afa1580156129c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ed9190614be9565b6020820181905260078701546001600160a01b031690639584df28908790612a1b9086906109609089612c35565b604085015160e086015160c0870151612a338d613f25565b6040518763ffffffff1660e01b8152600401612a5496959493929190614fd1565b60606040518083038186803b158015612a6c57600080fd5b505afa158015612a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa49190614ccb565b60a0840152608083015260608201819052604080518082019091526002815261353360f01b6020820152906001600160801b031015612af65760405162461bcd60e51b815260040161055b9190615120565b506080810151604080518082019091526002815261353560f01b6020820152906001600160801b031015612b3d5760405162461bcd60e51b815260040161055b9190615120565b5060a08101516040805180820190915260028152610d4d60f21b6020820152906001600160801b031015612b845760405162461bcd60e51b815260040161055b9190615120565b506060810151600287018054608084015160038a0180546001600160801b03199081166001600160801b038085169190911790925560a08701519316818616178116600160801b84831681029190911790945560018b01546040516001600160a01b038c16967f804c9b842b2748a22bb64b345453a3de7ca54a6ca45ce00d415894979e22897a96612c2596919594919380831693919004909116906154e7565b60405180910390a2505050505050565b600082820183811015610f075760405162461bcd60e51b815260040161055b90615153565b6000610f0783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613f30565b604080518082019091526002815261373760f01b602082015260808310612cd65760405162461bcd60e51b815260040161055b9190615120565b508160020281612ce7576000612cea565b60015b60ff16901b826002026001901b19846000015416178360000181905550505050565b612d64846323b872dd60e01b858585604051602401612d2d93929190614eb4565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613f5c565b50505050565b604080518082019091526002815261373760f01b602082015260808310612da45760405162461bcd60e51b815260040161055b9190615120565b508160020260010181612db8576000612dbb565b60015b60ff16901b826002026001016001901b19846000015416178360000181905550505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590612659575050151592915050565b603854604080518082019091526002815261363560f01b602082015260808210612e565760405162461bcd60e51b815260040161055b9190615120565b506001600160a01b038216600090815260356020526040812060070154600160a01b900460ff16151580612ebf57506000805260376020527fa0a618d80eda9243166be83cb7421d97e9dab6ddddd3c70ac7a6b4440256e8e7546001600160a01b038481169116145b905080610bd657506001600160a01b03919091166000818152603560209081526040808320600701805460ff60a01b1916600160a01b60ff8816021790558483526037909152902080546001600160a01b0319169091179055600101603855565b80516001600160a01b0390811660009081526035602090815260408083208186015185168452603683528184206034548351631f94a27560e31b81529351929691959491169263fca513a89260048083019392829003018186803b158015612f8757600080fd5b505afa158015612f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbf91906147c6565b90506000613060612fcf85614041565b600a0a6115cb8760600151856001600160a01b031663b3596f078a600001516040518263ffffffff1660e01b815260040161300a9190614df8565b60206040518083038186803b15801561302257600080fd5b505afa158015613036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305a9190614be9565b90613457565b905073__$1bcb88e8c11bbe24182074a8232234694a$__63721a92f986600001518688604001518960600151868b608001516109c460358c60376038548e6040518d63ffffffff1660e01b81526004016130c59c9b9a99989796959493929190614f01565b60006040518083038186803b1580156130dd57600080fd5b505af41580156130f1573d6000803e3d6000fd5b505050506130fe84612776565b60008060018760800151600281111561311357fe5b600281111561311e57fe5b14156131d3576003860154600587015460208901516040808b015160608c0151915163b3f1c93d60e01b81526001600160801b0390951696506001600160a01b039093169363b3f1c93d9361317a939290918890600401614ed8565b602060405180830381600087803b15801561319457600080fd5b505af11580156131a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cc9190614bcd565b9050613282565b600686015460208801516040808a015160608b015160018b0154925163b3f1c93d60e01b81526001600160a01b039095169463b3f1c93d9461322d9490939291600160801b9091046001600160801b031690600401614e0c565b602060405180830381600087803b15801561324757600080fd5b505af115801561325b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061327f9190614bcd565b90505b80156132a45760078601546132a4908690600160a01b900460ff166001612c9c565b6132d387600001518860a0015160008a60e001516132c35760006132c9565b8a606001515b8a93929190612843565b8660e001511561336b578660a001516001600160a01b0316634efecaa5886020015189606001516040518363ffffffff1660e01b8152600401613317929190614e3d565b602060405180830381600087803b15801561333157600080fd5b505af1158015613345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133699190614be9565b505b8660c0015161ffff1687604001516001600160a01b031688600001516001600160a01b03167fc6a898309e823ee50bac64e45ca8adba6690e99e7841c45d754e2a38e9019d9b8a602001518b606001518c60800151600160028111156133cd57fe5b8e6080015160028111156133dd57fe5b60028111156133e857fe5b146134075760028d0154600160801b90046001600160801b0316613409565b885b6040516124c29493929190614fab565b805182511460405180604001604052806002815260200161373360f01b81525090610bd65760405162461bcd60e51b815260040161055b9190615120565b60008261346657506000610711565b8282028284828161347357fe5b0414610f075760405162461bcd60e51b815260040161055b906151bf565b6000610f0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061404b565b60006134f06134e184614082565b6134ea84614082565b906140d2565b905060006135066134ff61417d565b8390612c35565b60018601549091506135229082906001600160801b0316613b72565b604080518082019091526002815261353160f01b60208201529091506001600160801b038211156135665760405162461bcd60e51b815260040161055b9190615120565b5060019490940180546001600160801b0319166001600160801b0390951694909417909355505050565b60008060008060006135a0614610565b6135a98a61418d565b156135c7576000806000806000199550955095509550955050613a43565b600060e08201525b878160e0015110156139a25760e08101516135eb908b90614192565b6135f457613992565b60e0810151600090815260208a81526040808320546001600160a01b03166101e085018190528352908d9052902061362b816141e3565b506080860181905260c08601929092525060a0840191909152600a0a60208301526101e082015160405163b3596f0760e01b81526001600160a01b038a169163b3596f079161367d9190600401614df8565b60206040518083038186803b15801561369557600080fd5b505afa1580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136cd9190614be9565b825260c0820151158015906136ed575060e08201516136ed908c9061420e565b1561380b578060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b81526004016137359190614df8565b60206040518083038186803b15801561374d57600080fd5b505afa158015613761573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137859190614be9565b60408301819052602083015183516000926137a492916115cb91613457565b6101208401519091506137b79082612c35565b61012084015260a08301516137dd906137d1908390613457565b61016085015190612c35565b61016084015260c0830151613803906137f7908390613457565b61018085015190612c35565b610180840152505b60e082015161381b908c90614266565b15613990578060050160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b81526004016138639190614df8565b60206040518083038186803b15801561387b57600080fd5b505afa15801561388f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b39190614be9565b82606001818152505061395d8160060160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b81526004016139029190614df8565b60206040518083038186803b15801561391a57600080fd5b505afa15801561392e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139529190614be9565b606084015190612c35565b60608301819052602083015183516139899261397d92916115cb91613457565b61014084015190612c35565b6101408301525b505b60e08101805160010190526135cf565b6000816101200151116139b65760006139cb565b6101208101516101608201516139cb91613491565b6101608201526101208101516139e25760006139f7565b6101208101516101808201516139f791613491565b6101808201819052610120820151610140830151613a14926142b7565b610100820181905261012082015161014083015161016084015161018090940151919850965091945090925090505b965096509650965096915050565b600080613a5e85846142db565b905083811015613a72576000915050610f07565b613a7c8185612c5a565b95945050505050565b600290565b303b1590565b600381015460009064ffffffffff600160801b9091048116904216811415613ac757505060018101546001600160801b03166106eb565b60018301546002840154600091612659916001600160801b039182169161265391168561434a565b604080516020810190915284548152600090613b119088908890878787613590565b945050505050670de0b6b3a7640000811015604051806040016040528060018152602001601b60f91b81525090613b5b5760405162461bcd60e51b815260040161055b9190615120565b5050505050505050565b6000610f07838342614388565b6000821580613b7f575081155b15613b8c57506000610711565b816b019d971e4fe8401e740000001981613ba257fe5b0483111560405180604001604052806002815260200161068760f31b81525090613bdf5760405162461bcd60e51b815260040161055b9190615120565b506b033b2e3c9fd0803ce80000006002815b048385020181613bfd57fe5b049392505050565b600285015460009081906001600160801b031685858215613d33576000613c2c848861434a565b9050613c38818a613b72565b604080518082019091526002815261353160f01b60208201529093506001600160801b03841115613c7c5760405162461bcd60e51b815260040161055b9190615120565b5060018b0180546001600160801b0319166001600160801b0385161790558915613d315760028b0154600090613cc290600160801b90046001600160801b031689613b65565b9050613cce818a613b72565b6040805180820190915260028152611a9960f11b60208201529093506001600160801b03841115613d125760405162461bcd60e51b815260040161055b9190615120565b505060018b0180546001600160801b03808516600160801b0291161790555b505b600399909901805464ffffffffff60801b1916600160801b4264ffffffffff1602179055989650505050505050565b613d6a6146aa565b613d7387613f25565b6101208201819052613d8557506113da565b8660050160009054906101000a90046001600160a01b03166001600160a01b031663797743386040518163ffffffff1660e01b815260040160806040518083038186803b158015613dd557600080fd5b505afa158015613de9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e0d9190614cf8565b64ffffffffff1661014085015260a084015282526020820152613e308686613b72565b6080820152613e3f8684613b72565b606082015260a0810151610140820151613e61919064ffffffffff8516614388565b60c082018190526020820151613e7691613b72565b60408201819052608082015182516060840151613e9b93926109609290918391612c35565b60e08201819052610120820151613eb291906142db565b61010082018190521561229757600480880154610100830151604051637df5bd3b60e01b81526001600160a01b0390921692637df5bd3b92613ef79291899101615472565b600060405180830381600087803b158015613f1157600080fd5b505af11580156105c3573d6000803e3d6000fd5b5460401c61ffff1690565b60008184841115613f545760405162461bcd60e51b815260040161055b9190615120565b505050900390565b613f6e826001600160a01b0316612de0565b613f8a5760405162461bcd60e51b815260040161055b90615298565b60006060836001600160a01b031683604051613fa69190614ddc565b6000604051808303816000865af19150503d8060008114613fe3576040519150601f19603f3d011682016040523d82523d6000602084013e613fe8565b606091505b50915091508161400a5760405162461bcd60e51b815260040161055b9061518a565b805115612d6457808060200190518101906140259190614bcd565b612d645760405162461bcd60e51b815260040161055b9061524e565b5460301c60ff1690565b6000818361406c5760405162461bcd60e51b815260040161055b9190615120565b50600083858161407857fe5b0495945050505050565b6000633b9aca0082810290839082041460405180604001604052806002815260200161068760f31b815250906140cb5760405162461bcd60e51b815260040161055b9190615120565b5092915050565b604080518082019091526002815261035360f41b60208201526000908261410c5760405162461bcd60e51b815260040161055b9190615120565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce800000082190485111561415a5760405162461bcd60e51b815260040161055b9190615120565b5082816b033b2e3c9fd0803ce80000008602018161417457fe5b04949350505050565b6b033b2e3c9fd0803ce800000090565b511590565b60006080821060405180604001604052806002815260200161373760f01b815250906141d15760405162461bcd60e51b815260040161055b9190615120565b50509051600360029092021c16151590565b5461ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b60006080821060405180604001604052806002815260200161373760f01b8152509061424d5760405162461bcd60e51b815260040161055b9190615120565b5050815160016002830281019190911c16151592915050565b60006080821060405180604001604052806002815260200161373760f01b815250906142a55760405162461bcd60e51b815260040161055b9190615120565b50509051600160029092021c16151590565b6000826142c75750600019610f07565b612659836142d586856142db565b9061445e565b60008215806142e8575081155b156142f557506000610711565b81611388198161430157fe5b0483111560405180604001604052806002815260200161068760f31b8152509061433e5760405162461bcd60e51b815260040161055b9190615120565b50612710600281613bf1565b60008061435e4264ffffffffff8516612c5a565b905061265961436b61417d565b6301e1338061437a8785613457565b8161438157fe5b0490612c35565b60008061439c8364ffffffffff8616612c5a565b9050806143b3576143ab61417d565b915050610f07565b60001981016000600283116143c95760006143ce565b600283035b90506301e13380870460006143e38280613b72565b905060006143f18284613b72565b9050600060026144058461305a8a8a613457565b8161440c57fe5b049050600060066144238461305a89818d8d613457565b8161442a57fe5b04905061444e8161444884816144408a8e613457565b61444861417d565b90612c35565b9c9b505050505050505050505050565b604080518082019091526002815261035360f41b6020820152600090826144985760405162461bcd60e51b815260040161055b9190615120565b5060408051808201909152600280825261068760f31b6020830152830490670de0b6b3a76400008219048511156144e25760405162461bcd60e51b815260040161055b9190615120565b508281670de0b6b3a76400008602018161417457fe5b60405180610180016040528061450c614563565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820181905261014082018190526101609091015290565b6040518060200160405280600081525090565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b60405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806102400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160006001600160a01b031681526020016000151581526020016000151581525090565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff1681525090565b803561071181615574565b60008083601f840112614727578182fd5b50813567ffffffffffffffff81111561473e578182fd5b602083019150836020808302850101111561276f57600080fd5b60008083601f840112614769578182fd5b50813567ffffffffffffffff811115614780578182fd5b60208301915083602082850101111561276f57600080fd5b803561ffff8116811461071157600080fd5b6000602082840312156147bb578081fd5b8135610f0781615574565b6000602082840312156147d7578081fd5b8151610f0781615574565b600080604083850312156147f4578081fd5b82356147ff81615574565b9150602083013561480f81615574565b809150509250929050565b600080600080600060a08688031215614831578081fd5b853561483c81615574565b9450602086013561484c81615574565b9350604086013561485c81615574565b9250606086013561486c81615574565b9150608086013561487c81615574565b809150509295509295909350565b600080600080600060a086880312156148a1578081fd5b85356148ac81615574565b945060208601356148bc81615574565b935060408601356148cc81615574565b925060608601359150608086013561487c81615589565b60008060008060008060c087890312156148fb578081fd5b863561490681615574565b9550602087013561491681615574565b9450604087013561492681615574565b959894975094956060810135955060808101359460a0909101359350915050565b600080600080600080600080600080600060e08c8e031215614967578485fd5b6149718d8d61470b565b9a5067ffffffffffffffff8060208e0135111561498c578586fd5b61499c8e60208f01358f01614716565b909b50995060408d01358110156149b1578586fd5b6149c18e60408f01358f01614716565b909950975060608d01358110156149d6578586fd5b6149e68e60608f01358f01614716565b90975095506149f88e60808f0161470b565b94508060a08e01351115614a0a578384fd5b50614a1b8d60a08e01358e01614758565b9093509150614a2d8d60c08e01614798565b90509295989b509295989b9093969950565b60008060408385031215614a51578081fd5b8235614a5c81615574565b9150602083013561480f81615589565b60008060408385031215614a7e578182fd5b8235614a8981615574565b946020939093013593505050565b600080600060608486031215614aab578081fd5b8335614ab681615574565b9250602084013591506040840135614acd81615574565b809150509250925092565b60008060008060808587031215614aed578182fd5b8435614af881615574565b9350602085013592506040850135614b0f81615574565b9150614b1e8660608701614798565b905092959194509250565b60008060008060808587031215614b3e578182fd5b8435614b4981615574565b935060208501359250604085013591506060850135614b6781615574565b939692955090935050565b600080600080600060a08688031215614b89578283fd5b8535614b9481615574565b9450602086013593506040860135925061486c8760608801614798565b600060208284031215614bc2578081fd5b8135610f0781615589565b600060208284031215614bde578081fd5b8151610f0781615589565b600060208284031215614bfa578081fd5b5051919050565b60008060408385031215614c13578182fd5b82519150602083015167ffffffffffffffff80821115614c31578283fd5b818501915085601f830112614c44578283fd5b815181811115614c52578384fd5b604051601f8201601f191681016020018381118282101715614c72578586fd5b604052818152838201602001881015614c89578485fd5b614c9a82602083016020870161553e565b809450505050509250929050565b60008060408385031215614cba578182fd5b505080516020909101519092909150565b600080600060608486031215614cdf578081fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215614d0d578182fd5b845193506020850151925060408501519150606085015164ffffffffff81168114614b67578182fd5b6001600160a01b0316815260200190565b6001600160a01b03169052565b6000815180845260208085019450808401835b83811015614d8357815187529582019590820190600101614d67565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b519052565b6001600160801b03169052565b64ffffffffff169052565b60ff169052565b60008251614dee81846020870161553e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292909316602083015260408201526001600160801b03909116606082015260800190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0393909316835260208301919091526001600160801b0316604082015260600190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252901515608082015260a00190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b6001600160a01b039c8d168152602081019b909b52988b1660408b015260608a0197909752608089019590955260a088019390935260c087019190915260e08601526101008501526101208401526101408301529091166101608201526101800190565b6001600160a01b039889168152602081019790975260408701959095526060860193909352608085019190915260a084015260c083015290911660e08201526101000190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6001600160a01b03969096168652602086019490945260408501929092526060840152608083015260a082015260c00190565b600060a0820160a08352806150198b836154c4565b90508b9150825b8b81101561504c576020830161503f8361503a838761470b565b614d36565b9093509150600101615020565b5083810360208501528881526001600160fb1b0389111561506b578283fd5b602089029150818a602083013701602081810183815284830390910160408501526150968189614d54565b9150506150a66060840187614d47565b82810360808401526150b9818587614d8e565b9b9a5050505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156151095783516001600160a01b0316835292840192918401916001016150e4565b50909695505050505050565b901515815260200190565b600060208252825180602084015261513f81604085016020870161553e565b601f01601f19169190910160400192915050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560408201526d195b881a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b9051815260200190565b6000610180820190506152ed828451614db8565b60208301516152ff6020840182614dbd565b5060408301516153126040840182614dbd565b5060608301516153256060840182614dbd565b5060808301516153386080840182614dbd565b5060a083015161534b60a0840182614dbd565b5060c083015161535e60c0840182614dca565b5060e083015161537160e0840182614d47565b506101008084015161538582850182614d47565b50506101208084015161539a82850182614d47565b5050610140808401516153af82850182614d47565b5050610160808401516153c482850182614dd5565b505092915050565b9485526001600160a01b03938416602086015291831660408501528216606084015216608082015260a00190565b9788526001600160a01b03968716602089015294151560408801526060870193909352608086019190915260a085015260c08401521660e08201526101000190565b600060a0820190508682528560208301528460408301528360608301526154628361556a565b8260808301529695505050505050565b918252602082015260400190565b8681526020810186905260c081016154978661556a565b60408201959095526001600160a01b03939093166060840152608083019190915260a09091015292915050565b90815260200190565b928352602083019190915261ffff16604082015260600190565b948552602085019390935260408401919091526001600160801b03908116606084015216608082015260a00190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b60005b83811015615559578181015183820152602001615541565b83811115612d645750506000910152565b60038110611b5157fe5b6001600160a01b0381168114611b5157600080fd5b8015158114611b5157600080fdfea2646970667358221220be2f0049de505f52d2b6e8acd7a5ecf24da742a15b5dc3b0184a3f1a97cf6b6b64736f6c634300060c0033"
+ var LendingPoolCollateralManagerBin = "0x60806040526000805534801561001457600080fd5b50612a5e806100246000396000f3fe608060405234801561001057600080fd5b506004361061002a5760003560e01c8062a718a91461002f575b600080fd5b610073600480360360a081101561004557600080fd5b506001600160a01b0381358116916020810135821691604082013516906060810135906080013515156100f2565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156100b657818101518382015260200161009e565b50505050905090810190601f1680156100e35780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6001600160a01b0380861660009081526035602090815260408083208885168452818420948816845260369092528220919260609261012f6127bd565b6040805160208082018352845482526038546034548451631f94a27560e31b815294516101c1958f95603595909460379490936001600160a01b039091169263fca513a8926004808301939192829003018186803b15801561019057600080fd5b505afa1580156101a4573d6000803e3d6000fd5b505050506040513d60208110156101ba57600080fd5b5051610971565b610140860152506101d892508b9150859050610e37565b60408301819052602083018290526101408301516101fd928792879287929091610f3a565b6102008301526101e08201819052600090600981111561021957fe5b600981111561022457fe5b1461024257806101e001518161020001519550955050505050610967565b6004808501546001600160a01b039081166101808401819052604080516370a0823160e01b8152928d169383019390935291516370a0823191602480820192602092909190829003018186803b15801561029b57600080fd5b505afa1580156102af573d6000803e3d6000fd5b505050506040513d60208110156102c557600080fd5b50518152604081015160208201516102ea91611388916102e491611077565b906110da565b6060820181905288116102fd5787610303565b80606001515b60808201819052815161031e91869186918f918f91906111c4565b6101208301819052610100830191909152608082015111156103465761012081015160808201525b866104085760008b6001600160a01b03166370a082318361018001516040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561039f57600080fd5b505afa1580156103b3573d6000803e3d6000fd5b505050506040513d60208110156103c957600080fd5b505161010083015190915081101561040657600560405180604001604052806002815260200161343560f01b815250965096505050505050610967565b505b6104118361143d565b80608001518160400151106104b45760068301546080820151600185015460408051637a94c56560e11b81526001600160a01b038e811660048301526024820194909452600160801b9092046001600160801b0316604483015251919092169163f5298aca91606480830192600092919082900301818387803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050506105d8565b60408101511561054d57600683015460408281015160018601548251637a94c56560e11b81526001600160a01b038e811660048301526024820193909352600160801b9091046001600160801b03166044820152915192169163f5298aca9160648082019260009290919082900301818387803b15801561053457600080fd5b505af1158015610548573d6000803e3d6000fd5b505050505b6005830154604082015160808301516001600160a01b0390921691639dc29fac918c9161057991611507565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156105bf57600080fd5b505af11580156105d3573d6000803e3d6000fd5b505050505b600483015460808201516105fb9185918d916001600160a01b0316906000611549565b8615610777578061018001516001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561065357600080fd5b505afa158015610667573d6000803e3d6000fd5b505050506040513d602081101561067d57600080fd5b50516101608201526101808101516101008201516040805163f866c31960e01b81526001600160a01b038d8116600483015233602483015260448201939093529051919092169163f866c31991606480830192600092919082900301818387803b1580156106ea57600080fd5b505af11580156106fe573d6000803e3d6000fd5b505050508061016001516000141561077257336000908152603660205260409020600785015461073b908290600160a01b900460ff1660016119f1565b60405133906001600160a01b038e16907e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f290600090a3505b61082f565b6107808461143d565b61018081015161010082015161079d9186918e9190600090611549565b610180810151610100820151600186015460408051636b81068560e11b81526001600160a01b038e8116600483015233602483015260448201949094526001600160801b03909216606483015251919092169163d7020d0a91608480830192600092919082900301818387803b15801561081657600080fd5b505af115801561082a573d6000803e3d6000fd5b505050505b8051610100820151141561089a576007840154610859908390600160a01b900460ff1660006119f1565b886001600160a01b03168b6001600160a01b03167f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd60405160405180910390a35b600483015460808201516108c0916001600160a01b038d81169233929190911690611a95565b886001600160a01b03168a6001600160a01b03168c6001600160a01b03167fe413a321e8681d831f4dbccbca790d2952b56f977908e45be37335533e0052868460800151856101000151338d60405180858152602001848152602001836001600160a01b03168152602001821515815260200194505050505060405180910390a46000604051806040016040528060028152602001611a1b60f11b81525095509550505050505b9550959350505050565b6000806000806000610981612857565b61098a8a611af5565b156109a8576000806000806000199550955095509550955050610e29565b600060e08201525b878160e001511015610d885760e08101516109cc908b90611afa565b6109d557610d78565b60e0810151600090815260208a81526040808320546001600160a01b03166101e085018190528352908d90529020610a0c81611b79565b506080860181905260c08601929092525060a0840191909152600a0a6020808401919091526101e08301516040805163b3596f0760e01b81526001600160a01b0392831660048201529051918b169263b3596f0792602480840193829003018186803b158015610a7b57600080fd5b505afa158015610a8f573d6000803e3d6000fd5b505050506040513d6020811015610aa557600080fd5b5051825260c082015115801590610ac7575060e0820151610ac7908c90611ba4565b15610be8578060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610b3057600080fd5b505afa158015610b44573d6000803e3d6000fd5b505050506040513d6020811015610b5a57600080fd5b50516040830181905260208301518351600092610b819291610b7b91611c2a565b90611c83565b610120840151909150610b949082611077565b61012084015260a0830151610bba90610bae908390611c2a565b61016085015190611077565b61016084015260c0830151610be090610bd4908390611c2a565b61018085015190611077565b610180840152505b60e0820151610bf8908c90611cc5565b15610d76578060050160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610c6157600080fd5b505afa158015610c75573d6000803e3d6000fd5b505050506040513d6020811015610c8b57600080fd5b8101908080519060200190929190505050826060018181525050610d438160060160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610d0c57600080fd5b505afa158015610d20573d6000803e3d6000fd5b505050506040513d6020811015610d3657600080fd5b5051606084015190611077565b6060830181905260208301518351610d6f92610d639291610b7b91611c2a565b61014084015190611077565b6101408301525b505b60e08101805160010190526109b0565b600081610120015111610d9c576000610db1565b610120810151610160820151610db191611c83565b610160820152610120810151610dc8576000610ddd565b610120810151610180820151610ddd91611c83565b6101808201819052610120820151610140830151610dfa92611d44565b610100820181905261012082015161014083015161016084015161018090940151919850965091945090925090505b965096509650965096915050565b6005810154604080516370a0823160e01b81526001600160a01b0385811660048301529151600093849316916370a08231916024808301926020929190829003018186803b158015610e8857600080fd5b505afa158015610e9c573d6000803e3d6000fd5b505050506040513d6020811015610eb257600080fd5b50516006840154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b158015610f0357600080fd5b505afa158015610f17573d6000803e3d6000fd5b505050506040513d6020811015610f2d57600080fd5b5051909590945092505050565b60006060610f4788611d72565b1580610f595750610f5787611d72565b155b15610f805750506040805180820190915260018152601960f91b602082015260069061106c565b670de0b6b3a76400008510610fb25750506040805180820190915260028152611a1960f11b602082015260049061106c565b600080610fbe8a611d82565b118015610fed57506007890154604080516020810190915288548152610fed91600160a01b900460ff16611ba4565b90508061101757505060408051808201909152600280825261343360f01b6020830152915061106c565b84158015611023575083155b1561104c5750506040805180820190915260028152610d0d60f21b60208201526003915061106c565b50506040805180820190915260028152611a1b60f11b6020820152600091505b965096945050505050565b6000828201838110156110d1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60008215806110e7575081155b156110f4575060006110d4565b81611388198161110057fe5b0483111560405180604001604052806002815260200161068760f31b815250906111a85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561116d578181015183820152602001611155565b50505050905090810190601f16801561119a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506127106002815b0483850201816111bc57fe5b049392505050565b6000806000806000603460009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561121a57600080fd5b505afa15801561122e573d6000803e3d6000fd5b505050506040513d602081101561124457600080fd5b505190506112506128f1565b816001600160a01b031663b3596f078b6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561129d57600080fd5b505afa1580156112b1573d6000803e3d6000fd5b505050506040513d60208110156112c757600080fd5b5051604080830191909152805163b3596f0760e01b81526001600160a01b038b8116600483015291519184169163b3596f0791602480820192602092909190829003018186803b15801561131a57600080fd5b505afa15801561132e573d6000803e3d6000fd5b505050506040513d602081101561134457600080fd5b505160608201526113548c611b79565b5060c085015260208401525061136b90508b611d8d565b60a0820181905260408201516113b8916113889190600a0a611c2a565b610b7b83602001516102e48560c00151600a0a6113b28e8860600151611c2a90919063ffffffff16565b90611c2a565b608082018190528710156114215786935061141a81602001516114146113f28460c00151600a0a8560600151611c2a90919063ffffffff16565b610b7b8560a00151600a0a6113b28a8860400151611c2a90919063ffffffff16565b90611d97565b925061142c565b806080015193508792505b50919a909950975050505050505050565b60068101546040805163b1bf962d60e01b815290516000926001600160a01b03169163b1bf962d916004808301926020929190829003018186803b15801561148457600080fd5b505afa158015611498573d6000803e3d6000fd5b505050506040513d60208110156114ae57600080fd5b505160018301546003840154919250600160801b8082046001600160801b03908116939216910464ffffffffff166000806114ec8787868887611e8a565b915091506114fe878787858588612043565b50505050505050565b60006110d183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612226565b61155161292e565b60058601546001600160a01b031680825260408051637b98f4df60e11b8152815163f731e9be92600480840193919291829003018186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d60408110156115bf57600080fd5b50805160209182015160c084015260408084019190915260018801546006890154825163b1bf962d60e01b8152925161166394600160801b9093046001600160801b0316936001600160a01b039092169263b1bf962d9260048082019391829003018186803b15801561163157600080fd5b505afa158015611645573d6000803e3d6000fd5b505050506040513d602081101561165b57600080fd5b505190612280565b60e0820152604080516370a0823160e01b81526001600160a01b0386811660048301529151918716916370a0823191602480820192602092909190829003018186803b1580156116b257600080fd5b505afa1580156116c6573d6000803e3d6000fd5b505050506040513d60208110156116dc57600080fd5b50516020820181905260078701546001600160a01b031690639584df2890879061171290869061170c9089611077565b90611507565b604085015160e086015160c087015161172a8d612331565b6040518763ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001838152602001828152602001965050505050505060606040518083038186803b15801561178a57600080fd5b505afa15801561179e573d6000803e3d6000fd5b505050506040513d60608110156117b457600080fd5b50805160208083015160409384015160a086015260808501526060840182905282518084019093526002835261353360f01b908301526001600160801b03101561183f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b506080810151604080518082019091526002815261353560f01b6020820152906001600160801b0310156118b45760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b5060a08101516040805180820190915260028152610d4d60f21b6020820152906001600160801b0310156119295760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b5060608181015160028801805460808086015160038c0180546001600160801b03199081166001600160801b038085169190911790925560a0808a015191909516828816178216600160801b82841681029190911790965560018e01546040805198895260208901949094528784019190915280821697870197909752939095049092169183019190915291516001600160a01b038816927f804c9b842b2748a22bb64b345453a3de7ca54a6ca45ce00d415894979e22897a928290030190a2505050505050565b604080518082019091526002815261373760f01b602082015260808310611a595760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b508160020260010181611a6d576000611a70565b60015b60ff16901b826002026001016001901b19846000015416178360000181905550505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611aef90859061233c565b50505050565b511590565b60006080821060405180604001604052806002815260200161373760f01b81525090611b675760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b50509051600360029092021c16151590565b5461ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b60006080821060405180604001604052806002815260200161373760f01b81525090611c115760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b5050815160016002830281019190911c16151592915050565b600082611c39575060006110d4565b82820282848281611c4657fe5b04146110d15760405162461bcd60e51b81526004018080602001828103825260218152602001806129de6021913960400191505060405180910390fd5b60006110d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124f4565b60006080821060405180604001604052806002815260200161373760f01b81525090611d325760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b50509051600160029092021c16151590565b600082611d545750600019611d6b565b611d6883611d6286856110da565b90612559565b90505b9392505050565b5467010000000000000016151590565b5460101c61ffff1690565b5460301c60ff1690565b604080518082019091526002815261035360f41b602082015260009082611dff5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b5060408051808201909152600280825261068760f31b6020830152830490612710821904851115611e715760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b50828161271086020181611e8157fe5b04949350505050565b600285015460009081906001600160801b031685858215612014576000611eb1848861264f565b9050611ebd818a612280565b604080518082019091526002815261353160f01b60208201529093506001600160801b03841115611f2f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b5060018b0180546001600160801b0319166001600160801b03851617905589156120125760028b0154600090611f7590600160801b90046001600160801b031689612695565b9050611f81818a612280565b6040805180820190915260028152611a9960f11b60208201529093506001600160801b03841115611ff35760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b505060018b0180546001600160801b03808516600160801b0291161790555b505b600399909901805464ffffffffff60801b1916600160801b4264ffffffffff1602179055989650505050505050565b61204b61297c565b61205487612331565b6101208201819052612066575061221e565b8660050160009054906101000a90046001600160a01b03166001600160a01b031663797743386040518163ffffffff1660e01b815260040160806040518083038186803b1580156120b657600080fd5b505afa1580156120ca573d6000803e3d6000fd5b505050506040513d60808110156120e057600080fd5b508051602080830151604084015160609094015164ffffffffff1661014086015260a08501939093529183529082015261211a8686612280565b60808201526121298684612280565b606082015260a081015161014082015161214b919064ffffffffff851661269e565b60c08201819052602082015161216091612280565b60408201819052608082015182516060840151612185939261170c9290918391611077565b60e0820181905261012082015161219c91906110da565b6101008201819052156114fe5760048088015461010083015160408051637df5bd3b60e01b81529384019190915260248301879052516001600160a01b0390911691637df5bd3b91604480830192600092919082900301818387803b15801561220457600080fd5b505af1158015612218573d6000803e3d6000fd5b50505050505b505050505050565b600081848411156122785760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b505050900390565b600082158061228d575081155b1561229a575060006110d4565b816b019d971e4fe8401e7400000019816122b057fe5b0483111560405180604001604052806002815260200161068760f31b8152509061231b5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b506b033b2e3c9fd0803ce80000006002816111b0565b5460401c61ffff1690565b61234e826001600160a01b0316612774565b61239f576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106123dd5780518252601f1990920191602091820191016123be565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461243f576040519150601f19603f3d011682016040523d82523d6000602084013e612444565b606091505b50915091508161249b576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611aef578080602001905160208110156124b757600080fd5b5051611aef5760405162461bcd60e51b815260040180806020018281038252602a8152602001806129ff602a913960400191505060405180910390fd5b600081836125435760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b50600083858161254f57fe5b0495945050505050565b604080518082019091526002815261035360f41b6020820152600090826125c15760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b5060408051808201909152600280825261068760f31b6020830152830490670de0b6b3a76400008219048511156126395760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561116d578181015183820152602001611155565b508281670de0b6b3a764000086020181611e8157fe5b6000806126634264ffffffffff8516611507565b905061268d6126706127ad565b6301e1338061267f8785611c2a565b8161268657fe5b0490611077565b949350505050565b60006110d18383425b6000806126b28364ffffffffff8616611507565b9050806126c9576126c16127ad565b915050611d6b565b60001981016000600283116126df5760006126e4565b600283035b90506301e13380870460006126f98280612280565b905060006127078284612280565b90506000600261271b846113b28a8a611c2a565b8161272257fe5b04905060006006612739846113b289818d8d611c2a565b8161274057fe5b0490506127648161275e84816127568a8e611c2a565b61275e6127ad565b90611077565b9c9b505050505050505050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061268d575050151592915050565b6b033b2e3c9fd0803ce800000090565b60405180610220016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000151581526020016000600281111561284357fe5b815260200160008152602001606081525090565b604051806102400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160006001600160a01b031681526020016000151581526020016000151581525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff168152509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212204623ca4955f39cac50e3f172f7d5750cf50c94c5739f7c8a0b4e793a2bd8fa5a64736f6c634300060c0033"
+ var LendingPoolConfiguratorBin = "0x60806040526000805534801561001457600080fd5b50613d54806100246000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80637c4e560b116100a2578063bf34418311610071578063bf344183146101f6578063c4d66de814610209578063eede87c11461021c578063ef1f93731461022f578063f53a2515146102425761010b565b80637c4e560b146101aa578063a8dc0f45146101bd578063aa65b66e146101d0578063b75d6f34146101e35761010b565b80634d978258116100de5780634d9782581461015e5780636e801a71146101715780637641f3d9146101845780637aca76eb146101975761010b565b80631d2118f9146101105780633e72a4541461012557806345fe7946146101385780634b4e67531461014b575b600080fd5b61012361011e366004613062565b610255565b005b610123610133366004613023565b6103c7565b610123610146366004613062565b6105c2565b61012361015936600461313b565b61076f565b61012361016c366004613062565b61096e565b61012361017f36600461309a565b610b1d565b6101236101923660046131a0565b6111fe565b6101236101a5366004613023565b611323565b6101236101b8366004613166565b611515565b6101236101cb366004613023565b61183e565b6101236101de366004613062565b611a30565b6101236101f1366004613023565b611bdf565b610123610204366004613023565b611dd1565b610123610217366004613023565b611fc3565b61012361022a36600461310a565b6120f5565b61012361023d366004613023565b6122f2565b610123610250366004613023565b6124e4565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b15801561029957600080fd5b505afa1580156102ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d19190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b8152509061031d5760405162461bcd60e51b81526004016103149190613479565b60405180910390fd5b50603554604051631d2118f960e01b81526001600160a01b0390911690631d2118f99061035090859085906004016133ba565b600060405180830381600087803b15801561036a57600080fd5b505af115801561037e573d6000803e3d6000fd5b50505050816001600160a01b03167f5644b64ebb0ce18c4032248ca52f58355469092ff072866c3dcd8640e817d6a5826040516103bb91906133a6565b60405180910390a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b15801561040b57600080fd5b505afa15801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b815250906104865760405162461bcd60e51b81526004016103149190613479565b50610490816126d6565b610498612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f7906104c89085906004016133a6565b60206040518083038186803b1580156104e057600080fd5b505afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610518919061324c565b905061052581600061283d565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769161055891869190600401613455565b600060405180830381600087803b15801561057257600080fd5b505af1158015610586573d6000803e3d6000fd5b50506040516001600160a01b03851692507f6f60cf8bd0f218cabe1ea3150bd07b0b758c35c4cfdf7138017a283e65564d5e9150600090a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b15801561060657600080fd5b505afa15801561061a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063e9190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b815250906106815760405162461bcd60e51b81526004016103149190613479565b5061068a612f44565b6035546040516335ea6a7560e01b81526001600160a01b03909116906335ea6a75906106ba9086906004016133a6565b6101806040518083038186803b1580156106d357600080fd5b505afa1580156106e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070b9190613267565b905061071c838260e001518461286b565b816001600160a01b03168160e001516001600160a01b0316846001600160a01b03167fa76f65411ec66a7fb6bc467432eb14767900449ae4469fa295e4441fe5e1cb7360405160405180910390a4505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b1580156107b357600080fd5b505afa1580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb9190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b8152509061082e5760405162461bcd60e51b81526004016103149190613479565b50610837612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f7906108679086906004016133a6565b60206040518083038186803b15801561087f57600080fd5b505afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b7919061324c565b90506108c38183612a9a565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d29276916108f691879190600401613455565b600060405180830381600087803b15801561091057600080fd5b505af1158015610924573d6000803e3d6000fd5b50505050826001600160a01b03167f2694ccb0b585b6a54b8d8b4a47aa874b05c257b43d34e98aee50838be00d34058360405161096191906134da565b60405180910390a2505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b1580156109b257600080fd5b505afa1580156109c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ea9190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b81525090610a2d5760405162461bcd60e51b81526004016103149190613479565b50610a36612f44565b6035546040516335ea6a7560e01b81526001600160a01b03909116906335ea6a7590610a669086906004016133a6565b6101806040518083038186803b158015610a7f57600080fd5b505afa158015610a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab79190613267565b9050610ac9838261012001518461286b565b816001600160a01b03168161012001516001600160a01b0316846001600160a01b03167f9439658a562a5c46b1173589df89cf001483d685bad28aedaff4a88656292d8160405160405180910390a4505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b158015610b6157600080fd5b505afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b81525090610bdc5760405162461bcd60e51b81526004016103149190613479565b506000856001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1857600080fd5b505afa158015610c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c509190613046565b9050856001600160a01b0316637535d2466040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8b57600080fd5b505afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190613046565b603554604080518082019091526002815261333560f01b6020820152916001600160a01b03918216911614610d0b5760405162461bcd60e51b81526004016103149190613479565b50846001600160a01b0316637535d2466040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7d9190613046565b603554604080518082019091526002815261199b60f11b6020820152916001600160a01b03918216911614610dc55760405162461bcd60e51b81526004016103149190613479565b50836001600160a01b0316637535d2466040518163ffffffff1660e01b815260040160206040518083038186803b158015610dff57600080fd5b505afa158015610e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e379190613046565b603554604080518082019091526002815261333760f01b6020820152916001600160a01b03918216911614610e7f5760405162461bcd60e51b81526004016103149190613479565b50846001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b158015610eb957600080fd5b505afa158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190613046565b6001600160a01b0316816001600160a01b03161460405180604001604052806002815260200161066760f31b81525090610f3e5760405162461bcd60e51b81526004016103149190613479565b50836001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7857600080fd5b505afa158015610f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb09190613046565b6001600160a01b0316816001600160a01b03161460405180604001604052806002815260200161333960f01b81525090610ffd5760405162461bcd60e51b81526004016103149190613479565b50600061100a8785612af1565b905060006110188786612af1565b905060006110268787612af1565b603554604051633d38474960e11b81529192506001600160a01b031690637a708e929061105f9087908790879087908c906004016133f7565b600060405180830381600087803b15801561107957600080fd5b505af115801561108d573d6000803e3d6000fd5b50505050611099612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f7906110c99088906004016133a6565b60206040518083038186803b1580156110e157600080fd5b505afa1580156110f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611119919061324c565b90506111288160ff8916612cbf565b61113381600161283d565b61113e816000612d12565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769161117191899190600401613455565b600060405180830381600087803b15801561118b57600080fd5b505af115801561119f573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b03167f3a0ca721fc364424566385a1aa271ed508cc2c0949c2272575fb3013a163a45f85858a6040516111ea939291906133d4565b60405180910390a350505050505050505050565b60345460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea916004808301926020929190829003018186803b15801561124257600080fd5b505afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190613046565b6001600160a01b031614604051806040016040528060028152602001611b9b60f11b815250906112bd5760405162461bcd60e51b81526004016103149190613479565b5060355460405163bedb86fb60e01b81526001600160a01b039091169063bedb86fb906112ee90849060040161346e565b600060405180830381600087803b15801561130857600080fd5b505af115801561131c573d6000803e3d6000fd5b5050505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b15801561136757600080fd5b505afa15801561137b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139f9190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b815250906113e25760405162461bcd60e51b81526004016103149190613479565b506113eb612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f79061141b9085906004016133a6565b60206040518083038186803b15801561143357600080fd5b505afa158015611447573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146b919061324c565b9050611478816001612d12565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d29276916114ab91869190600401613455565b600060405180830381600087803b1580156114c557600080fd5b505af11580156114d9573d6000803e3d6000fd5b50506040516001600160a01b03851692507f85dc710add8a0914461a7dc5a63f6fc529a7700f8c6089a3faf5e93256ccf12a9150600090a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b15801561155957600080fd5b505afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115919190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b815250906115d45760405162461bcd60e51b81526004016103149190613479565b506115dd612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f79061160d9088906004016133a6565b60206040518083038186803b15801561162557600080fd5b505afa158015611639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165d919061324c565b90508284111560405180604001604052806002815260200161373560f01b8152509061169c5760405162461bcd60e51b81526004016103149190613479565b50821561172d57604080518082019091526002815261373560f01b602082015261271083116116de5760405162461bcd60e51b81526004016103149190613479565b506127106116ec8484612d40565b111560405180604001604052806002815260200161373560f01b815250906117275760405162461bcd60e51b81526004016103149190613479565b5061176f565b604080518082019091526002815261373560f01b602082015282156117655760405162461bcd60e51b81526004016103149190613479565b5061176f856126d6565b6117798185612db2565b6117838184612dfb565b61178d8183612e4c565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d29276916117c091899190600401613455565b600060405180830381600087803b1580156117da57600080fd5b505af11580156117ee573d6000803e3d6000fd5b50505050846001600160a01b03167f637febbda9275aea2e85c0ff690444c8d87eb2e8339bbede9715abcc89cb099585858560405161182f939291906134e3565b60405180910390a25050505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b15801561188257600080fd5b505afa158015611896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ba9190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b815250906118fd5760405162461bcd60e51b81526004016103149190613479565b50611906612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f7906119369085906004016133a6565b60206040518083038186803b15801561194e57600080fd5b505afa158015611962573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611986919061324c565b9050611993816000612e9f565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d29276916119c691869190600401613455565b600060405180830381600087803b1580156119e057600080fd5b505af11580156119f4573d6000803e3d6000fd5b50506040516001600160a01b03851692507fe9a7e5fd4fc8ea18e602350324bf48e8f05d12434af0ce0be05743e6a5fdcb9e9150600090a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b158015611a7457600080fd5b505afa158015611a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aac9190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b81525090611aef5760405162461bcd60e51b81526004016103149190613479565b50611af8612f44565b6035546040516335ea6a7560e01b81526001600160a01b03909116906335ea6a7590611b289086906004016133a6565b6101806040518083038186803b158015611b4157600080fd5b505afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b799190613267565b9050611b8b838261010001518461286b565b816001600160a01b03168161010001516001600160a01b0316846001600160a01b03167f7a943a5b6c214bf7726c069a878b1e2a8e7371981d516048b84e03743e67bc2860405160405180910390a4505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b158015611c2357600080fd5b505afa158015611c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5b9190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b81525090611c9e5760405162461bcd60e51b81526004016103149190613479565b50611ca7612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f790611cd79085906004016133a6565b60206040518083038186803b158015611cef57600080fd5b505afa158015611d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d27919061324c565b9050611d3481600161283d565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d2927691611d6791869190600401613455565b600060405180830381600087803b158015611d8157600080fd5b505af1158015611d95573d6000803e3d6000fd5b50506040516001600160a01b03851692507f35b80cd8ea3440e9a8454f116fa658b858da1b64c86c48451f4559cefcdfb56c9150600090a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b158015611e1557600080fd5b505afa158015611e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4d9190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b81525090611e905760405162461bcd60e51b81526004016103149190613479565b50611e99612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f790611ec99085906004016133a6565b60206040518083038186803b158015611ee157600080fd5b505afa158015611ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f19919061324c565b9050611f26816001612ecd565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d2927691611f5991869190600401613455565b600060405180830381600087803b158015611f7357600080fd5b505af1158015611f87573d6000803e3d6000fd5b50506040516001600160a01b03851692507f8dee2b2f3e98319ae6347eda521788f73f4086c9be9a594942b370b137fb8cb19150600090a25050565b6000611fcd612efb565b60015490915060ff1680611fe45750611fe4612f00565b80611ff0575060005481115b61200c5760405162461bcd60e51b81526004016103149061348c565b60015460ff1615801561202b576001805460ff19168117905560008290555b603480546001600160a01b0319166001600160a01b03858116919091179182905560408051630261bf8b60e01b815290519290911691630261bf8b91600480820192602092909190829003018186803b15801561208757600080fd5b505afa15801561209b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120bf9190613046565b603580546001600160a01b0319166001600160a01b039290921691909117905580156120f0576001805460ff191690555b505050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b15801561213957600080fd5b505afa15801561214d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121719190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b815250906121b45760405162461bcd60e51b81526004016103149190613479565b506121bd612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f7906121ed9086906004016133a6565b60206040518083038186803b15801561220557600080fd5b505afa158015612219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223d919061324c565b905061224a816001612e9f565b6122548183612ecd565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769161228791879190600401613455565b600060405180830381600087803b1580156122a157600080fd5b505af11580156122b5573d6000803e3d6000fd5b50505050826001600160a01b03167fab2f7f9e5ca2772fafa94f355c1842a80ae6b9e41f83083098d81f67d7a0b50883604051610961919061346e565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b15801561233657600080fd5b505afa15801561234a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236e9190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b815250906123b15760405162461bcd60e51b81526004016103149190613479565b506123ba612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f7906123ea9085906004016133a6565b60206040518083038186803b15801561240257600080fd5b505afa158015612416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243a919061324c565b9050612447816000612d12565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769161247a91869190600401613455565b600060405180830381600087803b15801561249457600080fd5b505af11580156124a8573d6000803e3d6000fd5b50506040516001600160a01b03851692507f838ecdc4709a31a26db48b0c853212cedde3f725f07030079d793fb0719647609150600090a25050565b603454604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda378916004808301926020929190829003018186803b15801561252857600080fd5b505afa15801561253c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125609190613046565b6001600160a01b03161460405180604001604052806002815260200161333360f01b815250906125a35760405162461bcd60e51b81526004016103149190613479565b506125ac612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f7906125dc9085906004016133a6565b60206040518083038186803b1580156125f457600080fd5b505afa158015612608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262c919061324c565b9050612639816000612ecd565b6035548151604051635c69493b60e11b81526001600160a01b039092169163b8d292769161266c91869190600401613455565b600060405180830381600087803b15801561268657600080fd5b505af115801561269a573d6000803e3d6000fd5b50506040516001600160a01b03851692507f8bbf35441ac2c607ddecadd3d8ee58636d32f217fad201fb2655581502dd84e39150600090a25050565b6126de612f44565b6035546040516335ea6a7560e01b81526001600160a01b03909116906335ea6a759061270e9085906004016133a6565b6101806040518083038186803b15801561272757600080fd5b505afa15801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613267565b90506000826001600160a01b03166370a082318360e001516040518263ffffffff1660e01b815260040161279391906133a6565b60206040518083038186803b1580156127ab57600080fd5b505afa1580156127bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e39190613362565b9050801580156127fe575060608201516001600160801b0316155b604051806040016040528060028152602001610ccd60f21b815250906128375760405162461bcd60e51b81526004016103149190613479565b50505050565b60388161284b57600061284e565b60015b8351670100000000000000191660ff9190911690911b1790915250565b81612874612f31565b60355460405163c44b11f760e01b81526001600160a01b039091169063c44b11f7906128a49088906004016133a6565b60206040518083038186803b1580156128bc57600080fd5b505afa1580156128d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f4919061324c565b9050600061290182612f06565b509350505050606081856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b15801561294357600080fd5b505afa158015612957573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261297f91908101906131c0565b866001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156129b857600080fd5b505afa1580156129cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129f491908101906131c0565b604051602401612a06939291906134f9565b60408051601f198184030181529181526020820180516001600160e01b031663188c392760e11b1790525163278f794360e11b81529091506001600160a01b03851690634f1ef28690612a5f9088908590600401613429565b600060405180830381600087803b158015612a7957600080fd5b505af1158015612a8d573d6000803e3d6000fd5b5050505050505050505050565b604080518082019091526002815261373160f01b602082015261ffff821115612ad65760405162461bcd60e51b81526004016103149190613479565b50815169ffff0000000000000000191660409190911b179052565b60008030604051612b0190612faf565b612b0b91906133a6565b604051809103906000f080158015612b27573d6000803e3d6000fd5b509050606083856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612b6657600080fd5b505afa158015612b7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ba291908101906131c0565b866001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612bdb57600080fd5b505afa158015612bef573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c1791908101906131c0565b604051602401612c29939291906134f9565b60408051601f198184030181529181526020820180516001600160e01b031663188c392760e11b1790525163347d5e2560e21b81529091506001600160a01b0383169063d1f5789490612c829088908590600401613429565b600060405180830381600087803b158015612c9c57600080fd5b505af1158015612cb0573d6000803e3d6000fd5b50939450505050505b92915050565b604080518082019091526002815261037360f41b602082015260ff821115612cfa5760405162461bcd60e51b81526004016103149190613479565b50815166ff000000000000191660309190911b179052565b603981612d20576000612d23565b60015b8351670200000000000000191660ff9190911690911b1790915250565b6000821580612d4d575081155b15612d5a57506000612cb9565b816113881981612d6657fe5b0483111560405180604001604052806002815260200161068760f31b81525090612da35760405162461bcd60e51b81526004016103149190613479565b50506127109102611388010490565b604080518082019091526002815261363760f01b602082015261ffff821115612dee5760405162461bcd60e51b81526004016103149190613479565b50815161ffff1916179052565b60408051808201909152600281526106c760f31b602082015261ffff821115612e375760405162461bcd60e51b81526004016103149190613479565b50815163ffff0000191660109190911b179052565b604080518082019091526002815261363960f01b602082015261ffff821115612e885760405162461bcd60e51b81526004016103149190613479565b50815165ffff00000000191660209190911b179052565b603a81612ead576000612eb0565b60015b8351670400000000000000191660ff9190911690911b1790915250565b603b81612edb576000612ede565b60015b8351670800000000000000191660ff9190911690911b1790915250565b600190565b303b1590565b5161ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b6040518060200160405280600081525090565b604051806101800160405280612f58612f31565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820181905261014082018190526101609091015290565b610773806135ac83390190565b8051612cb981613584565b600060208284031215612fd8578081fd5b612fe26020613531565b9151825250919050565b80516001600160801b0381168114612cb957600080fd5b805164ffffffffff81168114612cb957600080fd5b8051612cb98161359c565b600060208284031215613034578081fd5b813561303f81613584565b9392505050565b600060208284031215613057578081fd5b815161303f81613584565b60008060408385031215613074578081fd5b823561307f81613584565b9150602083013561308f81613584565b809150509250929050565b600080600080600060a086880312156130b1578081fd5b85356130bc81613584565b945060208601356130cc81613584565b935060408601356130dc81613584565b925060608601356130ec8161359c565b915060808601356130fc81613584565b809150509295509295909350565b6000806040838503121561311c578182fd5b823561312781613584565b91506020830135801515811461308f578182fd5b6000806040838503121561314d578182fd5b823561315881613584565b946020939093013593505050565b6000806000806080858703121561317b578384fd5b843561318681613584565b966020860135965060408601359560600135945092505050565b6000602082840312156131b1578081fd5b8135801515811461303f578182fd5b6000602082840312156131d1578081fd5b815167ffffffffffffffff808211156131e8578283fd5b818401915084601f8301126131fb578283fd5b815181811115613209578384fd5b61321c601f8201601f1916602001613531565b9150808252856020828501011115613232578384fd5b613243816020840160208601613558565b50949350505050565b60006020828403121561325d578081fd5b61303f8383612fc7565b600061018080838503121561327a578182fd5b61328381613531565b905061328f8484612fc7565b815261329e8460208501612fec565b60208201526132b08460408501612fec565b60408201526132c28460608501612fec565b60608201526132d48460808501612fec565b60808201526132e68460a08501612fec565b60a08201526132f88460c08501613003565b60c082015261330a8460e08501612fbc565b60e082015261010061331e85828601612fbc565b9082015261012061333185858301612fbc565b9082015261014061334485858301612fbc565b9082015261016061335785858301613018565b908201529392505050565b600060208284031215613373578081fd5b5051919050565b60008151808452613392816020860160208601613558565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b0395861681529385166020850152918416604084015283166060830152909116608082015260a00190565b6001600160a01b038316815260406020820181905260009061344d9083018461337a565b949350505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261303f602083018461337a565b6020808252602e908201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560408201526d195b881a5b9a5d1a585b1a5e995960921b606082015260800190565b90815260200190565b9283526020830191909152604082015260600190565b600060ff8516825260606020830152613515606083018561337a565b8281036040840152613527818561337a565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561355057600080fd5b604052919050565b60005b8381101561357357818101518382015260200161355b565b838111156128375750506000910152565b6001600160a01b038116811461359957600080fd5b50565b60ff8116811461359957600080fdfe60a060405234801561001057600080fd5b506040516107733803806107738339818101604052602081101561003357600080fd5b5051606081901b6001600160601b0319166080526001600160a01b03166106f36100806000398061022852806102725280610331528061045e528061048752806105af52506106f36000f3fe60806040526004361061004a5760003560e01c80633659cfe6146100545780634f1ef286146100875780635c60da1b14610107578063d1f5789414610138578063f851a440146101ee575b610052610203565b005b34801561006057600080fd5b506100526004803603602081101561007757600080fd5b50356001600160a01b031661021d565b6100526004803603604081101561009d57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c857600080fd5b8201836020820111156100da57600080fd5b803590602001918460018302840111640100000000831117156100fc57600080fd5b509092509050610267565b34801561011357600080fd5b5061011c610324565b604080516001600160a01b039092168252519081900360200190f35b6100526004803603604081101561014e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610371945050505050565b3480156101fa57600080fd5b5061011c610451565b61020b6104ab565b61021b6102166104b3565b6104d8565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561025c57610257816104fc565b610264565b610264610203565b50565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610317576102a1836104fc565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146102fe576040519150601f19603f3d011682016040523d82523d6000602084013e610303565b606091505b505090508061031157600080fd5b5061031f565b61031f610203565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156103665761035f6104b3565b905061036e565b61036e610203565b90565b600061037b6104b3565b6001600160a01b03161461038e57600080fd5b6103978261053c565b80511561044d576000826001600160a01b0316826040518082805190602001908083835b602083106103da5780518252601f1990920191602091820191016103bb565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461043a576040519150601f19603f3d011682016040523d82523d6000602084013e61043f565b606091505b505090508061031f57600080fd5b5050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561036657507f000000000000000000000000000000000000000000000000000000000000000061036e565b61021b6105a4565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156104f7573d6000f35b3d6000fd5b6105058161053c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61054581610614565b6105805760405162461bcd60e51b815260040180806020018281038252603b815260200180610683603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561060c5760405162461bcd60e51b81526004018080602001828103825260328152602001806106516032913960400191505060405180910390fd5b61021b61021b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061064857508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220c998aceaee89984e41376643cace9bef07887c2711cb0f7a736da40d75e0ac1164736f6c634300060c0033a264697066735822122067509bea01220a5a0a6a6faf21cc85191eea3f5cde62866cdc7aac2e8c15d68b64736f6c634300060c0033"
+ var LendingRateOracleBin = "0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6104d38061007d6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80639f86a0ee1161005b5780639f86a0ee146100dc578063bb85c0bb14610108578063f2fde38b14610140578063fbe5ba1e146101665761007d565b8063715018a61461008257806372eb293d1461008c5780638da5cb5b146100b8575b600080fd5b61008a61018c565b005b61008a600480360360408110156100a257600080fd5b506001600160a01b03813516906020013561022e565b6100c06102a2565b604080516001600160a01b039092168252519081900360200190f35b61008a600480360360408110156100f257600080fd5b506001600160a01b0381351690602001356102b1565b61012e6004803603602081101561011e57600080fd5b50356001600160a01b0316610325565b60408051918252519081900360200190f35b61008a6004803603602081101561015657600080fd5b50356001600160a01b0316610340565b61012e6004803603602081101561017c57600080fd5b50356001600160a01b0316610438565b610194610453565b6000546001600160a01b039081169116146101e4576040805162461bcd60e51b8152602060048201819052602482015260008051602061047e833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610236610453565b6000546001600160a01b03908116911614610286576040805162461bcd60e51b8152602060048201819052602482015260008051602061047e833981519152604482015290519081900360640190fd5b6001600160a01b03909116600090815260016020526040902055565b6000546001600160a01b031690565b6102b9610453565b6000546001600160a01b03908116911614610309576040805162461bcd60e51b8152602060048201819052602482015260008051602061047e833981519152604482015290519081900360640190fd5b6001600160a01b03909116600090815260026020526040902055565b6001600160a01b031660009081526001602052604090205490565b610348610453565b6000546001600160a01b03908116911614610398576040805162461bcd60e51b8152602060048201819052602482015260008051602061047e833981519152604482015290519081900360640190fd5b6001600160a01b0381166103dd5760405162461bcd60e51b81526004018080602001828103825260268152602001806104586026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526002602052604090205490565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220fe56fb2f470dffb51d3c6f5b86807d4a9e6317550228207d6008e596ca44d06964736f6c634300060c0033"
+ var MintableDelegationERC20Bin = "0x60806040523480156200001157600080fd5b5060405162000e9538038062000e95833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060405260209081015185519093508592508491620001bd916003918501906200020d565b508051620001d39060049060208401906200020d565b50506005805460ff1916601217905550620001ee81620001f7565b505050620002a9565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200025057805160ff191683800117855562000280565b8280016001018555821562000280579182015b828111156200028057825182559160200191906001019062000263565b506200028e92915062000292565b5090565b5b808211156200028e576000815560010162000293565b610bdc80620002b96000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c19a95c1161008c578063a0712d6811610066578063a0712d68146102c0578063a457c2d7146102dd578063a9059cbb14610309578063dd62ed3e14610335576100ea565b80635c19a95c1461026a57806370a082311461029257806395d89b41146102b8576100ea565b80631e31d053116100c85780631e31d053146101c657806323b872dd146101ea578063313ce56714610220578063395093511461023e576100ea565b806306fdde03146100ef578063095ea7b31461016c57806318160ddd146101ac575b600080fd5b6100f7610363565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610131578181015183820152602001610119565b50505050905090810190601f16801561015e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101986004803603604081101561018257600080fd5b506001600160a01b0381351690602001356103f9565b604080519115158252519081900360200190f35b6101b4610416565b60408051918252519081900360200190f35b6101ce61041c565b604080516001600160a01b039092168252519081900360200190f35b6101986004803603606081101561020057600080fd5b506001600160a01b03813581169160208101359091169060400135610430565b6102286104b7565b6040805160ff9092168252519081900360200190f35b6101986004803603604081101561025457600080fd5b506001600160a01b0381351690602001356104c0565b6102906004803603602081101561028057600080fd5b50356001600160a01b031661050e565b005b6101b4600480360360208110156102a857600080fd5b50356001600160a01b0316610536565b6100f7610551565b610198600480360360208110156102d657600080fd5b50356105b2565b610198600480360360408110156102f357600080fd5b506001600160a01b0381351690602001356105c6565b6101986004803603604081101561031f57600080fd5b506001600160a01b03813516906020013561062e565b6101b46004803603604081101561034b57600080fd5b506001600160a01b0381358116916020013516610642565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103ef5780601f106103c4576101008083540402835291602001916103ef565b820191906000526020600020905b8154815290600101906020018083116103d257829003601f168201915b5050505050905090565b600061040d61040661066d565b8484610671565b50600192915050565b60025490565b60055461010090046001600160a01b031681565b600061043d84848461075d565b6104ad8461044961066d565b6104a885604051806060016040528060288152602001610b11602891396001600160a01b038a1660009081526001602052604081209061048761066d565b6001600160a01b0316815260208101919091526040016000205491906108b8565b610671565b5060019392505050565b60055460ff1690565b600061040d6104cd61066d565b846104a885600160006104de61066d565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061094f565b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103ef5780601f106103c4576101008083540402835291602001916103ef565b60006105be33836109b0565b506001919050565b600061040d6105d361066d565b846104a885604051806060016040528060258152602001610b8260259139600160006105fd61066d565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906108b8565b600061040d61063b61066d565b848461075d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166106b65760405162461bcd60e51b8152600401808060200182810382526024815260200180610b5e6024913960400191505060405180910390fd5b6001600160a01b0382166106fb5760405162461bcd60e51b8152600401808060200182810382526022815260200180610ac96022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166107a25760405162461bcd60e51b8152600401808060200182810382526025815260200180610b396025913960400191505060405180910390fd5b6001600160a01b0382166107e75760405162461bcd60e51b8152600401808060200182810382526023815260200180610aa66023913960400191505060405180910390fd5b6107f2838383610aa0565b61082f81604051806060016040528060268152602001610aeb602691396001600160a01b03861660009081526020819052604090205491906108b8565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461085e908261094f565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156109475760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561090c5781810151838201526020016108f4565b50505050905090810190601f1680156109395780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156109a9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610a0b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610a1760008383610aa0565b600254610a24908261094f565b6002556001600160a01b038216600090815260208190526040902054610a4a908261094f565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220aee9d544e963992fe3a26d79f6779fdb685fe83c2e3e078a30c8fd0bfea21f6d64736f6c634300060c0033"
+ var MintableERC20Bin = "0x60806040523480156200001157600080fd5b5060405162000dde38038062000dde833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060405260209081015185519093508592508491620001bd916003918501906200020d565b508051620001d39060049060208401906200020d565b50506005805460ff1916601217905550620001ee81620001f7565b505050620002a9565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200025057805160ff191683800117855562000280565b8280016001018555821562000280579182015b828111156200028057825182559160200191906001019062000263565b506200028e92915062000292565b5090565b5b808211156200028e576000815560010162000293565b610b2580620002b96000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610421565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b03813516906020013561042a565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610478565b6100c1610493565b6101626004803603602081101561025457600080fd5b50356104f4565b6101626004803603604081101561027157600080fd5b506001600160a01b03813516906020013561050f565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610577565b61017e600480360360408110156102c957600080fd5b506001600160a01b038135811691602001351661058b565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105b6565b84846105ba565b50600192915050565b60025490565b60006103a78484846106a6565b610417846103b36105b6565b61041285604051806060016040528060288152602001610a5a602891396001600160a01b038a166000908152600160205260408120906103f16105b6565b6001600160a01b031681526020810191909152604001600020549190610801565b6105ba565b5060019392505050565b60055460ff1690565b600061038b6104376105b6565b8461041285600160006104486105b6565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610898565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b60006105076105016105b6565b836108f9565b506001919050565b600061038b61051c6105b6565b8461041285604051806060016040528060258152602001610acb60259139600160006105466105b6565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610801565b600061038b6105846105b6565b84846106a6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166105ff5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aa76024913960400191505060405180910390fd5b6001600160a01b0382166106445760405162461bcd60e51b8152600401808060200182810382526022815260200180610a126022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106eb5760405162461bcd60e51b8152600401808060200182810382526025815260200180610a826025913960400191505060405180910390fd5b6001600160a01b0382166107305760405162461bcd60e51b81526004018080602001828103825260238152602001806109ef6023913960400191505060405180910390fd5b61073b8383836109e9565b61077881604051806060016040528060268152602001610a34602691396001600160a01b0386166000908152602081905260409020549190610801565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107a79082610898565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561085557818101518382015260200161083d565b50505050905090810190601f1680156108825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156108f2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610954576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610960600083836109e9565b60025461096d9082610898565b6002556001600160a01b0382166000908152602081905260409020546109939082610898565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200623e745a56420dbcda84dfdffec6b8889bc6596de0b6a1408c1e315f561c75d64736f6c634300060c0033"
+ var MockATokenBin = "0x610100604052600080553480156200001657600080fd5b5060405162002ae238038062002ae2833981810160405260c08110156200003c57600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200007057600080fd5b9083019060208201858111156200008657600080fd5b8251640100000000811182820188101715620000a157600080fd5b82525081516020918201929091019080838360005b83811015620000d0578181015183820152602001620000b6565b50505050905090810190601f168015620000fe5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012257600080fd5b9083019060208201858111156200013857600080fd5b82516401000000008111828201881017156200015357600080fd5b82525081516020918201929091019080838360005b838110156200018257818101518382015260200162000168565b50505050905090810190601f168015620001b05780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919050505085858585858582826012838360379080519060200190620001e79291906200024f565b508251620001fd9060389060208601906200024f565b506039805460ff90931660ff19909316929092179091556001600160601b0319606091821b811660805298811b891660e05296871b881660a0525050505050901b1660c05250620002eb945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029257805160ff1916838001178555620002c2565b82800160010185558215620002c2579182015b82811115620002c2578251825591602001919060010190620002a5565b50620002d0929150620002d4565b5090565b5b80821115620002d05760008155600101620002d5565b60805160601c60a05160601c60c05160601c60e05160601c6127476200039b600039806107c652806109ce5280610d0a5280610ded5280610eb55280610ef6528061146a52806116755280611dc25280611f1e525080610fa75280610fe8528061103e52806111b45250806109fd5280610db95280610e1c52806111d852806115985280611df15280611ecf525080611a335280611a5a5280612309528061233752806123e752506127476000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80637535d24611610104578063b16a19de116100a2578063d505accf11610071578063d505accf146105fa578063d7020d0a1461064b578063dd62ed3e14610687578063f866c319146106b5576101da565b8063b16a19de146105bc578063b1bf962d146105c4578063b9844d8d146105cc578063d0fc81d2146105f2576101da565b806395d89b41116100de57806395d89b4114610554578063a457c2d71461055c578063a9059cbb14610588578063ae167335146105b4576101da565b80637535d2461461050557806378160376146105295780637df5bd3b14610531576101da565b806323b872dd1161017c5780633644e5151161014b5780633644e5151461047f57806339509351146104875780634efecaa5146104b357806370a08231146104df576101da565b806323b872dd1461035557806330adf81f1461038b5780633118724e14610393578063313ce56714610461576101da565b80630bd7ad3b116101b85780630bd7ad3b146102db578063156e29f6146102f557806318160ddd146103275780631da24f3e1461032f576101da565b806306fdde03146101df578063095ea7b31461025c5780630afbcdc91461029c575b600080fd5b6101e76106eb565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610221578181015183820152602001610209565b50505050905090810190601f16801561024e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102886004803603604081101561027257600080fd5b506001600160a01b038135169060200135610782565b604080519115158252519081900360200190f35b6102c2600480360360208110156102b257600080fd5b50356001600160a01b03166107a0565b6040805192835260208301919091528051918290030190f35b6102e36107bd565b60408051918252519081900360200190f35b6102886004803603606081101561030b57600080fd5b506001600160a01b0381351690602081013590604001356107c2565b6102e36109ad565b6102e36004803603602081101561034557600080fd5b50356001600160a01b0316610a92565b6102886004803603606081101561036b57600080fd5b506001600160a01b03813581169160208101359091169060400135610a9d565b6102e3610b5d565b61045f600480360360608110156103a957600080fd5b60ff82351691908101906040810160208201356401000000008111156103ce57600080fd5b8201836020820111156103e057600080fd5b8035906020019184600183028401116401000000008311171561040257600080fd5b91939092909160208101903564010000000081111561042057600080fd5b82018360208201111561043257600080fd5b8035906020019184600183028401116401000000008311171561045457600080fd5b509092509050610b81565b005b610469610ca9565b6040805160ff9092168252519081900360200190f35b6102e3610cb2565b6102886004803603604081101561049d57600080fd5b506001600160a01b038135169060200135610cb8565b6102e3600480360360408110156104c957600080fd5b506001600160a01b038135169060200135610d06565b6102e3600480360360208110156104f557600080fd5b50356001600160a01b0316610de6565b61050d610eb3565b604080516001600160a01b039092168252519081900360200190f35b6101e7610ed7565b61045f6004803603604081101561054757600080fd5b5080359060200135610ef4565b6101e761108c565b6102886004803603604081101561057257600080fd5b506001600160a01b0381351690602001356110ed565b6102886004803603604081101561059e57600080fd5b506001600160a01b038135169060200135611155565b61050d6111b2565b61050d6111d6565b6102e36111fa565b6102e3600480360360208110156105e257600080fd5b50356001600160a01b0316611209565b6102e361121b565b61045f600480360360e081101561061057600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611221565b61045f6004803603608081101561066157600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611468565b6102e36004803603604081101561069d57600080fd5b506001600160a01b0381358116916020013516611648565b61045f600480360360608110156106cb57600080fd5b506001600160a01b03813581169160208101359091169060400135611673565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107775780601f1061074c57610100808354040283529160200191610777565b820191906000526020600020905b81548152906001019060200180831161075a57829003601f168201915b505050505090505b90565b600061079661078f611762565b8484611766565b5060015b92915050565b6000806107ac83611852565b6107b461186d565b91509150915091565b600181565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107f6611762565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906108a45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610869578181015183820152602001610851565b50505050905090810190601f1680156108965780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060006108b085611852565b905060006108be8585611873565b6040805180820190915260028152611a9b60f11b6020820152909150816109265760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b50610931868261197a565b6040805186815290516001600160a01b038816916000916000805160206126398339815191529181900360200190a3604080518681526020810186905281516001600160a01b038916927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25015949350505050565b6000806109b861186d565b9050806109c957600091505061077f565b610a8c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610a5957600080fd5b505afa158015610a6d573d6000803e3d6000fd5b505050506040513d6020811015610a8357600080fd5b50518290611af6565b91505090565b600061079a82611852565b6000610aaa848484611bb4565b610b1a84610ab6611762565b610b15856040518060600160405280602881526020016125e3602891396001600160a01b038a16600090815260356020526040812090610af4611762565b6001600160a01b031681526020810191909152604001600020549190611bc6565b611766565b826001600160a01b0316846001600160a01b0316600080516020612639833981519152846040518082815260200191505060405180910390a35060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6000610b8b611c20565b60015490915060ff1680610ba25750610ba2611c25565b80610bae575060005481115b610be95760405162461bcd60e51b815260040180806020018281038252602e81526020018061260b602e913960400191505060405180910390fd5b60015460ff16158015610c08576001805460ff19168117905560008290555b610c4786868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c2b92505050565b610c8684848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c3e92505050565b610c8f87611c51565b8015610ca0576001805460ff191690555b50505050505050565b60395460ff1690565b603b5481565b6000610796610cc5611762565b84610b158560356000610cd6611762565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611c67565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d3a611762565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610dab5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b50610de06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484611cc8565b50919050565b600061079a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610e7857600080fd5b505afa158015610e8c573d6000803e3d6000fd5b505050506040513d6020811015610ea257600080fd5b5051610ead84611852565b90611af6565b7f000000000000000000000000000000000000000000000000000000000000000081565b604051806040016040528060018152602001603160f81b81525081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f26611762565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610f975760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5081610fa257611088565b610fd57f0000000000000000000000000000000000000000000000000000000000000000610fd08484611873565b61197a565b6040805183815290516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916000916000805160206126398339815191529181900360200190a3604080518381526020810183905281516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25b5050565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107775780601f1061074c57610100808354040283529160200191610777565b60006107966110fa611762565b84610b15856040518060600160405280602581526020016126ed6025913960356000611124611762565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611bc6565b6000611169611162611762565b8484611bb4565b826001600160a01b031661117b611762565b6001600160a01b0316600080516020612639833981519152846040518082815260200191505060405180910390a350600192915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061120461186d565b905090565b603a6020526000908152604090205481565b60001981565b6001600160a01b03871661126c576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22fa7aba722a960991b604482015290519081900360640190fd5b834211156112b6576040805162461bcd60e51b815260206004820152601260248201527124a72b20a624a22fa2ac2824a920aa24a7a760711b604482015290519081900360640190fd5b6001600160a01b038088166000818152603a6020908152604080832054603b5482517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958c166060860152608085018b905260a0850181905260c08086018b90528251808703909101815260e08601835280519084012061190160f01b6101008701526101028601969096526101228086019690965281518086039096018652610142850180835286519684019690962093909552610162840180825283905260ff88166101828501526101a284018790526101c284018690525191926001926101e28083019392601f198301929081900390910190855afa1580156113cb573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b03161461142e576040805162461bcd60e51b8152602060048201526011602482015270494e56414c49445f5349474e415455524560781b604482015290519081900360640190fd5b611439826001611c67565b6001600160a01b038a166000908152603a602052604090205561145d898989611766565b505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661149a611762565b6001600160a01b03161460405180604001604052806002815260200161323960f01b8152509061150b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5060006115188383611873565b60408051808201909152600281526106a760f31b6020820152909150816115805760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5061158b8582611d1a565b6115bf6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611cc8565b6040805184815290516000916001600160a01b038816916000805160206126398339815191529181900360200190a3836001600160a01b0316856001600160a01b03167f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa28585604051808381526020018281526020019250505060405180910390a35050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116a5611762565b6001600160a01b03161460405180604001604052806002815260200161323960f01b815250906117165760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b506117248383836000611dbe565b816001600160a01b0316836001600160a01b0316600080516020612639833981519152836040518082815260200191505060405180910390a3505050565b3390565b6001600160a01b0383166117ab5760405162461bcd60e51b815260040180806020018281038252602481526020018061269f6024913960400191505060405180910390fd5b6001600160a01b0382166117f05760405162461bcd60e51b815260040180806020018281038252602281526020018061259b6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b031660009081526034602052604090205490565b60365490565b604080518082019091526002815261035360f41b6020820152600090826118db5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156119575760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b5082816b033b2e3c9fd0803ce80000008602018161197157fe5b04949350505050565b6001600160a01b0382166119d5576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6119e160008383611bc1565b6036546119ee8183611c67565b6036556001600160a01b038316600090815260346020526040902054611a148184611c67565b6001600160a01b038086166000908152603460205260409020919091557f00000000000000000000000000000000000000000000000000000000000000001615611af0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8584846040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b158015611ad757600080fd5b505af1158015611aeb573d6000803e3d6000fd5b505050505b50505050565b6000821580611b03575081155b15611b105750600061079a565b816b019d971e4fe8401e740000001981611b2657fe5b0483111560405180604001604052806002815260200161068760f31b81525090611b915760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b611bc18383836001611dbe565b505050565b60008184841115611c185760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610869578181015183820152602001610851565b505050900390565b600290565b303b1590565b80516110889060379060208401906124c2565b80516110889060389060208401906124c2565b6039805460ff191660ff92909216919091179055565b600082820183811015611cc1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611bc1908490611fdd565b6001600160a01b038216611d5f5760405162461bcd60e51b81526004018080602001828103825260218152602001806126596021913960400191505060405180910390fd5b611d6b82600083611bc1565b603654611d788183612195565b6036556001600160a01b0383166000908152603460209081526040918290205482516060810190935260228084529092611a149286929061257990830139839190611bc6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d15e00537f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611e4d57600080fd5b505afa158015611e61573d6000803e3d6000fd5b505050506040513d6020811015611e7757600080fd5b505190506000611e8a82610ead88611852565b90506000611e9b83610ead88611852565b9050611eb18787611eac8887611873565b6121d7565b8315611f81576040805163d5ed393360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015289811660248301528881166044830152606482018890526084820185905260a4820184905291517f00000000000000000000000000000000000000000000000000000000000000009092169163d5ed39339160c48082019260009290919082900301818387803b158015611f6857600080fd5b505af1158015611f7c573d6000803e3d6000fd5b505050505b856001600160a01b0316876001600160a01b03167f4beccb90f994c31aced7a23b5611020728a23d8ec5cddd1a3e9d97b96fda86668786604051808381526020018281526020019250505060405180910390a350505050505050565b611fef826001600160a01b0316612486565b612040576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b6020831061207e5780518252601f19909201916020918201910161205f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146120e0576040519150601f19603f3d011682016040523d82523d6000602084013e6120e5565b606091505b50915091508161213c576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611af05780806020019051602081101561215857600080fd5b5051611af05760405162461bcd60e51b815260040180806020018281038252602a8152602001806126c3602a913960400191505060405180910390fd5b6000611cc183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bc6565b6001600160a01b03831661221c5760405162461bcd60e51b815260040180806020018281038252602581526020018061267a6025913960400191505060405180910390fd5b6001600160a01b0382166122615760405162461bcd60e51b81526004018080602001828103825260238152602001806125566023913960400191505060405180910390fd5b61226c838383611bc1565b600060346000856001600160a01b03166001600160a01b031681526020019081526020016000205490506122bb826040518060600160405280602681526020016125bd60269139839190611bc6565b6001600160a01b0380861660009081526034602052604080822093909355908516815220546122ea8184611c67565b6001600160a01b038086166000908152603460205260409020919091557f0000000000000000000000000000000000000000000000000000000000000000161561247f57600060365490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8783866040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156123b457600080fd5b505af11580156123c8573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03161461247d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8683856040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561246457600080fd5b505af1158015612478573d6000803e3d6000fd5b505050505b505b5050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906124ba57508115155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061250357805160ff1916838001178555612530565b82800160010185558215612530579182015b82811115612530578251825591602001919060010190612515565b5061253c929150612540565b5090565b5b8082111561253c576000815560010161254156fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202602201bafa47df31a8efc050a59778b58aa707dd09e364ec3a763a68530121a64736f6c634300060c0033"
+ var MockFlashLoanReceiverBin = "0x60c060405234801561001057600080fd5b50604051610a8c380380610a8c8339818101604052602081101561003357600080fd5b50516001600160601b0319606082901b1660805260408051630261bf8b60e01b8152905182916001600160a01b03831691630261bf8b91600480820192602092909190829003018186803b15801561008a57600080fd5b505afa15801561009e573d6000803e3d6000fd5b505050506040513d60208110156100b457600080fd5b5051606081811b6001600160601b03191660a052608051901c92506001600160a01b031690506109906100fc6000398061070852806108b952508061038952506109906000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b4dcfc771161005b578063b4dcfc7714610329578063bb271c4d14610331578063bf443f851461034b578063e9a6a25b1461036857610088565b80630542975c1461008d578063388f70f1146100b15780634444f331146100d2578063920f5c84146100ee575b600080fd5b610095610387565b604080516001600160a01b039092168252519081900360200190f35b6100d0600480360360208110156100c757600080fd5b503515156103ab565b005b6100da6103c9565b604080519115158252519081900360200190f35b6100da600480360360a081101561010457600080fd5b810190602081018135600160201b81111561011e57600080fd5b82018360208201111561013057600080fd5b803590602001918460208302840111600160201b8311171561015157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156101a057600080fd5b8201836020820111156101b257600080fd5b803590602001918460208302840111600160201b831117156101d357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561022257600080fd5b82018360208201111561023457600080fd5b803590602001918460208302840111600160201b8311171561025557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092956001600160a01b03853516959094909350604081019250602001359050600160201b8111156102b557600080fd5b8201836020820111156102c757600080fd5b803590602001918460018302840111600160201b831117156102e857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103d2945050505050565b6100956108b7565b6103396108db565b60408051918252519081900360200190f35b6100d06004803603602081101561036157600080fd5b50356108e1565b6100d06004803603602081101561037e57600080fd5b503515156108e6565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008054911515600160a01b0260ff60a01b19909216919091179055565b60025460ff1690565b60008054600160a01b900460ff16156104f3577f9972b212e52913783072b960dd41527ae8b6e609d017b64039758dda0ce4127886868660405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610451578181015183820152602001610439565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610490578181015183820152602001610478565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156104cf5781810151838201526020016104b7565b50505050905001965050505050505060405180910390a15060025460ff16156108ae565b60005b86518110156107a857600087828151811061050d57fe5b6020026020010151905087828151811061052357fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561057757600080fd5b505afa15801561058b573d6000803e3d6000fd5b505050506040513d60208110156105a157600080fd5b505187518890849081106105b157fe5b6020026020010151111561060c576040805162461bcd60e51b815260206004820181905260248201527f496e76616c69642062616c616e636520666f722074686520636f6e7472616374604482015290519081900360640190fd5b6000600154600014156106575761065287848151811061062857fe5b602002602001015189858151811061063c57fe5b60200260200101516108f990919063ffffffff16565b61065b565b6001545b9050816001600160a01b031663a0712d6888858151811061067857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156106b657600080fd5b505af11580156106ca573d6000803e3d6000fd5b505050506040513d60208110156106e057600080fd5b505088518990849081106106f057fe5b60200260200101516001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561076e57600080fd5b505af1158015610782573d6000803e3d6000fd5b505050506040513d602081101561079857600080fd5b5050600190920191506104f69050565b507fbd6b6bfac59612765a81cc4fdee74ab4859671fa14a562056f9eea438735a78a86868660405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156108155781810151838201526020016107fd565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561085457818101518382015260200161083c565b50505050905001848103825285818151815260200191508051906020019060200280838360005b8381101561089357818101518382015260200161087b565b50505050905001965050505050505060405180910390a15060015b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015490565b600155565b6002805460ff1916911515919091179055565b600082820183811015610953576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fea2646970667358221220f0e76318bbf5c372589ec6ecd80a57c74b1d06e057846ec7901a25590f1b76c964736f6c634300060c0033"
+ var MockStableDebtTokenBin = "0x60e060405260006006553480156200001657600080fd5b5060405162001ec538038062001ec5833981810160405260a08110156200003c57600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006857600080fd5b9083019060208201858111156200007e57600080fd5b82516401000000008111828201881017156200009957600080fd5b82525081516020918201929091019080838360005b83811015620000c8578181015183820152602001620000ae565b50505050905090810190601f168015620000f65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011a57600080fd5b9083019060208201858111156200013057600080fd5b82516401000000008111828201881017156200014b57600080fd5b82525081516020918201929091019080838360005b838110156200017a57818101518382015260200162000160565b50505050905090810190601f168015620001a85780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291905050508484848484848484848482826012838360039080519060200190620001e39291906200024b565b508251620001f99060049060208601906200024b565b506005805460ff90931660ff19909316929092179091556001600160601b0319606091821b811660805297811b881660c0529590951b90951660a05250620002e79d5050505050505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028e57805160ff1916838001178555620002be565b82800160010185558215620002be579182015b82811115620002be578251825591602001919060010190620002a1565b50620002cc929150620002d0565b5090565b5b80821115620002cc5760008155600101620002d1565b60805160601c60a05160601c60c05160601c611b8f62000336600039806109875280610a6a5280610e0f525080610de952806111f252806117f1525080611673528061169a5250611b8f6000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806395d89b41116100de578063b9a7b62211610097578063dd62ed3e11610071578063dd62ed3e14610616578063e748489014610644578063e78c9b3b1461064c578063f731e9be146106725761018e565b8063b9a7b622146105bc578063c04a8a10146105c4578063c634dfaa146105f05761018e565b806395d89b41146105185780639dc29fac14610520578063a457c2d7146103f7578063a9059cbb1461054c578063b16a19de14610578578063b3f1c93d146105805761018e565b8063395093511161014b5780637535d246116101255780637535d24614610477578063797743381461049b57806379ce6b8c146104d057806390f6fcf2146105105761018e565b806339509351146103f75780636bd76d241461042357806370a08231146104515761018e565b806306fdde0314610193578063095ea7b31461021057806318160ddd1461025057806323b872dd1461026a5780633118724e146102a0578063313ce567146103d9575b600080fd5b61019b610693565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d55781810151838201526020016101bd565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023c6004803603604081101561022657600080fd5b506001600160a01b038135169060200135610729565b604080519115158252519081900360200190f35b610258610771565b60408051918252519081900360200190f35b61023c6004803603606081101561028057600080fd5b506001600160a01b03813581169160208101359091169060400135610783565b6103d7600480360360608110156102b657600080fd5b60ff82351691908101906040810160208201356401000000008111156102db57600080fd5b8201836020820111156102ed57600080fd5b8035906020019184600183028401116401000000008311171561030f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561036257600080fd5b82018360208201111561037457600080fd5b8035906020019184600183028401116401000000008311171561039657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107cb945050505050565b005b6103e1610886565b6040805160ff9092168252519081900360200190f35b61023c6004803603604081101561040d57600080fd5b506001600160a01b03813516906020013561088f565b6102586004803603604081101561043957600080fd5b506001600160a01b03813581169160200135166108de565b6102586004803603602081101561046757600080fd5b50356001600160a01b031661090b565b61047f610985565b604080516001600160a01b039092168252519081900360200190f35b6104a36109a9565b6040805194855260208501939093528383019190915264ffffffffff166060830152519081900360800190f35b6104f6600480360360208110156104e657600080fd5b50356001600160a01b03166109df565b6040805164ffffffffff9092168252519081900360200190f35b610258610a01565b61019b610a07565b6103d76004803603604081101561053657600080fd5b506001600160a01b038135169060200135610a68565b61023c6004803603604081101561056257600080fd5b506001600160a01b038135169060200135610783565b61047f610de7565b61023c6004803603608081101561059657600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610e0b565b61025861117c565b6103d7600480360360408110156105da57600080fd5b506001600160a01b038135169060200135611181565b6102586004803603602081101561060657600080fd5b50356001600160a01b031661123b565b6102586004803603604081101561062c57600080fd5b506001600160a01b038135811691602001351661088f565b6104f6611246565b6102586004803603602081101561066257600080fd5b50356001600160a01b0316611253565b61067a61126e565b6040805192835260208301919091528051918290030190f35b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b5050505050905090565b6040805162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b600061077e603b54611287565b905090565b6040805162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60006107d56112cf565b60075490915060ff16806107ec57506107ec6112d4565b806107f8575060065481115b6108335760405162461bcd60e51b815260040180806020018281038252602e815260200180611b2c602e913960400191505060405180910390fd5b60075460ff16158015610853576007805460ff1916600117905560068290555b61085c846112da565b610865836112f1565b61086e85611304565b801561087f576007805460ff191690555b5050505050565b60055460ff1690565b6040805162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f525445440000000000000000006044820152905160009181900360640190fd5b6001600160a01b038083166000908152603a60209081526040808320938516835292905220545b92915050565b6000806109178361131a565b6001600160a01b0384166000908152603d60205260409020549091508161094357600092505050610980565b6001600160a01b0384166000908152603c602052604081205461096e90839064ffffffffff16611335565b905061097a8382611349565b93505050505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000806000603b5490506109be611407565b6109c782611287565b603e54919790965091945064ffffffffff1692509050565b6001600160a01b03166000908152603c602052604090205464ffffffffff1690565b603b5490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561071f5780601f106106f45761010080835404028352916020019161071f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a9a61140d565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610b485760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b0d578181015183820152602001610af5565b50505050905090810190601f168015610b3a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080610b5584611411565b92509250506000610b64610771565b6001600160a01b0386166000908152603d6020526040812054919250908190868411610b99576000603b819055600255610c1b565b610ba3848861146a565b600281905591506000610bc1610bb8866114ac565b603b5490611349565b90506000610bd8610bd18a6114ac565b8490611349565b9050818110610bf45760006002819055603b8190559450610c18565b610c10610c00856114ac565b610c0a848461146a565b9061152a565b603b81905594505b50505b85871415610c59576001600160a01b0388166000908152603d60209081526040808320839055603c9091529020805464ffffffffff19169055610c87565b6001600160a01b0388166000908152603c60205260409020805464ffffffffff19164264ffffffffff161790555b603e805464ffffffffff19164264ffffffffff1617905586851115610d27576000610cb2868961146a565b9050610cbf898287611631565b6040805182815260208101899052808201889052606081018490526080810186905260a0810185905290516001600160a01b038b169182917fc16f4e4ca34d790de4c656c72fd015c667d688f20be64eea360618545c4c530f9181900360c00190a350610d9c565b6000610d33888761146a565b9050610d40898287611736565b6040805182815260208101899052808201889052606081018690526080810185905290516001600160a01b038b16917f44bd20a79e993bdcc7cbedf54a3b4d19fb78490124b6b90d04fe3242eea579e8919081900360a00190a2505b6040805188815290516000916001600160a01b038b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e3f61140d565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610eb05760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b50610eb9611a48565b846001600160a01b0316866001600160a01b031614610edd57610edd858786611778565b600080610ee987611411565b9250925050610ef6610771565b808452603b546080850152610f0b9087611855565b60028190556020840152610f1e866114ac565b6040840152610f7c610f38610f338489611855565b6114ac565b6040850151610c0a90610f4b9089611349565b610f76610f57876114ac565b6001600160a01b038d166000908152603d602052604090205490611349565b90611855565b60608401819052604080518082019091526002815261373960f01b6020820152906fffffffffffffffffffffffffffffffff1015610ffb5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5060608301516001600160a01b0388166000908152603d6020908152604080832093909355603c8152919020805464ffffffffff421664ffffffffff199182168117909255603e805490911690911790558301516110919061105c906114ac565b610c0a61107686604001518961134990919063ffffffff16565b610f7661108688600001516114ac565b608089015190611349565b603b81905560808401526110b0876110a98884611855565b8551611631565b6040805187815290516001600160a01b038916916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3866001600160a01b0316886001600160a01b03167fc16f4e4ca34d790de4c656c72fd015c667d688f20be64eea360618545c4c530f888585886060015189608001518a6020015160405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a350159695505050505050565b600181565b80603a600061118e61140d565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120919091556111c661140d565b6001600160a01b03167fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e17f00000000000000000000000000000000000000000000000000000000000000008460405180836001600160a01b031681526020018281526020019250505060405180910390a35050565b60006109058261131a565b603e5464ffffffffff1690565b6001600160a01b03166000908152603d602052604090205490565b603b54600090819061127f81611287565b925090509091565b600080611292611407565b9050806112a3576000915050610980565b603e546000906112bb90859064ffffffffff16611335565b90506112c78282611349565b949350505050565b600290565b303b1590565b80516112ed906003906020840190611a77565b5050565b80516112ed906004906020840190611a77565b6005805460ff191660ff92909216919091179055565b6001600160a01b031660009081526020819052604090205490565b60006113428383426118af565b9392505050565b6000821580611356575081155b1561136357506000610905565b816b019d971e4fe8401e74000000198161137957fe5b0483111560405180604001604052806002815260200161068760f31b815250906113e45760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b60025490565b3390565b6000806000806114208561131a565b90508061143857600080600093509350935050611463565b600061144d826114478861090b565b9061146a565b90508161145a8183611855565b90955093509150505b9193909250565b600061134283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611985565b6000633b9aca0082810290839082041460405180604001604052806002815260200161068760f31b815250906115235760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5092915050565b604080518082019091526002815261035360f41b6020820152600090826115925760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce800000082190485111561160e5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5082816b033b2e3c9fd0803ce80000008602018161162857fe5b04949350505050565b6001600160a01b0383166000908152602081905260409020546116548184611855565b6001600160a01b038086166000908152602081905260409020919091557f00000000000000000000000000000000000000000000000000000000000000001615611730577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8584846040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561171757600080fd5b505af115801561172b573d6000803e3d6000fd5b505050505b50505050565b6001600160a01b038316600090815260208181526040918290205482518084019093526002835261038360f41b91830191909152906116549082908590611985565b6040805180820182526002815261353960f01b6020808301919091526001600160a01b038087166000908152603a835284812091871681529152918220546117c1918490611985565b6001600160a01b038086166000818152603a602090815260408083208986168085529083529281902086905580517f000000000000000000000000000000000000000000000000000000000000000090951685529084018590528051949550909391927fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e1929081900390910190a350505050565b600082820183811015611342576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000806118c38364ffffffffff861661146a565b9050806118da576118d26119df565b915050611342565b60001981016000600283116118f05760006118f5565b600283035b90506301e133808704600061190a8280611349565b905060006119188284611349565b9050600060026119328461192c8a8a6119ef565b906119ef565b8161193957fe5b049050600060066119508461192c89818d8d6119ef565b8161195757fe5b04905061197581610f76848161196d8a8e6119ef565b610f766119df565b9c9b505050505050505050505050565b600081848411156119d75760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b505050900390565b6b033b2e3c9fd0803ce800000090565b6000826119fe57506000610905565b82820282848281611a0b57fe5b04146113425760405162461bcd60e51b8152600401808060200182810382526021815260200180611b0b6021913960400191505060405180910390fd5b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ab857805160ff1916838001178555611ae5565b82800160010185558215611ae5579182015b82811115611ae5578251825591602001919060010190611aca565b50611af1929150611af5565b5090565b5b80821115611af15760008155600101611af656fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212203b22715542217d0f15045070099f5ff24c1e92ba7b4caa49225c0db5e648671864736f6c634300060c0033"
+ var MockVariableDebtTokenBin = "0x60e060405260006006553480156200001657600080fd5b5060405162001a1238038062001a12833981810160405260a08110156200003c57600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006857600080fd5b9083019060208201858111156200007e57600080fd5b82516401000000008111828201881017156200009957600080fd5b82525081516020918201929091019080838360005b83811015620000c8578181015183820152602001620000ae565b50505050905090810190601f168015620000f65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011a57600080fd5b9083019060208201858111156200013057600080fd5b82516401000000008111828201881017156200014b57600080fd5b82525081516020918201929091019080838360005b838110156200017a57818101518382015260200162000160565b50505050905090810190601f168015620001a85780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291905050508484848484848484848482826012838360039080519060200190620001e39291906200024b565b508251620001f99060049060208601906200024b565b506005805460ff90931660ff19909316929092179091556001600160601b0319606091821b811660805297811b881660c0529590951b90951660a05250620002e79d5050505050505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028e57805160ff1916838001178555620002be565b82800160010185558215620002be579182015b82811115620002be578251825591602001919060010190620002a1565b50620002cc929150620002d0565b5090565b5b80821115620002cc5760008155600101620002d1565b60805160601c60a05160601c60c05160601c6116c86200034a600039806106ca52806109515280610a185280610acd5280610dbc5250806106f952806109805280610a9d5280610d71528061110e525080611332528061135952506116c86000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80637535d246116100b8578063b1bf962d1161007c578063b1bf962d146104f0578063b3f1c93d146104f8578063b9a7b62214610534578063c04a8a101461053c578063dd62ed3e14610568578063f5298aca1461059657610142565b80637535d2461461049057806395d89b41146104b4578063a457c2d714610410578063a9059cbb146104bc578063b16a19de146104e857610142565b806323b872dd1161010a57806323b872dd146102835780633118724e146102b9578063313ce567146103f257806339509351146104105780636bd76d241461043c57806370a082311461046a57610142565b806306fdde0314610147578063095ea7b3146101c45780630afbcdc91461020457806318160ddd146102435780631da24f3e1461025d575b600080fd5b61014f6105c8565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b03813516906020013561065e565b604080519115158252519081900360200190f35b61022a6004803603602081101561021a57600080fd5b50356001600160a01b03166106a6565b6040805192835260208301919091528051918290030190f35b61024b6106c3565b60408051918252519081900360200190f35b61024b6004803603602081101561027357600080fd5b50356001600160a01b0316610794565b6101f06004803603606081101561029957600080fd5b506001600160a01b038135811691602081013590911690604001356107a7565b6103f0600480360360608110156102cf57600080fd5b60ff82351691908101906040810160208201356401000000008111156102f457600080fd5b82018360208201111561030657600080fd5b8035906020019184600183028401116401000000008311171561032857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561037b57600080fd5b82018360208201111561038d57600080fd5b803590602001918460018302840111640100000000831117156103af57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107ef945050505050565b005b6103fa6108aa565b6040805160ff9092168252519081900360200190f35b6101f06004803603604081101561042657600080fd5b506001600160a01b0381351690602001356108b3565b61024b6004803603604081101561045257600080fd5b506001600160a01b0381358116916020013516610902565b61024b6004803603602081101561048057600080fd5b50356001600160a01b031661092f565b610498610a16565b604080516001600160a01b039092168252519081900360200190f35b61014f610a3a565b6101f0600480360360408110156104d257600080fd5b506001600160a01b0381351690602001356107a7565b610498610a9b565b61024b610abf565b6101f06004803603608081101561050e57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610ac9565b61024b610cfb565b6103f06004803603604081101561055257600080fd5b506001600160a01b038135169060200135610d00565b61024b6004803603604081101561057e57600080fd5b506001600160a01b03813581169160200135166108b3565b6103f0600480360360608110156105ac57600080fd5b506001600160a01b038135169060208101359060400135610dba565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106545780601f1061062957610100808354040283529160200191610654565b820191906000526020600020905b81548152906001019060200180831161063757829003601f168201915b5050505050905090565b6040805162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b6000806106b283610f67565b6106ba610f82565b91509150915091565b600061078f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663386497fd7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561075557600080fd5b505afa158015610769573d6000803e3d6000fd5b505050506040513d602081101561077f57600080fd5b5051610789610f82565b90610f88565b905090565b600061079f82610f67565b90505b919050565b6040805162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60006107f9611046565b60075490915060ff1680610810575061081061104b565b8061081c575060065481115b6108575760405162461bcd60e51b815260040180806020018281038252602e815260200180611644602e913960400191505060405180910390fd5b60075460ff16158015610877576007805460ff1916600117905560068290555b61088084611051565b61088983611068565b6108928561107b565b80156108a3576007805460ff191690555b5050505050565b60055460ff1690565b6040805162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f525445440000000000000000006044820152905160009181900360640190fd5b6001600160a01b038083166000908152603a60209081526040808320938516835292905220545b92915050565b60008061093b83610f67565b90508061094c5760009150506107a2565b610a0f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663386497fd7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156109dc57600080fd5b505afa1580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b50518290610f88565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106545780601f1061062957610100808354040283529160200191610654565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061078f610f82565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610afd611091565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610bab5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b70578181015183820152602001610b58565b50505050905090810190601f168015610b9d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50836001600160a01b0316856001600160a01b031614610bd057610bd0848685611095565b6000610bdb85610f67565b90506000610be98585611172565b6040805180820190915260028152611a9b60f11b602082015290915081610c515760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b50610c5c8682611279565b6040805186815290516001600160a01b038816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3856001600160a01b0316876001600160a01b03167f2f00e3cdd69a77be7ed215ec7b2a36784dd158f921fca79ac29deffa353fe6ee8787604051808381526020018281526020019250505060405180910390a3501595945050505050565b600181565b80603a6000610d0d611091565b6001600160a01b0390811682526020808301939093526040918201600090812091871680825291909352912091909155610d45611091565b6001600160a01b03167fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e17f00000000000000000000000000000000000000000000000000000000000000008460405180836001600160a01b031681526020018281526020019250505060405180910390a35050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dec611091565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610e5d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b506000610e6a8383611172565b60408051808201909152600281526106a760f31b602082015290915081610ed25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b50610edd84826113f5565b6040805184815290516000916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3604080518481526020810184905281516001600160a01b038716927f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a928290030190a250505050565b6001600160a01b031660009081526020819052604090205490565b60025490565b6000821580610f95575081155b15610fa257506000610929565b816b019d971e4fe8401e740000001981610fb857fe5b0483111560405180604001604052806002815260200161068760f31b815250906110235760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b600290565b303b1590565b805161106490600390602084019061158e565b5050565b805161106490600490602084019061158e565b6005805460ff191660ff92909216919091179055565b3390565b6040805180820182526002815261353960f01b6020808301919091526001600160a01b038087166000908152603a835284812091871681529152918220546110de918490611493565b6001600160a01b038086166000818152603a602090815260408083208986168085529083529281902086905580517f000000000000000000000000000000000000000000000000000000000000000090951685529084018590528051949550909391927fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e1929081900390910190a350505050565b604080518082019091526002815261035360f41b6020820152600090826111da5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156112565760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b5082816b033b2e3c9fd0803ce80000008602018161127057fe5b04949350505050565b6001600160a01b0382166112d4576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6112e0600083836114ed565b6002546112ed81836114f2565b6002556001600160a01b03831660009081526020819052604090205461131381846114f2565b6001600160a01b038086166000908152602081905260409020919091557f000000000000000000000000000000000000000000000000000000000000000016156113ef577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8584846040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156113d657600080fd5b505af11580156113ea573d6000803e3d6000fd5b505050505b50505050565b6001600160a01b03821661143a5760405162461bcd60e51b81526004018080602001828103825260218152602001806116726021913960400191505060405180910390fd5b611446826000836114ed565b600254611453818361154c565b6002556001600160a01b03831660009081526020818152604091829020548251606081019093526022808452909261131392869290611622908301398391905b600081848411156114e55760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b505050900390565b505050565b600082820183811015610a0f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610a0f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611493565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115cf57805160ff19168380011785556115fc565b828001600101855582156115fc579182015b828111156115fc5782518255916020019190600101906115e1565b5061160892915061160c565b5090565b5b80821115611608576000815560010161160d56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656445524332303a206275726e2066726f6d20746865207a65726f2061646472657373a264697066735822122068a46a344b698ba47ee8119197546cf15d14bb7fd516bc3043e8d7cd912c1e4c64736f6c634300060c0033"
+ var PriceOracleBin = "0x608060405234801561001057600080fd5b506101d0806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806351323f7214610051578063a0a8045e1461007f578063b3596f0714610099578063b951883a146100bf575b600080fd5b61007d6004803603604081101561006757600080fd5b506001600160a01b0381351690602001356100dc565b005b610087610137565b60408051918252519081900360200190f35b610087600480360360208110156100af57600080fd5b50356001600160a01b031661013d565b61007d600480360360208110156100d557600080fd5b5035610158565b6001600160a01b03821660008181526020818152604091829020849055815192835282018390524282820152517fce6e0b57367bae95ca7198e1172f653ea64a645c16ab586b4cefa9237bfc2d929181900360600190a15050565b60015490565b6001600160a01b031660009081526020819052604090205490565b60018190556040805182815242602082015281517fb4f35977939fa8b5ffe552d517a8ff5223046b1fdd3ee0068ae38d1e2b8d0016929181900390910190a15056fea264697066735822122008b2a3febc0cbffea7290aab15ec5b58b5239db77df7be201e7d915b9b2d76ec64736f6c634300060c0033"
+ var ReserveLogicBin = "0x61023b610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80632b33897c1461003a575b600080fd5b81801561004657600080fd5b5061008b600480360360a081101561005d57600080fd5b508035906001600160a01b03602082013581169160408101358216916060820135811691608001351661008d565b005b6004850154604080518082019091526002815261199960f11b6020820152906001600160a01b03161561013e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156101035781810151838201526020016100eb565b50505050905090810190601f1680156101305780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506101476101f5565b6001860180546fffffffffffffffffffffffffffffffff19166001600160801b039290921691909117905561017a6101f5565b6001860180546001600160801b03928316600160801b0292169190911790556004850180546001600160a01b039586166001600160a01b031991821617909155600586018054948616948216949094179093556006850180549285169284169290921790915560079093018054939092169216919091179055565b6b033b2e3c9fd0803ce80000009056fea2646970667358221220c01046215f2dace4f28ebccd6f2fc9dbed64f4381ca965801a255180c5eac35f64736f6c634300060c0033"
+ var StableAndVariableTokensHelperBin = "0x608060405234801561001057600080fd5b5060405161465138038061465183398101604081905261002f916100b8565b60006100396100b4565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055610109565b3390565b600080604083850312156100ca578182fd5b82516100d5816100f1565b60208401519092506100e6816100f1565b809150509250929050565b6001600160a01b038116811461010657600080fd5b50565b614539806101186000396000f3fe60806040523480156200001157600080fd5b50600436106200006a5760003560e01c8063563b1cb3146200006f578063715018a614620000885780638da5cb5b1462000092578063b889bec414620000b4578063c2d3032114620000cb578063f2fde38b14620000e2575b600080fd5b6200008662000080366004620008a9565b620000f9565b005b6200008662000273565b6200009c620002f7565b604051620000ab9190620009d1565b60405180910390f35b62000086620000c5366004620008e6565b62000306565b62000086620000dc366004620008e6565b620005fd565b62000086620000f336600462000864565b6200070c565b62000103620007ca565b6000546001600160a01b039081169116146200013c5760405162461bcd60e51b8152600401620001339062000ab4565b60405180910390fd5b6001600160a01b038116620001655760405162461bcd60e51b8152600401620001339062000b4d565b306001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015620001a957600080fd5b505afa158015620001be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e491906200088a565b6001600160a01b0316146200020d5760405162461bcd60e51b8152600401620001339062000b20565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906200023b908490600401620009d1565b600060405180830381600087803b1580156200025657600080fd5b505af11580156200026b573d6000803e3d6000fd5b505050505050565b6200027d620007ca565b6000546001600160a01b03908116911614620002ad5760405162461bcd60e51b8152600401620001339062000ab4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b62000310620007ca565b6000546001600160a01b03908116911614620003405760405162461bcd60e51b8152600401620001339062000ab4565b838214620003625760405162461bcd60e51b8152600401620001339062000b7c565b6001546001600160a01b03166200038d5760405162461bcd60e51b8152600401620001339062000ae9565b60005b848110156200026b576001547f1c1768aab1796270c7034dc781c2951065e6afb7a946269746521002443b8ea4906001600160a01b0316878784818110620003d457fe5b9050602002016020810190620003eb919062000864565b620004816040518060400160405280601981526020017f4161766520737461626c6520646562742062656172696e6720000000000000008152508888878181106200043257fe5b905060200281019062000446919062000bac565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250620007ce92505050565b620004b56040518060400160405280600a8152602001691cdd18589b195119589d60b21b8152508989888181106200043257fe5b86604051620004c490620007fc565b620004d4959493929190620009e5565b604051809103906000f080158015620004f1573d6000803e3d6000fd5b506001546001600160a01b03168888858181106200050b57fe5b905060200201602081019062000522919062000864565b620005696040518060400160405280601b81526020017f41617665207661726961626c6520646562742062656172696e672000000000008152508989888181106200043257fe5b6200059f6040518060400160405280600c81526020016b1d985c9a58589b195119589d60a21b8152508a8a898181106200043257fe5b87604051620005ae906200080a565b620005be959493929190620009e5565b604051809103906000f080158015620005db573d6000803e3d6000fd5b50604051620005ec92919062000a3b565b60405180910390a160010162000390565b62000607620007ca565b6000546001600160a01b03908116911614620006375760405162461bcd60e51b8152600401620001339062000ab4565b838214620006595760405162461bcd60e51b8152600401620001339062000b7c565b60005b848110156200026b57816001600160a01b03166372eb293d8787848181106200068157fe5b905060200201602081019062000698919062000864565b868685818110620006a557fe5b905060200201356040518363ffffffff1660e01b8152600401620006cb92919062000a55565b600060405180830381600087803b158015620006e657600080fd5b505af1158015620006fb573d6000803e3d6000fd5b5050600190920191506200065c9050565b62000716620007ca565b6000546001600160a01b03908116911614620007465760405162461bcd60e51b8152600401620001339062000ab4565b6001600160a01b0381166200076f5760405162461bcd60e51b8152600401620001339062000a6e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b60608282604051602001620007e59291906200099e565b604051602081830303815290604052905092915050565b611ebb8062000c4183390190565b611a088062002afc83390190565b60008083601f8401126200082a578182fd5b50813567ffffffffffffffff81111562000842578182fd5b60208301915083602080830285010111156200085d57600080fd5b9250929050565b60006020828403121562000876578081fd5b8135620008838162000c27565b9392505050565b6000602082840312156200089c578081fd5b8151620008838162000c27565b60008060408385031215620008bc578081fd5b8235620008c98162000c27565b91506020830135620008db8162000c27565b809150509250929050565b600080600080600060608688031215620008fe578081fd5b853567ffffffffffffffff8082111562000916578283fd5b6200092489838a0162000818565b909750955060208801359150808211156200093d578283fd5b506200094c8882890162000818565b9094509250506040860135620009628162000c27565b809150509295509295909350565b600081518084526200098a81602086016020860162000bf4565b601f01601f19169290920160200192915050565b60008351620009b281846020880162000bf4565b835190830190620009c881836020880162000bf4565b01949350505050565b6001600160a01b0391909116815260200190565b600060018060a01b038088168352808716602084015260a0604084015262000a1160a084018762000970565b838103606085015262000a25818762000970565b9250508084166080840152509695505050505050565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601c908201527f506f6f6c2063616e206e6f74206265207a65726f206164647265737300000000604082015260600190565b6020808252601390820152723432b63832b91034b9903737ba1037bbb732b960691b604082015260600190565b6020808252601590820152746f776e65722063616e206e6f74206265207a65726f60581b604082015260600190565b602080825260169082015275082e4e4c2f2e640dcdee840e6c2daca40d8cadccee8d60531b604082015260600190565b6000808335601e1984360301811262000bc3578283fd5b83018035915067ffffffffffffffff82111562000bde578283fd5b6020019150368190038213156200085d57600080fd5b60005b8381101562000c1157818101518382015260200162000bf7565b8381111562000c21576000848401525b50505050565b6001600160a01b038116811462000c3d57600080fd5b5056fe60e060405260006006553480156200001657600080fd5b5060405162001ebb38038062001ebb833981810160405260a08110156200003c57600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006857600080fd5b9083019060208201858111156200007e57600080fd5b82516401000000008111828201881017156200009957600080fd5b82525081516020918201929091019080838360005b83811015620000c8578181015183820152602001620000ae565b50505050905090810190601f168015620000f65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011a57600080fd5b9083019060208201858111156200013057600080fd5b82516401000000008111828201881017156200014b57600080fd5b82525081516020918201929091019080838360005b838110156200017a57818101518382015260200162000160565b50505050905090810190601f168015620001a85780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190505050848484848482826012838360039080519060200190620001de92919062000241565b508251620001f490600490602086019062000241565b506005805460ff90931660ff19909316929092179091556001600160601b0319606091821b811660805297811b881660c0529590951b90951660a05250620002dd98505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028457805160ff1916838001178555620002b4565b82800160010185558215620002b4579182015b82811115620002b457825182559160200191906001019062000297565b50620002c2929150620002c6565b5090565b5b80821115620002c25760008155600101620002c7565b60805160601c60a05160601c60c05160601c611b8f6200032c600039806109875280610a6a5280610e0f525080610de952806111f252806117f1525080611673528061169a5250611b8f6000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806395d89b41116100de578063b9a7b62211610097578063dd62ed3e11610071578063dd62ed3e14610616578063e748489014610644578063e78c9b3b1461064c578063f731e9be146106725761018e565b8063b9a7b622146105bc578063c04a8a10146105c4578063c634dfaa146105f05761018e565b806395d89b41146105185780639dc29fac14610520578063a457c2d7146103f7578063a9059cbb1461054c578063b16a19de14610578578063b3f1c93d146105805761018e565b8063395093511161014b5780637535d246116101255780637535d24614610477578063797743381461049b57806379ce6b8c146104d057806390f6fcf2146105105761018e565b806339509351146103f75780636bd76d241461042357806370a08231146104515761018e565b806306fdde0314610193578063095ea7b31461021057806318160ddd1461025057806323b872dd1461026a5780633118724e146102a0578063313ce567146103d9575b600080fd5b61019b610693565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d55781810151838201526020016101bd565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023c6004803603604081101561022657600080fd5b506001600160a01b038135169060200135610729565b604080519115158252519081900360200190f35b610258610771565b60408051918252519081900360200190f35b61023c6004803603606081101561028057600080fd5b506001600160a01b03813581169160208101359091169060400135610783565b6103d7600480360360608110156102b657600080fd5b60ff82351691908101906040810160208201356401000000008111156102db57600080fd5b8201836020820111156102ed57600080fd5b8035906020019184600183028401116401000000008311171561030f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561036257600080fd5b82018360208201111561037457600080fd5b8035906020019184600183028401116401000000008311171561039657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107cb945050505050565b005b6103e1610886565b6040805160ff9092168252519081900360200190f35b61023c6004803603604081101561040d57600080fd5b506001600160a01b03813516906020013561088f565b6102586004803603604081101561043957600080fd5b506001600160a01b03813581169160200135166108de565b6102586004803603602081101561046757600080fd5b50356001600160a01b031661090b565b61047f610985565b604080516001600160a01b039092168252519081900360200190f35b6104a36109a9565b6040805194855260208501939093528383019190915264ffffffffff166060830152519081900360800190f35b6104f6600480360360208110156104e657600080fd5b50356001600160a01b03166109df565b6040805164ffffffffff9092168252519081900360200190f35b610258610a01565b61019b610a07565b6103d76004803603604081101561053657600080fd5b506001600160a01b038135169060200135610a68565b61023c6004803603604081101561056257600080fd5b506001600160a01b038135169060200135610783565b61047f610de7565b61023c6004803603608081101561059657600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610e0b565b61025861117c565b6103d7600480360360408110156105da57600080fd5b506001600160a01b038135169060200135611181565b6102586004803603602081101561060657600080fd5b50356001600160a01b031661123b565b6102586004803603604081101561062c57600080fd5b506001600160a01b038135811691602001351661088f565b6104f6611246565b6102586004803603602081101561066257600080fd5b50356001600160a01b0316611253565b61067a61126e565b6040805192835260208301919091528051918290030190f35b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b5050505050905090565b6040805162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b600061077e603b54611287565b905090565b6040805162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60006107d56112cf565b60075490915060ff16806107ec57506107ec6112d4565b806107f8575060065481115b6108335760405162461bcd60e51b815260040180806020018281038252602e815260200180611b2c602e913960400191505060405180910390fd5b60075460ff16158015610853576007805460ff1916600117905560068290555b61085c846112da565b610865836112f1565b61086e85611304565b801561087f576007805460ff191690555b5050505050565b60055460ff1690565b6040805162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f525445440000000000000000006044820152905160009181900360640190fd5b6001600160a01b038083166000908152603a60209081526040808320938516835292905220545b92915050565b6000806109178361131a565b6001600160a01b0384166000908152603d60205260409020549091508161094357600092505050610980565b6001600160a01b0384166000908152603c602052604081205461096e90839064ffffffffff16611335565b905061097a8382611349565b93505050505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000806000603b5490506109be611407565b6109c782611287565b603e54919790965091945064ffffffffff1692509050565b6001600160a01b03166000908152603c602052604090205464ffffffffff1690565b603b5490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561071f5780601f106106f45761010080835404028352916020019161071f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a9a61140d565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610b485760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b0d578181015183820152602001610af5565b50505050905090810190601f168015610b3a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080610b5584611411565b92509250506000610b64610771565b6001600160a01b0386166000908152603d6020526040812054919250908190868411610b99576000603b819055600255610c1b565b610ba3848861146a565b600281905591506000610bc1610bb8866114ac565b603b5490611349565b90506000610bd8610bd18a6114ac565b8490611349565b9050818110610bf45760006002819055603b8190559450610c18565b610c10610c00856114ac565b610c0a848461146a565b9061152a565b603b81905594505b50505b85871415610c59576001600160a01b0388166000908152603d60209081526040808320839055603c9091529020805464ffffffffff19169055610c87565b6001600160a01b0388166000908152603c60205260409020805464ffffffffff19164264ffffffffff161790555b603e805464ffffffffff19164264ffffffffff1617905586851115610d27576000610cb2868961146a565b9050610cbf898287611631565b6040805182815260208101899052808201889052606081018490526080810186905260a0810185905290516001600160a01b038b169182917fc16f4e4ca34d790de4c656c72fd015c667d688f20be64eea360618545c4c530f9181900360c00190a350610d9c565b6000610d33888761146a565b9050610d40898287611736565b6040805182815260208101899052808201889052606081018690526080810185905290516001600160a01b038b16917f44bd20a79e993bdcc7cbedf54a3b4d19fb78490124b6b90d04fe3242eea579e8919081900360a00190a2505b6040805188815290516000916001600160a01b038b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e3f61140d565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610eb05760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b50610eb9611a48565b846001600160a01b0316866001600160a01b031614610edd57610edd858786611778565b600080610ee987611411565b9250925050610ef6610771565b808452603b546080850152610f0b9087611855565b60028190556020840152610f1e866114ac565b6040840152610f7c610f38610f338489611855565b6114ac565b6040850151610c0a90610f4b9089611349565b610f76610f57876114ac565b6001600160a01b038d166000908152603d602052604090205490611349565b90611855565b60608401819052604080518082019091526002815261373960f01b6020820152906fffffffffffffffffffffffffffffffff1015610ffb5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5060608301516001600160a01b0388166000908152603d6020908152604080832093909355603c8152919020805464ffffffffff421664ffffffffff199182168117909255603e805490911690911790558301516110919061105c906114ac565b610c0a61107686604001518961134990919063ffffffff16565b610f7661108688600001516114ac565b608089015190611349565b603b81905560808401526110b0876110a98884611855565b8551611631565b6040805187815290516001600160a01b038916916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3866001600160a01b0316886001600160a01b03167fc16f4e4ca34d790de4c656c72fd015c667d688f20be64eea360618545c4c530f888585886060015189608001518a6020015160405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a350159695505050505050565b600181565b80603a600061118e61140d565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120919091556111c661140d565b6001600160a01b03167fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e17f00000000000000000000000000000000000000000000000000000000000000008460405180836001600160a01b031681526020018281526020019250505060405180910390a35050565b60006109058261131a565b603e5464ffffffffff1690565b6001600160a01b03166000908152603d602052604090205490565b603b54600090819061127f81611287565b925090509091565b600080611292611407565b9050806112a3576000915050610980565b603e546000906112bb90859064ffffffffff16611335565b90506112c78282611349565b949350505050565b600190565b303b1590565b80516112ed906003906020840190611a77565b5050565b80516112ed906004906020840190611a77565b6005805460ff191660ff92909216919091179055565b6001600160a01b031660009081526020819052604090205490565b60006113428383426118af565b9392505050565b6000821580611356575081155b1561136357506000610905565b816b019d971e4fe8401e74000000198161137957fe5b0483111560405180604001604052806002815260200161068760f31b815250906113e45760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b60025490565b3390565b6000806000806114208561131a565b90508061143857600080600093509350935050611463565b600061144d826114478861090b565b9061146a565b90508161145a8183611855565b90955093509150505b9193909250565b600061134283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611985565b6000633b9aca0082810290839082041460405180604001604052806002815260200161068760f31b815250906115235760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5092915050565b604080518082019091526002815261035360f41b6020820152600090826115925760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce800000082190485111561160e5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5082816b033b2e3c9fd0803ce80000008602018161162857fe5b04949350505050565b6001600160a01b0383166000908152602081905260409020546116548184611855565b6001600160a01b038086166000908152602081905260409020919091557f00000000000000000000000000000000000000000000000000000000000000001615611730577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8584846040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561171757600080fd5b505af115801561172b573d6000803e3d6000fd5b505050505b50505050565b6001600160a01b038316600090815260208181526040918290205482518084019093526002835261038360f41b91830191909152906116549082908590611985565b6040805180820182526002815261353960f01b6020808301919091526001600160a01b038087166000908152603a835284812091871681529152918220546117c1918490611985565b6001600160a01b038086166000818152603a602090815260408083208986168085529083529281902086905580517f000000000000000000000000000000000000000000000000000000000000000090951685529084018590528051949550909391927fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e1929081900390910190a350505050565b600082820183811015611342576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000806118c38364ffffffffff861661146a565b9050806118da576118d26119df565b915050611342565b60001981016000600283116118f05760006118f5565b600283035b90506301e133808704600061190a8280611349565b905060006119188284611349565b9050600060026119328461192c8a8a6119ef565b906119ef565b8161193957fe5b049050600060066119508461192c89818d8d6119ef565b8161195757fe5b04905061197581610f76848161196d8a8e6119ef565b610f766119df565b9c9b505050505050505050505050565b600081848411156119d75760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b505050900390565b6b033b2e3c9fd0803ce800000090565b6000826119fe57506000610905565b82820282848281611a0b57fe5b04146113425760405162461bcd60e51b8152600401808060200182810382526021815260200180611b0b6021913960400191505060405180910390fd5b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ab857805160ff1916838001178555611ae5565b82800160010185558215611ae5579182015b82811115611ae5578251825591602001919060010190611aca565b50611af1929150611af5565b5090565b5b80821115611af15760008155600101611af656fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a264697066735822122063cfc4861ab93fa7f8252de92f62b74df5db675892536ba20d25f67c3323342564736f6c634300060c003360e060405260006006553480156200001657600080fd5b5060405162001a0838038062001a08833981810160405260a08110156200003c57600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006857600080fd5b9083019060208201858111156200007e57600080fd5b82516401000000008111828201881017156200009957600080fd5b82525081516020918201929091019080838360005b83811015620000c8578181015183820152602001620000ae565b50505050905090810190601f168015620000f65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011a57600080fd5b9083019060208201858111156200013057600080fd5b82516401000000008111828201881017156200014b57600080fd5b82525081516020918201929091019080838360005b838110156200017a57818101518382015260200162000160565b50505050905090810190601f168015620001a85780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190505050848484848482826012838360039080519060200190620001de92919062000241565b508251620001f490600490602086019062000241565b506005805460ff90931660ff19909316929092179091556001600160601b0319606091821b811660805297811b881660c0529590951b90951660a05250620002dd98505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028457805160ff1916838001178555620002b4565b82800160010185558215620002b4579182015b82811115620002b457825182559160200191906001019062000297565b50620002c2929150620002c6565b5090565b5b80821115620002c25760008155600101620002c7565b60805160601c60a05160601c60c05160601c6116c862000340600039806106ca52806109515280610a185280610acd5280610dbc5250806106f952806109805280610a9d5280610d71528061110e525080611332528061135952506116c86000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80637535d246116100b8578063b1bf962d1161007c578063b1bf962d146104f0578063b3f1c93d146104f8578063b9a7b62214610534578063c04a8a101461053c578063dd62ed3e14610568578063f5298aca1461059657610142565b80637535d2461461049057806395d89b41146104b4578063a457c2d714610410578063a9059cbb146104bc578063b16a19de146104e857610142565b806323b872dd1161010a57806323b872dd146102835780633118724e146102b9578063313ce567146103f257806339509351146104105780636bd76d241461043c57806370a082311461046a57610142565b806306fdde0314610147578063095ea7b3146101c45780630afbcdc91461020457806318160ddd146102435780631da24f3e1461025d575b600080fd5b61014f6105c8565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b03813516906020013561065e565b604080519115158252519081900360200190f35b61022a6004803603602081101561021a57600080fd5b50356001600160a01b03166106a6565b6040805192835260208301919091528051918290030190f35b61024b6106c3565b60408051918252519081900360200190f35b61024b6004803603602081101561027357600080fd5b50356001600160a01b0316610794565b6101f06004803603606081101561029957600080fd5b506001600160a01b038135811691602081013590911690604001356107a7565b6103f0600480360360608110156102cf57600080fd5b60ff82351691908101906040810160208201356401000000008111156102f457600080fd5b82018360208201111561030657600080fd5b8035906020019184600183028401116401000000008311171561032857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561037b57600080fd5b82018360208201111561038d57600080fd5b803590602001918460018302840111640100000000831117156103af57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107ef945050505050565b005b6103fa6108aa565b6040805160ff9092168252519081900360200190f35b6101f06004803603604081101561042657600080fd5b506001600160a01b0381351690602001356108b3565b61024b6004803603604081101561045257600080fd5b506001600160a01b0381358116916020013516610902565b61024b6004803603602081101561048057600080fd5b50356001600160a01b031661092f565b610498610a16565b604080516001600160a01b039092168252519081900360200190f35b61014f610a3a565b6101f0600480360360408110156104d257600080fd5b506001600160a01b0381351690602001356107a7565b610498610a9b565b61024b610abf565b6101f06004803603608081101561050e57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610ac9565b61024b610cfb565b6103f06004803603604081101561055257600080fd5b506001600160a01b038135169060200135610d00565b61024b6004803603604081101561057e57600080fd5b506001600160a01b03813581169160200135166108b3565b6103f0600480360360608110156105ac57600080fd5b506001600160a01b038135169060208101359060400135610dba565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106545780601f1061062957610100808354040283529160200191610654565b820191906000526020600020905b81548152906001019060200180831161063757829003601f168201915b5050505050905090565b6040805162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b6000806106b283610f67565b6106ba610f82565b91509150915091565b600061078f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663386497fd7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561075557600080fd5b505afa158015610769573d6000803e3d6000fd5b505050506040513d602081101561077f57600080fd5b5051610789610f82565b90610f88565b905090565b600061079f82610f67565b90505b919050565b6040805162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60006107f9611046565b60075490915060ff1680610810575061081061104b565b8061081c575060065481115b6108575760405162461bcd60e51b815260040180806020018281038252602e815260200180611644602e913960400191505060405180910390fd5b60075460ff16158015610877576007805460ff1916600117905560068290555b61088084611051565b61088983611068565b6108928561107b565b80156108a3576007805460ff191690555b5050505050565b60055460ff1690565b6040805162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f525445440000000000000000006044820152905160009181900360640190fd5b6001600160a01b038083166000908152603a60209081526040808320938516835292905220545b92915050565b60008061093b83610f67565b90508061094c5760009150506107a2565b610a0f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663386497fd7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156109dc57600080fd5b505afa1580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b50518290610f88565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106545780601f1061062957610100808354040283529160200191610654565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061078f610f82565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610afd611091565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610bab5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b70578181015183820152602001610b58565b50505050905090810190601f168015610b9d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50836001600160a01b0316856001600160a01b031614610bd057610bd0848685611095565b6000610bdb85610f67565b90506000610be98585611172565b6040805180820190915260028152611a9b60f11b602082015290915081610c515760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b50610c5c8682611279565b6040805186815290516001600160a01b038816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3856001600160a01b0316876001600160a01b03167f2f00e3cdd69a77be7ed215ec7b2a36784dd158f921fca79ac29deffa353fe6ee8787604051808381526020018281526020019250505060405180910390a3501595945050505050565b600181565b80603a6000610d0d611091565b6001600160a01b0390811682526020808301939093526040918201600090812091871680825291909352912091909155610d45611091565b6001600160a01b03167fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e17f00000000000000000000000000000000000000000000000000000000000000008460405180836001600160a01b031681526020018281526020019250505060405180910390a35050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dec611091565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610e5d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b506000610e6a8383611172565b60408051808201909152600281526106a760f31b602082015290915081610ed25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b50610edd84826113f5565b6040805184815290516000916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3604080518481526020810184905281516001600160a01b038716927f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a928290030190a250505050565b6001600160a01b031660009081526020819052604090205490565b60025490565b6000821580610f95575081155b15610fa257506000610929565b816b019d971e4fe8401e740000001981610fb857fe5b0483111560405180604001604052806002815260200161068760f31b815250906110235760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b600190565b303b1590565b805161106490600390602084019061158e565b5050565b805161106490600490602084019061158e565b6005805460ff191660ff92909216919091179055565b3390565b6040805180820182526002815261353960f01b6020808301919091526001600160a01b038087166000908152603a835284812091871681529152918220546110de918490611493565b6001600160a01b038086166000818152603a602090815260408083208986168085529083529281902086905580517f000000000000000000000000000000000000000000000000000000000000000090951685529084018590528051949550909391927fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e1929081900390910190a350505050565b604080518082019091526002815261035360f41b6020820152600090826111da5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156112565760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b5082816b033b2e3c9fd0803ce80000008602018161127057fe5b04949350505050565b6001600160a01b0382166112d4576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6112e0600083836114ed565b6002546112ed81836114f2565b6002556001600160a01b03831660009081526020819052604090205461131381846114f2565b6001600160a01b038086166000908152602081905260409020919091557f000000000000000000000000000000000000000000000000000000000000000016156113ef577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8584846040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156113d657600080fd5b505af11580156113ea573d6000803e3d6000fd5b505050505b50505050565b6001600160a01b03821661143a5760405162461bcd60e51b81526004018080602001828103825260218152602001806116726021913960400191505060405180910390fd5b611446826000836114ed565b600254611453818361154c565b6002556001600160a01b03831660009081526020818152604091829020548251606081019093526022808452909261131392869290611622908301398391905b600081848411156114e55760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b505050900390565b505050565b600082820183811015610a0f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610a0f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611493565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115cf57805160ff19168380011785556115fc565b828001600101855582156115fc579182015b828111156115fc5782518255916020019190600101906115e1565b5061160892915061160c565b5090565b5b80821115611608576000815560010161160d56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656445524332303a206275726e2066726f6d20746865207a65726f2061646472657373a2646970667358221220db5816d76af2e3038bd82c9348166da58f0ecabf19cc160ead3a0c8b1bdbaa0664736f6c634300060c0033a2646970667358221220365444961b7d936d85b8ce485a3efa1a9d7187b03cd7d1f419b3904f8de18e2164736f6c634300060c0033"
+ var StableDebtTokenBin = "0x60e060405260006006553480156200001657600080fd5b5060405162001ebb38038062001ebb833981810160405260a08110156200003c57600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006857600080fd5b9083019060208201858111156200007e57600080fd5b82516401000000008111828201881017156200009957600080fd5b82525081516020918201929091019080838360005b83811015620000c8578181015183820152602001620000ae565b50505050905090810190601f168015620000f65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011a57600080fd5b9083019060208201858111156200013057600080fd5b82516401000000008111828201881017156200014b57600080fd5b82525081516020918201929091019080838360005b838110156200017a57818101518382015260200162000160565b50505050905090810190601f168015620001a85780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190505050848484848482826012838360039080519060200190620001de92919062000241565b508251620001f490600490602086019062000241565b506005805460ff90931660ff19909316929092179091556001600160601b0319606091821b811660805297811b881660c0529590951b90951660a05250620002dd98505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028457805160ff1916838001178555620002b4565b82800160010185558215620002b4579182015b82811115620002b457825182559160200191906001019062000297565b50620002c2929150620002c6565b5090565b5b80821115620002c25760008155600101620002c7565b60805160601c60a05160601c60c05160601c611b8f6200032c600039806109875280610a6a5280610e0f525080610de952806111f252806117f1525080611673528061169a5250611b8f6000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806395d89b41116100de578063b9a7b62211610097578063dd62ed3e11610071578063dd62ed3e14610616578063e748489014610644578063e78c9b3b1461064c578063f731e9be146106725761018e565b8063b9a7b622146105bc578063c04a8a10146105c4578063c634dfaa146105f05761018e565b806395d89b41146105185780639dc29fac14610520578063a457c2d7146103f7578063a9059cbb1461054c578063b16a19de14610578578063b3f1c93d146105805761018e565b8063395093511161014b5780637535d246116101255780637535d24614610477578063797743381461049b57806379ce6b8c146104d057806390f6fcf2146105105761018e565b806339509351146103f75780636bd76d241461042357806370a08231146104515761018e565b806306fdde0314610193578063095ea7b31461021057806318160ddd1461025057806323b872dd1461026a5780633118724e146102a0578063313ce567146103d9575b600080fd5b61019b610693565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d55781810151838201526020016101bd565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023c6004803603604081101561022657600080fd5b506001600160a01b038135169060200135610729565b604080519115158252519081900360200190f35b610258610771565b60408051918252519081900360200190f35b61023c6004803603606081101561028057600080fd5b506001600160a01b03813581169160208101359091169060400135610783565b6103d7600480360360608110156102b657600080fd5b60ff82351691908101906040810160208201356401000000008111156102db57600080fd5b8201836020820111156102ed57600080fd5b8035906020019184600183028401116401000000008311171561030f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561036257600080fd5b82018360208201111561037457600080fd5b8035906020019184600183028401116401000000008311171561039657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107cb945050505050565b005b6103e1610886565b6040805160ff9092168252519081900360200190f35b61023c6004803603604081101561040d57600080fd5b506001600160a01b03813516906020013561088f565b6102586004803603604081101561043957600080fd5b506001600160a01b03813581169160200135166108de565b6102586004803603602081101561046757600080fd5b50356001600160a01b031661090b565b61047f610985565b604080516001600160a01b039092168252519081900360200190f35b6104a36109a9565b6040805194855260208501939093528383019190915264ffffffffff166060830152519081900360800190f35b6104f6600480360360208110156104e657600080fd5b50356001600160a01b03166109df565b6040805164ffffffffff9092168252519081900360200190f35b610258610a01565b61019b610a07565b6103d76004803603604081101561053657600080fd5b506001600160a01b038135169060200135610a68565b61023c6004803603604081101561056257600080fd5b506001600160a01b038135169060200135610783565b61047f610de7565b61023c6004803603608081101561059657600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610e0b565b61025861117c565b6103d7600480360360408110156105da57600080fd5b506001600160a01b038135169060200135611181565b6102586004803603602081101561060657600080fd5b50356001600160a01b031661123b565b6102586004803603604081101561062c57600080fd5b506001600160a01b038135811691602001351661088f565b6104f6611246565b6102586004803603602081101561066257600080fd5b50356001600160a01b0316611253565b61067a61126e565b6040805192835260208301919091528051918290030190f35b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b5050505050905090565b6040805162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b600061077e603b54611287565b905090565b6040805162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60006107d56112cf565b60075490915060ff16806107ec57506107ec6112d4565b806107f8575060065481115b6108335760405162461bcd60e51b815260040180806020018281038252602e815260200180611b2c602e913960400191505060405180910390fd5b60075460ff16158015610853576007805460ff1916600117905560068290555b61085c846112da565b610865836112f1565b61086e85611304565b801561087f576007805460ff191690555b5050505050565b60055460ff1690565b6040805162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f525445440000000000000000006044820152905160009181900360640190fd5b6001600160a01b038083166000908152603a60209081526040808320938516835292905220545b92915050565b6000806109178361131a565b6001600160a01b0384166000908152603d60205260409020549091508161094357600092505050610980565b6001600160a01b0384166000908152603c602052604081205461096e90839064ffffffffff16611335565b905061097a8382611349565b93505050505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000806000603b5490506109be611407565b6109c782611287565b603e54919790965091945064ffffffffff1692509050565b6001600160a01b03166000908152603c602052604090205464ffffffffff1690565b603b5490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561071f5780601f106106f45761010080835404028352916020019161071f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a9a61140d565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610b485760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b0d578181015183820152602001610af5565b50505050905090810190601f168015610b3a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080610b5584611411565b92509250506000610b64610771565b6001600160a01b0386166000908152603d6020526040812054919250908190868411610b99576000603b819055600255610c1b565b610ba3848861146a565b600281905591506000610bc1610bb8866114ac565b603b5490611349565b90506000610bd8610bd18a6114ac565b8490611349565b9050818110610bf45760006002819055603b8190559450610c18565b610c10610c00856114ac565b610c0a848461146a565b9061152a565b603b81905594505b50505b85871415610c59576001600160a01b0388166000908152603d60209081526040808320839055603c9091529020805464ffffffffff19169055610c87565b6001600160a01b0388166000908152603c60205260409020805464ffffffffff19164264ffffffffff161790555b603e805464ffffffffff19164264ffffffffff1617905586851115610d27576000610cb2868961146a565b9050610cbf898287611631565b6040805182815260208101899052808201889052606081018490526080810186905260a0810185905290516001600160a01b038b169182917fc16f4e4ca34d790de4c656c72fd015c667d688f20be64eea360618545c4c530f9181900360c00190a350610d9c565b6000610d33888761146a565b9050610d40898287611736565b6040805182815260208101899052808201889052606081018690526080810185905290516001600160a01b038b16917f44bd20a79e993bdcc7cbedf54a3b4d19fb78490124b6b90d04fe3242eea579e8919081900360a00190a2505b6040805188815290516000916001600160a01b038b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e3f61140d565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610eb05760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b50610eb9611a48565b846001600160a01b0316866001600160a01b031614610edd57610edd858786611778565b600080610ee987611411565b9250925050610ef6610771565b808452603b546080850152610f0b9087611855565b60028190556020840152610f1e866114ac565b6040840152610f7c610f38610f338489611855565b6114ac565b6040850151610c0a90610f4b9089611349565b610f76610f57876114ac565b6001600160a01b038d166000908152603d602052604090205490611349565b90611855565b60608401819052604080518082019091526002815261373960f01b6020820152906fffffffffffffffffffffffffffffffff1015610ffb5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5060608301516001600160a01b0388166000908152603d6020908152604080832093909355603c8152919020805464ffffffffff421664ffffffffff199182168117909255603e805490911690911790558301516110919061105c906114ac565b610c0a61107686604001518961134990919063ffffffff16565b610f7661108688600001516114ac565b608089015190611349565b603b81905560808401526110b0876110a98884611855565b8551611631565b6040805187815290516001600160a01b038916916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3866001600160a01b0316886001600160a01b03167fc16f4e4ca34d790de4c656c72fd015c667d688f20be64eea360618545c4c530f888585886060015189608001518a6020015160405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a350159695505050505050565b600181565b80603a600061118e61140d565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120919091556111c661140d565b6001600160a01b03167fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e17f00000000000000000000000000000000000000000000000000000000000000008460405180836001600160a01b031681526020018281526020019250505060405180910390a35050565b60006109058261131a565b603e5464ffffffffff1690565b6001600160a01b03166000908152603d602052604090205490565b603b54600090819061127f81611287565b925090509091565b600080611292611407565b9050806112a3576000915050610980565b603e546000906112bb90859064ffffffffff16611335565b90506112c78282611349565b949350505050565b600190565b303b1590565b80516112ed906003906020840190611a77565b5050565b80516112ed906004906020840190611a77565b6005805460ff191660ff92909216919091179055565b6001600160a01b031660009081526020819052604090205490565b60006113428383426118af565b9392505050565b6000821580611356575081155b1561136357506000610905565b816b019d971e4fe8401e74000000198161137957fe5b0483111560405180604001604052806002815260200161068760f31b815250906113e45760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b60025490565b3390565b6000806000806114208561131a565b90508061143857600080600093509350935050611463565b600061144d826114478861090b565b9061146a565b90508161145a8183611855565b90955093509150505b9193909250565b600061134283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611985565b6000633b9aca0082810290839082041460405180604001604052806002815260200161068760f31b815250906115235760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5092915050565b604080518082019091526002815261035360f41b6020820152600090826115925760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce800000082190485111561160e5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b5082816b033b2e3c9fd0803ce80000008602018161162857fe5b04949350505050565b6001600160a01b0383166000908152602081905260409020546116548184611855565b6001600160a01b038086166000908152602081905260409020919091557f00000000000000000000000000000000000000000000000000000000000000001615611730577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8584846040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561171757600080fd5b505af115801561172b573d6000803e3d6000fd5b505050505b50505050565b6001600160a01b038316600090815260208181526040918290205482518084019093526002835261038360f41b91830191909152906116549082908590611985565b6040805180820182526002815261353960f01b6020808301919091526001600160a01b038087166000908152603a835284812091871681529152918220546117c1918490611985565b6001600160a01b038086166000818152603a602090815260408083208986168085529083529281902086905580517f000000000000000000000000000000000000000000000000000000000000000090951685529084018590528051949550909391927fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e1929081900390910190a350505050565b600082820183811015611342576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000806118c38364ffffffffff861661146a565b9050806118da576118d26119df565b915050611342565b60001981016000600283116118f05760006118f5565b600283035b90506301e133808704600061190a8280611349565b905060006119188284611349565b9050600060026119328461192c8a8a6119ef565b906119ef565b8161193957fe5b049050600060066119508461192c89818d8d6119ef565b8161195757fe5b04905061197581610f76848161196d8a8e6119ef565b610f766119df565b9c9b505050505050505050505050565b600081848411156119d75760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b0d578181015183820152602001610af5565b505050900390565b6b033b2e3c9fd0803ce800000090565b6000826119fe57506000610905565b82820282848281611a0b57fe5b04146113425760405162461bcd60e51b8152600401808060200182810382526021815260200180611b0b6021913960400191505060405180910390fd5b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ab857805160ff1916838001178555611ae5565b82800160010185558215611ae5579182015b82811115611ae5578251825591602001919060010190611aca565b50611af1929150611af5565b5090565b5b80821115611af15760008155600101611af656fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a264697066735822122063cfc4861ab93fa7f8252de92f62b74df5db675892536ba20d25f67c3323342564736f6c634300060c0033"
+ var UiPoolDataProviderBin = "0x608060405234801561001057600080fd5b50611940806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806387e40db71461003b578063b8c0a5b114610066575b600080fd5b61004e6100493660046112a5565b61007b565b60405161005d939291906115e7565b60405180910390f35b61006e610c3a565b60405161005d91906115d3565b606080600080856001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156100ba57600080fd5b505afa1580156100ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100f291906111d7565b90506000866001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561012f57600080fd5b505afa158015610143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016791906111d7565b90506060826001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156101a457600080fd5b505afa1580156101b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101e091908101906111fa565b90506101ea610f45565b604051634417a58360e01b81526001600160a01b03851690634417a58390610216908b906004016115d3565b60206040518083038186803b15801561022e57600080fd5b505afa158015610242573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102669190611464565b90506060825167ffffffffffffffff8111801561028257600080fd5b506040519080825280602002602001820160405280156102bc57816020015b6102a9610f58565b8152602001906001900390816102a15790505b50905060606001600160a01b038a166102d65760006102d9565b83515b67ffffffffffffffff811180156102ef57600080fd5b5060405190808252806020026020018201604052801561032957816020015b6103166110b7565b81526020019060019003908161030e5790505b50905060005b8451811015610b9457610340610f58565b83828151811061034c57fe5b6020026020010151905085828151811061036257fe5b60209081029190910101516001600160a01b031681526103806110ff565b81516040516335ea6a7560e01b81526001600160a01b038b16916335ea6a75916103ad91906004016115d3565b6101806040518083038186803b1580156103c657600080fd5b505afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611369565b60208101516001600160801b039081166101a085015260408083015182166101c0860152606083015182166101e08601526080830151821661020086015260a083015190911661022085015260c082015164ffffffffff1661024085015260e08201516001600160a01b03908116610260860152610100830151811661028086015261012083015181166102a086015261014083015181166102c08601528451915163b3596f0760e01b81529293508a169163b3596f07916104c2916004016115d3565b60206040518083038186803b1580156104da57600080fd5b505afa1580156104ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610512919061147f565b61038083015281516102608301516040516370a0823160e01b81526001600160a01b03909216916370a082319161054b916004016115d3565b60206040518083038186803b15801561056357600080fd5b505afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b919061147f565b826102e00181815250508161028001516001600160a01b031663797743386040518163ffffffff1660e01b815260040160806040518083038186803b1580156105e357600080fd5b505afa1580156105f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061b9190611497565b64ffffffffff16610340860152610320850152506103008301526102a08201516040805163b1bf962d60e01b815290516001600160a01b039092169163b1bf962d91600480820192602092909190829003018186803b15801561067d57600080fd5b505afa158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b5919061147f565b826103600181815250508161026001516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156106fd57600080fd5b505afa158015610711573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261073991908101906112dd565b604080840191909152805160208082019092526000815290830152805161075f90610c52565b60e0870152606086015260c085015260a08401526080830152805161078390610c7d565b1515610140860152151561012085015215156101808401521515610160830152608082015115156101008301526102c08201516107bf90610cb9565b6104008601526103e08501526103c08401526103a08301526001600160a01b038d1615610b8a5781600001518484815181106107f757fe5b6020026020010151600001906001600160a01b031690816001600160a01b0316815250508161026001516001600160a01b0316631da24f3e8e6040518263ffffffff1660e01b815260040161084c91906115d3565b60206040518083038186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c919061147f565b8484815181106108a857fe5b60209081029190910181015101526108c08684610e92565b8484815181106108cc57fe5b60209081029190910101519015156040909101526108ea8684610ef4565b15610b8a57816102a001516001600160a01b0316631da24f3e8e6040518263ffffffff1660e01b815260040161092091906115d3565b60206040518083038186803b15801561093857600080fd5b505afa15801561094c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610970919061147f565b84848151811061097c57fe5b602002602001015160800181815250508161028001516001600160a01b031663c634dfaa8e6040518263ffffffff1660e01b81526004016109bd91906115d3565b60206040518083038186803b1580156109d557600080fd5b505afa1580156109e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0d919061147f565b848481518110610a1957fe5b602002602001015160a0018181525050838381518110610a3557fe5b602002602001015160a00151600014610b8a578161028001516001600160a01b031663e78c9b3b8e6040518263ffffffff1660e01b8152600401610a7991906115d3565b60206040518083038186803b158015610a9157600080fd5b505afa158015610aa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac9919061147f565b848481518110610ad557fe5b602002602001015160600181815250508161028001516001600160a01b03166379ce6b8c8e6040518263ffffffff1660e01b8152600401610b1691906115d3565b60206040518083038186803b158015610b2e57600080fd5b505afa158015610b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6691906114d7565b64ffffffffff16848481518110610b7957fe5b602002602001015160c00181815250505b505060010161032f565b508181866001600160a01b031663b3596f077310f7fc1f91ba351f9c629c5947ad69bd03c05b966040518263ffffffff1660e01b8152600401610bd791906115d3565b60206040518083038186803b158015610bef57600080fd5b505afa158015610c03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c27919061147f565b9850985098505050505050509250925092565b7310f7fc1f91ba351f9c629c5947ad69bd03c05b9681565b5161ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b51670100000000000000811615159167020000000000000082161515916704000000000000008116151591670800000000000000909116151590565b600080600080846001600160a01b0316637b832f586040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf857600080fd5b505afa158015610d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d30919061147f565b856001600160a01b03166365614f816040518163ffffffff1660e01b815260040160206040518083038186803b158015610d6957600080fd5b505afa158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da1919061147f565b866001600160a01b0316630bdf953f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610dda57600080fd5b505afa158015610dee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e12919061147f565b876001600160a01b031663ccab01a36040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4b57600080fd5b505afa158015610e5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e83919061147f565b93509350935093509193509193565b60006080821060405180604001604052806002815260200161373760f01b81525090610eda5760405162461bcd60e51b8152600401610ed19190611875565b60405180910390fd5b5050815160016002830281019190911c1615155b92915050565b60006080821060405180604001604052806002815260200161373760f01b81525090610f335760405162461bcd60e51b8152600401610ed19190611875565b50509051600160029092021c16151590565b6040518060200160405280600081525090565b60405180610420016040528060006001600160a01b031681526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160001515815260200160001515815260200160001515815260200160001515815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b03168152602001600064ffffffffff16815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060e0016040528060006001600160a01b0316815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081525090565b604051806101800160405280611113610f45565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820181905261014082018190526101609091015290565b8051610eee816118df565b600060208284031215611186578081fd5b6111906020611888565b9151825250919050565b80516001600160801b0381168114610eee57600080fd5b805164ffffffffff81168114610eee57600080fd5b805160ff81168114610eee57600080fd5b6000602082840312156111e8578081fd5b81516111f3816118df565b9392505050565b6000602080838503121561120c578182fd5b825167ffffffffffffffff80821115611223578384fd5b818501915085601f830112611236578384fd5b815181811115611244578485fd5b8381029150611254848301611888565b8181528481019084860184860187018a101561126e578788fd5b8795505b83861015611298576112848a8261116a565b835260019590950194918601918601611272565b5098975050505050505050565b600080604083850312156112b7578081fd5b82356112c2816118df565b915060208301356112d2816118df565b809150509250929050565b6000602082840312156112ee578081fd5b815167ffffffffffffffff80821115611305578283fd5b818401915084601f830112611318578283fd5b815181811115611326578384fd5b611339601f8201601f1916602001611888565b915080825285602082850101111561134f578384fd5b6113608160208401602086016118af565b50949350505050565b600061018080838503121561137c578182fd5b61138581611888565b90506113918484611175565b81526113a0846020850161119a565b60208201526113b2846040850161119a565b60408201526113c4846060850161119a565b60608201526113d6846080850161119a565b60808201526113e88460a0850161119a565b60a08201526113fa8460c085016111b1565b60c082015261140c8460e0850161116a565b60e08201526101006114208582860161116a565b908201526101206114338585830161116a565b908201526101406114468585830161116a565b90820152610160611459858583016111c6565b908201529392505050565b600060208284031215611475578081fd5b6111f38383611175565b600060208284031215611490578081fd5b5051919050565b600080600080608085870312156114ac578182fd5b84519350602085015192506040850151915060608501516114cc816118f7565b939692955090935050565b6000602082840312156114e8578081fd5b81516111f3816118f7565b6001600160a01b03169052565b6000815180845260208085019450808401835b8381101561157e5781516115288882516114f3565b8381015184890152604080820151611542828b0182611589565b5050606081810151908901526080808201519089015260a0808201519089015260c0908101519088015260e09096019590820190600101611513565b509495945050505050565b15159052565b600081518084526115a78160208601602086016118af565b601f01601f19169290920160200192915050565b6001600160801b03169052565b64ffffffffff169052565b6001600160a01b0391909116815260200190565b606080825284518282018190526000919060809081850190602080820287018401818b01875b8481101561184c57607f198a8403018652815161042061162e8583516114f3565b8582015181878701526116438287018261158f565b9150506040808301518683038288015261165d838261158f565b92505050898201518a860152888201518986015260a080830151818701525060c080830151818701525060e0808301518187015250610100808301516116a582880182611589565b5050610120808301516116ba82880182611589565b5050610140808301516116cf82880182611589565b5050610160808301516116e482880182611589565b5050610180808301516116f982880182611589565b50506101a08083015161170e828801826115bb565b50506101c080830151611723828801826115bb565b50506101e080830151611738828801826115bb565b50506102008083015161174d828801826115bb565b505061022080830151611762828801826115bb565b505061024080830151611777828801826115c8565b50506102608083015161178c828801826114f3565b5050610280808301516117a1828801826114f3565b50506102a0808301516117b6828801826114f3565b50506102c0808301516117cb828801826114f3565b50506102e08281015190860152610300808301519086015261032080830151908601526103408083015190860152610360808301519086015261038080830151908601526103a080830151908601526103c080830151908601526103e08083015190860152610400918201519190940152948301949083019060010161160d565b50508781038289015261185f818b611500565b9650505050505050826040830152949350505050565b6000602082526111f3602083018461158f565b60405181810167ffffffffffffffff811182821017156118a757600080fd5b604052919050565b60005b838110156118ca5781810151838201526020016118b2565b838111156118d9576000848401525b50505050565b6001600160a01b03811681146118f457600080fd5b50565b64ffffffffff811681146118f457600080fdfea2646970667358221220825a4bd9a5ae9238cf3755346b9ed5c5ede67eabd76fae76db3c31e9c721b8b164736f6c634300060c0033"
+ var UpgradeabilityProxyBin = "0x608060405260405161037b38038061037b8339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b50604052506100e3915050565b6100ec826101ab565b8051156101a4576000826001600160a01b0316826040518082805190602001908083835b6020831061012f5780518252601f199092019160209182019101610110565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461018f576040519150601f19603f3d011682016040523d82523d6000602084013e610194565b606091505b50509050806101a257600080fd5b505b5050610259565b6101be8161021d60201b6100201760201c565b6101f95760405162461bcd60e51b815260040180806020018281038252603b815260200180610340603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061025157508115155b949350505050565b60d9806102676000396000f3fe6080604052600a600c565b005b6012601e565b601e601a605b565b6080565b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590605357508115155b949350505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e808015609e573d6000f35b3d6000fdfea2646970667358221220b63a46c8d24b7b2d59c46f67ab42d2367dc8a0ad87dfe6c2367c0418b42f4afb64736f6c634300060c003343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373"
+ var ValidationLogicBin = "0x6120a0610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063721a92f911610070578063721a92f9146100fb578063a8695b1d1461010e578063abfcc86a14610121578063d09db04a14610129578063fa0c21491461013c5761009d565b80630eca322b146100a2578063548cad09146100b75780635494eb8a146100ca5780635fa297e5146100e8575b600080fd5b6100b56100b0366004611e80565b61014f565b005b6100b56100c5366004611dd8565b610217565b6100d261050d565b6040516100df919061203b565b60405180910390f35b6100b56100f6366004611d6e565b61051d565b6100b5610109366004611c3c565b6106c2565b6100b561011c366004611e3f565b610ba8565b6100d2610e41565b6100b5610137366004611ce0565b610e47565b6100b561014a366004611ea1565b610fe5565b60008061015b8461112b565b50506040805180820190915260018152603160f81b60208201529193509150836101a15760405162461bcd60e51b81526004016101989190611f70565b60405180910390fd5b506040805180820190915260018152601960f91b6020820152826101d85760405162461bcd60e51b81526004016101989190611f70565b506040805180820190915260018152603360f81b602082015281156102105760405162461bcd60e51b81526004016101989190611f70565b5050505050565b60006102228661112b565b505050905080604051806040016040528060018152602001601960f91b815250906102605760405162461bcd60e51b81526004016101989190611f70565b506000610356610351856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102a257600080fd5b505afa1580156102b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102da9190611eff565b876001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561031357600080fd5b505afa158015610327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034b9190611eff565b90611163565b611191565b905060006103d9876001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016103899190611f17565b60206040518083038186803b1580156103a157600080fd5b505afa1580156103b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103519190611eff565b9050600082156103fc576103f76103f08385611163565b84906111e1565b6103ff565b60005b60028a015460078b0154604080516380031e3760e01b815290519394506fffffffffffffffffffffffffffffffff909216926000926001600160a01b03909216916380031e37916004808301926020929190829003018186803b15801561046557600080fd5b505afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190611eff565b90506b0311d253316c79d37600000083101580156104c657506104c281610fa061128c565b8211155b60405180604001604052806002815260200161191960f11b815250906104ff5760405162461bcd60e51b81526004016101989190611f70565b505050505050505050505050565b6b0311d253316c79d37600000081565b6004808901546040516370a0823160e01b81526000926001600160a01b03909216916370a082319161055191339101611f17565b60206040518083038186803b15801561056957600080fd5b505afa15801561057d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a19190611eff565b90506000811160405180604001604052806002815260200161313960f01b815250906105e05760405162461bcd60e51b81526004016101989190611f70565b50868061067d5750604051633985c10960e21b815273__$a872879373de5e6d0c13a5337f6761f341$__9063e61704249061062d908b90339086908c908c908c908c908c90600401611f2b565b60206040518083038186803b15801561064557600080fd5b505af4158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190611d52565b60405180604001604052806002815260200161032360f41b815250906106b65760405162461bcd60e51b81526004016101989190611f70565b50505050505050505050565b6106ca611b0c565b6106d38c61112b565b1515610220850152151561020084015215156101e083015215156101c082018190526040805180820190915260018152601960f91b60208201529061072b5760405162461bcd60e51b81526004016101989190611f70565b50806101e0015115604051806040016040528060018152602001603360f81b8152509061076b5760405162461bcd60e51b81526004016101989190611f70565b506040805180820190915260018152603160f81b60208201528a6107a25760405162461bcd60e51b81526004016101989190611f70565b50806102000151604051806040016040528060018152602001603760f81b815250906107e15760405162461bcd60e51b81526004016101989190611f70565b5087600214806107f15750876001145b604051806040016040528060018152602001600760fb1b815250906108295760405162461bcd60e51b81526004016101989190611f70565b50604080516020810190915285548152610849908c9088908787876112fe565b61016086015260408086019190915260208086019290925260c085019290925260a08401839052815180830190925260018252603960f81b90820152906108a35760405162461bcd60e51b81526004016101989190611f70565b50670de0b6b3a76400008161016001511160405180604001604052806002815260200161031360f41b815250906108ed5760405162461bcd60e51b81526004016101989190611f70565b50610913816020015161090d8b8460c0015161116390919063ffffffff16565b906117c5565b6080820181905260a0820151604080518082019091526002815261313160f01b60208201529111156109585760405162461bcd60e51b81526004016101989190611f70565b506001816101800151600281111561096c57fe5b1415610b995780610220015160405180604001604052806002815260200161189960f11b815250906109b15760405162461bcd60e51b81526004016101989190611f70565b5060078c01546040805160208101909152865481526109d991600160a01b900460ff16611853565b15806109eb57506109e98c6118ab565b155b80610a7557506004808d01546040516370a0823160e01b81526001600160a01b03909116916370a0823191610a22918f9101611f17565b60206040518083038186803b158015610a3a57600080fd5b505afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a729190611eff565b8a115b60405180604001604052806002815260200161313360f01b81525090610aae5760405162461bcd60e51b81526004016101989190611f70565b508c6001600160a01b03166370a082318d60040160009054906101000a90046001600160a01b03166040518263ffffffff1660e01b8152600401610af29190611f17565b60206040518083038186803b158015610b0a57600080fd5b505afa158015610b1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b429190611eff565b6101208201819052600090610b57908961128c565b9050808b1115604051806040016040528060028152602001610c4d60f21b81525090610b965760405162461bcd60e51b81526004016101989190611f70565b50505b50505050505050505050505050565b60008080610bb58861112b565b9350509250925082604051806040016040528060018152602001601960f91b81525090610bf55760405162461bcd60e51b81526004016101989190611f70565b506040805180820190915260018152603360f81b60208201528215610c2d5760405162461bcd60e51b81526004016101989190611f70565b506001846002811115610c3c57fe5b1415610c7f57604080518082019091526002815261313760f01b602082015286610c795760405162461bcd60e51b81526004016101989190611f70565b50610e37565b6002846002811115610c8d57fe5b1415610e0857604080518082019091526002815261062760f31b602082015285610cca5760405162461bcd60e51b81526004016101989190611f70565b50604080518082019091526002815261189960f11b602082015281610d025760405162461bcd60e51b81526004016101989190611f70565b506007880154604080516020810190915288548152610d2a91600160a01b900460ff16611853565b1580610d3c5750610d3a886118ab565b155b80610dcf57506004808901546040516370a0823160e01b81526001600160a01b03909116916370a0823191610d7391339101611f17565b60206040518083038186803b158015610d8b57600080fd5b505afa158015610d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc39190611eff565b610dcd8787611163565b115b60405180604001604052806002815260200161313360f01b81525090610c795760405162461bcd60e51b81526004016101989190611f70565b60408051808201825260018152600760fb1b6020820152905162461bcd60e51b81526101989190600401611f70565b5050505050505050565b610fa081565b6040805180820190915260018152603160f81b602082015287610e7d5760405162461bcd60e51b81526004016101989190611f70565b506040805180820190915260018152603560f81b602082015286881115610eb75760405162461bcd60e51b81526004016101989190611f70565b506001600160a01b0388166000908152602086905260408120610ed99061112b565b505050905080604051806040016040528060018152602001601960f91b81525090610f175760405162461bcd60e51b81526004016101989190611f70565b50604051633985c10960e21b815273__$a872879373de5e6d0c13a5337f6761f341$__9063e617042490610f5d908c9033908d908c908c908c908c908c90600401611f2b565b60206040518083038186803b158015610f7557600080fd5b505af4158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad9190611d52565b604051806040016040528060018152602001601b60f91b815250906106b65760405162461bcd60e51b81526004016101989190611f70565b6000610ff0876118b3565b905080604051806040016040528060018152602001601960f91b8152509061102b5760405162461bcd60e51b81526004016101989190611f70565b506040805180820190915260018152603160f81b6020820152866110625760405162461bcd60e51b81526004016101989190611f70565b5060008311801561107e5750600185600281111561107c57fe5b145b8061109f575060008211801561109f5750600285600281111561109d57fe5b145b60405180604001604052806002815260200161313560f01b815250906110d85760405162461bcd60e51b81526004016101989190611f70565b50600019861415806110f25750336001600160a01b038516145b60405180604001604052806002815260200161189b60f11b81525090610e375760405162461bcd60e51b81526004016101989190611f70565b54600160381b811615159167020000000000000082161515916704000000000000008116151591670800000000000000909116151590565b6000828201838110156111885760405162461bcd60e51b815260040161019890611fc3565b90505b92915050565b6000633b9aca0082810290839082041460405180604001604052806002815260200161068760f31b815250906111da5760405162461bcd60e51b81526004016101989190611f70565b5092915050565b604080518082019091526002815261035360f41b60208201526000908261121b5760405162461bcd60e51b81526004016101989190611f70565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156112695760405162461bcd60e51b81526004016101989190611f70565b5082816b033b2e3c9fd0803ce80000008602018161128357fe5b04949350505050565b6000821580611299575081155b156112a65750600061118b565b8161138819816112b257fe5b0483111560405180604001604052806002815260200161068760f31b815250906112ef5760405162461bcd60e51b81526004016101989190611f70565b50506127109102611388010490565b600080600080600061130e611ba2565b6113178a6118bf565b156113355760008060008060001995509550955095509550506117b7565b600060e08201525b878160e0015110156117165760e0810151611359908b906118c4565b61136257611706565b60e0810151600090815260208a81526040808320546001600160a01b03166101e085018190528352908d9052902061139981611915565b506080860181905260c08601929092525060a0840191909152600a0a60208301526101e082015160405163b3596f0760e01b81526001600160a01b038a169163b3596f07916113eb9190600401611f17565b60206040518083038186803b15801561140357600080fd5b505afa158015611417573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143b9190611eff565b825260c08201511580159061145b575060e082015161145b908c90611853565b1561157f578060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b81526004016114a39190611f17565b60206040518083038186803b1580156114bb57600080fd5b505afa1580156114cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f39190611eff565b6040830181905260208301518351600092611518929161151291611940565b9061197a565b61012084015190915061152b9082611163565b61012084015260a083015161155190611545908390611940565b61016085015190611163565b61016084015260c08301516115779061156b908390611940565b61018085015190611163565b610180840152505b60e082015161158f908c906119bc565b15611704578060050160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b81526004016115d79190611f17565b60206040518083038186803b1580156115ef57600080fd5b505afa158015611603573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116279190611eff565b8260600181815250506116d18160060160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b81526004016116769190611f17565b60206040518083038186803b15801561168e57600080fd5b505afa1580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190611eff565b606084015190611163565b60608301819052602083015183516116fd926116f1929161151291611940565b61014084015190611163565b6101408301525b505b60e081018051600101905261133d565b60008161012001511161172a57600061173f565b61012081015161016082015161173f9161197a565b61016082015261012081015161175657600061176b565b61012081015161018082015161176b9161197a565b610180820181905261012082015161014083015161178892611a0d565b610100820181905261012082015161014083015161016084015161018090940151919850965091945090925090505b965096509650965096915050565b604080518082019091526002815261035360f41b6020820152600090826117ff5760405162461bcd60e51b81526004016101989190611f70565b5060408051808201909152600280825261068760f31b60208301528304906127108219048511156118435760405162461bcd60e51b81526004016101989190611f70565b5082816127108602018161128357fe5b60006080821060405180604001604052806002815260200161373760f01b815250906118925760405162461bcd60e51b81526004016101989190611f70565b5050815160016002830281019190911c16151592915050565b5461ffff1690565b54600160381b16151590565b511590565b60006080821060405180604001604052806002815260200161373760f01b815250906119035760405162461bcd60e51b81526004016101989190611f70565b50509051600360029092021c16151590565b5461ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b60008261194f5750600061118b565b8282028284828161195c57fe5b04146111885760405162461bcd60e51b815260040161019890611ffa565b600061118883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a3b565b60006080821060405180604001604052806002815260200161373760f01b815250906119fb5760405162461bcd60e51b81526004016101989190611f70565b50509051600160029092021c16151590565b600082611a1d5750600019611a34565b611a3183611a2b868561128c565b90611a72565b90505b9392505050565b60008183611a5c5760405162461bcd60e51b81526004016101989190611f70565b506000838581611a6857fe5b0495945050505050565b604080518082019091526002815261035360f41b602082015260009082611aac5760405162461bcd60e51b81526004016101989190611f70565b5060408051808201909152600280825261068760f31b6020830152830490670de0b6b3a7640000821904851115611af65760405162461bcd60e51b81526004016101989190611f70565b508281670de0b6b3a76400008602018161128357fe5b60405180610240016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006002811115611b7957fe5b815260006020820181905260408201819052606082018190526080820181905260a09091015290565b604051806102400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160006001600160a01b031681526020016000151581526020016000151581525090565b6000806000806000806000806000806000806101808d8f031215611c5e578788fd5b8c35611c6981612044565b9b5060208d01359a5060408d0135611c8081612044565b995060608d0135985060808d0135975060a08d0135965060c08d0135955060e08d013594506101008d013593506101208d013592506101408d013591506101608d0135611ccc81612044565b809150509295989b509295989b509295989b565b600080600080600080600080610100898b031215611cfc578384fd5b8835611d0781612044565b97506020890135965060408901359550606089013594506080890135935060a0890135925060c0890135915060e0890135611d4181612044565b809150509295985092959890939650565b600060208284031215611d63578081fd5b81516111888161205c565b600080600080600080600080610100898b031215611d8a578384fd5b883597506020890135611d9c81612044565b96506040890135611dac8161205c565b9550606089013594506080890135935060a0890135925060c0890135915060e0890135611d4181612044565b600080600080600060a08688031215611def578081fd5b853594506020860135611e0181612044565b93506040860135611e1181612044565b92506060860135611e2181612044565b91506080860135611e3181612044565b809150509295509295909350565b600080600080600060a08688031215611e56578081fd5b85359450602086013593506040860135925060608601359150608086013560038110611e31578182fd5b60008060408385031215611e92578182fd5b50508035926020909101359150565b60008060008060008060c08789031215611eb9578384fd5b8635955060208701359450604087013560038110611ed5578485fd5b93506060870135611ee581612044565b9598949750929560808101359460a0909101359350915050565b600060208284031215611f10578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b0398891681529688166020880152604087019590955260608601939093529054608085015260a084015260c083015290911660e08201526101000190565b6000602080835283518082850152825b81811015611f9c57858101830151858201604001528201611f80565b81811115611fad5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b6001600160a01b038116811461205957600080fd5b50565b801515811461205957600080fdfea264697066735822122059d0e2b33c36cff509d17ee7f43a0b14173689ad0ecdbbc8e9255d4bb4ab751864736f6c634300060c0033"
+ var VariableDebtTokenBin = "0x60e060405260006006553480156200001657600080fd5b5060405162001a0838038062001a08833981810160405260a08110156200003c57600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006857600080fd5b9083019060208201858111156200007e57600080fd5b82516401000000008111828201881017156200009957600080fd5b82525081516020918201929091019080838360005b83811015620000c8578181015183820152602001620000ae565b50505050905090810190601f168015620000f65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011a57600080fd5b9083019060208201858111156200013057600080fd5b82516401000000008111828201881017156200014b57600080fd5b82525081516020918201929091019080838360005b838110156200017a57818101518382015260200162000160565b50505050905090810190601f168015620001a85780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190505050848484848482826012838360039080519060200190620001de92919062000241565b508251620001f490600490602086019062000241565b506005805460ff90931660ff19909316929092179091556001600160601b0319606091821b811660805297811b881660c0529590951b90951660a05250620002dd98505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028457805160ff1916838001178555620002b4565b82800160010185558215620002b4579182015b82811115620002b457825182559160200191906001019062000297565b50620002c2929150620002c6565b5090565b5b80821115620002c25760008155600101620002c7565b60805160601c60a05160601c60c05160601c6116c862000340600039806106ca52806109515280610a185280610acd5280610dbc5250806106f952806109805280610a9d5280610d71528061110e525080611332528061135952506116c86000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80637535d246116100b8578063b1bf962d1161007c578063b1bf962d146104f0578063b3f1c93d146104f8578063b9a7b62214610534578063c04a8a101461053c578063dd62ed3e14610568578063f5298aca1461059657610142565b80637535d2461461049057806395d89b41146104b4578063a457c2d714610410578063a9059cbb146104bc578063b16a19de146104e857610142565b806323b872dd1161010a57806323b872dd146102835780633118724e146102b9578063313ce567146103f257806339509351146104105780636bd76d241461043c57806370a082311461046a57610142565b806306fdde0314610147578063095ea7b3146101c45780630afbcdc91461020457806318160ddd146102435780631da24f3e1461025d575b600080fd5b61014f6105c8565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b03813516906020013561065e565b604080519115158252519081900360200190f35b61022a6004803603602081101561021a57600080fd5b50356001600160a01b03166106a6565b6040805192835260208301919091528051918290030190f35b61024b6106c3565b60408051918252519081900360200190f35b61024b6004803603602081101561027357600080fd5b50356001600160a01b0316610794565b6101f06004803603606081101561029957600080fd5b506001600160a01b038135811691602081013590911690604001356107a7565b6103f0600480360360608110156102cf57600080fd5b60ff82351691908101906040810160208201356401000000008111156102f457600080fd5b82018360208201111561030657600080fd5b8035906020019184600183028401116401000000008311171561032857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561037b57600080fd5b82018360208201111561038d57600080fd5b803590602001918460018302840111640100000000831117156103af57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107ef945050505050565b005b6103fa6108aa565b6040805160ff9092168252519081900360200190f35b6101f06004803603604081101561042657600080fd5b506001600160a01b0381351690602001356108b3565b61024b6004803603604081101561045257600080fd5b506001600160a01b0381358116916020013516610902565b61024b6004803603602081101561048057600080fd5b50356001600160a01b031661092f565b610498610a16565b604080516001600160a01b039092168252519081900360200190f35b61014f610a3a565b6101f0600480360360408110156104d257600080fd5b506001600160a01b0381351690602001356107a7565b610498610a9b565b61024b610abf565b6101f06004803603608081101561050e57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610ac9565b61024b610cfb565b6103f06004803603604081101561055257600080fd5b506001600160a01b038135169060200135610d00565b61024b6004803603604081101561057e57600080fd5b506001600160a01b03813581169160200135166108b3565b6103f0600480360360608110156105ac57600080fd5b506001600160a01b038135169060208101359060400135610dba565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106545780601f1061062957610100808354040283529160200191610654565b820191906000526020600020905b81548152906001019060200180831161063757829003601f168201915b5050505050905090565b6040805162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b6000806106b283610f67565b6106ba610f82565b91509150915091565b600061078f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663386497fd7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561075557600080fd5b505afa158015610769573d6000803e3d6000fd5b505050506040513d602081101561077f57600080fd5b5051610789610f82565b90610f88565b905090565b600061079f82610f67565b90505b919050565b6040805162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60006107f9611046565b60075490915060ff1680610810575061081061104b565b8061081c575060065481115b6108575760405162461bcd60e51b815260040180806020018281038252602e815260200180611644602e913960400191505060405180910390fd5b60075460ff16158015610877576007805460ff1916600117905560068290555b61088084611051565b61088983611068565b6108928561107b565b80156108a3576007805460ff191690555b5050505050565b60055460ff1690565b6040805162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f525445440000000000000000006044820152905160009181900360640190fd5b6001600160a01b038083166000908152603a60209081526040808320938516835292905220545b92915050565b60008061093b83610f67565b90508061094c5760009150506107a2565b610a0f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663386497fd7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156109dc57600080fd5b505afa1580156109f0573d6000803e3d6000fd5b505050506040513d6020811015610a0657600080fd5b50518290610f88565b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106545780601f1061062957610100808354040283529160200191610654565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061078f610f82565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610afd611091565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610bab5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b70578181015183820152602001610b58565b50505050905090810190601f168015610b9d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50836001600160a01b0316856001600160a01b031614610bd057610bd0848685611095565b6000610bdb85610f67565b90506000610be98585611172565b6040805180820190915260028152611a9b60f11b602082015290915081610c515760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b50610c5c8682611279565b6040805186815290516001600160a01b038816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3856001600160a01b0316876001600160a01b03167f2f00e3cdd69a77be7ed215ec7b2a36784dd158f921fca79ac29deffa353fe6ee8787604051808381526020018281526020019250505060405180910390a3501595945050505050565b600181565b80603a6000610d0d611091565b6001600160a01b0390811682526020808301939093526040918201600090812091871680825291909352912091909155610d45611091565b6001600160a01b03167fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e17f00000000000000000000000000000000000000000000000000000000000000008460405180836001600160a01b031681526020018281526020019250505060405180910390a35050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dec611091565b6001600160a01b03161460405180604001604052806002815260200161323960f01b81525090610e5d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b506000610e6a8383611172565b60408051808201909152600281526106a760f31b602082015290915081610ed25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b50610edd84826113f5565b6040805184815290516000916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3604080518481526020810184905281516001600160a01b038716927f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a928290030190a250505050565b6001600160a01b031660009081526020819052604090205490565b60025490565b6000821580610f95575081155b15610fa257506000610929565b816b019d971e4fe8401e740000001981610fb857fe5b0483111560405180604001604052806002815260200161068760f31b815250906110235760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b600190565b303b1590565b805161106490600390602084019061158e565b5050565b805161106490600490602084019061158e565b6005805460ff191660ff92909216919091179055565b3390565b6040805180820182526002815261353960f01b6020808301919091526001600160a01b038087166000908152603a835284812091871681529152918220546110de918490611493565b6001600160a01b038086166000818152603a602090815260408083208986168085529083529281902086905580517f000000000000000000000000000000000000000000000000000000000000000090951685529084018590528051949550909391927fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e1929081900390910190a350505050565b604080518082019091526002815261035360f41b6020820152600090826111da5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156112565760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b5082816b033b2e3c9fd0803ce80000008602018161127057fe5b04949350505050565b6001600160a01b0382166112d4576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6112e0600083836114ed565b6002546112ed81836114f2565b6002556001600160a01b03831660009081526020819052604090205461131381846114f2565b6001600160a01b038086166000908152602081905260409020919091557f000000000000000000000000000000000000000000000000000000000000000016156113ef577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166331873e2e8584846040518463ffffffff1660e01b815260040180846001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156113d657600080fd5b505af11580156113ea573d6000803e3d6000fd5b505050505b50505050565b6001600160a01b03821661143a5760405162461bcd60e51b81526004018080602001828103825260218152602001806116726021913960400191505060405180910390fd5b611446826000836114ed565b600254611453818361154c565b6002556001600160a01b03831660009081526020818152604091829020548251606081019093526022808452909261131392869290611622908301398391905b600081848411156114e55760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610b70578181015183820152602001610b58565b505050900390565b505050565b600082820183811015610a0f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610a0f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611493565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115cf57805160ff19168380011785556115fc565b828001600101855582156115fc579182015b828111156115fc5782518255916020019190600101906115e1565b5061160892915061160c565b5090565b5b80821115611608576000815560010161160d56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656445524332303a206275726e2066726f6d20746865207a65726f2061646472657373a2646970667358221220db5816d76af2e3038bd82c9348166da58f0ecabf19cc160ead3a0c8b1bdbaa0664736f6c634300060c0033"
+ var WETH9Bin = "0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b5061010d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b5b808211156100f457600081556001016100f9565b6106fa8061011c6000396000f3fe6080604052600436106100a05760003560e01c8063313ce56711610064578063313ce5671461021f57806370a082311461024a57806395d89b411461027d578063a9059cbb14610292578063d0e30db0146102cb578063dd62ed3e146102d3576100af565b806306fdde03146100b4578063095ea7b31461013e57806318160ddd1461018b57806323b872dd146101b25780632e1a7d4d146101f5576100af565b366100af576100ad61030e565b005b600080fd5b3480156100c057600080fd5b506100c961035d565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101035781810151838201526020016100eb565b50505050905090810190601f1680156101305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014a57600080fd5b506101776004803603604081101561016157600080fd5b506001600160a01b0381351690602001356103eb565b604080519115158252519081900360200190f35b34801561019757600080fd5b506101a0610451565b60408051918252519081900360200190f35b3480156101be57600080fd5b50610177600480360360608110156101d557600080fd5b506001600160a01b03813581169160208101359091169060400135610455565b34801561020157600080fd5b506100ad6004803603602081101561021857600080fd5b5035610589565b34801561022b57600080fd5b5061023461061e565b6040805160ff9092168252519081900360200190f35b34801561025657600080fd5b506101a06004803603602081101561026d57600080fd5b50356001600160a01b0316610627565b34801561028957600080fd5b506100c9610639565b34801561029e57600080fd5b50610177600480360360408110156102b557600080fd5b506001600160a01b038135169060200135610693565b6100ad61030e565b3480156102df57600080fd5b506101a0600480360360408110156102f657600080fd5b506001600160a01b03813581169160200135166106a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103e35780601f106103b8576101008083540402835291602001916103e3565b820191906000526020600020905b8154815290600101906020018083116103c657829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561047a57600080fd5b6001600160a01b03841633148015906104b857506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b15610518576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104ed57600080fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105a557600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105e4573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103e35780601f106103b8576101008083540402835291602001916103e3565b60006106a0338484610455565b9392505050565b60046020908152600092835260408084209091529082529020548156fea2646970667358221220c6dca0f41109d125e07b9b5e642aa0cec21cdb37f383336c70a3fdddfbd9d69364736f6c634300060c0033"
+ var WETH9MockedBin = "0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b5061010d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b5b808211156100f457600081556001016100f9565b6107808061011c6000396000f3fe6080604052600436106100ab5760003560e01c806370a082311161006457806370a082311461025557806395d89b4114610288578063a0712d681461029d578063a9059cbb146102c7578063d0e30db014610300578063dd62ed3e14610308576100ba565b806306fdde03146100bf578063095ea7b31461014957806318160ddd1461019657806323b872dd146101bd5780632e1a7d4d14610200578063313ce5671461022a576100ba565b366100ba576100b8610343565b005b600080fd5b3480156100cb57600080fd5b506100d4610392565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561010e5781810151838201526020016100f6565b50505050905090810190601f16801561013b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015557600080fd5b506101826004803603604081101561016c57600080fd5b506001600160a01b038135169060200135610420565b604080519115158252519081900360200190f35b3480156101a257600080fd5b506101ab610486565b60408051918252519081900360200190f35b3480156101c957600080fd5b50610182600480360360608110156101e057600080fd5b506001600160a01b0381358116916020810135909116906040013561048a565b34801561020c57600080fd5b506100b86004803603602081101561022357600080fd5b50356105be565b34801561023657600080fd5b5061023f610653565b6040805160ff9092168252519081900360200190f35b34801561026157600080fd5b506101ab6004803603602081101561027857600080fd5b50356001600160a01b031661065c565b34801561029457600080fd5b506100d461066e565b3480156102a957600080fd5b50610182600480360360208110156102c057600080fd5b50356106c8565b3480156102d357600080fd5b50610182600480360360408110156102ea57600080fd5b506001600160a01b038135169060200135610719565b6100b8610343565b34801561031457600080fd5b506101ab6004803603604081101561032b57600080fd5b506001600160a01b038135811691602001351661072d565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104185780601f106103ed57610100808354040283529160200191610418565b820191906000526020600020905b8154815290600101906020018083116103fb57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b0383166000908152600360205260408120548211156104af57600080fd5b6001600160a01b03841633148015906104ed57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b1561054d576001600160a01b038416600090815260046020908152604080832033845290915290205482111561052257600080fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105da57600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f19350505050158015610619573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104185780601f106103ed57610100808354040283529160200191610418565b3360008181526003602090815260408083208054860190558051858152905192939284927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a3919050565b600061072633848461048a565b9392505050565b60046020908152600092835260408084209091529082529020548156fea2646970667358221220c63a860e3831f769f0730fbbd0fe8faf6745d5b340b98ac72493fba7ecab1a5264736f6c634300060c0033"
+ var WETHGatewayBin = "0x60e06040523480156200001157600080fd5b50604051620018f5380380620018f5833981016040819052620000349162000259565b600062000040620001cf565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160601b0319606083811b821660805282901b1660a0526040516335ea6a7560e01b815281906001600160a01b038216906335ea6a7590620000d4908690600401620003d6565b6101806040518083038186803b158015620000ee57600080fd5b505afa15801562000103573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001299190620002c0565b60e0015160601b6001600160601b03191660c05260405163095ea7b360e01b81526001600160a01b0384169063095ea7b3906200016f90859060001990600401620003ea565b602060405180830381600087803b1580156200018a57600080fd5b505af11580156200019f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c5919062000297565b5050505062000443565b3390565b80516001600160a01b0381168114620001eb57600080fd5b92915050565b60006020828403121562000203578081fd5b6200020f602062000403565b9151825250919050565b80516001600160801b0381168114620001eb57600080fd5b805164ffffffffff81168114620001eb57600080fd5b805160ff81168114620001eb57600080fd5b600080604083850312156200026c578182fd5b825162000279816200042a565b60208401519092506200028c816200042a565b809150509250929050565b600060208284031215620002a9578081fd5b81518015158114620002b9578182fd5b9392505050565b6000610180808385031215620002d4578182fd5b620002df8162000403565b9050620002ed8484620001f1565b8152620002fe846020850162000219565b602082015262000312846040850162000219565b604082015262000326846060850162000219565b60608201526200033a846080850162000219565b60808201526200034e8460a0850162000219565b60a0820152620003628460c0850162000231565b60c0820152620003768460e08501620001d3565b60e08201526101006200038c85828601620001d3565b90820152610120620003a185858301620001d3565b90820152610140620003b685858301620001d3565b90820152610160620003cb8585830162000247565b908201529392505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6040518181016001600160401b03811182821017156200042257600080fd5b604052919050565b6001600160a01b03811681146200044057600080fd5b50565b60805160601c60a05160601c60c05160601c611428620004cd6000398061027a528061032652806105055250806103c952806105af528061064552806106fd5280610a035280610ba552508060bb52806103f6528061048c528061052952806105df528061072a52806107a152806108df5280610a325280610b1f5280610bd552506114286000f3fe6080604052600436106100ab5760003560e01c80638da5cb5b116100645780638da5cb5b146101c3578063a3d5b255146101d8578063affa8817146101f8578063eed88b8d1461020d578063f2fde38b1461022d578063f538ba511461024d57610103565b806336118b521461011b5780633a21afac1461013b57806358c22be7146101665780635f36a74214610179578063715018a61461018e5780637d5155fd146101a357610103565b3661010357336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101015760405162461bcd60e51b81526004016100f8906112d4565b60405180910390fd5b005b60405162461bcd60e51b81526004016100f890611260565b34801561012757600080fd5b5061010161013636600461108b565b610260565b34801561014757600080fd5b50610150610503565b60405161015d9190611160565b60405180910390f35b610101610174366004610ef8565b610527565b34801561018557600080fd5b50610150610643565b34801561019a57600080fd5b50610101610667565b3480156101af57600080fd5b506101016101be3660046110f2565b6106e6565b3480156101cf57600080fd5b50610150610819565b3480156101e457600080fd5b506101016101f3366004610eb8565b610828565b34801561020457600080fd5b506101506108dd565b34801561021957600080fd5b50610101610228366004610f2d565b610901565b34801561023957600080fd5b50610101610248366004610e95565b610944565b61010161025b3660046110ba565b6109fa565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906102af903390600401611160565b60206040518083038186803b1580156102c757600080fd5b505afa1580156102db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ff9190611073565b90508260001981141561030f5750805b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd9061035f90339030908690600401611174565b602060405180830381600087803b15801561037957600080fd5b505af115801561038d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b19190610f58565b50604051631a4ca37b60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906369328dec90610422907f000000000000000000000000000000000000000000000000000000000000000090859030906004016111b1565b602060405180830381600087803b15801561043c57600080fd5b505af1158015610450573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104749190611073565b50604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906104c19084906004016113aa565b600060405180830381600087803b1580156104db57600080fd5b505af11580156104ef573d6000803e3d6000fd5b505050506104fd8382610c66565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561058257600080fd5b505af1158015610596573d6000803e3d6000fd5b505060405163e8eda9df60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016935063e8eda9df925061060d91507f0000000000000000000000000000000000000000000000000000000000000000903490879087906004016111d4565b600060405180830381600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b61066f610cf3565b6000546001600160a01b0390811691161461069c5760405162461bcd60e51b81526004016100f890611301565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60405163a415bcad60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a415bcad9061075a907f000000000000000000000000000000000000000000000000000000000000000090879087908790339060040161122c565b600060405180830381600087803b15801561077457600080fd5b505af1158015610788573d6000803e3d6000fd5b5050604051632e1a7d4d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250632e1a7d4d91506107d89086906004016113aa565b600060405180830381600087803b1580156107f257600080fd5b505af1158015610806573d6000803e3d6000fd5b505050506108143384610c66565b505050565b6000546001600160a01b031690565b610830610cf3565b6000546001600160a01b0390811691161461085d5760405162461bcd60e51b81526004016100f890611301565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb9061088b9085908590600401611198565b602060405180830381600087803b1580156108a557600080fd5b505af11580156108b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fd9190610f58565b7f000000000000000000000000000000000000000000000000000000000000000090565b610909610cf3565b6000546001600160a01b039081169116146109365760405162461bcd60e51b81526004016100f890611301565b6109408282610c66565b5050565b61094c610cf3565b6000546001600160a01b039081169116146109795760405162461bcd60e51b81526004016100f890611301565b6001600160a01b03811661099f5760405162461bcd60e51b81526004016100f89061128e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610ac3837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166335ea6a757f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610a6d9190611160565b6101806040518083038186803b158015610a8657600080fd5b505afa158015610a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abe9190610f78565b610cf7565b909250905060006001856002811115610ad857fe5b6002811115610ae357fe5b14610aee5781610af0565b825b905080861015610afd5750845b80341015610b1d5760405162461bcd60e51b81526004016100f890611363565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b7857600080fd5b505af1158015610b8c573d6000803e3d6000fd5b505060405163573ade8160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016935063573ade819250610c0391507f00000000000000000000000000000000000000000000000000000000000000009034908a908a90600401611201565b602060405180830381600087803b158015610c1d57600080fd5b505af1158015610c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c559190611073565b508034111561063b5761063b338234035b604080516000808252602082019092526001600160a01b038416908390604051610c909190611127565b60006040518083038185875af1925050503d8060008114610ccd576040519150601f19603f3d011682016040523d82523d6000602084013e610cd2565b606091505b50509050806108145760405162461bcd60e51b81526004016100f890611336565b3390565b6000808261010001516001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401610d2b9190611160565b60206040518083038186803b158015610d4357600080fd5b505afa158015610d57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7b9190611073565b8361012001516001600160a01b03166370a08231866040518263ffffffff1660e01b8152600401610dac9190611160565b60206040518083038186803b158015610dc457600080fd5b505afa158015610dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc9190611073565b915091509250929050565b8051610e12816113da565b92915050565b600060208284031215610e29578081fd5b610e3360206113b3565b9151825250919050565b80516fffffffffffffffffffffffffffffffff81168114610e1257600080fd5b803561ffff81168114610e1257600080fd5b805164ffffffffff81168114610e1257600080fd5b805160ff81168114610e1257600080fd5b600060208284031215610ea6578081fd5b8135610eb1816113da565b9392505050565b600080600060608486031215610ecc578182fd5b8335610ed7816113da565b92506020840135610ee7816113da565b929592945050506040919091013590565b60008060408385031215610f0a578182fd5b8235610f15816113da565b9150610f248460208501610e5d565b90509250929050565b60008060408385031215610f3f578182fd5b8235610f4a816113da565b946020939093013593505050565b600060208284031215610f69578081fd5b81518015158114610eb1578182fd5b6000610180808385031215610f8b578182fd5b610f94816113b3565b9050610fa08484610e18565b8152610faf8460208501610e3d565b6020820152610fc18460408501610e3d565b6040820152610fd38460608501610e3d565b6060820152610fe58460808501610e3d565b6080820152610ff78460a08501610e3d565b60a08201526110098460c08501610e6f565b60c082015261101b8460e08501610e07565b60e082015261010061102f85828601610e07565b9082015261012061104285858301610e07565b9082015261014061105585858301610e07565b9082015261016061106885858301610e84565b908201529392505050565b600060208284031215611084578081fd5b5051919050565b6000806040838503121561109d578182fd5b8235915060208301356110af816113da565b809150509250929050565b6000806000606084860312156110ce578283fd5b833592506020840135915060408401356110e7816113da565b809150509250925092565b600080600060608486031215611106578283fd5b833592506020840135915061111e8560408601610e5d565b90509250925092565b60008251815b81811015611147576020818601810151858301520161112d565b818111156111555782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6001600160a01b03948516815260208101939093529216604082015261ffff909116606082015260800190565b6001600160a01b03948516815260208101939093526040830191909152909116606082015260800190565b6001600160a01b0395861681526020810194909452604084019290925261ffff166060830152909116608082015260a00190565b60208082526014908201527311985b1b189858dac81b9bdd08185b1b1bddd95960621b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b602080825260139082015272149958d95a5d99481b9bdd08185b1b1bddd959606a1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526013908201527211551217d514905394d1915497d19052531151606a1b604082015260600190565b60208082526027908201527f6d73672e76616c7565206973206c657373207468616e2072657061796d656e7460408201526608185b5bdd5b9d60ca1b606082015260800190565b90815260200190565b60405181810167ffffffffffffffff811182821017156113d257600080fd5b604052919050565b6001600160a01b03811681146113ef57600080fd5b5056fea2646970667358221220972aaa3cbc25e0dd72d596ad7b71ceb3afbbc0e6694a31bb878e5d06ede0d3e764736f6c634300060c0033"
+ var WalletBalanceProviderBin = "0x608060405234801561001057600080fd5b50610a63806100206000396000f3fe6080604052600436106100385760003560e01c80630240534314610072578063b59b28ef146100a9578063f7888aec146100d65761006d565b3661006d5761004633610103565b61006b5760405162461bcd60e51b8152600401610062906109c9565b60405180910390fd5b005b600080fd5b34801561007e57600080fd5b5061009261008d366004610758565b61013f565b6040516100a092919061092f565b60405180910390f35b3480156100b557600080fd5b506100c96100c4366004610790565b6104b1565b6040516100a0919061098f565b3480156100e257600080fd5b506100f66100f1366004610758565b61058d565b6040516100a091906109e5565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061013757508115155b949350505050565b6060806000846001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561017d57600080fd5b505afa158015610191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b5919061073c565b90506060816001600160a01b031663d1946dbc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156101f257600080fd5b505afa158015610206573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261022e91908101906107f9565b90506060815160010167ffffffffffffffff8111801561024d57600080fd5b50604051908082528060200260200182016040528015610277578160200160208202803683370190505b50905060005b82518110156102c65782818151811061029257fe5b60200260200101518282815181106102a657fe5b6001600160a01b039092166020928302919091019091015260010161027d565b5073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee818351815181106102e957fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506060815167ffffffffffffffff8111801561032357600080fd5b5060405190808252806020026020018201604052801561034d578160200160208202803683370190505b50905060005b835181101561046b576103646106b9565b856001600160a01b031663c44b11f785848151811061037f57fe5b60200260200101516040518263ffffffff1660e01b81526004016103a3919061091b565b60206040518083038186803b1580156103bb57600080fd5b505afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f391906108a4565b905060006104008261067d565b50505090508061042b57600084848151811061041857fe5b6020026020010181815250505050610463565b6104488a86858151811061043b57fe5b602002602001015161058d565b84848151811061045457fe5b60200260200101818152505050505b600101610353565b5061048a8773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61058d565b8184518151811061049757fe5b6020908102919091010152909450925050505b9250929050565b60608084830267ffffffffffffffff811180156104cd57600080fd5b506040519080825280602002602001820160405280156104f7578160200160208202803683370190505b50905060005b858110156105835760005b8481101561057a5761055588888481811061051f57fe5b90506020020160208101906105349190610719565b87878481811061054057fe5b90506020020160208101906100f19190610719565b83518490848802840190811061056757fe5b6020908102919091010152600101610508565b506001016104fd565b5095945050505050565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156105c557506001600160a01b03821631610677565b6105d7826001600160a01b0316610103565b1561065f576040516370a0823160e01b81526001600160a01b038316906370a082319061060890869060040161091b565b60206040518083038186803b15801561062057600080fd5b505afa158015610634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065891906108c9565b9050610677565b60405162461bcd60e51b8152600401610062906109a2565b92915050565b51670100000000000000811615159167020000000000000082161515916704000000000000008116151591670800000000000000909116151590565b6040518060200160405280600081525090565b805161067781610a15565b60008083601f8401126106e8578182fd5b50813567ffffffffffffffff8111156106ff578182fd5b60208301915083602080830285010111156104aa57600080fd5b60006020828403121561072a578081fd5b813561073581610a15565b9392505050565b60006020828403121561074d578081fd5b815161073581610a15565b6000806040838503121561076a578081fd5b823561077581610a15565b9150602083013561078581610a15565b809150509250929050565b600080600080604085870312156107a5578182fd5b843567ffffffffffffffff808211156107bc578384fd5b6107c8888389016106d7565b909650945060208701359150808211156107e0578384fd5b506107ed878288016106d7565b95989497509550505050565b6000602080838503121561080b578182fd5b825167ffffffffffffffff80821115610822578384fd5b818501915085601f830112610835578384fd5b815181811115610843578485fd5b83810291506108538483016109ee565b8181528481019084860184860187018a101561086d578788fd5b8795505b83861015610897576108838a826106cc565b835260019590950194918601918601610871565b5098975050505050505050565b6000602082840312156108b5578081fd5b6108bf60206109ee565b9151825250919050565b6000602082840312156108da578081fd5b5051919050565b6000815180845260208085019450808401835b83811015610910578151875295820195908201906001016108f4565b509495945050505050565b6001600160a01b0391909116815260200190565b604080825283519082018190526000906020906060840190828701845b828110156109715781516001600160a01b03168452928401929084019060010161094c565b5050508381038285015261098581866108e1565b9695505050505050565b60006020825261073560208301846108e1565b6020808252600d908201526c24a72b20a624a22faa27a5a2a760991b604082015260600190565b602080825260029082015261191960f11b604082015260600190565b90815260200190565b60405181810167ffffffffffffffff81118282101715610a0d57600080fd5b604052919050565b6001600160a01b0381168114610a2a57600080fd5b5056fea264697066735822122038ee76e5eeaf2682115cdf35d71889ced097b1086959d7321c6d037a3588946464736f6c634300060c0033"
Nov 17, 2021
Nov 17, 2021
Nov 7, 2021
Nov 6, 2021
Nov 5, 2021
Nov 5, 2021
Nov 5, 2021
Nov 5, 2021
Nov 4, 2021
Nov 3, 2021
Nov 3, 2021
Nov 3, 2021
Nov 2, 2021
Nov 2, 2021
Nov 2, 2021
Nov 2, 2021
Nov 2, 2021
Nov 2, 2021
Nov 2, 2021
Nov 1, 2021
Nov 1, 2021
Nov 1, 2021
Nov 1, 2021
Nov 1, 2021
Nov 1, 2021
Nov 1, 2021
Nov 1, 2021
Oct 29, 2021
Nov 16, 2021
Nov 15, 2021
Nov 15, 2021
Nov 15, 2021
Nov 15, 2021
Nov 15, 2021
Nov 14, 2021
Nov 12, 2021
Nov 12, 2021
Nov 12, 2021
Nov 11, 2021
Nov 11, 2021
Nov 11, 2021
Nov 10, 2021
Nov 10, 2021
Nov 10, 2021
Nov 10, 2021
Nov 10, 2021
Nov 10, 2021
Nov 10, 2021
Nov 10, 2021
Nov 10, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 9, 2021
Nov 8, 2021
Nov 8, 2021
Nov 7, 2021
Nov 7, 2021
Nov 7, 2021
Nov 7, 2021
Nov 7, 2021
Nov 7, 2021

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL