6080604052620000126009600a620002d6565b6200002290633b9aca00620002ee565b60018181556006805461ffff60a01b1916600160a81b1790556009556103e8906200004f906008620002ee565b6200005b919062000308565b600a55620f42406001546008620000739190620002ee565b6200007f919062000308565b600b556000600c819055600d819055600e819055600f819055601081905560118190556012556127106013819055601480546001600160a01b03191673e25100046abdd6d38218f2f5ae7cb4be5220323d179055600154620000e39060c8620002ee565b620000ef919062000308565b601555348015620000ff57600080fd5b50600080546001600160a01b031990811633908117835560058054909216737a250d5630b4cf539739df2c5dacb4c659f2488d17909155308252600460209081526040808420805460ff1990811660019081179092556014546001600160a01b031686528286208054821683179055848652828620805490911682179055546002835281852081905590519081529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200032b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000218578160001904821115620001fc57620001fc620001c1565b808516156200020a57918102915b93841c9390800290620001dc565b509250929050565b6000826200023157506001620002d0565b816200024057506000620002d0565b8160018114620002595760028114620002645762000284565b6001915050620002d0565b60ff841115620002785762000278620001c1565b50506001821b620002d0565b5060208310610133831016604e8410600b8410161715620002a9575081810a620002d0565b620002b58383620001d7565b8060001904821115620002cc57620002cc620001c1565b0290505b92915050565b6000620002e760ff84168362000220565b9392505050565b8082028115828204841417620002d057620002d0620001c1565b6000826200032657634e487b7160e01b600052601260045260246000fd5b500490565b611645806200033b6000396000f3fe60806040526004361061010d5760003560e01c8063715018a611610095578063a8aa1b3111610064578063a8aa1b31146102f9578063a9059cbb14610319578063c9567bf914610339578063da0ebc621461034e578063dd62ed3e1461036457600080fd5b8063715018a61461027d578063893d20e81461029257806395d89b41146102c45780639e78fb4f146102f157600080fd5b806323b872dd116100dc57806323b872dd146101c75780632f54bf6e146101e7578063313ce5671461021657806341fb0d211461023257806370a082311461024757600080fd5b806306fdde0314610119578063095ea7b31461015d57806318160ddd1461018d5780631acc26bc146101b057600080fd5b3661011457005b600080fd5b34801561012557600080fd5b506040805180820190915260098152682127a11023b2b7101960b91b60208201525b6040516101549190611357565b60405180910390f35b34801561016957600080fd5b5061017d6101783660046113bd565b6103aa565b6040519015158152602001610154565b34801561019957600080fd5b506101a26103c1565b604051908152602001610154565b3480156101bc57600080fd5b506101c5610432565b005b3480156101d357600080fd5b5061017d6101e23660046113e9565b61046d565b3480156101f357600080fd5b5061017d61020236600461142a565b6000546001600160a01b0391821691161490565b34801561022257600080fd5b5060405160098152602001610154565b34801561023e57600080fd5b506101c56104d7565b34801561025357600080fd5b506101a261026236600461142a565b6001600160a01b031660009081526002602052604090205490565b34801561028957600080fd5b506101c5610512565b34801561029e57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610154565b3480156102d057600080fd5b506040805180820190915260048152632127a11960e11b6020820152610147565b6101c5610581565b34801561030557600080fd5b506006546102ac906001600160a01b031681565b34801561032557600080fd5b5061017d6103343660046113bd565b610755565b34801561034557600080fd5b506101c5610762565b34801561035a57600080fd5b506101a260155481565b34801561037057600080fd5b506101a261037f366004611447565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b60006103b73384846107b1565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261042d92909161042791906108d5565b906108d5565b905090565b6000546001600160a01b031633146104655760405162461bcd60e51b815260040161045c90611480565b60405180910390fd5b600154601555565b600061047a8484846108e1565b6104cc84336104c7856040518060600160405280602881526020016115e8602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610d1c565b6107b1565b5060015b9392505050565b6000546001600160a01b031633146105015760405162461bcd60e51b815260040161045c90611480565b606460118190556010819055600d55565b6000546001600160a01b0316331461053c5760405162461bcd60e51b815260040161045c90611480565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146105ab5760405162461bcd60e51b815260040161045c90611480565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062291906114a0565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610684573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a891906114a0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071991906114a0565b600680546001600160a01b0319166001600160a01b0392909216919091179055306000908152600260205260409020546107539034610d48565b565b60006103b73384846108e1565b6000546001600160a01b0316331461078c5760405162461bcd60e51b815260040161045c90611480565b6006805460ff60a01b1916600160a01b1790556105dc60118190556010819055600d55565b6001600160a01b0383166108135760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b0382166108745760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104d082846114d3565b6001600160a01b0383166109455760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045c565b6001600160a01b0382166109a75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045c565b6001600160a01b03831660009081526004602052604090205460ff161580156109e957506001600160a01b03821660009081526004602052604090205460ff16155b15610a3757600654600160a01b900460ff16610a375760405162461bcd60e51b815260206004820152600d60248201526c74726164696e6741637469766560981b604482015260640161045c565b6001600160a01b03831660009081526004602052604090205460ff168015610a6c57506006546001600160a01b038381169116145b8015610a8157506001600160a01b0383163014155b15610ab8576001600160a01b03821660009081526002602052604081208054839290610aae9084906114e6565b9091555050505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610afa57506001600160a01b03821660009081526004602052604090205460ff16155b8015610b1457506006546001600160a01b03838116911614155b8015610b2b57506001600160a01b03821661dead14155b15610ba4576015546001600160a01b038316600090815260026020526040902054610b569083610dff565b1115610ba45760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161045c565b6006546001600160a01b038381169116148015610bda57506001600160a01b03831660009081526004602052604090205460ff16155b15610bf857600160076000828254610bf291906114e6565b90915550505b610c03838383610e0b565b15610c365730600090815260026020526040902054600a548110610c265750600a545b610c2f81610ec4565b5060006007555b6001600160a01b038316600090815260026020526040902054610c5990826108d5565b6001600160a01b038416600090815260026020526040812091909155610c7f848461104d565b610c895781610c94565b610c94848484611093565b6001600160a01b038416600090815260026020526040902054909150610cba9082610dff565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d0e9085815260200190565b60405180910390a350505050565b60008184841115610d405760405162461bcd60e51b815260040161045c9190611357565b505050900390565b600554610d609030906001600160a01b0316846107b1565b6005546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610dd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df891906114f9565b5050505050565b60006104d082846114e6565b600b5430600090815260026020526040812054600854919280851015929110159060ff16158015610e455750600654600160a81b900460ff165b8015610e5a5750600654600160a01b900460ff165b8015610e635750815b8015610e8857506001600160a01b03861660009081526004602052604090205460ff16155b8015610ea157506006546001600160a01b038681169116145b8015610eb1575060095460075410155b8015610eba5750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c54600093610f0493600293610efe939192610ef8928391610dff565b90610dff565b9061119a565b90506000610f2782610f21600c548661119a90919063ffffffff16565b906111a6565b90506000610f3584836108d5565b905047610f41826111b2565b6000610f4d47836108d5565b90506000610f70610f69600c54886108d590919063ffffffff16565b83906111a6565b90506000610f89600c548361119a90919063ffffffff16565b90508015610f9b57610f9b8682610d48565b600d54600090610fb090610efe85600261119a565b90508015610ff4576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ff2573d6000803e3d6000fd5b505b478015611037576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611035573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156104d05750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806110a0858561130c565b11156111935760006110c36110b5868661130c565b601354610efe9086906111a6565b306000908152600260205260409020549091506110e09082610dff565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111319085815260200190565b60405180910390a36000600f541180156111555750600f54611153868661130c565b115b15611181576111813061dead61117c600f54610efe601354896111a690919063ffffffff16565b6108e1565b61118b83826108d5565b9150506104d0565b5092915050565b60006104d08284611527565b60006104d0828461153e565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111e7576111e7611560565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611240573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126491906114a0565b8160018151811061127757611277611560565b6001600160a01b03928316602091820292909201015260055461129d91309116846107b1565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906112d6908590600090869030904290600401611576565b600060405180830381600087803b1580156112f057600080fd5b505af1158015611304573d6000803e3d6000fd5b505050505050565b6006546000906001600160a01b039081169083160361132e57506011546103bb565b6006546001600160a01b039081169084160361134d57506010546103bb565b5060125492915050565b600060208083528351808285015260005b8181101561138457858101830151858201604001528201611368565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113ba57600080fd5b50565b600080604083850312156113d057600080fd5b82356113db816113a5565b946020939093013593505050565b6000806000606084860312156113fe57600080fd5b8335611409816113a5565b92506020840135611419816113a5565b929592945050506040919091013590565b60006020828403121561143c57600080fd5b81356104d0816113a5565b6000806040838503121561145a57600080fd5b8235611465816113a5565b91506020830135611475816113a5565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000602082840312156114b257600080fd5b81516104d0816113a5565b634e487b7160e01b600052601160045260246000fd5b818103818111156103bb576103bb6114bd565b808201808211156103bb576103bb6114bd565b60008060006060848603121561150e57600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176103bb576103bb6114bd565b60008261155b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115c65784516001600160a01b0316835293830193918301916001016115a1565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122097f7074ac0011e2462a042344220c64ea71150f64a3bc2486083974a6b022e6564736f6c63430008130033