diff --git a/.abi_testnet.env b/.abi_testnet.env index 505e5f1..6014fe7 100644 --- a/.abi_testnet.env +++ b/.abi_testnet.env @@ -1,6 +1,6 @@ # Code generated by codegen/generate_src.sh for tag: v0.6.0-rc2; DO NOT EDIT. STAKING_BYTECODE=0x60806040523480156200001157600080fd5b5060405162001903380380620019038339810160408190526200003491620001a2565b6001805460ff19169055600380546001600160401b0319166001600160401b03841617600160401b600160e01b031916680100000000000000006001600160a01b0386160217905562000089600082620000be565b620000b57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000be565b505050620001f8565b620000ca8282620000ce565b5050565b620000da828262000158565b620000ca576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200011462000181565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b80516001600160a01b03811681146200019d57600080fd5b919050565b600080600060608486031215620001b7578283fd5b620001c28462000185565b60208501519093506001600160401b0381168114620001df578283fd5b9150620001ef6040850162000185565b90509250925092565b6116fb80620002086000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806391d14854116100b8578063abe385431161007c578063abe3854314610283578063d547741f14610296578063e34c4527146102a9578063e63ab1e9146102bc578063ede41302146102c4578063f7b188a5146102d757610142565b806391d148541461023a578063a0d22b211461024d578063a217fddf14610260578063a6471a1d14610268578063a6ce31d41461027057610142565b8063420fc4db1161010a578063420fc4db146101cb57806348962b93146101e05780635c975abb146101f3578063837fd16a146101fb5780638456cb591461020e5780638fee64071461021657610142565b806301ffc9a7146101475780631ed2cd4014610170578063248a9ca3146101855780632f2ff15d146101a557806336568abe146101b8575b600080fd5b61015a610155366004611193565b6102df565b60405161016791906112b8565b60405180910390f35b61018361017e3660046110dd565b61030c565b005b61019861019336600461112f565b610560565b60405161016791906112c3565b6101836101b3366004611147565b610575565b6101836101c6366004611147565b610596565b6101d36105dc565b6040516101679190611267565b6101986101ee36600461112f565b6105f2565b61015a610607565b610183610209366004611172565b610610565b6101836106c9565b61022961022436600461112f565b610719565b6040516101679594939291906112da565b61015a610248366004611147565b610755565b6101d361025b36600461112f565b61077e565b61019861079d565b6101986107a2565b61018361027e366004611172565b6107c6565b61019861029136600461112f565b6108f9565b6101836102a4366004611147565b610925565b6101836102b7366004611172565b610941565b610198610b94565b6101986102d236600461112f565b610bb8565b610183610bcd565b60006001600160e01b03198216637965db0b60e01b1480610304575061030482610c1b565b90505b919050565b610314610c34565b6001600160a01b03831633146103455760405162461bcd60e51b815260040161033c9061154c565b60405180910390fd5b60035460009084906103609067ffffffffffffffff16610c59565b84604051602001610373939291906111bb565b60408051601f19818403018152918152815160209283012060008181526002909352912060040154909150829060ff16156103ec576103b182610cb8565b6103cd5760405162461bcd60e51b815260040161033c90611515565b6000828152600260205260409020600101546103e9908461161a565b90505b6003546040516323b872dd60e01b8152600160401b9091046001600160a01b0316906323b872dd906104269033903090889060040161127b565b602060405180830381600087803b15801561044057600080fd5b505af1158015610454573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610478919061110f565b6104945760405162461bcd60e51b815260040161033c90611583565b817f61e979698346a2aa868a3a9f08d30c846174841dc9b074bbf2a82d20554bc6828287436040516104c8939291906115fb565b60405180910390a26040805160a08101825283815260208082019384526001600160a01b03978816828401908152436060840190815260016080850181815260009889526002948590529590972093518455945195830195909555935193810180546001600160a01b031916949097169390931790955551600382015592516004909301805460ff1916931515939093179092555050565b60009081526020819052604090206001015490565b61057e82610560565b61058781610ccf565b6105918383610ce3565b505050565b61059e610d68565b6001600160a01b0316816001600160a01b0316146105ce5760405162461bcd60e51b815260040161033c906115ac565b6105d88282610d6c565b5050565b600354600160401b90046001600160a01b031681565b60009081526002602052604090206001015490565b60015460ff1690565b61063a7f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb082833610755565b6106565760405162461bcd60e51b815260040161033c90611490565b60008281526002602052604090206004015460ff16156105d8577f340439a63c1ee2404f5b7010cab559b4dcbfc28b8baab9acade354fd688ae2b982826040516106a19291906112cc565b60405180910390a16106b3814361161a565b6000838152600260205260409020600301555050565b6106f37f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610755565b61070f5760405162461bcd60e51b815260040161033c9061139b565b610717610def565b565b6002602081905260009182526040909120805460018201549282015460038301546004909301549193926001600160a01b039091169160ff1685565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600090815260026020819052604090912001546001600160a01b031690565b600081565b7f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb082881565b6107f07f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb082833610755565b61080c5760405162461bcd60e51b815260040161033c906114d3565b7f0956b50d4d586f6b9c90800d4e713bd2b866e044decd047e6d70ea20314ab308828260405161083d9291906112cc565b60405180910390a160008281526002602052604090206004015460ff16156105d8576000828152600260205260409020600101548110156108b85760008281526002602052604081206001018054839290610899908490611651565b90915550506000828152600260205260409020436003909101556105d8565b50600090815260026020819052604082208281556001810183905590810180546001600160a01b03191690556003810191909155600401805460ff19169055565b600061090482610cb8565b61090f576000610304565b5060009081526002602052604090206001015490565b61092e82610560565b61093781610ccf565b6105918383610d6c565b610949610e43565b600082815260026020819052604090912001546001600160a01b031633146109835760405162461bcd60e51b815260040161033c90611459565b60008281526002602052604090206001015481908111156109b257506000828152600260205260409020600101545b600083815260026020526040902060010154811015610ab057600083815260026020526040812060010180548392906109ec908490611651565b9091555050600083815260026020526040908190204360039182015554905163a9059cbb60e01b8152600160401b9091046001600160a01b03169063a9059cbb90610a3d903390859060040161129f565b602060405180830381600087803b158015610a5757600080fd5b505af1158015610a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8f919061110f565b610aab5760405162461bcd60e51b815260040161033c90611370565b610591565b60008381526002602081905260408083208381556001810184905591820180546001600160a01b03191690556003808301939093556004918201805460ff191690559154915163a9059cbb60e01b8152600160401b9092046001600160a01b03169163a9059cbb91610b2691339186910161129f565b602060405180830381600087803b158015610b4057600080fd5b505af1158015610b54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b78919061110f565b6105915760405162461bcd60e51b815260040161033c90611370565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60009081526002602052604090206003015490565b610bf77f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610755565b610c135760405162461bcd60e51b815260040161033c906113f8565b610717610e67565b6001600160e01b031981166301ffc9a760e01b14919050565b610c3c610607565b156107175760405162461bcd60e51b815260040161033c9061142f565b600881811b67ff00ff00ff00ff001666ff00ff00ff00ff9290911c9190911617601081811b67ffff0000ffff00001665ffff0000ffff9290911c9190911617602081811b6bffffffffffffffff000000001691901c63ffffffff161790565b600090815260026020526040902060030154431190565b610ce081610cdb610d68565b610ea2565b50565b610ced8282610755565b6105d8576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610d24610d68565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3390565b610d768282610755565b156105d8576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055610dab610d68565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b610df7610c34565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610e2c610d68565b604051610e399190611267565b60405180910390a1565b610e4b610607565b6107175760405162461bcd60e51b815260040161033c906113ca565b610e6f610e43565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610e2c610d68565b610eac8282610755565b6105d857610eb981610efb565b610ec4836020610f0d565b604051602001610ed59291906111f2565b60408051601f198184030181529082905262461bcd60e51b825261033c91600401611308565b60606103046001600160a01b03831660145b60606000610f1c836002611632565b610f2790600261161a565b67ffffffffffffffff811115610f4d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610f77576020820181803683370190505b509050600360fc1b81600081518110610fa057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610fdd57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611001846002611632565b61100c90600161161a565b90505b60018111156110a0576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061104e57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061107257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361109981611698565b905061100f565b5083156110bf5760405162461bcd60e51b815260040161033c9061133b565b9392505050565b80356001600160a01b038116811461030757600080fd5b6000806000606084860312156110f1578283fd5b6110fa846110c6565b95602085013595506040909401359392505050565b600060208284031215611120578081fd5b815180151581146110bf578182fd5b600060208284031215611140578081fd5b5035919050565b60008060408385031215611159578182fd5b82359150611169602084016110c6565b90509250929050565b60008060408385031215611184578182fd5b50508035926020909101359150565b6000602082840312156111a4578081fd5b81356001600160e01b0319811681146110bf578182fd5b60609390931b6bffffffffffffffffffffffff1916835260c09190911b6001600160c01b0319166014830152601c820152603c0190565b60007f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008252835161122a816017850160208801611668565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161125b816028840160208801611668565b01602801949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b918252602082015260400190565b94855260208501939093526001600160a01b0391909116604084015260608301521515608082015260a00190565b6000602082528251806020840152611327816040850160208701611668565b601f01601f19169190910160400192915050565b6020808252818101527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604082015260600190565b60208082526011908201527019985a5b1959081dda5d1a191c985dd85b607a1b604082015260600190565b6020808252601590820152746f6e6c79207061757365722063616e20706175736560581b604082015260600190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526017908201527f6f6e6c79207061757365722063616e20756e7061757365000000000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601d908201527f6f6e6c79206f776e65722063616e207769746864726177207374616b65000000604082015260600190565b60208082526023908201527f6f6e6c792072656469737472696275746f722063616e20667265657a65207374604082015262616b6560e81b606082015260800190565b60208082526022908201527f6f6e6c792072656469737472696275746f722063616e20736c617368207374616040820152616b6560f01b606082015260800190565b60208082526018908201527f6f7665726c61792063757272656e746c792066726f7a656e0000000000000000604082015260600190565b6020808252601b908201527f6f6e6c79206f776e65722063616e20757064617465207374616b650000000000604082015260600190565b6020808252600f908201526e3330b4b632b2103a3930b739b332b960891b604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b6000821982111561162d5761162d6116af565b500190565b600081600019048311821515161561164c5761164c6116af565b500290565b600082821015611663576116636116af565b500390565b60005b8381101561168357818101518382015260200161166b565b83811115611692576000848401525b50505050565b6000816116a7576116a76116af565b506000190190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220a4fa835fec4fa1fa1952a1ffc3a89315a7774a5a0318eb8100197655c638624964736f6c63430008010033 -POSTAGE_STAMP_BYTECODE=0x6080604052614380600a556000600b553480156200001c57600080fd5b5060405162003bea38038062003bea8339810160408190526200003f916200019b565b6001805460ff19908116909155600580546001600160a01b0319166001600160a01b0386161790556007805490911660ff841617905562000082600082620000b7565b620000ae7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000b7565b505050620001ea565b620000c38282620000c7565b5050565b620000d3828262000151565b620000c3576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200010d6200017a565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b80516001600160a01b03811681146200019657600080fd5b919050565b600080600060608486031215620001b0578283fd5b620001bb846200017e565b9250602084015160ff81168114620001d1578283fd5b9150620001e1604085016200017e565b90509250925092565b6139f080620001fa6000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c806381e508b911610151578063b998902f116100c3578063dd483cfb11610087578063dd483cfb146104ce578063df674385146104d6578063e63ab1e9146104e9578063ea612e1f146104f1578063f7b188a5146104f9578063f90ce5ba1461050157610269565b8063b998902f14610468578063c81e25ab14610470578063d547741f14610495578063d71ba7c4146104a8578063d968f44b146104bb57610269565b806391b7f5ed1161011557806391b7f5ed1461041757806391d148541461042a578063a217fddf1461043d578063a6471a1d14610445578063a81064ee1461044d578063b67644b91461045557610269565b806381e508b9146103e45780638456cb59146103f75780638a5e8e32146103ff5780638b82547f14610407578063906978421461040f57610269565b8063420fc4db116101ea57806351b17cd0116101ae57806351b17cd01461039357806351cff8d91461039b5780635239af71146103ae5780635c975abb146103c1578063628de877146103c9578063711bfa2b146103dc57610269565b8063420fc4db1461034a57806344beae8e1461035257806347aab79b1461036557806348652ce7146103785780634ba2363a1461038b57610269565b8063248a9ca311610231578063248a9ca3146102e957806324b570a9146102fc5780632f2ff15d1461030457806332ac57dd1461031757806336568abe1461033757610269565b806301ffc9a71461026e578063053f14da146102975780631889b99b146102ac57806318c8572f146102b45780632182ddb1146102c9575b600080fd5b61028161027c366004612e4b565b610509565b60405161028e9190612f8c565b60405180910390f35b61029f610536565b60405161028e9190612f97565b61028161053c565b6102c76102c2366004612d40565b61054f565b005b6102dc6102d7366004612dc5565b610833565b60405161028e9190612f00565b61029f6102f7366004612dc5565b61084e565b61029f610863565b6102c7610312366004612ddd565b61090c565b61032a610325366004612dc5565b61092d565b60405161028e9190613886565b6102c7610345366004612ddd565b610949565b6102dc61098f565b61032a610360366004612dc5565b61099e565b6102c7610373366004612e29565b6109ba565b6102c7610386366004612dc5565b610bc9565b61029f610bf5565b61029f610bfb565b6102c76103a9366004612d26565b610c35565b6102c76103bc366004612d40565b610d68565b610281611091565b6102c76103d7366004612dc5565b61109a565b610281611224565b61029f6103f2366004612dc5565b61124f565b6102c7611265565b61029f6112b5565b61029f6112bb565b61029f6112f7565b6102c7610425366004612dc5565b61130e565b610281610438366004612ddd565b6113ac565b61029f6113d7565b61029f6113dc565b61032a611400565b6102c7610463366004612e08565b611409565b61029f611618565b61048361047e366004612dc5565b61163c565b60405161028e96959493929190612f51565b6102c76104a3366004612ddd565b611689565b61029f6104b6366004612dc5565b6116a5565b6102816104c9366004612dc5565b611714565b61029f611730565b61029f6104e4366004612dc5565b611736565b61029f61174b565b61029f61176f565b6102c7611775565b61029f6117c3565b60006001600160e01b03198216637965db0b60e01b148061052e575061052e826117c9565b90505b919050565b600b5481565b600061054860036117e2565b1590505b90565b6105576117f2565b6105626000336113ac565b6105875760405162461bcd60e51b815260040161057e9061374d565b60405180910390fd5b6001600160a01b0386166105ad5760405162461bcd60e51b815260040161057e90612fd3565b60ff8316158015906105c457508360ff168360ff16105b6105e05760405162461bcd60e51b815260040161057e90613203565b6000828152600260205260409020546001600160a01b0316156106155760405162461bcd60e51b815260040161057e906134c1565b6000610627600160ff87161b876138df565b6005546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9061065c90339030908690600401612f14565b602060405180830381600087803b15801561067657600080fd5b505af115801561068a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ae9190612da9565b6106ca5760405162461bcd60e51b815260040161057e90613724565b6000866106d5610bfb565b6106df91906138a7565b90508560ff166001901b600860008282546106fa91906138a7565b90915550506040805160c0810182526001600160a01b038a8116825260ff89811660208085019182528a831685870190815289151560608701908152608087018981524360a0890190815260008e815260029586905299909920975188549551935192516001600160a01b031990961697169690961760ff60a01b1916600160a01b928616929092029190911760ff60a81b1916600160a81b91909416029290921760ff60b01b1916600160b01b91151591909102178355905160018301559151910155806107db5760405162461bcd60e51b815260040161057e9061311f565b6107e760038583611817565b837f9b088e2c89b322a3c1d81515e1c88db3d386d022926f0e2d0b9b5813b7413d5883838b8a8a896040516108219695949392919061384d565b60405180910390a25050505050505050565b6000908152600260205260409020546001600160a01b031690565b60009081526020819052604090206001015490565b600061087060001961109a565b6005546040516370a0823160e01b81526000916001600160a01b0316906370a08231906108a1903090600401612f00565b60206040518083038186803b1580156108b957600080fd5b505afa1580156108cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f19190612e73565b905080600954106109025780610906565b6009545b91505090565b6109158261084e565b61091e816119fc565b6109288383611a10565b505050565b600090815260026020526040902054600160a81b900460ff1690565b610951611a95565b6001600160a01b0316816001600160a01b0316146109815760405162461bcd60e51b815260040161057e90613793565b61098b8282611a99565b5050565b6005546001600160a01b031681565b600090815260026020526040902054600160a01b900460ff1690565b6109c26117f2565b600082815260026020526040902080546001600160a01b031633146109f95760405162461bcd60e51b815260040161057e90613268565b60075460ff8084169116108015610a1d5750805460ff808416600160a01b90920416105b610a395760405162461bcd60e51b815260040161057e906136a6565b8054600160b01b900460ff1615610a625760405162461bcd60e51b815260040161057e9061345e565b610a6a610bfb565b816001015411610a8c5760405162461bcd60e51b815260040161057e906135d8565b8054600090610aa590600160a01b900460ff1684613915565b90506000600160ff83161b610ab9866116a5565b610ac391906138bf565b9050610acd6112f7565b811015610aec5760405162461bcd60e51b815260040161057e90613526565b610af760001961109a565b8254610b1790600160ff600160a01b909204821681901b9187161b6138fe565b60086000828254610b2891906138a7565b90915550506001830154610b40906003908790611b1c565b825460ff60a01b1916600160a01b60ff86160217835543600284015580610b65610bfb565b610b6f91906138a7565b60018401819055610b84906003908790611817565b847faf27998ec15e9d3809edad41aec1b5551d8412e71bd07c91611a0237ead1dc8e858560010154604051610bba929190613894565b60405180910390a25050505050565b610bd46000336113ac565b610bf05760405162461bcd60e51b815260040161057e90613154565b600a55565b60095481565b600080600c5443610c0c91906138fe565b9050600081600b54610c1e91906138df565b905080600654610c2e91906138a7565b9250505090565b610c5f7f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb0828336113ac565b610c7b5760405162461bcd60e51b815260040161057e90613343565b6000610c85610863565b60055460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb90610cb89085908590600401612f38565b602060405180830381600087803b158015610cd257600080fd5b505af1158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a9190612da9565b610d265760405162461bcd60e51b815260040161057e90613724565b7ff5d8f9b1e7af440e1e7915f4693ccc004d1461a7dafd17ea7347d03decf298e18282604051610d57929190612f38565b60405180910390a150506000600955565b610d706117f2565b6001600160a01b038616610d965760405162461bcd60e51b815260040161057e90612fd3565b60ff831615801590610db0575060075460ff808516911611155b8015610dc157508360ff168360ff16105b610ddd5760405162461bcd60e51b815260040161057e90613203565b60003383604051602001610df2929190612f38565b60408051601f198184030181529181528151602092830120600081815260029093529120549091506001600160a01b031615610e405760405162461bcd60e51b815260040161057e906134c1565b610e486112f7565b861015610e675760405162461bcd60e51b815260040161057e906132ee565b6000610e79600160ff88161b886138df565b6005546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd90610eae90339030908690600401612f14565b602060405180830381600087803b158015610ec857600080fd5b505af1158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190612da9565b610f1c5760405162461bcd60e51b815260040161057e90613724565b600087610f27610bfb565b610f3191906138a7565b9050610f3e60001961109a565b8660ff166001901b60086000828254610f5791906138a7565b90915550506040805160c0810182526001600160a01b038b8116825260ff8a811660208085019182528b83168587019081528a151560608701908152608087018981524360a0890190815260008d815260029586905299909920975188549551935192516001600160a01b031990961697169690961760ff60a01b1916600160a01b928616929092029190911760ff60a81b1916600160a81b91909416029290921760ff60b01b1916600160b01b91151591909102178355905160018301559151910155806110385760405162461bcd60e51b815260040161057e9061311f565b61104460038483611817565b827f9b088e2c89b322a3c1d81515e1c88db3d386d022926f0e2d0b9b5813b7413d5883838c8b8b8a60405161107e9695949392919061384d565b60405180910390a2505050505050505050565b60015460ff1690565b600d5460005b828110156111cc576110b061053c565b156110c5576110bd610bfb565b600d556111cc565b60006110cf6112bb565b905060006110dc826116a5565b11156110f3576110ea610bfb565b600d55506111cc565b600081815260026020526040902080546008546001600160a01b90920460ff169190911b908111156111375760405162461bcd60e51b815260040161057e90613008565b806008600082825461114991906138fe565b9091555050600182015461115e9086906138fe565b61116890826138df565b6009600082825461117991906138a7565b90915550506001820154611191906003908590611b1c565b50506000908152600260208190526040822080546001600160b81b0319168155600181018390550155806111c48161397b565b9150506110a0565b81600d5410156111ee5760405162461bcd60e51b815260040161057e906130d1565b81600d546111fc91906138fe565b60085461120991906138df565b6009600082825461121a91906138a7565b9091555050505050565b600061122e61053c565b1561123b5750600061054c565b60006112486104b66112bb565b1115905090565b6000908152600260208190526040909120015490565b61128f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336113ac565b6112ab5760405162461bcd60e51b815260040161057e90613074565b6112b3611e98565b565b60085481565b6000806112c86003611eec565b9050600081116112ea5760405162461bcd60e51b815260040161057e9061367c565b6109066003826000611f2e565b6000600b54600a5461130991906138df565b905090565b6113387fdd24a0f121e5ab7c3e97c63eaaf859e0b46792c3e0edfd86e2b3ad50f63011d8336113ac565b6113545760405162461bcd60e51b815260040161057e90613595565b600b541561136857611364610bfb565b6006555b600b81905543600c556040517fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a906113a1908390612f97565b60405180910390a150565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b600081565b7f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb082881565b60075460ff1681565b6114116117f2565b600082815260026020526040902080546001600160a01b03166114465760405162461bcd60e51b815260040161057e9061341b565b61144e610bfb565b8160010154116114705760405162461bcd60e51b815260040161057e906135d8565b600754815460ff918216600160a01b909104909116116114a25760405162461bcd60e51b815260040161057e906134ef565b6114aa6112f7565b826114b4856116a5565b6114be91906138a7565b10156114dc5760405162461bcd60e51b815260040161057e906137e2565b80546000906114f9906001600160a01b90910460ff161b846138df565b6005546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9061152e90339030908690600401612f14565b602060405180830381600087803b15801561154857600080fd5b505af115801561155c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115809190612da9565b61159c5760405162461bcd60e51b815260040161057e90613724565b60018201546115af906003908690611b1c565b8282600101546115bf91906138a7565b600183018190556115d4906003908690611817565b837faf5756c62d6c0722ef9be1f82bef97ab06ea5aea7f3eb8ad348422079f01d88d82846001015460405161160a92919061383f565b60405180910390a250505050565b7fdd24a0f121e5ab7c3e97c63eaaf859e0b46792c3e0edfd86e2b3ad50f63011d881565b60026020819052600091825260409091208054600182015491909201546001600160a01b0383169260ff600160a01b8204811693600160a81b8304821693600160b01b9093049091169186565b6116928261084e565b61169b816119fc565b6109288383611a99565b600081815260026020526040812080546001600160a01b03166116da5760405162461bcd60e51b815260040161057e9061348a565b6116e2610bfb565b8160010154116116f6576000915050610531565b6116fe610bfb565b816001015461170d91906138fe565b9392505050565b600090815260026020526040902054600160b01b900460ff1690565b600a5481565b60009081526002602052604090206001015490565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b600d5481565b61179f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336113ac565b6117bb5760405162461bcd60e51b815260040161057e90613231565b6112b3611f9d565b600c5481565b6001600160e01b031981166301ffc9a760e01b14919050565b600061052e828360000154611fd8565b6117fa611091565b156112b35760405162461bcd60e51b815260040161057e90613394565b806118345760405162461bcd60e51b815260040161057e906131a6565b61183f838383612004565b1561185c5760405162461bcd60e51b815260040161057e90613607565b82546000905b801561193d578091508083101561188c576000908152600180860160205260409091200154611914565b808311156118ad576000908152600185016020526040902060020154611914565b808314156119145760008181526001808701602090815260408320600401805480840182558185529184209091018790559183905290546118ee91906138fe565b600091825260018601602090815260408084208785526005019091529091205550610928565b600082815260018601602052604081206006018054916119338361397b565b9190505550611862565b600083815260018087016020908152604083208581558083018490556002810184905560038101805460ff191684179055600481018054808501825581865292909420909101879055915461199291906138fe565b6000868152600583016020526040902055826119b0578386556119ea565b828410156119d357600083815260018088016020526040909120018490556119ea565b600083815260018701602052604090206002018490555b6119f48685612078565b505050505050565b611a0d81611a08611a95565b6122e3565b50565b611a1a82826113ac565b61098b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611a51611a95565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3390565b611aa382826113ac565b1561098b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055611ad8611a95565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b80611b395760405162461bcd60e51b815260040161057e90613291565b611b44838383612004565b611b605760405162461bcd60e51b815260040161057e906133be565b6000818152600180850160209081526040808420868552600581019092528320546004820180549294919391929091611b98916138fe565b81548110611bb657634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080836004018381548110611be757634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600585019091526040902082905560048301805480611c2a57634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055600080846004018054905060001415611e8e5760008681526001808a01602052604090912001541580611c8457506000868152600189016020526040902060020154155b15611c90575084611cd8565b5060008581526001880160205260409020600201545b60008181526001808a016020526040909120015415611cd8576000908152600180890160205260409091200154611ca6565b60008181526001808a016020526040909120015415611d0c5760008181526001808a01602052604090912001549150611d23565b600081815260018901602052604090206002015491505b60008181526001890160205260408082205484835291208190558015611d955760008181526001808b0160205260409091200154821415611d795760008181526001808b01602052604090912001839055611d90565b600081815260018a01602052604090206002018390555b611d99565b8289555b600082815260018a01602052604090206003015460ff1615878314611e2c57611dc38a848a61233c565b600088815260018b8101602052604080832080830154878552828520938401819055845281842087905560028082015490840181905584529083208690556003908101549286905201805460ff191660ff9092161515919091179055919691611e2c8a896123b6565b8015611e3c57611e3c8a85612423565b611e468a836123b6565b60008381526001808c01602052604082208281559081018290556002810182905560038101805460ff1916905590611e816004830182612ccc565b6006820160009055505050505b5050505050505050565b611ea06117f2565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611ed5611a95565b604051611ee29190612f00565b60405180910390a1565b805480611efb57506000610531565b5b600081815260018084016020526040909120015415610531576000908152600180830160205260409091200154611efc565b6000611f3a848461283e565b611f565760405162461bcd60e51b815260040161057e906136d4565b60008381526001850160205260409020600401805483908110611f8957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490509392505050565b611fa5612885565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611ed5611a95565b6000818152600183016020526040812060068101546004820154611ffc91906138a7565b949350505050565b6000612010848361283e565b61201c5750600061170d565b60008281526001850160209081526040808320868452600581019092529091205460049091018054859290811061206357634e487b7160e01b600052603260045260246000fd5b90600052602060002001541490509392505050565b60005b825482148015906120a55750600082815260018401602052604080822054825290206003015460ff165b156122c15760008281526001808501602052604080832054808452818420548452922001548114156121c85760008181526001850160205260408082205482528082206002015480835291206003015490925060ff161561214e576000818152600180860160205260408083206003808201805460ff199081169091558786528386208201805482169055825486529285200180549092169092179055908290525492506121c3565b60008181526001850160205260409020600201548314156121765780925061217684846128a9565b50600082815260018085016020526040808320548084528184206003808201805460ff199081169091558254875293862001805490931690931790915591829052546121c3908590612a27565b6122bb565b6000818152600180860160205260408083205483528083209091015480835291206003015490925060ff1615612246576000818152600180860160205260408083206003808201805460ff199081169091558786528386208201805482169055825486529285200180549092169092179055908290525492506122bb565b600081815260018086016020526040909120015483141561226e5780925061226e8484612a27565b50600082815260018085016020526040808320548084528184206003808201805460ff199081169091558254875293862001805490931690931790915591829052546122bb9085906128a9565b5061207b565b505080546000908152600190910160205260409020600301805460ff19169055565b6122ed82826113ac565b61098b576122fa81612b08565b612305836020612b1a565b604051602001612316929190612e8b565b60408051601f198184030181529082905262461bcd60e51b825261057e91600401612fa0565b600081815260018401602052604080822054848352912081905580612363578284556123b0565b600081815260018086016020526040909120015482141561239957600081815260018086016020526040909120018390556123b0565b600081815260018501602052604090206002018390555b50505050565b801561098b5760008181526001830160205260409020600201546123db908390611fd8565b60008281526001808501602052604090912001546123fa908490611fd8565b61240491906138a7565b60009182526001830160205260409091206006810191909155546123b6565b60005b8254821480159061244b5750600082815260018401602052604090206003015460ff16155b1561281f5760008281526001808501602052604080832054808452922001548314156126485760008181526001850160205260408082206002015480835291206003015490925060ff16156124ef576000828152600180860160205260408083206003908101805460ff199081169091558585529190932090920180549092161790556124d884826128a9565b600081815260018501602052604090206002015491505b60008281526001808601602052604080832090910154825290206003015460ff1615801561253a5750600082815260018501602052604080822060020154825290206003015460ff16155b1561256757600082815260018581016020526040909120600301805460ff19169091179055915081612643565b600082815260018501602052604080822060020154825290206003015460ff166125e4576000828152600180860160205260408083208083015484529083206003908101805460ff19908116909155938690520180549092161790556125cd8483612a27565b600081815260018501602052604090206002015491505b600081815260018501602052604080822060039081018054868552838520808401805460ff909316151560ff19938416179055825482169092556002909101548452919092209091018054909116905561263e84826128a9565b835492505b612819565b6000818152600180860160205260408083209091015480835291206003015490925060ff16156126c7576000828152600180860160205260408083206003908101805460ff199081169091558585529190932090920180549092161790556126b08482612a27565b600081815260018086016020526040909120015491505b600082815260018501602052604080822060020154825290206003015460ff16158015612712575060008281526001808601602052604080832090910154825290206003015460ff16155b1561273f57600082815260018581016020526040909120600301805460ff19169091179055915081612819565b60008281526001808601602052604080832090910154825290206003015460ff166127be57600082815260018086016020526040808320600281015484529083206003908101805460ff19908116909155938690520180549092161790556127a784836128a9565b600081815260018086016020526040909120015491505b60008181526001808601602052604080832060039081018054878652838620808401805460ff909316151560ff199384161790558254821690925593015484529220909101805490911690556128148482612a27565b835492505b50612426565b506000908152600190910160205260409020600301805460ff19169055565b60008161284d575060006113d1565b825482141561285e575060016113d1565b60008281526001840160205260409020541561287c575060016113d1565b50600092915050565b61288d611091565b6112b35760405162461bcd60e51b815260040161057e906130a3565b6000818152600180840160205260408083206002810180549154828652928520909301549385905291839055909180156128f157600081815260018601602052604090208490555b60008381526001860160205260409020829055816129115782855561295e565b6000828152600180870160205260409091200154841415612947576000828152600180870160205260409091200183905561295e565b600082815260018601602052604090206002018390555b60008381526001808701602052604080832090910186905585825290208381556002015461298d908690611fd8565b60008581526001808801602052604090912001546129ac908790611fd8565b6129b691906138a7565b60008581526001870160205260408082206006019290925584815220600201546129e1908690611fd8565b6000848152600180880160205260409091200154612a00908790611fd8565b612a0a91906138a7565b600093845260019095016020525050604090206006019190915550565b60008181526001808401602052604080832091820180549254838552918420600201549385905283905590918015612a6d57600081815260018601602052604090208490555b6000838152600186016020526040902082905581612a8d57828555612ada565b6000828152600186016020526040902060020154841415612ac35760008281526001860160205260409020600201839055612ada565b600082815260018087016020526040909120018390555b600083815260018601602052604080822060029081018790558683529120848155015461298d908690611fd8565b606061052e6001600160a01b03831660145b60606000612b298360026138df565b612b349060026138a7565b67ffffffffffffffff811115612b5a57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612b84576020820181803683370190505b509050600360fc1b81600081518110612bad57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612bea57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000612c0e8460026138df565b612c199060016138a7565b90505b6001811115612cad576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612c5b57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110612c7f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93612ca681613964565b9050612c1c565b50831561170d5760405162461bcd60e51b815260040161057e9061303f565b5080546000825590600052602060002090810190611a0d91905b80821115612cfa5760008155600101612ce6565b5090565b80356001600160a01b038116811461053157600080fd5b803560ff8116811461053157600080fd5b600060208284031215612d37578081fd5b61170d82612cfe565b60008060008060008060c08789031215612d58578182fd5b612d6187612cfe565b955060208701359450612d7660408801612d15565b9350612d8460608801612d15565b92506080870135915060a0870135612d9b816139ac565b809150509295509295509295565b600060208284031215612dba578081fd5b815161170d816139ac565b600060208284031215612dd6578081fd5b5035919050565b60008060408385031215612def578182fd5b82359150612dff60208401612cfe565b90509250929050565b60008060408385031215612e1a578182fd5b50508035926020909101359150565b60008060408385031215612e3b578182fd5b82359150612dff60208401612d15565b600060208284031215612e5c578081fd5b81356001600160e01b03198116811461170d578182fd5b600060208284031215612e84578081fd5b5051919050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612ec3816017850160208801613938565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612ef4816028840160208801613938565b01602801949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0396909616865260ff948516602087015292909316604085015215156060840152608083019190915260a082015260c00190565b901515815260200190565b90815260200190565b6000602082528251806020840152612fbf816040850160208701613938565b601f01601f19169190910160400192915050565b6020808252818101527f6f776e65722063616e6e6f7420626520746865207a65726f2061646472657373604082015260600190565b6020808252601e908201527f696e73756666696369656e742076616c6964206368756e6b20636f756e740000604082015260600190565b6020808252818101527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604082015260600190565b6020808252601590820152746f6e6c79207061757365722063616e20706175736560581b604082015260600190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252602e908201527f63757272656e7420746f74616c206f75747061796d656e742073686f756c642060408201526d6e6576657220646563726561736560901b606082015260800190565b6020808252818101527f6e6f726d616c6973656442616c616e63652063616e6e6f74206265207a65726f604082015260600190565b60208082526032908201527f6f6e6c792061646d696e6973747261746f722063616e20736574206d696e696d604082015271756d2076616c696469747920626c6f636b7360701b606082015260800190565b60208082526039908201527f4f7264657253746174697374696373547265652834303529202d2056616c756560408201527f20746f20696e736572742063616e6e6f74206265207a65726f00000000000000606082015260800190565b6020808252601490820152730d2dcecc2d8d2c840c4eac6d6cae840c8cae0e8d60631b604082015260600190565b60208082526017908201527f6f6e6c79207061757365722063616e20756e7061757365000000000000000000604082015260600190565b6020808252600f908201526e3737ba103130ba31b41037bbb732b960891b604082015260600190565b60208082526039908201527f4f7264657253746174697374696373547265652834303729202d2056616c756560408201527f20746f2064656c6574652063616e6e6f74206265207a65726f00000000000000606082015260800190565b60208082526035908201527f696e73756666696369656e7420696e697469616c2062616c616e636520666f7260408201527420323468206d696e696d756d2076616c696469747960581b606082015260800190565b60208082526031908201527f6f6e6c792072656469737472696275746f722063616e20776974686472617720604082015270199c9bdb481d1a194818dbdb9d1c9858dd607a1b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252603a908201527f4f7264657253746174697374696373547265652834303829202d2056616c756560408201527f20746f2064656c65746520646f6573206e6f742065786973742e000000000000606082015260800190565b60208082526023908201527f626174636820646f6573206e6f74206578697374206f722068617320657870696040820152621c995960ea1b606082015260800190565b602080825260129082015271626174636820697320696d6d757461626c6560701b604082015260600190565b6020808252601f908201527f626174636820646f6573206e6f74206578697374206f72206578706972656400604082015260600190565b602080825260149082015273626174636820616c72656164792065786973747360601b604082015260600190565b60208082526018908201527f626174636820746f6f20736d616c6c20746f2072656e65770000000000000000604082015260600190565b60208082526049908201527f72656d61696e696e672062616c616e636520616674657220646570746820696e60408201527f63726561736520776f756c646e2774206d65657420323468206d696e696d756d6060820152682076616c696469747960b81b608082015260a00190565b60208082526023908201527f6f6e6c79207072696365206f7261636c652063616e207365742074686520707260408201526269636560e81b606082015260800190565b60208082526015908201527418985d18da08185b1c9958591e48195e1c1a5c9959605a1b604082015260600190565b6020808252604f908201527f4f7264657253746174697374696373547265652834303629202d2056616c756560408201527f20616e64204b65792070616972206578697374732e2043616e6e6f742062652060608201526e34b739b2b93a32b21030b3b0b4b71760891b608082015260a00190565b60208082526010908201526f1b9bc818985d18da195cc8195e1a5cdd60821b604082015260600190565b6020808252601490820152736465707468206e6f7420696e6372656173696e6760601b604082015260600190565b60208082526030908201527f4f7264657253746174697374696373547265652834303429202d2056616c756560408201526f103237b2b9903737ba1032bc34b9ba1760811b606082015260800190565b6020808252600f908201526e3330b4b632b2103a3930b739b332b960891b604082015260600190565b60208082526026908201527f6f6e6c792061646d696e6973747261746f722063616e2075736520636f7079206040820152651b595d1a1bd960d21b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60208082526037908201527f696e73756666696369656e7420746f707065642075702062616c616e6365206660408201527f6f7220323468206d696e696d756d2076616c6964697479000000000000000000606082015260800190565b918252602082015260400190565b95865260208601949094526001600160a01b0392909216604085015260ff9081166060850152166080830152151560a082015260c00190565b60ff91909116815260200190565b60ff929092168252602082015260400190565b600082198211156138ba576138ba613996565b500190565b6000826138da57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156138f9576138f9613996565b500290565b60008282101561391057613910613996565b500390565b600060ff821660ff84168082101561392f5761392f613996565b90039392505050565b60005b8381101561395357818101518382015260200161393b565b838111156123b05750506000910152565b60008161397357613973613996565b506000190190565b600060001982141561398f5761398f613996565b5060010190565b634e487b7160e01b600052601160045260246000fd5b8015158114611a0d57600080fdfea2646970667358221220c050f2cfa3d87f1ff18cc45c52096dd8551ce58bbbdc63dcd6e6d42495074a5964736f6c63430008010033 -INCENTIVES_PRICE_ORACLE_BYTECODE=0x61040060018190556101a06040526000608090815261040c60a05261040360c05261040160e052610100919091526103ff610120526103fd610140526103f9610160526103f46101805262000059906002906009620001be565b5060038054640100000000600461ffff199092169190911763ffff00001916620400001760ff60201b19161790553480156200009457600080fd5b506040516200100c3803806200100c833981016040819052620000b79162000248565b620000c4600082620000f7565b50600380546001600160a01b039092166501000000000002600160281b600160c81b03199092169190911790556200027f565b62000103828262000107565b5050565b62000113828262000191565b62000103576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200014d620001ba565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b82805482825590600052602060002090810192821562000202579160200282015b8281111562000202578251829061ffff16905591602001919060010190620001df565b506200021092915062000214565b5090565b5b8082111562000210576000815560010162000215565b80516001600160a01b03811681146200024357600080fd5b919050565b600080604083850312156200025b578182fd5b62000266836200022b565b915062000276602084016200022b565b90509250929050565b610d7d806200028f6000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c806391b7f5ed116100a2578063b187bd2611610071578063b187bd26146101ec578063d547741f146101f4578063e0632c6414610207578063f7b188a51461021c578063fb8d8101146102245761010a565b806391b7f5ed146101b657806391d14854146101c95780639d1b464a146101dc578063a217fddf146101e45761010a565b806336568abe116100de57806336568abe1461018057806372bf079e146101935780637f386b6c146101a65780638456cb59146101ae5761010a565b806280248f1461010f57806301ffc9a714610138578063248a9ca3146101585780632f2ff15d1461016b575b600080fd5b61012261011d366004610a08565b61022c565b60405161012f9190610b02565b60405180910390f35b61014b610146366004610a5a565b61024d565b60405161012f9190610af7565b610122610166366004610a08565b610278565b61017e610179366004610a20565b61028d565b005b61017e61018e366004610a20565b6102ae565b61017e6101a1366004610a08565b6102fd565b6101226104b2565b61017e6104b8565b61017e6101c4366004610a08565b6104f6565b61014b6101d7366004610a20565b6105da565b610122610603565b610122610609565b61014b61060e565b61017e610202366004610a20565b61061f565b61020f61063b565b60405161012f9190610b0b565b61017e610653565b61012261068a565b6002818154811061023c57600080fd5b600091825260209091200154905081565b60006001600160e01b03198216637965db0b60e01b14806102725750610272826106ae565b92915050565b60009081526020819052604090206001015490565b61029682610278565b61029f816106c7565b6102a983836106d8565b505050565b6102b661075d565b6001600160a01b0316816001600160a01b0316146102ef5760405162461bcd60e51b81526004016102e690610c1e565b60405180910390fd5b6102f98282610761565b5050565b600354640100000000900460ff166104af576103397f74b366a297145849fa9687e16ecad1e3a60cf84f6c2256ae73e20a9f76669804336105da565b6103555760405162461bcd60e51b81526004016102e690610b87565b61040081806103765760405162461bcd60e51b81526004016102e690610bbe565b6003546000906103929061ffff62010000820481169116610c6d565b90508061ffff168411156103a8578061ffff1691505b6000600283815481106103cb57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905083600154826103e79190610ccb565b6103f19190610cab565b60018190556104001115610406576104006001555b6003546001546040516391b7f5ed60e01b8152650100000000009092046001600160a01b0316916391b7f5ed9161043f91600401610b02565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b505050507fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a6001546040516104a29190610b02565b60405180910390a1505050505b50565b61040081565b6104c36000336105da565b6104df5760405162461bcd60e51b81526004016102e690610be7565b6003805464ff000000001916640100000000179055565b6105016000336105da565b61051d5760405162461bcd60e51b81526004016102e690610be7565b6001819055610400811015610533576104006001555b6003546001546040516391b7f5ed60e01b8152650100000000009092046001600160a01b0316916391b7f5ed9161056c91600401610b02565b600060405180830381600087803b15801561058657600080fd5b505af115801561059a573d6000803e3d6000fd5b505050507fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a6001546040516105cf9190610b02565b60405180910390a150565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60015481565b600081565b600354640100000000900460ff1681565b61062882610278565b610631816106c7565b6102a98383610761565b6003546501000000000090046001600160a01b031681565b61065e6000336105da565b61067a5760405162461bcd60e51b81526004016102e690610be7565b6003805464ff0000000019169055565b7f74b366a297145849fa9687e16ecad1e3a60cf84f6c2256ae73e20a9f7666980481565b6001600160e01b031981166301ffc9a760e01b14919050565b6104af816106d361075d565b6107e4565b6106e282826105da565b6102f9576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561071961075d565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3390565b61076b82826105da565b156102f9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191690556107a061075d565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6107ee82826105da565b6102f9576107fb8161083d565b61080683602061084f565b604051602001610817929190610a82565b60408051601f198184030181529082905262461bcd60e51b82526102e691600401610b1f565b60606102726001600160a01b03831660145b6060600061085e836002610ccb565b610869906002610c93565b67ffffffffffffffff81111561088f57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156108b9576020820181803683370190505b509050600360fc1b816000815181106108e257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061091f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000610943846002610ccb565b61094e906001610c93565b90505b60018111156109e2576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061099057634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106109b457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936109db81610d1a565b9050610951565b508315610a015760405162461bcd60e51b81526004016102e690610b52565b9392505050565b600060208284031215610a19578081fd5b5035919050565b60008060408385031215610a32578081fd5b8235915060208301356001600160a01b0381168114610a4f578182fd5b809150509250929050565b600060208284031215610a6b578081fd5b81356001600160e01b031981168114610a01578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351610aba816017850160208801610cea565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610aeb816028840160208801610cea565b01602801949350505050565b901515815260200190565b90815260200190565b6001600160a01b0391909116815260200190565b6000602082528251806020840152610b3e816040850160208701610cea565b601f01601f19169190910160400192915050565b6020808252818101527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604082015260600190565b6020808252601d908201527f63616c6c6572206973206e6f7420612070726963652075706461746572000000604082015260600190565b6020808252600f908201526e756e6578706563746564207a65726f60881b604082015260600190565b60208082526017908201527f63616c6c6572206973206e6f74207468652061646d696e000000000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b600061ffff808316818516808303821115610c8a57610c8a610d31565b01949350505050565b60008219821115610ca657610ca6610d31565b500190565b600082610cc657634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610ce557610ce5610d31565b500290565b60005b83811015610d05578181015183820152602001610ced565b83811115610d14576000848401525b50505050565b600081610d2957610d29610d31565b506000190190565b634e487b7160e01b600052601160045260246000fdfea264697066735822122022df81412178edd827ad215c8bd41362a53f065ffba27e92afecc8554b51204f64736f6c63430008010033 +POSTAGE_STAMP_BYTECODE=0x6080604052614380600a55615dc0600b553480156200001d57600080fd5b5060405162003beb38038062003beb83398101604081905262000040916200019c565b6001805460ff19908116909155600580546001600160a01b0319166001600160a01b0386161790556007805490911660ff841617905562000083600082620000b8565b620000af7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000b8565b505050620001eb565b620000c48282620000c8565b5050565b620000d4828262000152565b620000c4576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200010e6200017b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b80516001600160a01b03811681146200019757600080fd5b919050565b600080600060608486031215620001b1578283fd5b620001bc846200017f565b9250602084015160ff81168114620001d2578283fd5b9150620001e2604085016200017f565b90509250925092565b6139f080620001fb6000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c806381e508b911610151578063b998902f116100c3578063dd483cfb11610087578063dd483cfb146104ce578063df674385146104d6578063e63ab1e9146104e9578063ea612e1f146104f1578063f7b188a5146104f9578063f90ce5ba1461050157610269565b8063b998902f14610468578063c81e25ab14610470578063d547741f14610495578063d71ba7c4146104a8578063d968f44b146104bb57610269565b806391b7f5ed1161011557806391b7f5ed1461041757806391d148541461042a578063a217fddf1461043d578063a6471a1d14610445578063a81064ee1461044d578063b67644b91461045557610269565b806381e508b9146103e45780638456cb59146103f75780638a5e8e32146103ff5780638b82547f14610407578063906978421461040f57610269565b8063420fc4db116101ea57806351b17cd0116101ae57806351b17cd01461039357806351cff8d91461039b5780635239af71146103ae5780635c975abb146103c1578063628de877146103c9578063711bfa2b146103dc57610269565b8063420fc4db1461034a57806344beae8e1461035257806347aab79b1461036557806348652ce7146103785780634ba2363a1461038b57610269565b8063248a9ca311610231578063248a9ca3146102e957806324b570a9146102fc5780632f2ff15d1461030457806332ac57dd1461031757806336568abe1461033757610269565b806301ffc9a71461026e578063053f14da146102975780631889b99b146102ac57806318c8572f146102b45780632182ddb1146102c9575b600080fd5b61028161027c366004612e4b565b610509565b60405161028e9190612f8c565b60405180910390f35b61029f610536565b60405161028e9190612f97565b61028161053c565b6102c76102c2366004612d40565b61054f565b005b6102dc6102d7366004612dc5565b610833565b60405161028e9190612f00565b61029f6102f7366004612dc5565b61084e565b61029f610863565b6102c7610312366004612ddd565b61090c565b61032a610325366004612dc5565b61092d565b60405161028e9190613886565b6102c7610345366004612ddd565b610949565b6102dc61098f565b61032a610360366004612dc5565b61099e565b6102c7610373366004612e29565b6109ba565b6102c7610386366004612dc5565b610bc9565b61029f610bf5565b61029f610bfb565b6102c76103a9366004612d26565b610c35565b6102c76103bc366004612d40565b610d68565b610281611091565b6102c76103d7366004612dc5565b61109a565b610281611224565b61029f6103f2366004612dc5565b61124f565b6102c7611265565b61029f6112b5565b61029f6112bb565b61029f6112f7565b6102c7610425366004612dc5565b61130e565b610281610438366004612ddd565b6113ac565b61029f6113d7565b61029f6113dc565b61032a611400565b6102c7610463366004612e08565b611409565b61029f611618565b61048361047e366004612dc5565b61163c565b60405161028e96959493929190612f51565b6102c76104a3366004612ddd565b611689565b61029f6104b6366004612dc5565b6116a5565b6102816104c9366004612dc5565b611714565b61029f611730565b61029f6104e4366004612dc5565b611736565b61029f61174b565b61029f61176f565b6102c7611775565b61029f6117c3565b60006001600160e01b03198216637965db0b60e01b148061052e575061052e826117c9565b90505b919050565b600b5481565b600061054860036117e2565b1590505b90565b6105576117f2565b6105626000336113ac565b6105875760405162461bcd60e51b815260040161057e9061374d565b60405180910390fd5b6001600160a01b0386166105ad5760405162461bcd60e51b815260040161057e90612fd3565b60ff8316158015906105c457508360ff168360ff16105b6105e05760405162461bcd60e51b815260040161057e90613203565b6000828152600260205260409020546001600160a01b0316156106155760405162461bcd60e51b815260040161057e906134c1565b6000610627600160ff87161b876138df565b6005546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9061065c90339030908690600401612f14565b602060405180830381600087803b15801561067657600080fd5b505af115801561068a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ae9190612da9565b6106ca5760405162461bcd60e51b815260040161057e90613724565b6000866106d5610bfb565b6106df91906138a7565b90508560ff166001901b600860008282546106fa91906138a7565b90915550506040805160c0810182526001600160a01b038a8116825260ff89811660208085019182528a831685870190815289151560608701908152608087018981524360a0890190815260008e815260029586905299909920975188549551935192516001600160a01b031990961697169690961760ff60a01b1916600160a01b928616929092029190911760ff60a81b1916600160a81b91909416029290921760ff60b01b1916600160b01b91151591909102178355905160018301559151910155806107db5760405162461bcd60e51b815260040161057e9061311f565b6107e760038583611817565b837f9b088e2c89b322a3c1d81515e1c88db3d386d022926f0e2d0b9b5813b7413d5883838b8a8a896040516108219695949392919061384d565b60405180910390a25050505050505050565b6000908152600260205260409020546001600160a01b031690565b60009081526020819052604090206001015490565b600061087060001961109a565b6005546040516370a0823160e01b81526000916001600160a01b0316906370a08231906108a1903090600401612f00565b60206040518083038186803b1580156108b957600080fd5b505afa1580156108cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f19190612e73565b905080600954106109025780610906565b6009545b91505090565b6109158261084e565b61091e816119fc565b6109288383611a10565b505050565b600090815260026020526040902054600160a81b900460ff1690565b610951611a95565b6001600160a01b0316816001600160a01b0316146109815760405162461bcd60e51b815260040161057e90613793565b61098b8282611a99565b5050565b6005546001600160a01b031681565b600090815260026020526040902054600160a01b900460ff1690565b6109c26117f2565b600082815260026020526040902080546001600160a01b031633146109f95760405162461bcd60e51b815260040161057e90613268565b60075460ff8084169116108015610a1d5750805460ff808416600160a01b90920416105b610a395760405162461bcd60e51b815260040161057e906136a6565b8054600160b01b900460ff1615610a625760405162461bcd60e51b815260040161057e9061345e565b610a6a610bfb565b816001015411610a8c5760405162461bcd60e51b815260040161057e906135d8565b8054600090610aa590600160a01b900460ff1684613915565b90506000600160ff83161b610ab9866116a5565b610ac391906138bf565b9050610acd6112f7565b811015610aec5760405162461bcd60e51b815260040161057e90613526565b610af760001961109a565b8254610b1790600160ff600160a01b909204821681901b9187161b6138fe565b60086000828254610b2891906138a7565b90915550506001830154610b40906003908790611b1c565b825460ff60a01b1916600160a01b60ff86160217835543600284015580610b65610bfb565b610b6f91906138a7565b60018401819055610b84906003908790611817565b847faf27998ec15e9d3809edad41aec1b5551d8412e71bd07c91611a0237ead1dc8e858560010154604051610bba929190613894565b60405180910390a25050505050565b610bd46000336113ac565b610bf05760405162461bcd60e51b815260040161057e90613154565b600a55565b60095481565b600080600c5443610c0c91906138fe565b9050600081600b54610c1e91906138df565b905080600654610c2e91906138a7565b9250505090565b610c5f7f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb0828336113ac565b610c7b5760405162461bcd60e51b815260040161057e90613343565b6000610c85610863565b60055460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb90610cb89085908590600401612f38565b602060405180830381600087803b158015610cd257600080fd5b505af1158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a9190612da9565b610d265760405162461bcd60e51b815260040161057e90613724565b7ff5d8f9b1e7af440e1e7915f4693ccc004d1461a7dafd17ea7347d03decf298e18282604051610d57929190612f38565b60405180910390a150506000600955565b610d706117f2565b6001600160a01b038616610d965760405162461bcd60e51b815260040161057e90612fd3565b60ff831615801590610db0575060075460ff808516911611155b8015610dc157508360ff168360ff16105b610ddd5760405162461bcd60e51b815260040161057e90613203565b60003383604051602001610df2929190612f38565b60408051601f198184030181529181528151602092830120600081815260029093529120549091506001600160a01b031615610e405760405162461bcd60e51b815260040161057e906134c1565b610e486112f7565b861015610e675760405162461bcd60e51b815260040161057e906132ee565b6000610e79600160ff88161b886138df565b6005546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd90610eae90339030908690600401612f14565b602060405180830381600087803b158015610ec857600080fd5b505af1158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f009190612da9565b610f1c5760405162461bcd60e51b815260040161057e90613724565b600087610f27610bfb565b610f3191906138a7565b9050610f3e60001961109a565b8660ff166001901b60086000828254610f5791906138a7565b90915550506040805160c0810182526001600160a01b038b8116825260ff8a811660208085019182528b83168587019081528a151560608701908152608087018981524360a0890190815260008d815260029586905299909920975188549551935192516001600160a01b031990961697169690961760ff60a01b1916600160a01b928616929092029190911760ff60a81b1916600160a81b91909416029290921760ff60b01b1916600160b01b91151591909102178355905160018301559151910155806110385760405162461bcd60e51b815260040161057e9061311f565b61104460038483611817565b827f9b088e2c89b322a3c1d81515e1c88db3d386d022926f0e2d0b9b5813b7413d5883838c8b8b8a60405161107e9695949392919061384d565b60405180910390a2505050505050505050565b60015460ff1690565b600d5460005b828110156111cc576110b061053c565b156110c5576110bd610bfb565b600d556111cc565b60006110cf6112bb565b905060006110dc826116a5565b11156110f3576110ea610bfb565b600d55506111cc565b600081815260026020526040902080546008546001600160a01b90920460ff169190911b908111156111375760405162461bcd60e51b815260040161057e90613008565b806008600082825461114991906138fe565b9091555050600182015461115e9086906138fe565b61116890826138df565b6009600082825461117991906138a7565b90915550506001820154611191906003908590611b1c565b50506000908152600260208190526040822080546001600160b81b0319168155600181018390550155806111c48161397b565b9150506110a0565b81600d5410156111ee5760405162461bcd60e51b815260040161057e906130d1565b81600d546111fc91906138fe565b60085461120991906138df565b6009600082825461121a91906138a7565b9091555050505050565b600061122e61053c565b1561123b5750600061054c565b60006112486104b66112bb565b1115905090565b6000908152600260208190526040909120015490565b61128f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336113ac565b6112ab5760405162461bcd60e51b815260040161057e90613074565b6112b3611e98565b565b60085481565b6000806112c86003611eec565b9050600081116112ea5760405162461bcd60e51b815260040161057e9061367c565b6109066003826000611f2e565b6000600b54600a5461130991906138df565b905090565b6113387fdd24a0f121e5ab7c3e97c63eaaf859e0b46792c3e0edfd86e2b3ad50f63011d8336113ac565b6113545760405162461bcd60e51b815260040161057e90613595565b600b541561136857611364610bfb565b6006555b600b81905543600c556040517fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a906113a1908390612f97565b60405180910390a150565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b600081565b7f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb082881565b60075460ff1681565b6114116117f2565b600082815260026020526040902080546001600160a01b03166114465760405162461bcd60e51b815260040161057e9061341b565b61144e610bfb565b8160010154116114705760405162461bcd60e51b815260040161057e906135d8565b600754815460ff918216600160a01b909104909116116114a25760405162461bcd60e51b815260040161057e906134ef565b6114aa6112f7565b826114b4856116a5565b6114be91906138a7565b10156114dc5760405162461bcd60e51b815260040161057e906137e2565b80546000906114f9906001600160a01b90910460ff161b846138df565b6005546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9061152e90339030908690600401612f14565b602060405180830381600087803b15801561154857600080fd5b505af115801561155c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115809190612da9565b61159c5760405162461bcd60e51b815260040161057e90613724565b60018201546115af906003908690611b1c565b8282600101546115bf91906138a7565b600183018190556115d4906003908690611817565b837faf5756c62d6c0722ef9be1f82bef97ab06ea5aea7f3eb8ad348422079f01d88d82846001015460405161160a92919061383f565b60405180910390a250505050565b7fdd24a0f121e5ab7c3e97c63eaaf859e0b46792c3e0edfd86e2b3ad50f63011d881565b60026020819052600091825260409091208054600182015491909201546001600160a01b0383169260ff600160a01b8204811693600160a81b8304821693600160b01b9093049091169186565b6116928261084e565b61169b816119fc565b6109288383611a99565b600081815260026020526040812080546001600160a01b03166116da5760405162461bcd60e51b815260040161057e9061348a565b6116e2610bfb565b8160010154116116f6576000915050610531565b6116fe610bfb565b816001015461170d91906138fe565b9392505050565b600090815260026020526040902054600160b01b900460ff1690565b600a5481565b60009081526002602052604090206001015490565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b600d5481565b61179f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336113ac565b6117bb5760405162461bcd60e51b815260040161057e90613231565b6112b3611f9d565b600c5481565b6001600160e01b031981166301ffc9a760e01b14919050565b600061052e828360000154611fd8565b6117fa611091565b156112b35760405162461bcd60e51b815260040161057e90613394565b806118345760405162461bcd60e51b815260040161057e906131a6565b61183f838383612004565b1561185c5760405162461bcd60e51b815260040161057e90613607565b82546000905b801561193d578091508083101561188c576000908152600180860160205260409091200154611914565b808311156118ad576000908152600185016020526040902060020154611914565b808314156119145760008181526001808701602090815260408320600401805480840182558185529184209091018790559183905290546118ee91906138fe565b600091825260018601602090815260408084208785526005019091529091205550610928565b600082815260018601602052604081206006018054916119338361397b565b9190505550611862565b600083815260018087016020908152604083208581558083018490556002810184905560038101805460ff191684179055600481018054808501825581865292909420909101879055915461199291906138fe565b6000868152600583016020526040902055826119b0578386556119ea565b828410156119d357600083815260018088016020526040909120018490556119ea565b600083815260018701602052604090206002018490555b6119f48685612078565b505050505050565b611a0d81611a08611a95565b6122e3565b50565b611a1a82826113ac565b61098b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611a51611a95565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3390565b611aa382826113ac565b1561098b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055611ad8611a95565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b80611b395760405162461bcd60e51b815260040161057e90613291565b611b44838383612004565b611b605760405162461bcd60e51b815260040161057e906133be565b6000818152600180850160209081526040808420868552600581019092528320546004820180549294919391929091611b98916138fe565b81548110611bb657634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080836004018381548110611be757634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600585019091526040902082905560048301805480611c2a57634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055600080846004018054905060001415611e8e5760008681526001808a01602052604090912001541580611c8457506000868152600189016020526040902060020154155b15611c90575084611cd8565b5060008581526001880160205260409020600201545b60008181526001808a016020526040909120015415611cd8576000908152600180890160205260409091200154611ca6565b60008181526001808a016020526040909120015415611d0c5760008181526001808a01602052604090912001549150611d23565b600081815260018901602052604090206002015491505b60008181526001890160205260408082205484835291208190558015611d955760008181526001808b0160205260409091200154821415611d795760008181526001808b01602052604090912001839055611d90565b600081815260018a01602052604090206002018390555b611d99565b8289555b600082815260018a01602052604090206003015460ff1615878314611e2c57611dc38a848a61233c565b600088815260018b8101602052604080832080830154878552828520938401819055845281842087905560028082015490840181905584529083208690556003908101549286905201805460ff191660ff9092161515919091179055919691611e2c8a896123b6565b8015611e3c57611e3c8a85612423565b611e468a836123b6565b60008381526001808c01602052604082208281559081018290556002810182905560038101805460ff1916905590611e816004830182612ccc565b6006820160009055505050505b5050505050505050565b611ea06117f2565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611ed5611a95565b604051611ee29190612f00565b60405180910390a1565b805480611efb57506000610531565b5b600081815260018084016020526040909120015415610531576000908152600180830160205260409091200154611efc565b6000611f3a848461283e565b611f565760405162461bcd60e51b815260040161057e906136d4565b60008381526001850160205260409020600401805483908110611f8957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490509392505050565b611fa5612885565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611ed5611a95565b6000818152600183016020526040812060068101546004820154611ffc91906138a7565b949350505050565b6000612010848361283e565b61201c5750600061170d565b60008281526001850160209081526040808320868452600581019092529091205460049091018054859290811061206357634e487b7160e01b600052603260045260246000fd5b90600052602060002001541490509392505050565b60005b825482148015906120a55750600082815260018401602052604080822054825290206003015460ff165b156122c15760008281526001808501602052604080832054808452818420548452922001548114156121c85760008181526001850160205260408082205482528082206002015480835291206003015490925060ff161561214e576000818152600180860160205260408083206003808201805460ff199081169091558786528386208201805482169055825486529285200180549092169092179055908290525492506121c3565b60008181526001850160205260409020600201548314156121765780925061217684846128a9565b50600082815260018085016020526040808320548084528184206003808201805460ff199081169091558254875293862001805490931690931790915591829052546121c3908590612a27565b6122bb565b6000818152600180860160205260408083205483528083209091015480835291206003015490925060ff1615612246576000818152600180860160205260408083206003808201805460ff199081169091558786528386208201805482169055825486529285200180549092169092179055908290525492506122bb565b600081815260018086016020526040909120015483141561226e5780925061226e8484612a27565b50600082815260018085016020526040808320548084528184206003808201805460ff199081169091558254875293862001805490931690931790915591829052546122bb9085906128a9565b5061207b565b505080546000908152600190910160205260409020600301805460ff19169055565b6122ed82826113ac565b61098b576122fa81612b08565b612305836020612b1a565b604051602001612316929190612e8b565b60408051601f198184030181529082905262461bcd60e51b825261057e91600401612fa0565b600081815260018401602052604080822054848352912081905580612363578284556123b0565b600081815260018086016020526040909120015482141561239957600081815260018086016020526040909120018390556123b0565b600081815260018501602052604090206002018390555b50505050565b801561098b5760008181526001830160205260409020600201546123db908390611fd8565b60008281526001808501602052604090912001546123fa908490611fd8565b61240491906138a7565b60009182526001830160205260409091206006810191909155546123b6565b60005b8254821480159061244b5750600082815260018401602052604090206003015460ff16155b1561281f5760008281526001808501602052604080832054808452922001548314156126485760008181526001850160205260408082206002015480835291206003015490925060ff16156124ef576000828152600180860160205260408083206003908101805460ff199081169091558585529190932090920180549092161790556124d884826128a9565b600081815260018501602052604090206002015491505b60008281526001808601602052604080832090910154825290206003015460ff1615801561253a5750600082815260018501602052604080822060020154825290206003015460ff16155b1561256757600082815260018581016020526040909120600301805460ff19169091179055915081612643565b600082815260018501602052604080822060020154825290206003015460ff166125e4576000828152600180860160205260408083208083015484529083206003908101805460ff19908116909155938690520180549092161790556125cd8483612a27565b600081815260018501602052604090206002015491505b600081815260018501602052604080822060039081018054868552838520808401805460ff909316151560ff19938416179055825482169092556002909101548452919092209091018054909116905561263e84826128a9565b835492505b612819565b6000818152600180860160205260408083209091015480835291206003015490925060ff16156126c7576000828152600180860160205260408083206003908101805460ff199081169091558585529190932090920180549092161790556126b08482612a27565b600081815260018086016020526040909120015491505b600082815260018501602052604080822060020154825290206003015460ff16158015612712575060008281526001808601602052604080832090910154825290206003015460ff16155b1561273f57600082815260018581016020526040909120600301805460ff19169091179055915081612819565b60008281526001808601602052604080832090910154825290206003015460ff166127be57600082815260018086016020526040808320600281015484529083206003908101805460ff19908116909155938690520180549092161790556127a784836128a9565b600081815260018086016020526040909120015491505b60008181526001808601602052604080832060039081018054878652838620808401805460ff909316151560ff199384161790558254821690925593015484529220909101805490911690556128148482612a27565b835492505b50612426565b506000908152600190910160205260409020600301805460ff19169055565b60008161284d575060006113d1565b825482141561285e575060016113d1565b60008281526001840160205260409020541561287c575060016113d1565b50600092915050565b61288d611091565b6112b35760405162461bcd60e51b815260040161057e906130a3565b6000818152600180840160205260408083206002810180549154828652928520909301549385905291839055909180156128f157600081815260018601602052604090208490555b60008381526001860160205260409020829055816129115782855561295e565b6000828152600180870160205260409091200154841415612947576000828152600180870160205260409091200183905561295e565b600082815260018601602052604090206002018390555b60008381526001808701602052604080832090910186905585825290208381556002015461298d908690611fd8565b60008581526001808801602052604090912001546129ac908790611fd8565b6129b691906138a7565b60008581526001870160205260408082206006019290925584815220600201546129e1908690611fd8565b6000848152600180880160205260409091200154612a00908790611fd8565b612a0a91906138a7565b600093845260019095016020525050604090206006019190915550565b60008181526001808401602052604080832091820180549254838552918420600201549385905283905590918015612a6d57600081815260018601602052604090208490555b6000838152600186016020526040902082905581612a8d57828555612ada565b6000828152600186016020526040902060020154841415612ac35760008281526001860160205260409020600201839055612ada565b600082815260018087016020526040909120018390555b600083815260018601602052604080822060029081018790558683529120848155015461298d908690611fd8565b606061052e6001600160a01b03831660145b60606000612b298360026138df565b612b349060026138a7565b67ffffffffffffffff811115612b5a57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612b84576020820181803683370190505b509050600360fc1b81600081518110612bad57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612bea57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000612c0e8460026138df565b612c199060016138a7565b90505b6001811115612cad576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612c5b57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110612c7f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93612ca681613964565b9050612c1c565b50831561170d5760405162461bcd60e51b815260040161057e9061303f565b5080546000825590600052602060002090810190611a0d91905b80821115612cfa5760008155600101612ce6565b5090565b80356001600160a01b038116811461053157600080fd5b803560ff8116811461053157600080fd5b600060208284031215612d37578081fd5b61170d82612cfe565b60008060008060008060c08789031215612d58578182fd5b612d6187612cfe565b955060208701359450612d7660408801612d15565b9350612d8460608801612d15565b92506080870135915060a0870135612d9b816139ac565b809150509295509295509295565b600060208284031215612dba578081fd5b815161170d816139ac565b600060208284031215612dd6578081fd5b5035919050565b60008060408385031215612def578182fd5b82359150612dff60208401612cfe565b90509250929050565b60008060408385031215612e1a578182fd5b50508035926020909101359150565b60008060408385031215612e3b578182fd5b82359150612dff60208401612d15565b600060208284031215612e5c578081fd5b81356001600160e01b03198116811461170d578182fd5b600060208284031215612e84578081fd5b5051919050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612ec3816017850160208801613938565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612ef4816028840160208801613938565b01602801949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0396909616865260ff948516602087015292909316604085015215156060840152608083019190915260a082015260c00190565b901515815260200190565b90815260200190565b6000602082528251806020840152612fbf816040850160208701613938565b601f01601f19169190910160400192915050565b6020808252818101527f6f776e65722063616e6e6f7420626520746865207a65726f2061646472657373604082015260600190565b6020808252601e908201527f696e73756666696369656e742076616c6964206368756e6b20636f756e740000604082015260600190565b6020808252818101527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604082015260600190565b6020808252601590820152746f6e6c79207061757365722063616e20706175736560581b604082015260600190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252602e908201527f63757272656e7420746f74616c206f75747061796d656e742073686f756c642060408201526d6e6576657220646563726561736560901b606082015260800190565b6020808252818101527f6e6f726d616c6973656442616c616e63652063616e6e6f74206265207a65726f604082015260600190565b60208082526032908201527f6f6e6c792061646d696e6973747261746f722063616e20736574206d696e696d604082015271756d2076616c696469747920626c6f636b7360701b606082015260800190565b60208082526039908201527f4f7264657253746174697374696373547265652834303529202d2056616c756560408201527f20746f20696e736572742063616e6e6f74206265207a65726f00000000000000606082015260800190565b6020808252601490820152730d2dcecc2d8d2c840c4eac6d6cae840c8cae0e8d60631b604082015260600190565b60208082526017908201527f6f6e6c79207061757365722063616e20756e7061757365000000000000000000604082015260600190565b6020808252600f908201526e3737ba103130ba31b41037bbb732b960891b604082015260600190565b60208082526039908201527f4f7264657253746174697374696373547265652834303729202d2056616c756560408201527f20746f2064656c6574652063616e6e6f74206265207a65726f00000000000000606082015260800190565b60208082526035908201527f696e73756666696369656e7420696e697469616c2062616c616e636520666f7260408201527420323468206d696e696d756d2076616c696469747960581b606082015260800190565b60208082526031908201527f6f6e6c792072656469737472696275746f722063616e20776974686472617720604082015270199c9bdb481d1a194818dbdb9d1c9858dd607a1b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252603a908201527f4f7264657253746174697374696373547265652834303829202d2056616c756560408201527f20746f2064656c65746520646f6573206e6f742065786973742e000000000000606082015260800190565b60208082526023908201527f626174636820646f6573206e6f74206578697374206f722068617320657870696040820152621c995960ea1b606082015260800190565b602080825260129082015271626174636820697320696d6d757461626c6560701b604082015260600190565b6020808252601f908201527f626174636820646f6573206e6f74206578697374206f72206578706972656400604082015260600190565b602080825260149082015273626174636820616c72656164792065786973747360601b604082015260600190565b60208082526018908201527f626174636820746f6f20736d616c6c20746f2072656e65770000000000000000604082015260600190565b60208082526049908201527f72656d61696e696e672062616c616e636520616674657220646570746820696e60408201527f63726561736520776f756c646e2774206d65657420323468206d696e696d756d6060820152682076616c696469747960b81b608082015260a00190565b60208082526023908201527f6f6e6c79207072696365206f7261636c652063616e207365742074686520707260408201526269636560e81b606082015260800190565b60208082526015908201527418985d18da08185b1c9958591e48195e1c1a5c9959605a1b604082015260600190565b6020808252604f908201527f4f7264657253746174697374696373547265652834303629202d2056616c756560408201527f20616e64204b65792070616972206578697374732e2043616e6e6f742062652060608201526e34b739b2b93a32b21030b3b0b4b71760891b608082015260a00190565b60208082526010908201526f1b9bc818985d18da195cc8195e1a5cdd60821b604082015260600190565b6020808252601490820152736465707468206e6f7420696e6372656173696e6760601b604082015260600190565b60208082526030908201527f4f7264657253746174697374696373547265652834303429202d2056616c756560408201526f103237b2b9903737ba1032bc34b9ba1760811b606082015260800190565b6020808252600f908201526e3330b4b632b2103a3930b739b332b960891b604082015260600190565b60208082526026908201527f6f6e6c792061646d696e6973747261746f722063616e2075736520636f7079206040820152651b595d1a1bd960d21b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60208082526037908201527f696e73756666696369656e7420746f707065642075702062616c616e6365206660408201527f6f7220323468206d696e696d756d2076616c6964697479000000000000000000606082015260800190565b918252602082015260400190565b95865260208601949094526001600160a01b0392909216604085015260ff9081166060850152166080830152151560a082015260c00190565b60ff91909116815260200190565b60ff929092168252602082015260400190565b600082198211156138ba576138ba613996565b500190565b6000826138da57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156138f9576138f9613996565b500290565b60008282101561391057613910613996565b500390565b600060ff821660ff84168082101561392f5761392f613996565b90039392505050565b60005b8381101561395357818101518382015260200161393b565b838111156123b05750506000910152565b60008161397357613973613996565b506000190190565b600060001982141561398f5761398f613996565b5060010190565b634e487b7160e01b600052601160045260246000fd5b8015158114611a0d57600080fdfea2646970667358221220e8fa1e0380874d5b1bc74412461b95a3ac4448026438f98fe33fdd29b751122264736f6c63430008010033 +INCENTIVES_PRICE_ORACLE_BYTECODE=0x615dc06001556101a06040526000608090815261040c60a05261040360c05261040160e052610400610100526103ff610120526103fd610140526103f9610160526103f46101805262000057906002906009620001bc565b5060038054640100000000600461ffff199092169190911763ffff00001916620400001760ff60201b19161790553480156200009257600080fd5b506040516200100a3803806200100a833981016040819052620000b59162000246565b620000c2600082620000f5565b50600380546001600160a01b039092166501000000000002600160281b600160c81b03199092169190911790556200027d565b62000101828262000105565b5050565b6200011182826200018f565b62000101576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200014b620001b8565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b82805482825590600052602060002090810192821562000200579160200282015b8281111562000200578251829061ffff16905591602001919060010190620001dd565b506200020e92915062000212565b5090565b5b808211156200020e576000815560010162000213565b80516001600160a01b03811681146200024157600080fd5b919050565b6000806040838503121562000259578182fd5b620002648362000229565b9150620002746020840162000229565b90509250929050565b610d7d806200028d6000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c806391b7f5ed116100a2578063b187bd2611610071578063b187bd26146101ec578063d547741f146101f4578063e0632c6414610207578063f7b188a51461021c578063fb8d8101146102245761010a565b806391b7f5ed146101b657806391d14854146101c95780639d1b464a146101dc578063a217fddf146101e45761010a565b806336568abe116100de57806336568abe1461018057806372bf079e146101935780637f386b6c146101a65780638456cb59146101ae5761010a565b806280248f1461010f57806301ffc9a714610138578063248a9ca3146101585780632f2ff15d1461016b575b600080fd5b61012261011d366004610a08565b61022c565b60405161012f9190610b02565b60405180910390f35b61014b610146366004610a5a565b61024d565b60405161012f9190610af7565b610122610166366004610a08565b610278565b61017e610179366004610a20565b61028d565b005b61017e61018e366004610a20565b6102ae565b61017e6101a1366004610a08565b6102fd565b6101226104b2565b61017e6104b8565b61017e6101c4366004610a08565b6104f6565b61014b6101d7366004610a20565b6105da565b610122610603565b610122610609565b61014b61060e565b61017e610202366004610a20565b61061f565b61020f61063b565b60405161012f9190610b0b565b61017e610653565b61012261068a565b6002818154811061023c57600080fd5b600091825260209091200154905081565b60006001600160e01b03198216637965db0b60e01b14806102725750610272826106ae565b92915050565b60009081526020819052604090206001015490565b61029682610278565b61029f816106c7565b6102a983836106d8565b505050565b6102b661075d565b6001600160a01b0316816001600160a01b0316146102ef5760405162461bcd60e51b81526004016102e690610c1e565b60405180910390fd5b6102f98282610761565b5050565b600354640100000000900460ff166104af576103397f74b366a297145849fa9687e16ecad1e3a60cf84f6c2256ae73e20a9f76669804336105da565b6103555760405162461bcd60e51b81526004016102e690610b87565b615dc081806103765760405162461bcd60e51b81526004016102e690610bbe565b6003546000906103929061ffff62010000820481169116610c6d565b90508061ffff168411156103a8578061ffff1691505b6000600283815481106103cb57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905083600154826103e79190610ccb565b6103f19190610cab565b6001819055615dc0111561040657615dc06001555b6003546001546040516391b7f5ed60e01b8152650100000000009092046001600160a01b0316916391b7f5ed9161043f91600401610b02565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b505050507fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a6001546040516104a29190610b02565b60405180910390a1505050505b50565b615dc081565b6104c36000336105da565b6104df5760405162461bcd60e51b81526004016102e690610be7565b6003805464ff000000001916640100000000179055565b6105016000336105da565b61051d5760405162461bcd60e51b81526004016102e690610be7565b6001819055615dc081101561053357615dc06001555b6003546001546040516391b7f5ed60e01b8152650100000000009092046001600160a01b0316916391b7f5ed9161056c91600401610b02565b600060405180830381600087803b15801561058657600080fd5b505af115801561059a573d6000803e3d6000fd5b505050507fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a6001546040516105cf9190610b02565b60405180910390a150565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60015481565b600081565b600354640100000000900460ff1681565b61062882610278565b610631816106c7565b6102a98383610761565b6003546501000000000090046001600160a01b031681565b61065e6000336105da565b61067a5760405162461bcd60e51b81526004016102e690610be7565b6003805464ff0000000019169055565b7f74b366a297145849fa9687e16ecad1e3a60cf84f6c2256ae73e20a9f7666980481565b6001600160e01b031981166301ffc9a760e01b14919050565b6104af816106d361075d565b6107e4565b6106e282826105da565b6102f9576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561071961075d565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3390565b61076b82826105da565b156102f9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191690556107a061075d565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6107ee82826105da565b6102f9576107fb8161083d565b61080683602061084f565b604051602001610817929190610a82565b60408051601f198184030181529082905262461bcd60e51b82526102e691600401610b1f565b60606102726001600160a01b03831660145b6060600061085e836002610ccb565b610869906002610c93565b67ffffffffffffffff81111561088f57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156108b9576020820181803683370190505b509050600360fc1b816000815181106108e257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061091f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000610943846002610ccb565b61094e906001610c93565b90505b60018111156109e2576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061099057634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106109b457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936109db81610d1a565b9050610951565b508315610a015760405162461bcd60e51b81526004016102e690610b52565b9392505050565b600060208284031215610a19578081fd5b5035919050565b60008060408385031215610a32578081fd5b8235915060208301356001600160a01b0381168114610a4f578182fd5b809150509250929050565b600060208284031215610a6b578081fd5b81356001600160e01b031981168114610a01578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351610aba816017850160208801610cea565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610aeb816028840160208801610cea565b01602801949350505050565b901515815260200190565b90815260200190565b6001600160a01b0391909116815260200190565b6000602082528251806020840152610b3e816040850160208701610cea565b601f01601f19169190910160400192915050565b6020808252818101527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604082015260600190565b6020808252601d908201527f63616c6c6572206973206e6f7420612070726963652075706461746572000000604082015260600190565b6020808252600f908201526e756e6578706563746564207a65726f60881b604082015260600190565b60208082526017908201527f63616c6c6572206973206e6f74207468652061646d696e000000000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b600061ffff808316818516808303821115610c8a57610c8a610d31565b01949350505050565b60008219821115610ca657610ca6610d31565b500190565b600082610cc657634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610ce557610ce5610d31565b500290565b60005b83811015610d05578181015183820152602001610ced565b83811115610d14576000848401525b50505050565b600081610d2957610d29610d31565b506000190190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220505be395e34cf7a01e47a44cca715f27ebffd9e56669c0eaba14b0bab56043b464736f6c63430008010033 REDISTRIBUTION_BYTECODE=0x6080604052600160065560026007556001600160801b0360085567016345785d8a0000600b556098600f553480156200003757600080fd5b5060405162003953380380620039538339810160408190526200005a91620001ce565b60018054600380546001600160a01b03199081166001600160a01b03898116919091179092556001600160a81b0319909216610100878316021790925560028054909116918416919091179055620000b4600082620000ea565b620000e07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000ea565b505050506200022a565b620000f68282620000fa565b5050565b62000106828262000184565b620000f6576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905562000140620001ad565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b80516001600160a01b0381168114620001c957600080fd5b919050565b60008060008060808587031215620001e4578384fd5b620001ef85620001b1565b9350620001ff60208601620001b1565b92506200020f60408601620001b1565b91506200021f60608601620001b1565b905092959194509250565b613719806200023a6000396000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c806382b39b1b1161013b578063c203ce52116100b8578063dfbf53ae1161007c578063dfbf53ae14610462578063e63ab1e91461046a578063ec5ffac214610472578063f7b188a51461047a578063fb00f2f31461048257610248565b8063c203ce5214610419578063ce98774514610421578063d1e8b63d14610434578063d547741f1461043c578063d9106d251461044f57610248565b80638d8b6428116100ff5780638d8b6428146103d057806391d14854146103d8578063a217fddf146103eb578063b78a52a7146103f3578063c1d810d51461040657610248565b806382b39b1b1461038b57806383220626146103b05780638456cb59146103b85780638a19c8bc146103c05780638b649b94146103c857610248565b80635c975abb116101c957806369da91141161018d57806369da91141461033b5780636f94aaf21461034357806372286cba1461034b57806377c75d10146103705780637fe019c61461038357610248565b80635c975abb146103135780635d4844ea1461031b57806362fd29ae1461032357806364c34a851461032b57806369bfac011461033357610248565b80632f3906da116102105780632f3906da146102d557806336568abe146102dd5780634a2e7598146102f05780634e3727d2146103035780634e71d92d1461030b57610248565b806301ffc9a71461024d5780631835009614610276578063248a9ca31461028b5780632a4e6249146102ab5780632f2ff15d146102c0575b600080fd5b61026061025b366004612b02565b610495565b60405161026d9190612d24565b60405180910390f35b61027e6104c2565b60405161026d9190612c56565b61029e6102993660046129f7565b6104d6565b60405161026d9190612d2f565b6102b36104eb565b60405161026d9190612ca0565b6102d36102ce366004612a0f565b6105e8565b005b610260610609565b6102d36102eb366004612a0f565b61065e565b6102d36102fe366004612a3e565b6106a4565b61029e610b82565b6102d3610b88565b610260611399565b61027e6113a2565b61029e6113b1565b61029e611434565b61029e6114c5565b61027e6114cb565b61029e6114da565b61035e6103593660046129f7565b6114e0565b60405161026d96959493929190612d38565b61026061037e3660046129f7565b611536565b61029e611809565b61039e6103993660046129f7565b61180f565b60405161026d96959493929190612c6a565b61029e611862565b6102d361186d565b61029e6118bd565b61029e6118d2565b6102606118d8565b6102606103e6366004612a0f565b611909565b61029e611932565b610260610401366004612a9d565b611937565b6102d3610414366004612ac8565b611ada565b61029e612031565b61029e61042f366004612ac8565b612037565b610260612070565b6102d361044a366004612a0f565b61209c565b6102d361045d366004612b42565b6120b8565b61039e6120ea565b61029e61210e565b61029e612132565b6102d3612138565b610260610490366004612a69565b612186565b60006001600160e01b03198216637965db0b60e01b14806104ba57506104ba826121bf565b90505b919050565b60015461010090046001600160a01b031681565b60009081526020819052604090206001015490565b60606104f56118d8565b61051a5760405162461bcd60e51b815260040161051190612e41565b60405180910390fd5b60006105246118bd565b9050600d5481146105475760405162461bcd60e51b81526004016105119061326f565b6005805480602002602001604051908101604052809291908181526020016000905b828210156105dd5760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460ff1660a08301529083529092019101610569565b505050509150505b90565b6105f1826104d6565b6105fa816121d8565b61060483836121ec565b505050565b600080600f544361061a919061368e565b90506004600f5461062b9190613498565b811015801561064757506002600f546106449190613498565b81105b156106565760019150506105e5565b600091505090565b610666612271565b6001600160a01b0316816001600160a01b0316146106965760405162461bcd60e51b8152600401610511906133bd565b6106a08282612275565b5050565b6106ac6122f8565b6106b4612070565b6106d05760405162461bcd60e51b815260040161051190612f6f565b60016004600f546106e19190613498565b6106eb9190613619565b600f546106f8904361368e565b14156107165760405162461bcd60e51b815260040161051190612e6d565b60006107206118bd565b9050818111156107425760405162461bcd60e51b8152600401610511906132dd565b818110156107625760405162461bcd60e51b815260040161051190613238565b6003546040516348962b9360e01b81526000916001600160a01b0316906348962b9390610793908790600401612d2f565b60206040518083038186803b1580156107ab57600080fd5b505afa1580156107bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e39190612b2a565b9050600b548110156108075760405162461bcd60e51b815260040161051190613186565b60035460405163a0d22b2160e01b815233916001600160a01b03169063a0d22b2190610837908890600401612d2f565b60206040518083038186803b15801561084f57600080fd5b505afa158015610863573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088791906129db565b6001600160a01b0316146108ad5760405162461bcd60e51b815260040161051190612eb2565b600f546108bb9060026135d7565b6108c59043613619565b6003546040516376f2098160e11b81526001600160a01b039091169063ede41302906108f5908890600401612d2f565b60206040518083038186803b15801561090d57600080fd5b505afa158015610921573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109459190612b2a565b106109625760405162461bcd60e51b8152600401610511906131bd565b600c54821461097d57610977600460006128fa565b600c8290555b60045460005b818110156109ef5785600482815481106109ad57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016000015414156109dd5760405162461bcd60e51b8152600401610511906132a6565b806109e781613673565b915050610983565b506040805160c0810182528681523360208201908152818301858152606083018a815260006080850181815260a0860182815260048054600181018255935295517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b60069093029283015593517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c820180546001600160a01b0319166001600160a01b0390921691909117905591517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19d830155517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e82015590517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19f8201805460ff191691151591909117905590517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a090910155517f68e0867601a98978930107aee7f425665e61edd70ca594c68ca5da9e81f84c2990610b729086908890612b89565b60405180910390a1505050505050565b60065481565b610b906122f8565b610b986118d8565b610bb45760405162461bcd60e51b815260040161051190612e41565b6000610bbe6118bd565b9050600d548114610be15760405162461bcd60e51b81526004016105119061326f565b600e548111610c025760405162461bcd60e51b81526004016105119061333f565b6000806000806000806000610c1561231d565b90506000610c21612398565b6004546005549297509095509060005b8281101561111f5760048181548110610c5a57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160050154955060048181548110610c8f57634e487b7160e01b600052603260045260246000fd5b600091825260209091206004600690920201015460ff168015610ce3575060058681548110610cce57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016004015488145b8015610d28575060058681548110610d0b57634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600690920201015460ff8881169116145b15610e935760058681548110610d4e57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600301548b610d6b9190613480565b9a508484604051602001610d80929190612bbf565b60408051601f198184030181529190528051602090910120600854909a50808b169950610dae906001613480565b60058781548110610dcf57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160030154610deb91906135d7565b610df58c8b6135d7565b1015610e855760058681548110610e1c57634e487b7160e01b600052603260045260246000fd5b600091825260209091206006909102018054601080546001600160a01b0319166001600160a01b039092169190911790556001810154601155600281015460125560038101546013556004810154601455600501546015805460ff191660ff9092169190911790555b83610e8f81613673565b9450505b60048181548110610eb457634e487b7160e01b600052603260045260246000fd5b600091825260209091206004600690920201015460ff168015610f4d575060058681548110610ef357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016004015488141580610f4d575060058681548110610f2f57634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600690920201015460ff888116911614155b1561101357600354600580546001600160a01b039092169163837fd16a919089908110610f8a57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160010154896002610fa99190613505565b600f54600654610fb991906135d7565b610fc391906135d7565b6040518363ffffffff1660e01b8152600401610fe0929190612b89565b600060405180830381600087803b158015610ffa57600080fd5b505af115801561100e573d6000803e3d6000fd5b505050505b6004818154811061103457634e487b7160e01b600052603260045260246000fd5b600091825260209091206004600690920201015460ff1661110d57600354600480546001600160a01b039092169163837fd16a91908490811061108757634e487b7160e01b600052603260045260246000fd5b60009182526020909120600690910201546110a38a6002613505565b600f546007546110b391906135d7565b6110bd91906135d7565b6040518363ffffffff1660e01b81526004016110da929190612b89565b600060405180830381600087803b1580156110f457600080fd5b505af1158015611108573d6000803e3d6000fd5b505050505b8061111781613673565b915050610c31565b506001546010546040516351cff8d960e01b81526001600160a01b036101009093048316926351cff8d99261115992911690600401612c56565b600060405180830381600087803b15801561117357600080fd5b505af1158015611187573d6000803e3d6000fd5b505060025460405163395f83cf60e11b81526001600160a01b0390911692506372bf079e91506111bb908690600401612d2f565b600060405180830381600087803b1580156111d557600080fd5b505af11580156111e9573d6000803e3d6000fd5b505050600e8c9055506040517f6752c5e71c95fb93bc7137adeb115a33fa4e54e2683e33d3f90c2bb1c4b6c2a590611222908490612d2f565b60405180910390a17f4c03de6a759749c0c9387b7014634dc5c6af610e1366023d90751c783a998f8d816040516112599190612d2f565b60405180910390a17f34e8eda4cd857cd2865becf58a47748f31415f4a382cbb2cc0c64b9a27c717be8787604051611292929190612d6b565b60405180910390a17f2756aa512df0e32847d196f374c5b2fa5f30705f2fe3a75b8baeac52f2af5b3960106040516112ca919061340c565b60405180910390a17fbee3fc8a3523c1a65fa9308ce1f2b8fd90c24975b141b754603194597846e4dd60018054906101000a90046001600160a01b03166001600160a01b0316638a5e8e326040518163ffffffff1660e01b815260040160206040518083038186803b15801561133f57600080fd5b505afa158015611353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113779190612b2a565b6040516113849190612d2f565b60405180910390a15050505050505050505050565b60015460ff1690565b6003546001600160a01b031681565b6000806113bc6118bd565b6113c7906001613480565b600a54600d54919250906113dc906001613480565b82111561142e5760006001600d54846113f59190613619565b6113ff9190613619565b90508181604051602001611414929190612b89565b604051602081830303815290604052805190602001209150505b91505090565b60008061143f6118bd565b9050611449612070565b806114655750600d548111801561146557506114636118d8565b155b1561147a57611472611862565b9150506105e5565b611482610609565b801561148f5750600d5481145b156114ac5760405162461bcd60e51b815260040161051190612ee9565b6114b46118d8565b156114c1576114726113b1565b5090565b600c5481565b6002546001600160a01b031681565b600e5481565b600481815481106114f057600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501549395506001600160a01b0390921693909260ff9091169086565b60006115406118d8565b61155c5760405162461bcd60e51b815260040161051190612fd3565b60006115666118bd565b9050600d5481146115895760405162461bcd60e51b81526004016105119061326f565b600e5481116115aa5760405162461bcd60e51b81526004016105119061333f565b6000806000806000806000806115be61231d565b905060006115ca612398565b600454919650945060005b818110156117f557600481815481106115fe57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016005015494506004818154811061163357634e487b7160e01b600052603260045260246000fd5b600091825260209091206004600690920201015460ff16801561168757506005858154811061167257634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016004015487145b80156116cc5750600585815481106116af57634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600690920201015460ff8781169116145b156117e357600585815481106116f257634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600301548b61170f9190613480565b9a508383604051602001611724929190612bbf565b60408051601f198184030181529190528051602090910120600854909950808a169850611752906001613480565b6005868154811061177357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016003015461178f91906135d7565b6117998c8a6135d7565b10156117d557600585815481106117c057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016001015499505b826117df81613673565b9350505b806117ed81613673565b9150506115d5565b505050999095149998505050505050505050565b600d5481565b6005818154811061181f57600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501546001600160a01b0390941695509193909260ff1686565b6000806113c76118bd565b6118977f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33611909565b6118b35760405162461bcd60e51b815260040161051190612de4565b6118bb612592565b565b6000600f54436118cd9190613498565b905090565b600f5481565b60006002600f546118e99190613498565b600f546118f6904361368e565b10611903575060016105e5565b50600090565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600081565b60006119416118d8565b8061194f575061194f612070565b61196b5760405162461bcd60e51b8152600401610511906130a2565b600f546119799060026135d7565b6119839043613619565b6003546040516376f2098160e11b81526001600160a01b039091169063ede41302906119b3908790600401612d2f565b60206040518083038186803b1580156119cb57600080fd5b505afa1580156119df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a039190612b2a565b10611a205760405162461bcd60e51b815260040161051190613156565b600b546003546040516348962b9360e01b81526001600160a01b03909116906348962b9390611a53908790600401612d2f565b60206040518083038186803b158015611a6b57600080fd5b505afa158015611a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa39190612b2a565b1015611ac15760405162461bcd60e51b815260040161051190613114565b611ad383611acd611434565b84612186565b9392505050565b611ae26122f8565b611aea610609565b611b065760405162461bcd60e51b8152600401610511906130e7565b6000611b106118bd565b9050600c548114611b335760405162461bcd60e51b81526004016105119061300a565b600d548114611b9c57611b44611434565b600955611b536005600061291b565b600d8190556009546040517ff0ae472da9c8da86bda4991a549c03a3cb328b5f360ea11a5b8814f32bb8517691611b8c91849190612b89565b60405180910390a1611b9c6125e6565b6000611baa86868686612037565b60045490915060005b81811015612012578760048281548110611bdd57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160000154148015611c2d575060048181548110611c1857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016003015483145b1561200057611c7160048281548110611c5657634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016000015460095489612186565b611c8d5760405162461bcd60e51b815260040161051190612f2e565b60048181548110611cae57634e487b7160e01b600052603260045260246000fd5b600091825260209091206004600690920201015460ff1615611ce25760405162461bcd60e51b815260040161051190612f9c565b600160048281548110611d0557634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160040160006101000a81548160ff02191690831515021790555060058054905060048281548110611d5457634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016005018190555060056040518060c0016040528060048481548110611d9757634e487b7160e01b600052603260045260246000fd5b6000918252602091829020600160069092020101546001600160a01b0316825260048054929091019185908110611dde57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160000154815260200160048481548110611e1657634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600201548152602001896002611e3a9190613505565b60048581548110611e5b57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160020154611e7791906135d7565b815260208082018a905260ff8b8116604093840152845460018082018755600096875295839020855160069092020180546001600160a01b0319166001600160a01b03909216919091178155918401519482019490945590820151600282015560608201516003820155608082015160048083019190915560a0909201516005909101805460ff1916919093161790915580547f13fc17fd71632266fe82092de6dd91a06b4fa68d8dc950492e5421cbed55a6a591869184908110611f4c57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016000015460048481548110611f7f57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600201548a6002611f9e9190613505565b60048681548110611fbf57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160020154611fdb91906135d7565b8a8c604051611fef96959493929190613455565b60405180910390a15050505061202b565b8061200a81613673565b915050611bb3565b5060405162461bcd60e51b815260040161051190613386565b50505050565b60075481565b6000848484846040516020016120509493929190612b97565b604051602081830303815290604052805190602001209050949350505050565b60006004600f546120819190613498565b600f5461208e904361368e565b1015611903575060016105e5565b6120a5826104d6565b6120ae816121d8565b6106048383612275565b6120c3600033611909565b6120df5760405162461bcd60e51b815260040161051190613308565b600691909155600755565b6010546011546012546013546014546015546001600160a01b039095169460ff1686565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b600b5481565b6121627f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33611909565b61217e5760405162461bcd60e51b815260040161051190613041565b6118bb612618565b600060ff821661219857506001611ad3565b6121a760ff83166101006135f6565b6121b29060026134f2565b8484181090509392505050565b6001600160e01b031981166301ffc9a760e01b14919050565b6121e9816121e4612271565b612653565b50565b6121f68282611909565b6106a0576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561222d612271565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3390565b61227f8282611909565b156106a0576000828152602081815260408083206001600160a01b03851684529091529020805460ff191690556122b4612271565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b612300611399565b156118bb5760405162461bcd60e51b815260040161051190613078565b60606123276118d8565b6123435760405162461bcd60e51b8152600401610511906131f4565b600061234d6118bd565b9050600d5481146123705760405162461bcd60e51b81526004016105119061326f565b600a546040516020016123839190612b76565b60405160208183030381529060405291505090565b60008060008060008060008060006123ae6126ac565b60045490915060005b8181101561258157600481815481106123e057634e487b7160e01b600052603260045260246000fd5b600091825260209091206004600690920201015460ff161561256f576004818154811061241d57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016005015493506005848154811061245257634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600301548961246f9190613480565b98508281604051602001612484929190612bbf565b60408051601f19818403018152919052805160209091012060085490985080891697506124b2906001613480565b600585815481106124d357634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600301546124ef91906135d7565b6124f98a896135d7565b101561256f576005848154811061252057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016004015495506005848154811061255557634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600690920201015460ff1694505b8061257981613673565b9150506123b7565b509398509196505050505050509091565b61259a6122f8565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125cf612271565b6040516125dc9190612c56565b60405180910390a1565b600a54446040516020016125fb929190612b89565b60408051601f198184030181529190528051602090910120600a55565b612620612712565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6125cf612271565b61265d8282611909565b6106a05761266a81612736565b612675836020612748565b604051602001612686929190612be1565b60408051601f198184030181529082905262461bcd60e51b825261051191600401612d7c565b60606126b66118d8565b6126d25760405162461bcd60e51b8152600401610511906131f4565b60006126dc6118bd565b9050600d5481146126ff5760405162461bcd60e51b81526004016105119061326f565b600a546040516020016123839190612b63565b61271a611399565b6118bb5760405162461bcd60e51b815260040161051190612e13565b60606104ba6001600160a01b03831660145b606060006127578360026135d7565b612762906002613480565b67ffffffffffffffff81111561278857634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156127b2576020820181803683370190505b509050600360fc1b816000815181106127db57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061281857634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061283c8460026135d7565b612847906001613480565b90505b60018111156128db576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061288957634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106128ad57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936128d48161365c565b905061284a565b508315611ad35760405162461bcd60e51b815260040161051190612daf565b50805460008255600602906000526020600020908101906121e9919061293c565b50805460008255600602906000526020600020908101906121e99190612983565b5b808211156114c15760008082556001820180546001600160a01b0319169055600282018190556003820181905560048201805460ff19169055600582015560060161293d565b5b808211156114c15780546001600160a01b03191681556000600182018190556002820181905560038201819055600482015560058101805460ff19169055600601612984565b803560ff811681146104bd57600080fd5b6000602082840312156129ec578081fd5b8151611ad3816136ce565b600060208284031215612a08578081fd5b5035919050565b60008060408385031215612a21578081fd5b823591506020830135612a33816136ce565b809150509250929050565b600080600060608486031215612a52578081fd5b505081359360208301359350604090920135919050565b600080600060608486031215612a7d578283fd5b8335925060208401359150612a94604085016129ca565b90509250925092565b60008060408385031215612aaf578182fd5b82359150612abf602084016129ca565b90509250929050565b60008060008060808587031215612add578081fd5b84359350612aed602086016129ca565b93969395505050506040820135916060013590565b600060208284031215612b13578081fd5b81356001600160e01b031981168114611ad3578182fd5b600060208284031215612b3b578081fd5b5051919050565b60008060408385031215612b54578182fd5b50508035926020909101359150565b908152600360fc1b602082015260210190565b908152603160f81b602082015260210190565b918252602082015260400190565b93845260f89290921b6001600160f81b03191660208401526021830152604182015260610190565b60008351612bd1818460208801613630565b9190910191825250602001919050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612c19816017850160208801613630565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612c4a816028840160208801613630565b01602801949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b03969096168652602086019490945260408501929092526060840152608083015260ff1660a082015260c00190565b602080825282518282018190526000919060409081850190868401855b82811015612d1757815180516001600160a01b0316855286810151878601528581015186860152606080820151908601526080808201519086015260a09081015160ff169085015260c09093019290850190600101612cbd565b5091979650505050505050565b901515815260200190565b90815260200190565b9586526001600160a01b03949094166020860152604085019290925260608401521515608083015260a082015260c00190565b91825260ff16602082015260400190565b6000602082528251806020840152612d9b816040850160208701613630565b601f01601f19169190910160400192915050565b6020808252818101527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604082015260600190565b6020808252601590820152746f6e6c79207061757365722063616e20706175736560581b604082015260600190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252601290820152716e6f7420696e20636c61696d20706861736560701b604082015260600190565b60208082526025908201527f63616e206e6f7420636f6d6d697420696e206c61737420626c6f636b206f6620604082015264706861736560d81b606082015260800190565b60208082526017908201527f6f776e6572206d757374206d617463682073656e646572000000000000000000604082015260600190565b60208082526025908201527f63616e27742072657475726e2076616c75652061667465722066697273742072604082015264195d99585b60da1b606082015260800190565b60208082526021908201527f616e63686f72206f7574206f662073656c66207265706f7274656420646570746040820152600d60fb1b606082015260800190565b6020808252601390820152726e6f7420696e20636f6d6d697420706861736560681b604082015260600190565b6020808252601c908201527f7061727469636970616e7420616c72656164792072657665616c656400000000604082015260600190565b60208082526019908201527f77696e6e6572206e6f742064657465726d696e65642079657400000000000000604082015260600190565b60208082526019908201527f726f756e64207265636569766564206e6f20636f6d6d69747300000000000000604082015260600190565b60208082526017908201527f6f6e6c79207061757365722063616e20756e7061757365000000000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526025908201527f6e6f742064657465726d696e656420666f72207570636f6d696e6720726f756e60408201526419081e595d60da1b606082015260800190565b6020808252601390820152726e6f7420696e2072657665616c20706861736560681b604082015260600190565b60208082526022908201527f7374616b6520616d6f756e7420646f6573206e6f74206d656574206d696e696d604082015261756d60f01b606082015260800190565b6020808252601690820152757374616b65207570646174656420726563656e746c7960501b604082015260600190565b60208082526019908201527f7374616b65206d75737420657863656564206d696e696d756d00000000000000604082015260600190565b6020808252601f908201527f6d7573742068617665207374616b6564203220726f756e6473207072696f7200604082015260600190565b60208082526024908201527f6e6f742064657465726d696e656420666f722063757272656e7420726f756e64604082015263081e595d60e21b606082015260800190565b6020808252601c908201527f636f6d6d697420726f756e64206e6f7420737461727465642079657400000000604082015260600190565b60208082526019908201527f726f756e64207265636569766564206e6f2072657665616c7300000000000000604082015260600190565b6020808252601e908201527f6f6e6c79206f6e6520636f6d6d697420656163682070657220726f756e640000604082015260600190565b60208082526011908201527031b7b6b6b4ba103937bab7321037bb32b960791b604082015260600190565b60208082526017908201527f63616c6c6572206973206e6f74207468652061646d696e000000000000000000604082015260600190565b60208082526027908201527f726f756e6420616c7265616479207265636569766564207375636365737366756040820152666c20636c61696d60c81b606082015260800190565b6020808252601a908201527f6e6f206d61746368696e6720636f6d6d6974206f722068617368000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b81546001600160a01b031681526001820154602082015260028201546040820152600382015460608201526004820154608082015260059091015460ff1660a082015260c00190565b958652602086019490945260408501929092526060840152608083015260ff1660a082015260c00190565b60008219821115613493576134936136a2565b500190565b6000826134a7576134a76136b8565b500490565b80825b60018086116134be57506134e9565b8187048211156134d0576134d06136a2565b808616156134dd57918102915b9490941c9380026134af565b94509492505050565b6000611ad360001961ffff851684613513565b6000611ad360001960ff8516845b60008261352257506001611ad3565b8161352f57506000611ad3565b8160018114613545576002811461354f5761357c565b6001915050611ad3565b60ff841115613560576135606136a2565b6001841b915084821115613576576135766136a2565b50611ad3565b5060208310610133831016604e8410600b84101617156135af575081810a838111156135aa576135aa6136a2565b611ad3565b6135bc84848460016134ac565b8086048211156135ce576135ce6136a2565b02949350505050565b60008160001904831182151516156135f1576135f16136a2565b500290565b600061ffff83811690831681811015613611576136116136a2565b039392505050565b60008282101561362b5761362b6136a2565b500390565b60005b8381101561364b578181015183820152602001613633565b8381111561202b5750506000910152565b60008161366b5761366b6136a2565b506000190190565b6000600019821415613687576136876136a2565b5060010190565b60008261369d5761369d6136b8565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6001600160a01b03811681146121e957600080fdfea26469706673582212203b04149267db6fd0fbc9a22fefd04938b42be5e2d88ef090b53da3593b06669864736f6c63430008010033 diff --git a/deploy.sh b/deploy.sh index b79026b..cd8e51b 100755 --- a/deploy.sh +++ b/deploy.sh @@ -84,6 +84,16 @@ function eth_sendTransaction() { [ ! -z ${DATA+x} ] && args="$args --arg data $DATA" [ ! -z ${GAS+x} ] && args="$args --arg gas $(to_hex $GAS)" jsonrpc eth_sendTransaction "$(jq -n $args '[. + $ARGS.named'])" | jq -r + +} + +function eth_call() { + local args='' + [ ! -z ${FROM+x} ] && args="$args --arg from $FROM" + [ ! -z ${TO+x} ] && args="$args --arg to $TO" + [ ! -z ${DATA+x} ] && args="$args --arg data $DATA" + [ ! -z ${GAS+x} ] && args="$args --arg gas $(to_hex $GAS)" + jsonrpc eth_call "$(jq -n $args '[. + $ARGS.named] | . as $tx_call_obj | [$tx_call_obj, "latest"]')" | jq -r } function wait_for_tx() { @@ -118,8 +128,16 @@ function grantPriceUpdaterRole() { wait_for_tx $(FROM=$(primary_account) TO="$1" DATA="0x2f2ff15d74b366a297145849fa9687e16ecad1e3a60cf84f6c2256ae73e20a9f76669804$(to_abi_address $2)" eth_sendTransaction) } +function checkPriceOracle() { + wait_for_tx $(FROM=$(primary_account) TO="$1" DATA="0x9d1b464a" eth_call) +} + +function checkPriceStamps() { + wait_for_tx $(FROM=$(primary_account) TO="$1" DATA="0x10b40aae" eth_call) +} + function changePriceDefault() { - wait_for_tx $(FROM=$(primary_account) TO="$1" DATA="0x91b7f5ed00000000000000000000000000000000000000000000000000005dc0" eth_sendTransaction) + wait_for_tx $(FROM=$(POSTAGE_STAMP_ADDRESS) TO="$1" DATA="0x91b7f5ed$(to_abi_address $2)" eth_sendTransaction) } PRIMARY_ACCOUNT=$(primary_account) @@ -151,11 +169,16 @@ echo deployed staking contract to $STAKING_ADDRESS >&2 REDISTRIBUTION_ADDRESS=$(wait_for_deploy $(FROM=$PRIMARY_ACCOUNT DATA="${REDISTRIBUTION_BIN}$(to_abi_address $STAKING_ADDRESS)$(to_abi_address $POSTAGE_STAMP_ADDRESS)$(to_abi_address $INCENTIVES_PRICE_ORACLE_ADDRESS)" GAS=3500000 eth_sendTransaction)) echo deployed redistribution contract to $REDISTRIBUTION_ADDRESS >&2 +PRICE_VALUE = 24000 +echo setting Oracle Price to $PRICE_VALUE >&2 + grantPriceOracleRole $POSTAGE_STAMP_ADDRESS $PRIMARY_ACCOUNT > /dev/null & grantRedistributorRole $POSTAGE_STAMP_ADDRESS $REDISTRIBUTION_ADDRESS > /dev/null & grantRedistributorRole $STAKING_ADDRESS $REDISTRIBUTION_ADDRESS > /dev/null & grantPriceUpdaterRole $INCENTIVES_PRICE_ORACLE_ADDRESS $REDISTRIBUTION_ADDRESS > /dev/null & -changePriceDefault $INCENTIVES_PRICE_ORACLE_ADDRESS > /dev/null & +checkPriceOracle $INCENTIVES_PRICE_ORACLE_ADDRESS > /dev/null & +checkPriceStamps $POSTAGE_STAMP_ADDRESS > /dev/null & +changePriceDefault $INCENTIVES_PRICE_ORACLE_ADDRESS $(to_hex $PRICE_VALUE) > /dev/null & for NODEACCOUNT in $BZZACCOUNTS do @@ -177,3 +200,5 @@ echo export BEE_STAKING_ADDRESS=$STAKING_ADDRESS echo export BEE_POSTAGE_STAMP_ADDRESS=$POSTAGE_STAMP_ADDRESS echo export BEE_INCENTIVES_PRICE_ORACLE_ADDRESS=$INCENTIVES_PRICE_ORACLE_ADDRESS echo export BEE_REDISTRIBUTION_ADDRESS=$REDISTRIBUTION_ADDRESS + +