0x608060405260043610610164575f3560e01c80637c697869116100cd5780639cc3535111610087578063a9059cbb11610062578063a9059cbb14610459578063cb7f97d714610478578063dd62ed3e14610497578063f2fde38b146104db575f80fd5b80639cc35351146103fc5780639d8740cb1461041b578063a8aa1b311461043a575f80fd5b80637c697869146103385780637cca52fe146103575780637d1db4a51461036c578063893d20e8146103815780639213c358146103b157806395d89b41146103d0575f80fd5b80632f54bf6e1161011e5780632f54bf6e1461025a578063313ce567146102875780633f4218e0146102a257806348ff2b8b146102d057806370a08231146102ef57806378109e5414610323575f80fd5b806306fdde031461016f578063095ea7b3146101b557806318160ddd146101e4578063229b6a5e1461020657806323b872dd14610227578063293230b814610246575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152600c81526b4345524f2046696e616e636560a01b60208201525b6040516101ac91906118b1565b60405180910390f35b3480156101c0575f80fd5b506101d46101cf366004611913565b6104fa565b60405190151581526020016101ac565b3480156101ef575f80fd5b506101f8610510565b6040519081526020016101ac565b348015610211575f80fd5b5061022561022036600461194a565b610580565b005b348015610232575f80fd5b506101d46102413660046119c9565b610626565b348015610251575f80fd5b5061022561068e565b348015610265575f80fd5b506101d4610274366004611a07565b5f546001600160a01b0391821691161490565b348015610292575f80fd5b50604051600981526020016101ac565b3480156102ad575f80fd5b506101d46102bc366004611a07565b60166020525f908152604090205460ff1681565b3480156102db575f80fd5b506102256102ea366004611a22565b6106cc565b3480156102fa575f80fd5b506101f8610309366004611a07565b6001600160a01b03165f9081526018602052604090205490565b34801561032e575f80fd5b506101f8600d5481565b348015610343575f80fd5b50610225610352366004611913565b61071f565b348015610362575f80fd5b506101f8600c5481565b348015610377575f80fd5b506101f8600b5481565b34801561038c575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101ac565b3480156103bc575f80fd5b506102256103cb366004611a59565b61083f565b3480156103db575f80fd5b506040805180820190915260048152634345524f60e01b602082015261019f565b348015610407575f80fd5b50610225610416366004611a96565b6108e3565b348015610426575f80fd5b50610225610435366004611a96565b610a13565b348015610445575f80fd5b50600354610399906001600160a01b031681565b348015610464575f80fd5b506101d4610473366004611913565b610a78565b348015610483575f80fd5b50610225610492366004611abf565b610a84565b3480156104a2575f80fd5b506101f86104b1366004611b06565b6001600160a01b039182165f90815260196020908152604080832093909416825291909152205490565b3480156104e6575f80fd5b506102256104f5366004611a07565b610b7a565b5f610506338484610bf6565b5060015b92915050565b60186020527f999d26de3473317ead3eeaf34ca78057f1439db67b6953469c3c96ce9caf6bd75461dead5f9081527fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd654600154919261057b9290916105759190610d19565b90610d19565b905090565b5f546001600160a01b031633146105b25760405162461bcd60e51b81526004016105a990611b32565b60405180910390fd5b5f5b82811015610620578160175f8686858181106105d2576105d2611b52565b90506020020160208101906105e79190611a07565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558061061881611b7a565b9150506105b4565b50505050565b5f610632848484610d24565b610683843361067e85604051806060016040528060288152602001611cd6602891396001600160a01b038a165f9081526019602090815260408083203384529091529020549190611265565b610bf6565b5060015b9392505050565b5f546001600160a01b031633146106b75760405162461bcd60e51b81526004016105a990611b32565b6003805460ff60a81b1916600160a81b179055565b5f546001600160a01b031633146106f55760405162461bcd60e51b81526004016105a990611b32565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146107485760405162461bcd60e51b81526004016105a990611b32565b6040516370a0823160e01b81523060048201525f906107c9906064906107c39085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610799573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bd9190611b92565b90611290565b9061129b565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af115801561081b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106209190611ba9565b5f546001600160a01b031633146108685760405162461bcd60e51b81526004016105a990611b32565b600780546001600160a01b039485166001600160a01b0319918216811790925560088054948616948216851790556006805493909516921682179093555f92835260166020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b5f546001600160a01b0316331461090c5760405162461bcd60e51b81526004016105a990611b32565b5f6109286127106107c38660015461129090919063ffffffff16565b90505f6109466127106107c38660015461129090919063ffffffff16565b90505f6109646127106107c38660015461129090919063ffffffff16565b600b849055600c839055600d81905590505f6109896103e86107c360056107bd610510565b905080841015801561099b5750808310155b80156109a75750808210155b610a0a5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105a9565b50505050505050565b5f546001600160a01b03163314610a3c5760405162461bcd60e51b81526004016105a990611b32565b6005839055600154610a5790620186a0906107c39085611290565b600955600154610a7090620186a0906107c39084611290565b600a55505050565b5f610506338484610d24565b5f546001600160a01b03163314610aad5760405162461bcd60e51b81526004016105a990611b32565b60138790556014869055600e8590556015849055600f83905560108290556011819055601254610ade90600161129b565b600f5411158015610afe5750601254610af890600161129b565b60105411155b8015610b195750601254610b1390600161129b565b60115411155b610a0a5760405162461bcd60e51b815260206004820152602c60248201527f6275794665657320616e642073656c6c466565732063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016105a9565b5f546001600160a01b03163314610ba35760405162461bcd60e51b81526004016105a990611b32565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610c585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a9565b6001600160a01b038216610cb95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a9565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6106878284611bc4565b6001600160a01b038316610d885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a9565b6001600160a01b038216610dea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a9565b6001600160a01b0383165f90815260186020526040902054811115610e6b5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105a9565b6001600160a01b0383165f9081526016602052604090205460ff16158015610eab57506001600160a01b0382165f9081526016602052604090205460ff16155b15610efa57600354600160a81b900460ff16610efa5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105a9565b6001600160a01b0383165f9081526016602052604090205460ff16158015610f3a57506001600160a01b0382165f9081526016602052604090205460ff16155b8015610f5457506003546001600160a01b03838116911614155b8015610f6b57506001600160a01b03821661dead14155b15610fe357600d546001600160a01b0383165f90815260186020526040902054610f9590836112a6565b1115610fe35760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105a9565b6003546001600160a01b0384811691161461108257600c548111158061102057506001600160a01b0383165f9081526016602052604090205460ff165b8061104257506001600160a01b0382165f9081526016602052604090205460ff165b6110825760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105a9565b600b54811115806110aa57506001600160a01b0383165f9081526016602052604090205460ff165b806110cc57506001600160a01b0382165f9081526016602052604090205460ff165b61110c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105a9565b6003546001600160a01b03838116911614801561114157506001600160a01b0383165f9081526016602052604090205460ff16155b1561115e57600160045f8282546111589190611bd7565b90915550505b6111698383836112b1565b1561117e57611179600954611370565b5f6004555b6001600160a01b0383165f908152601860205260409020546111a09082610d19565b6001600160a01b0384165f90815260186020908152604080832093909355601690529081205460ff16156111d457816111df565b6111df8484846114e7565b6001600160a01b0384165f9081526018602052604090205490915061120490826112a6565b6001600160a01b038085165f8181526018602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112579085815260200190565b60405180910390a350505050565b5f81848411156112885760405162461bcd60e51b81526004016105a991906118b1565b505050900390565b5f6106878284611bea565b5f6106878284611c01565b5f6106878284611bd7565b600a54600954305f90815260186020526040812054600354919385101592111590600160a01b900460ff161580156112f25750600354600160b01b900460ff165b80156113075750600354600160a81b900460ff165b80156113105750815b801561133457506001600160a01b0386165f9081526016602052604090205460ff16155b801561134d57506003546001600160a01b038681169116145b801561135d575060055460045410155b80156113665750805b9695505050505050565b6003805460ff60a01b1916600160a01b1790556015546014546013545f926113ad926002926107bd92916113a791829060016112a6565b906112a6565b90505f6113c9826107c36013548661129090919063ffffffff16565b90505f6113d68483610d19565b9050476113e282611611565b5f6113ed4783610d19565b90505f61140f61140860135488610d1990919063ffffffff16565b839061129b565b90505f6114276013548361129090919063ffffffff16565b90508015611439576114398682611761565b6014545f9061144d906107bd856002611290565b9050801561148e576007546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561148c573d5f803e3d5ffd5b505b4780156114ce576006546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156114cc573d5f803e3d5ffd5b505b50506003805460ff60a01b191690555050505050505050565b6001600160a01b0382165f9081526016602052604081205460ff16156115105750600b54610687565b5f61151b8585611812565b111561160a575f61153d61152f8686611812565b6012546107bd90869061129b565b305f9081526018602052604090205490915061155990826112a6565b305f81815260186020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115a99085815260200190565b60405180910390a35f600e541180156115cc5750600e546115ca8686611812565b115b156115f8576115f83061dead6115f3600e546107bd6012548961129b90919063ffffffff16565b610d24565b6116028382610d19565b915050610687565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061164457611644611b52565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561169b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116bf9190611c20565b816001815181106116d2576116d2611b52565b6001600160a01b0392831660209182029290920101526002546116f89130911684610bf6565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906117309085905f90869030904290600401611c3b565b5f604051808303815f87803b158015611747575f80fd5b505af1158015611759573d5f803e3d5ffd5b505050505050565b6002546117799030906001600160a01b031684610bf6565b60025460085460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156117e6573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061180b9190611caa565b5050505050565b6001600160a01b0382165f9081526017602052604081205460ff168061184f57506001600160a01b0382165f9081526017602052604090205460ff165b1561186957601254611862906064610d19565b905061050a565b6003546001600160a01b0390811690831603611888575060105461050a565b6003546001600160a01b03908116908416036118a75750600f5461050a565b5060115492915050565b5f6020808352835180828501525f5b818110156118dc578581018301518582016040015282016118c0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611910575f80fd5b50565b5f8060408385031215611924575f80fd5b823561192f816118fc565b946020939093013593505050565b8015158114611910575f80fd5b5f805f6040848603121561195c575f80fd5b833567ffffffffffffffff80821115611973575f80fd5b818601915086601f830112611986575f80fd5b813581811115611994575f80fd5b8760208260051b85010111156119a8575f80fd5b602092830195509350508401356119be8161193d565b809150509250925092565b5f805f606084860312156119db575f80fd5b83356119e6816118fc565b925060208401356119f6816118fc565b929592945050506040919091013590565b5f60208284031215611a17575f80fd5b8135610687816118fc565b5f8060408385031215611a33575f80fd5b8235611a3e816118fc565b91506020830135611a4e8161193d565b809150509250929050565b5f805f60608486031215611a6b575f80fd5b8335611a76816118fc565b92506020840135611a86816118fc565b915060408401356119be816118fc565b5f805f60608486031215611aa8575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a031215611ad5575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611b17575f80fd5b8235611b22816118fc565b91506020830135611a4e816118fc565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611b8b57611b8b611b66565b5060010190565b5f60208284031215611ba2575f80fd5b5051919050565b5f60208284031215611bb9575f80fd5b81516106878161193d565b8181038181111561050a5761050a611b66565b8082018082111561050a5761050a611b66565b808202811582820484141761050a5761050a611b66565b5f82611c1b57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611c30575f80fd5b8151610687816118fc565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611c895784516001600160a01b031683529383019391830191600101611c64565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611cbc575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122061158f0488ea151d60dbc48945933067b497f973fb84e7aec5f2339d8be0768b64736f6c63430008150033
0x6080604052620000126009600a620004b9565b6200002290633b9aca00620004d0565b60018190556003805461ffff60a81b1916600160b01b179055600680546001600160a01b0319908116730b74c322f95fe0d9fe3268ec2c1c78bfe5b2672290811790925560078054821683179055600880549091169091179055620186a0906200008f906103e8620004d0565b6200009b9190620004ea565b600955620186a0600154600a620000b39190620004d0565b620000bf9190620004ea565b600a5561271060015461012c620000d79190620004d0565b620000e39190620004ea565b600b5561271060015461012c620000fb9190620004d0565b620001079190620004ea565b600c5561271060015461012c6200011f9190620004d0565b6200012b9190620004ea565b600d555f600e556109c4600f55610bb86010556107d06011556127106012555f6013555f601455606460155534801562000163575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ee91906200050a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026091906200050a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002ab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d191906200050a565b600280546001600160a01b038581166001600160a01b031992831617909255600380548484169216919091179055335f818152601660208181526040808420805460ff1990811660019081179092556007548816865282862080548216831790556006548816865282862080548216831790558154878752601885528387205560085490971685529282528084208054909616831790955590549351938452939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000532565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003fe57815f1904821115620003e257620003e2620003aa565b80851615620003f057918102915b93841c9390800290620003c3565b509250929050565b5f826200041657506001620004b3565b816200042457505f620004b3565b81600181146200043d5760028114620004485762000468565b6001915050620004b3565b60ff8411156200045c576200045c620003aa565b50506001821b620004b3565b5060208310610133831016604e8410600b84101617156200048d575081810a620004b3565b620004998383620003be565b805f1904821115620004af57620004af620003aa565b0290505b92915050565b5f620004c960ff84168362000406565b9392505050565b8082028115828204841417620004b357620004b3620003aa565b5f826200050557634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200051b575f80fd5b81516001600160a01b0381168114620004c9575f80fd5b611d3380620005405f395ff3fe608060405260043610610164575f3560e01c80637c697869116100cd5780639cc3535111610087578063a9059cbb11610062578063a9059cbb14610459578063cb7f97d714610478578063dd62ed3e14610497578063f2fde38b146104db575f80fd5b80639cc35351146103fc5780639d8740cb1461041b578063a8aa1b311461043a575f80fd5b80637c697869146103385780637cca52fe146103575780637d1db4a51461036c578063893d20e8146103815780639213c358146103b157806395d89b41146103d0575f80fd5b80632f54bf6e1161011e5780632f54bf6e1461025a578063313ce567146102875780633f4218e0146102a257806348ff2b8b146102d057806370a08231146102ef57806378109e5414610323575f80fd5b806306fdde031461016f578063095ea7b3146101b557806318160ddd146101e4578063229b6a5e1461020657806323b872dd14610227578063293230b814610246575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152600c81526b4345524f2046696e616e636560a01b60208201525b6040516101ac91906118b1565b60405180910390f35b3480156101c0575f80fd5b506101d46101cf366004611913565b6104fa565b60405190151581526020016101ac565b3480156101ef575f80fd5b506101f8610510565b6040519081526020016101ac565b348015610211575f80fd5b5061022561022036600461194a565b610580565b005b348015610232575f80fd5b506101d46102413660046119c9565b610626565b348015610251575f80fd5b5061022561068e565b348015610265575f80fd5b506101d4610274366004611a07565b5f546001600160a01b0391821691161490565b348015610292575f80fd5b50604051600981526020016101ac565b3480156102ad575f80fd5b506101d46102bc366004611a07565b60166020525f908152604090205460ff1681565b3480156102db575f80fd5b506102256102ea366004611a22565b6106cc565b3480156102fa575f80fd5b506101f8610309366004611a07565b6001600160a01b03165f9081526018602052604090205490565b34801561032e575f80fd5b506101f8600d5481565b348015610343575f80fd5b50610225610352366004611913565b61071f565b348015610362575f80fd5b506101f8600c5481565b348015610377575f80fd5b506101f8600b5481565b34801561038c575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101ac565b3480156103bc575f80fd5b506102256103cb366004611a59565b61083f565b3480156103db575f80fd5b506040805180820190915260048152634345524f60e01b602082015261019f565b348015610407575f80fd5b50610225610416366004611a96565b6108e3565b348015610426575f80fd5b50610225610435366004611a96565b610a13565b348015610445575f80fd5b50600354610399906001600160a01b031681565b348015610464575f80fd5b506101d4610473366004611913565b610a78565b348015610483575f80fd5b50610225610492366004611abf565b610a84565b3480156104a2575f80fd5b506101f86104b1366004611b06565b6001600160a01b039182165f90815260196020908152604080832093909416825291909152205490565b3480156104e6575f80fd5b506102256104f5366004611a07565b610b7a565b5f610506338484610bf6565b5060015b92915050565b60186020527f999d26de3473317ead3eeaf34ca78057f1439db67b6953469c3c96ce9caf6bd75461dead5f9081527fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd654600154919261057b9290916105759190610d19565b90610d19565b905090565b5f546001600160a01b031633146105b25760405162461bcd60e51b81526004016105a990611b32565b60405180910390fd5b5f5b82811015610620578160175f8686858181106105d2576105d2611b52565b90506020020160208101906105e79190611a07565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790558061061881611b7a565b9150506105b4565b50505050565b5f610632848484610d24565b610683843361067e85604051806060016040528060288152602001611cd6602891396001600160a01b038a165f9081526019602090815260408083203384529091529020549190611265565b610bf6565b5060015b9392505050565b5f546001600160a01b031633146106b75760405162461bcd60e51b81526004016105a990611b32565b6003805460ff60a81b1916600160a81b179055565b5f546001600160a01b031633146106f55760405162461bcd60e51b81526004016105a990611b32565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146107485760405162461bcd60e51b81526004016105a990611b32565b6040516370a0823160e01b81523060048201525f906107c9906064906107c39085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610799573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bd9190611b92565b90611290565b9061129b565b60065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af115801561081b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106209190611ba9565b5f546001600160a01b031633146108685760405162461bcd60e51b81526004016105a990611b32565b600780546001600160a01b039485166001600160a01b0319918216811790925560088054948616948216851790556006805493909516921682179093555f92835260166020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b5f546001600160a01b0316331461090c5760405162461bcd60e51b81526004016105a990611b32565b5f6109286127106107c38660015461129090919063ffffffff16565b90505f6109466127106107c38660015461129090919063ffffffff16565b90505f6109646127106107c38660015461129090919063ffffffff16565b600b849055600c839055600d81905590505f6109896103e86107c360056107bd610510565b905080841015801561099b5750808310155b80156109a75750808210155b610a0a5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016105a9565b50505050505050565b5f546001600160a01b03163314610a3c5760405162461bcd60e51b81526004016105a990611b32565b6005839055600154610a5790620186a0906107c39085611290565b600955600154610a7090620186a0906107c39084611290565b600a55505050565b5f610506338484610d24565b5f546001600160a01b03163314610aad5760405162461bcd60e51b81526004016105a990611b32565b60138790556014869055600e8590556015849055600f83905560108290556011819055601254610ade90600161129b565b600f5411158015610afe5750601254610af890600161129b565b60105411155b8015610b195750601254610b1390600161129b565b60115411155b610a0a5760405162461bcd60e51b815260206004820152602c60248201527f6275794665657320616e642073656c6c466565732063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b60648201526084016105a9565b5f546001600160a01b03163314610ba35760405162461bcd60e51b81526004016105a990611b32565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b038316610c585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a9565b6001600160a01b038216610cb95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a9565b6001600160a01b038381165f8181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6106878284611bc4565b6001600160a01b038316610d885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a9565b6001600160a01b038216610dea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a9565b6001600160a01b0383165f90815260186020526040902054811115610e6b5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016105a9565b6001600160a01b0383165f9081526016602052604090205460ff16158015610eab57506001600160a01b0382165f9081526016602052604090205460ff16155b15610efa57600354600160a81b900460ff16610efa5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016105a9565b6001600160a01b0383165f9081526016602052604090205460ff16158015610f3a57506001600160a01b0382165f9081526016602052604090205460ff16155b8015610f5457506003546001600160a01b03838116911614155b8015610f6b57506001600160a01b03821661dead14155b15610fe357600d546001600160a01b0383165f90815260186020526040902054610f9590836112a6565b1115610fe35760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016105a9565b6003546001600160a01b0384811691161461108257600c548111158061102057506001600160a01b0383165f9081526016602052604090205460ff165b8061104257506001600160a01b0382165f9081526016602052604090205460ff165b6110825760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105a9565b600b54811115806110aa57506001600160a01b0383165f9081526016602052604090205460ff165b806110cc57506001600160a01b0382165f9081526016602052604090205460ff165b61110c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016105a9565b6003546001600160a01b03838116911614801561114157506001600160a01b0383165f9081526016602052604090205460ff16155b1561115e57600160045f8282546111589190611bd7565b90915550505b6111698383836112b1565b1561117e57611179600954611370565b5f6004555b6001600160a01b0383165f908152601860205260409020546111a09082610d19565b6001600160a01b0384165f90815260186020908152604080832093909355601690529081205460ff16156111d457816111df565b6111df8484846114e7565b6001600160a01b0384165f9081526018602052604090205490915061120490826112a6565b6001600160a01b038085165f8181526018602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112579085815260200190565b60405180910390a350505050565b5f81848411156112885760405162461bcd60e51b81526004016105a991906118b1565b505050900390565b5f6106878284611bea565b5f6106878284611c01565b5f6106878284611bd7565b600a54600954305f90815260186020526040812054600354919385101592111590600160a01b900460ff161580156112f25750600354600160b01b900460ff165b80156113075750600354600160a81b900460ff165b80156113105750815b801561133457506001600160a01b0386165f9081526016602052604090205460ff16155b801561134d57506003546001600160a01b038681169116145b801561135d575060055460045410155b80156113665750805b9695505050505050565b6003805460ff60a01b1916600160a01b1790556015546014546013545f926113ad926002926107bd92916113a791829060016112a6565b906112a6565b90505f6113c9826107c36013548661129090919063ffffffff16565b90505f6113d68483610d19565b9050476113e282611611565b5f6113ed4783610d19565b90505f61140f61140860135488610d1990919063ffffffff16565b839061129b565b90505f6114276013548361129090919063ffffffff16565b90508015611439576114398682611761565b6014545f9061144d906107bd856002611290565b9050801561148e576007546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561148c573d5f803e3d5ffd5b505b4780156114ce576006546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156114cc573d5f803e3d5ffd5b505b50506003805460ff60a01b191690555050505050505050565b6001600160a01b0382165f9081526016602052604081205460ff16156115105750600b54610687565b5f61151b8585611812565b111561160a575f61153d61152f8686611812565b6012546107bd90869061129b565b305f9081526018602052604090205490915061155990826112a6565b305f81815260186020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115a99085815260200190565b60405180910390a35f600e541180156115cc5750600e546115ca8686611812565b115b156115f8576115f83061dead6115f3600e546107bd6012548961129b90919063ffffffff16565b610d24565b6116028382610d19565b915050610687565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061164457611644611b52565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561169b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116bf9190611c20565b816001815181106116d2576116d2611b52565b6001600160a01b0392831660209182029290920101526002546116f89130911684610bf6565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906117309085905f90869030904290600401611c3b565b5f604051808303815f87803b158015611747575f80fd5b505af1158015611759573d5f803e3d5ffd5b505050505050565b6002546117799030906001600160a01b031684610bf6565b60025460085460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156117e6573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061180b9190611caa565b5050505050565b6001600160a01b0382165f9081526017602052604081205460ff168061184f57506001600160a01b0382165f9081526017602052604090205460ff165b1561186957601254611862906064610d19565b905061050a565b6003546001600160a01b0390811690831603611888575060105461050a565b6003546001600160a01b03908116908416036118a75750600f5461050a565b5060115492915050565b5f6020808352835180828501525f5b818110156118dc578581018301518582016040015282016118c0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611910575f80fd5b50565b5f8060408385031215611924575f80fd5b823561192f816118fc565b946020939093013593505050565b8015158114611910575f80fd5b5f805f6040848603121561195c575f80fd5b833567ffffffffffffffff80821115611973575f80fd5b818601915086601f830112611986575f80fd5b813581811115611994575f80fd5b8760208260051b85010111156119a8575f80fd5b602092830195509350508401356119be8161193d565b809150509250925092565b5f805f606084860312156119db575f80fd5b83356119e6816118fc565b925060208401356119f6816118fc565b929592945050506040919091013590565b5f60208284031215611a17575f80fd5b8135610687816118fc565b5f8060408385031215611a33575f80fd5b8235611a3e816118fc565b91506020830135611a4e8161193d565b809150509250929050565b5f805f60608486031215611a6b575f80fd5b8335611a76816118fc565b92506020840135611a86816118fc565b915060408401356119be816118fc565b5f805f60608486031215611aa8575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a031215611ad5575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611b17575f80fd5b8235611b22816118fc565b91506020830135611a4e816118fc565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201611b8b57611b8b611b66565b5060010190565b5f60208284031215611ba2575f80fd5b5051919050565b5f60208284031215611bb9575f80fd5b81516106878161193d565b8181038181111561050a5761050a611b66565b8082018082111561050a5761050a611b66565b808202811582820484141761050a5761050a611b66565b5f82611c1b57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611c30575f80fd5b8151610687816118fc565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611c895784516001600160a01b031683529383019391830191600101611c64565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611cbc575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122061158f0488ea151d60dbc48945933067b497f973fb84e7aec5f2339d8be0768b64736f6c63430008150033