0x60806040526004361061013f575f3560e01c806384516c8c116100b3578063a9059cbb1161006d578063a9059cbb14610396578063b3ac8537146103b5578063bbde77c1146103c9578063da28dac3146103de578063dd62ed3e146103fd578063f2fde38b14610441575f80fd5b806384516c8c146102e85780638c0b5e221461030f5780638d8f2adb146103245780638da5cb5b1461033857806395d89b4114610354578063a0ef91df14610382575f80fd5b80635a0ad007116101045780635a0ad00714610215578063613506911461023657806370a0823114610255578063715018a614610289578063751039fc1461029d578063808a5457146102b1575f80fd5b806306fdde031461014a578063095ea7b31461018a57806318160ddd146101b957806323b872dd146101db578063313ce567146101fa575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526006815265536b796f707360d01b60208201525b6040516101819190611699565b60405180910390f35b348015610195575f80fd5b506101a96101a43660046116f8565b610460565b6040519015158152602001610181565b3480156101c4575f80fd5b506101cd610476565b604051908152602001610181565b3480156101e6575f80fd5b506101a96101f5366004611722565b610496565b348015610205575f80fd5b5060405160128152602001610181565b348015610220575f80fd5b5061023461022f366004611760565b61054b565b005b348015610241575f80fd5b50610234610250366004611760565b6105de565b348015610260575f80fd5b506101cd61026f366004611777565b6001600160a01b03165f9081526001602052604090205490565b348015610294575f80fd5b5061023461063d565b3480156102a8575f80fd5b506102346106ae565b3480156102bc575f80fd5b50600b546102d0906001600160a01b031681565b6040516001600160a01b039091168152602001610181565b3480156102f3575f80fd5b5060085460095460408051928352602083019190915201610181565b34801561031a575f80fd5b506101cd60055481565b34801561032f575f80fd5b50610234610756565b348015610343575f80fd5b505f546001600160a01b03166102d0565b34801561035f575f80fd5b50604080518082019091526006815265534b594f505360d01b6020820152610174565b34801561038d575f80fd5b506102346107f2565b3480156103a1575f80fd5b506101a96103b03660046116f8565b6108b3565b3480156103c0575f80fd5b506102346108bf565b3480156103d4575f80fd5b506101cd60065481565b3480156103e9575f80fd5b506102346103f83660046116f8565b610cc3565b348015610408575f80fd5b506101cd610417366004611799565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561044c575f80fd5b5061023461045b366004611777565b610d44565b5f61046c338484610d76565b5060015b92915050565b5f6104836012600a6118c4565b610491906305f5e1006118d2565b905090565b5f6104a2848484610e99565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461054057828110156105335760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105408533858403610d76565b506001949350505050565b5f546001600160a01b031633146105745760405162461bcd60e51b815260040161052a906118e9565b600854811115801561058857506009548111155b6105d45760405162461bcd60e51b815260206004820152601760248201527f5461782063616e6e6f7420626520696e63726561736564000000000000000000604482015260640161052a565b6008819055600955565b5f546001600160a01b031633146106075760405162461bcd60e51b815260040161052a906118e9565b305f9081526001602052604081205490606461062383856118d2565b61062d919061191e565b9050610638816111fe565b505050565b5f546001600160a01b031633146106665760405162461bcd60e51b815260040161052a906118e9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106d75760405162461bcd60e51b815260040161052a906118e9565b6106e36012600a6118c4565b6106f1906305f5e1006118d2565b6005556107006012600a6118c4565b61070e906305f5e1006118d2565b60068190556005546040517f705001c3b393e59d405f85bec143d8152a379cba8c71745a6d62b01f144154fe9261074c928252602082015260400190565b60405180910390a1565b5f546001600160a01b0316331461077f5760405162461bcd60e51b815260040161052a906118e9565b305f90815260016020526040902054806107d35760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b604482015260640161052a565b6107ef306107e85f546001600160a01b031690565b835f6114e0565b50565b5f546001600160a01b0316331461081b5760405162461bcd60e51b815260040161052a906118e9565b5f80546040516001600160a01b039091169047908381818185875af1925050503d805f8114610865576040519150601f19603f3d011682016040523d82523d5f602084013e61086a565b606091505b50509050806107ef5760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b604482015260640161052a565b5f61046c338484610e99565b5f546001600160a01b031633146108e85760405162461bcd60e51b815260040161052a906118e9565b600e54600160a01b900460ff16156109425760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161052a565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156109a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c8919061193d565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4b919061193d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab9919061193d565b600b80546001600160a01b0319166001600160a01b03928316179055600a8054610b01923092911690610aee906012906118c4565b610afc906305f5e1006118d2565b610d76565b600a546001600160a01b031663f305d7194730610b32816001600160a01b03165f9081526001602052604090205490565b5f80610b455f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bab573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bd09190611958565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c499190611983565b50600e805460ff60a01b1916600160a01b17905543600755610c725f546001600160a01b031690565b600b54600754604080516001600160a01b039384168152602081019290925292909116917f4b37ac987d6b8526558a709563128ac4bf81efb10a4a631dc56e7a42cee84157910160405180910390a2565b5f546001600160a01b03163314610cec5760405162461bcd60e51b815260040161052a906118e9565b6001600160a01b0382165f8181526003602052604090819020839055517f3cba68bb23f00e7e18b834e87ccbf2632b2e14973382e3a5b673c0c0bc57d37190610d389084815260200190565b60405180910390a25050565b5f546001600160a01b03163314610d6d5760405162461bcd60e51b815260040161052a906118e9565b6107ef816115db565b6001600160a01b038316610dd85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161052a565b6001600160a01b038216610e395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161052a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610efd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161052a565b5f8111610f655760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b606482015260840161052a565b6001600160a01b0383165f90815260036020526040812054158015610f9f57506001600160a01b0383165f90815260036020526040902054155b156111ec57600e54600160a01b900460ff16610ffd5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161052a565b6005548211156110645760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60448201526b185e1a5b5d5b481b1a5b5a5d60a21b606482015260840161052a565b600b546001600160a01b0384811691161480159061108d57506001600160a01b03831661dead14155b1561111f57600654826110b4856001600160a01b03165f9081526001602052604090205490565b6110be91906119a2565b111561111f5760405162461bcd60e51b815260206004820152602a60248201527f526563697069656e742077616c6c6574206578636565647320746865206d61786044820152691a5b5d5b481b1a5b5a5d60b21b606482015260840161052a565b60075461112d9060036119a2565b43101561115d57600b546001600160a01b0385811691161461115057601e611153565b601e5b60ff1690506111ec565b600b546001600160a01b039081169085160361117c57506008546111ec565b600b546001600160a01b03908116908416036111ec57305f908152600160205260409020546111ad6012600a6118c4565b6111b990619c406118d2565b8111156111e657600454838211156111cf578391505b808211156111db578091505b6111e4826111fe565b505b50506009545b6111f8848484846114e0565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611231576112316119b5565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611288573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ac919061193d565b816001815181106112bf576112bf6119b5565b6001600160a01b039283166020918202929092010152600a546112e59130911684610d76565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061131d9085905f908690309042906004016119c9565b5f604051808303815f87803b158015611334575f80fd5b505af1158015611346573d5f803e3d5ffd5b504792505f91506064905061135c83602d6118d2565b611366919061191e565b90505f606461137684602d6118d2565b611380919061191e565b90505f606461139085600a6118d2565b61139a919061191e565b600c546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146113e9576040519150601f19603f3d011682016040523d82523d5f602084013e6113ee565b606091505b5050600d546040519192506001600160a01b03169084905f81818185875af1925050503d805f811461143b576040519150601f19603f3d011682016040523d82523d5f602084013e611440565b606091505b5050600e546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461148d576040519150601f19603f3d011682016040523d82523d5f602084013e611492565b606091505b505080915050806114d75760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161052a565b50505050505050565b5f60646114ed83856118d2565b6114f7919061191e565b90505f6115048285611a38565b6001600160a01b0387165f90815260016020526040812080549293508692909190611530908490611a38565b90915550506001600160a01b0385165f908152600160205260408120805483929061155c9084906119a2565b9091555050305f908152600160205260408120805484929061157f9084906119a2565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115cb91815260200190565b60405180910390a3505050505050565b6001600160a01b0381166116405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161052a565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156116c4578581018301518582016040015282016116a8565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107ef575f80fd5b5f8060408385031215611709575f80fd5b8235611714816116e4565b946020939093013593505050565b5f805f60608486031215611734575f80fd5b833561173f816116e4565b9250602084013561174f816116e4565b929592945050506040919091013590565b5f60208284031215611770575f80fd5b5035919050565b5f60208284031215611787575f80fd5b8135611792816116e4565b9392505050565b5f80604083850312156117aa575f80fd5b82356117b5816116e4565b915060208301356117c5816116e4565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561181e57815f1904821115611804576118046117d0565b8085161561181157918102915b93841c93908002906117e9565b509250929050565b5f8261183457506001610470565b8161184057505f610470565b816001811461185657600281146118605761187c565b6001915050610470565b60ff841115611871576118716117d0565b50506001821b610470565b5060208310610133831016604e8410600b841016171561189f575081810a610470565b6118a983836117e4565b805f19048211156118bc576118bc6117d0565b029392505050565b5f61179260ff841683611826565b8082028115828204841417610470576104706117d0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8261193857634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561194d575f80fd5b8151611792816116e4565b5f805f6060848603121561196a575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611993575f80fd5b81518015158114611792575f80fd5b80820180821115610470576104706117d0565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a175784516001600160a01b0316835293830193918301916001016119f2565b50506001600160a01b03969096166060850152505050608001529392505050565b81810381811115610470576104706117d056fea2646970667358221220cbbbfe1a86c7c6935f6d06e1eb0a0f3c376d8f407021c67122348a4afa476be364736f6c63430008140033
0x6080604052620000126012600a620002e9565b6200002190620c350062000300565b600455620000326012600a620002e9565b620000419062030d4062000300565b600555620000526012600a620002e9565b6200006190620493e062000300565b600655601e6008819055600955600e805460ff60a01b1916905534801562000087575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031990811673e2757a07c35c806fd2ec7042b5f2af3b2216aa6017909155600d80548216734745ab43b9ba1982cb75fd95a8eb04d2be58f813179055600e805490911673d2d7ddb1b05331635f92ed8f62c082f9390e2ecb1790556200013c6012600a620002e9565b6200014c906305f5e10062000300565b335f9081526001602081815260408084209490945560039052828220819055308252919020556200017a3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001b36012600a620002e9565b620001c3906305f5e10062000300565b60405190815260200160405180910390a36200031a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200022e57815f1904821115620002125762000212620001da565b808516156200022057918102915b93841c9390800290620001f3565b509250929050565b5f826200024657506001620002e3565b816200025457505f620002e3565b81600181146200026d5760028114620002785762000298565b6001915050620002e3565b60ff8411156200028c576200028c620001da565b50506001821b620002e3565b5060208310610133831016604e8410600b8410161715620002bd575081810a620002e3565b620002c98383620001ee565b805f1904821115620002df57620002df620001da565b0290505b92915050565b5f620002f960ff84168362000236565b9392505050565b8082028115828204841417620002e357620002e3620001da565b611a8180620003285f395ff3fe60806040526004361061013f575f3560e01c806384516c8c116100b3578063a9059cbb1161006d578063a9059cbb14610396578063b3ac8537146103b5578063bbde77c1146103c9578063da28dac3146103de578063dd62ed3e146103fd578063f2fde38b14610441575f80fd5b806384516c8c146102e85780638c0b5e221461030f5780638d8f2adb146103245780638da5cb5b1461033857806395d89b4114610354578063a0ef91df14610382575f80fd5b80635a0ad007116101045780635a0ad00714610215578063613506911461023657806370a0823114610255578063715018a614610289578063751039fc1461029d578063808a5457146102b1575f80fd5b806306fdde031461014a578063095ea7b31461018a57806318160ddd146101b957806323b872dd146101db578063313ce567146101fa575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526006815265536b796f707360d01b60208201525b6040516101819190611699565b60405180910390f35b348015610195575f80fd5b506101a96101a43660046116f8565b610460565b6040519015158152602001610181565b3480156101c4575f80fd5b506101cd610476565b604051908152602001610181565b3480156101e6575f80fd5b506101a96101f5366004611722565b610496565b348015610205575f80fd5b5060405160128152602001610181565b348015610220575f80fd5b5061023461022f366004611760565b61054b565b005b348015610241575f80fd5b50610234610250366004611760565b6105de565b348015610260575f80fd5b506101cd61026f366004611777565b6001600160a01b03165f9081526001602052604090205490565b348015610294575f80fd5b5061023461063d565b3480156102a8575f80fd5b506102346106ae565b3480156102bc575f80fd5b50600b546102d0906001600160a01b031681565b6040516001600160a01b039091168152602001610181565b3480156102f3575f80fd5b5060085460095460408051928352602083019190915201610181565b34801561031a575f80fd5b506101cd60055481565b34801561032f575f80fd5b50610234610756565b348015610343575f80fd5b505f546001600160a01b03166102d0565b34801561035f575f80fd5b50604080518082019091526006815265534b594f505360d01b6020820152610174565b34801561038d575f80fd5b506102346107f2565b3480156103a1575f80fd5b506101a96103b03660046116f8565b6108b3565b3480156103c0575f80fd5b506102346108bf565b3480156103d4575f80fd5b506101cd60065481565b3480156103e9575f80fd5b506102346103f83660046116f8565b610cc3565b348015610408575f80fd5b506101cd610417366004611799565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561044c575f80fd5b5061023461045b366004611777565b610d44565b5f61046c338484610d76565b5060015b92915050565b5f6104836012600a6118c4565b610491906305f5e1006118d2565b905090565b5f6104a2848484610e99565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461054057828110156105335760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105408533858403610d76565b506001949350505050565b5f546001600160a01b031633146105745760405162461bcd60e51b815260040161052a906118e9565b600854811115801561058857506009548111155b6105d45760405162461bcd60e51b815260206004820152601760248201527f5461782063616e6e6f7420626520696e63726561736564000000000000000000604482015260640161052a565b6008819055600955565b5f546001600160a01b031633146106075760405162461bcd60e51b815260040161052a906118e9565b305f9081526001602052604081205490606461062383856118d2565b61062d919061191e565b9050610638816111fe565b505050565b5f546001600160a01b031633146106665760405162461bcd60e51b815260040161052a906118e9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106d75760405162461bcd60e51b815260040161052a906118e9565b6106e36012600a6118c4565b6106f1906305f5e1006118d2565b6005556107006012600a6118c4565b61070e906305f5e1006118d2565b60068190556005546040517f705001c3b393e59d405f85bec143d8152a379cba8c71745a6d62b01f144154fe9261074c928252602082015260400190565b60405180910390a1565b5f546001600160a01b0316331461077f5760405162461bcd60e51b815260040161052a906118e9565b305f90815260016020526040902054806107d35760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b604482015260640161052a565b6107ef306107e85f546001600160a01b031690565b835f6114e0565b50565b5f546001600160a01b0316331461081b5760405162461bcd60e51b815260040161052a906118e9565b5f80546040516001600160a01b039091169047908381818185875af1925050503d805f8114610865576040519150601f19603f3d011682016040523d82523d5f602084013e61086a565b606091505b50509050806107ef5760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b604482015260640161052a565b5f61046c338484610e99565b5f546001600160a01b031633146108e85760405162461bcd60e51b815260040161052a906118e9565b600e54600160a01b900460ff16156109425760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161052a565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156109a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c8919061193d565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4b919061193d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a95573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab9919061193d565b600b80546001600160a01b0319166001600160a01b03928316179055600a8054610b01923092911690610aee906012906118c4565b610afc906305f5e1006118d2565b610d76565b600a546001600160a01b031663f305d7194730610b32816001600160a01b03165f9081526001602052604090205490565b5f80610b455f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bab573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bd09190611958565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c499190611983565b50600e805460ff60a01b1916600160a01b17905543600755610c725f546001600160a01b031690565b600b54600754604080516001600160a01b039384168152602081019290925292909116917f4b37ac987d6b8526558a709563128ac4bf81efb10a4a631dc56e7a42cee84157910160405180910390a2565b5f546001600160a01b03163314610cec5760405162461bcd60e51b815260040161052a906118e9565b6001600160a01b0382165f8181526003602052604090819020839055517f3cba68bb23f00e7e18b834e87ccbf2632b2e14973382e3a5b673c0c0bc57d37190610d389084815260200190565b60405180910390a25050565b5f546001600160a01b03163314610d6d5760405162461bcd60e51b815260040161052a906118e9565b6107ef816115db565b6001600160a01b038316610dd85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161052a565b6001600160a01b038216610e395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161052a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610efd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161052a565b5f8111610f655760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b606482015260840161052a565b6001600160a01b0383165f90815260036020526040812054158015610f9f57506001600160a01b0383165f90815260036020526040902054155b156111ec57600e54600160a01b900460ff16610ffd5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161052a565b6005548211156110645760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60448201526b185e1a5b5d5b481b1a5b5a5d60a21b606482015260840161052a565b600b546001600160a01b0384811691161480159061108d57506001600160a01b03831661dead14155b1561111f57600654826110b4856001600160a01b03165f9081526001602052604090205490565b6110be91906119a2565b111561111f5760405162461bcd60e51b815260206004820152602a60248201527f526563697069656e742077616c6c6574206578636565647320746865206d61786044820152691a5b5d5b481b1a5b5a5d60b21b606482015260840161052a565b60075461112d9060036119a2565b43101561115d57600b546001600160a01b0385811691161461115057601e611153565b601e5b60ff1690506111ec565b600b546001600160a01b039081169085160361117c57506008546111ec565b600b546001600160a01b03908116908416036111ec57305f908152600160205260409020546111ad6012600a6118c4565b6111b990619c406118d2565b8111156111e657600454838211156111cf578391505b808211156111db578091505b6111e4826111fe565b505b50506009545b6111f8848484846114e0565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611231576112316119b5565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611288573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ac919061193d565b816001815181106112bf576112bf6119b5565b6001600160a01b039283166020918202929092010152600a546112e59130911684610d76565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061131d9085905f908690309042906004016119c9565b5f604051808303815f87803b158015611334575f80fd5b505af1158015611346573d5f803e3d5ffd5b504792505f91506064905061135c83602d6118d2565b611366919061191e565b90505f606461137684602d6118d2565b611380919061191e565b90505f606461139085600a6118d2565b61139a919061191e565b600c546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f81146113e9576040519150601f19603f3d011682016040523d82523d5f602084013e6113ee565b606091505b5050600d546040519192506001600160a01b03169084905f81818185875af1925050503d805f811461143b576040519150601f19603f3d011682016040523d82523d5f602084013e611440565b606091505b5050600e546040519192506001600160a01b03169083905f81818185875af1925050503d805f811461148d576040519150601f19603f3d011682016040523d82523d5f602084013e611492565b606091505b505080915050806114d75760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b604482015260640161052a565b50505050505050565b5f60646114ed83856118d2565b6114f7919061191e565b90505f6115048285611a38565b6001600160a01b0387165f90815260016020526040812080549293508692909190611530908490611a38565b90915550506001600160a01b0385165f908152600160205260408120805483929061155c9084906119a2565b9091555050305f908152600160205260408120805484929061157f9084906119a2565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115cb91815260200190565b60405180910390a3505050505050565b6001600160a01b0381166116405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161052a565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156116c4578581018301518582016040015282016116a8565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107ef575f80fd5b5f8060408385031215611709575f80fd5b8235611714816116e4565b946020939093013593505050565b5f805f60608486031215611734575f80fd5b833561173f816116e4565b9250602084013561174f816116e4565b929592945050506040919091013590565b5f60208284031215611770575f80fd5b5035919050565b5f60208284031215611787575f80fd5b8135611792816116e4565b9392505050565b5f80604083850312156117aa575f80fd5b82356117b5816116e4565b915060208301356117c5816116e4565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561181e57815f1904821115611804576118046117d0565b8085161561181157918102915b93841c93908002906117e9565b509250929050565b5f8261183457506001610470565b8161184057505f610470565b816001811461185657600281146118605761187c565b6001915050610470565b60ff841115611871576118716117d0565b50506001821b610470565b5060208310610133831016604e8410600b841016171561189f575081810a610470565b6118a983836117e4565b805f19048211156118bc576118bc6117d0565b029392505050565b5f61179260ff841683611826565b8082028115828204841417610470576104706117d0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8261193857634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561194d575f80fd5b8151611792816116e4565b5f805f6060848603121561196a575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611993575f80fd5b81518015158114611792575f80fd5b80820180821115610470576104706117d0565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a175784516001600160a01b0316835293830193918301916001016119f2565b50506001600160a01b03969096166060850152505050608001529392505050565b81810381811115610470576104706117d056fea2646970667358221220cbbbfe1a86c7c6935f6d06e1eb0a0f3c376d8f407021c67122348a4afa476be364736f6c63430008140033