60c0604052600a805460ff191660011790553480156200001d575f80fd5b5060405180604001604052806008815260200167426f626920496e7560c01b81525060405180604001604052806004815260200163424f424960e01b81525081600390816200006d9190620005bc565b5060046200007c8282620005bc565b5050505f620000906200033d60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000132573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000158919062000684565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ca919062000684565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000215573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023b919062000684565b6001600160a01b031660a08190525f908152600f60205260409020805460ff191660011790556a19a4815e0ad0c67f00000060646200027c826002620006c0565b620002889190620006da565b600955620002996107d082620006da565b600855600a600c556014600d55600680546001600160a01b03199081167361ab48493f2aaee7c967d084ccc24811bddbf63c1790915560078054909116737c14294126b4d130c3b98499bdc2c23cc5b8003e1790556200030d620003056005546001600160a01b031690565b600162000341565b6200031a30600162000341565b6200032961dead600162000341565b620003353382620003cb565b505062000710565b3390565b6005546001600160a01b03163314620003a15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b6001600160a01b038216620004235760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000398565b600254620004329082620004b2565b6002556001600160a01b0382165f90815260208190526040902054620004599082620004b2565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b5f80620004c08385620006fa565b905083811015620005145760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000398565b90505b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200054657607f821691505b6020821081036200056557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004ad575f81815260208120601f850160051c81016020861015620005935750805b601f850160051c820191505b81811015620005b4578281556001016200059f565b505050505050565b81516001600160401b03811115620005d857620005d86200051d565b620005f081620005e9845462000531565b846200056b565b602080601f83116001811462000626575f84156200060e5750858301515b5f19600386901b1c1916600185901b178555620005b4565b5f85815260208120601f198616915b82811015620006565788860151825594840194600190910190840162000635565b50858210156200067457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000695575f80fd5b81516001600160a01b038116811462000514575f80fd5b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620005175762000517620006ac565b5f82620006f557634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620005175762000517620006ac565b60805160a051611d1e6200074e5f395f81816103a20152610b6901525f81816102a001528181611816015281816118cd01526119090152611d1e5ff3fe60806040526004361061022b575f3560e01c80638a8c523c11610129578063c0246668116100a8578063e0bf7fd11161006d578063e0bf7fd1146106ac578063e2f45605146106da578063eba4c333146106ef578063f2fde38b1461070e578063f8b45b051461072d575f80fd5b8063c0246668146105f6578063c18bc19514610615578063d257b34f14610634578063d85ba06314610653578063dd62ed3e14610668575f80fd5b80639a7a23d6116100ee5780639a7a23d61461054d578063a457c2d71461056c578063a9059cbb1461058b578063b62496f5146105aa578063bbc0c742146105d8575f80fd5b80638a8c523c146104ca5780638da5cb5b146104de5780638ea5220f146104fb578063924de9b71461051a57806395d89b4114610539575f80fd5b806349bd5a5e116101b557806370a082311161017a57806370a0823114610430578063715018a61461046457806371fc468814610478578063751039fc1461049757806375f0a874146104ab575f80fd5b806349bd5a5e146103915780634a62bb65146103c45780635d098b38146103dd5780636a486a8e146103fc5780636ddd171314610411575f80fd5b80631f53ac02116101fb5780631f53ac02146102f857806323b872dd146103195780632d5a5d3414610338578063313ce567146103575780633950935114610372575f80fd5b806306fdde0314610236578063095ea7b3146102605780631694505e1461028f57806318160ddd146102da575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b5061024a610742565b604051610257919061196f565b60405180910390f35b34801561026b575f80fd5b5061027f61027a3660046119ce565b6107d2565b6040519015158152602001610257565b34801561029a575f80fd5b506102c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610257565b3480156102e5575f80fd5b506002545b604051908152602001610257565b348015610303575f80fd5b506103176103123660046119f8565b6107e8565b005b348015610324575f80fd5b5061027f610333366004611a13565b61083d565b348015610343575f80fd5b50610317610352366004611a60565b6108a4565b348015610362575f80fd5b5060405160128152602001610257565b34801561037d575f80fd5b5061027f61038c3660046119ce565b6108f8565b34801561039c575f80fd5b506102c27f000000000000000000000000000000000000000000000000000000000000000081565b3480156103cf575f80fd5b50600a5461027f9060ff1681565b3480156103e8575f80fd5b506103176103f73660046119f8565b61092d565b348015610407575f80fd5b506102ea600d5481565b34801561041c575f80fd5b50600a5461027f9062010000900460ff1681565b34801561043b575f80fd5b506102ea61044a3660046119f8565b6001600160a01b03165f9081526020819052604090205490565b34801561046f575f80fd5b50610317610979565b348015610483575f80fd5b50610317610492366004611a93565b6109ec565b3480156104a2575f80fd5b5061027f610a6f565b3480156104b6575f80fd5b506006546102c2906001600160a01b031681565b3480156104d5575f80fd5b50610317610aab565b3480156104e9575f80fd5b506005546001600160a01b03166102c2565b348015610506575f80fd5b506007546102c2906001600160a01b031681565b348015610525575f80fd5b50610317610534366004611aaa565b610ae8565b348015610544575f80fd5b5061024a610b2e565b348015610558575f80fd5b50610317610567366004611a60565b610b3d565b348015610577575f80fd5b5061027f6105863660046119ce565b610c35565b348015610596575f80fd5b5061027f6105a53660046119ce565b610c82565b3480156105b5575f80fd5b5061027f6105c43660046119f8565b600f6020525f908152604090205460ff1681565b3480156105e3575f80fd5b50600a5461027f90610100900460ff1681565b348015610601575f80fd5b50610317610610366004611a60565b610c8e565b348015610620575f80fd5b5061031761062f366004611a93565b610ce2565b34801561063f575f80fd5b5061027f61064e366004611a93565b610db3565b34801561065e575f80fd5b506102ea600c5481565b348015610673575f80fd5b506102ea610682366004611ac3565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156106b7575f80fd5b5061027f6106c63660046119f8565b600e6020525f908152604090205460ff1681565b3480156106e5575f80fd5b506102ea60085481565b3480156106fa575f80fd5b50610317610709366004611a93565b610f09565b348015610719575f80fd5b506103176107283660046119f8565b610f89565b348015610738575f80fd5b506102ea60095481565b60606003805461075190611afa565b80601f016020809104026020016040519081016040528092919081815260200182805461077d90611afa565b80156107c85780601f1061079f576101008083540402835291602001916107c8565b820191905f5260205f20905b8154815290600101906020018083116107ab57829003601f168201915b5050505050905090565b5f6107de338484611073565b5060015b92915050565b6005546001600160a01b0316331461081b5760405162461bcd60e51b815260040161081290611b32565b60405180910390fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f610849848484611197565b61089a843361089585604051806060016040528060288152602001611c9c602891396001600160a01b038a165f90815260016020908152604080832033845290915290205491906114bb565b611073565b5060019392505050565b6005546001600160a01b031633146108ce5760405162461bcd60e51b815260040161081290611b32565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107de91859061089590866114f3565b6005546001600160a01b031633146109575760405162461bcd60e51b815260040161081290611b32565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146109a35760405162461bcd60e51b815260040161081290611b32565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a165760405162461bcd60e51b815260040161081290611b32565b600c8190556032811115610a6c5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c6573730000006044820152606401610812565b50565b6005545f906001600160a01b03163314610a9b5760405162461bcd60e51b815260040161081290611b32565b50600a805460ff19169055600190565b6005546001600160a01b03163314610ad55760405162461bcd60e51b815260040161081290611b32565b600a805462ffff00191662010100179055565b6005546001600160a01b03163314610b125760405162461bcd60e51b815260040161081290611b32565b600a8054911515620100000262ff000019909216919091179055565b60606004805461075190611afa565b6005546001600160a01b03163314610b675760405162461bcd60e51b815260040161081290611b32565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610c0e5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610812565b6001600160a01b0382165f908152600f60205260409020805460ff19168215151790555050565b5f6107de338461089585604051806060016040528060258152602001611cc460259139335f9081526001602090815260408083206001600160a01b038d16845290915290205491906114bb565b5f6107de338484611197565b6005546001600160a01b03163314610cb85760405162461bcd60e51b815260040161081290611b32565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610d0c5760405162461bcd60e51b815260040161081290611b32565b670de0b6b3a76400006103e8610d2160025490565b610d2c90600f611b7b565b610d369190611b92565b610d409190611b92565b811015610d9b5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263312e352560e01b6064820152608401610812565b610dad81670de0b6b3a7640000611b7b565b60095550565b6005545f906001600160a01b03163314610ddf5760405162461bcd60e51b815260040161081290611b32565b620186a0610dec60025490565b610df7906001611b7b565b610e019190611b92565b821015610e6e5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610812565b6103e8610e7a60025490565b610e85906005611b7b565b610e8f9190611b92565b821115610efb5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610812565b50600881905560015b919050565b6005546001600160a01b03163314610f335760405162461bcd60e51b815260040161081290611b32565b600d8190556032811115610a6c5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c6573730000006044820152606401610812565b6005546001600160a01b03163314610fb35760405162461bcd60e51b815260040161081290611b32565b6001600160a01b0381166110185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610812565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166110d55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610812565b6001600160a01b0382166111365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610812565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382165f908152600b602052604090205460ff161580156111d757506001600160a01b0383165f908152600b602052604090205460ff16155b6112235760405162461bcd60e51b815260206004820152601960248201527f596f752068617665206265656e20626c61636b6c6973746564000000000000006044820152606401610812565b6001600160a01b0383165f908152600e602052604090205460ff168061126057506001600160a01b0382165f908152600e602052604090205460ff165b806112745750600554600160a01b900460ff165b8061127d575080155b156112925761128d838383611558565b505050565b600a54610100900460ff166112e25760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610812565b600a5460ff1615611375576001600160a01b0382165f908152600f602052604090205460ff16611375576009546001600160a01b0383165f908152602081905260409020546113319083611bb1565b11156113755760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610812565b305f90815260208190526040902054600854811080159081906113a05750600a5462010000900460ff165b80156113c457506001600160a01b0385165f908152600f602052604090205460ff16155b156113f3576005805460ff60a01b1916600160a01b1790556113e5826116d8565b6005805460ff60a01b191690555b6001600160a01b0384165f908152600f602052604081205460ff16801561141b57505f600d54115b15611441576064600d54856114309190611b7b565b61143a9190611b92565b905061148b565b6001600160a01b0386165f908152600f602052604090205460ff16801561146957505f600c54115b1561148b576064600c548561147e9190611b7b565b6114889190611b92565b90505b801561149c5761149c863083611558565b6114a68185611bc4565b93506114b3868686611558565b505050505050565b5f81848411156114de5760405162461bcd60e51b8152600401610812919061196f565b505f6114ea8486611bc4565b95945050505050565b5f806114ff8385611bb1565b9050838110156115515760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610812565b9392505050565b6001600160a01b0383166115bc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610812565b6001600160a01b03821661161e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610812565b61165a81604051806060016040528060268152602001611c76602691396001600160a01b0386165f9081526020819052604090205491906114bb565b6001600160a01b038085165f90815260208190526040808220939093559084168152205461168890826114f3565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161118a565b5f815f036116e4575050565b6008546116f2906014611b7b565b82111561170a57600854611707906014611b7b565b91505b611713826117c1565b6007546001600160a01b031661172a600547611b92565b6040515f81818185875af1925050503d805f8114611763576040519150601f19603f3d011682016040523d82523d5f602084013e611768565b606091505b50506006546040519192506001600160a01b03169047905f81818185875af1925050503d805f81146117b5576040519150601f19603f3d011682016040523d82523d5f602084013e6117ba565b606091505b5050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106117f4576117f4611bd7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611870573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118949190611beb565b816001815181106118a7576118a7611bd7565b60200260200101906001600160a01b031690816001600160a01b0316815250506118f2307f000000000000000000000000000000000000000000000000000000000000000084611073565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906119469085905f90869030904290600401611c06565b5f604051808303815f87803b15801561195d575f80fd5b505af11580156114b3573d5f803e3d5ffd5b5f6020808352835180828501525f5b8181101561199a5785810183015185820160400152820161197e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a6c575f80fd5b5f80604083850312156119df575f80fd5b82356119ea816119ba565b946020939093013593505050565b5f60208284031215611a08575f80fd5b8135611551816119ba565b5f805f60608486031215611a25575f80fd5b8335611a30816119ba565b92506020840135611a40816119ba565b929592945050506040919091013590565b80358015158114610f04575f80fd5b5f8060408385031215611a71575f80fd5b8235611a7c816119ba565b9150611a8a60208401611a51565b90509250929050565b5f60208284031215611aa3575f80fd5b5035919050565b5f60208284031215611aba575f80fd5b61155182611a51565b5f8060408385031215611ad4575f80fd5b8235611adf816119ba565b91506020830135611aef816119ba565b809150509250929050565b600181811c90821680611b0e57607f821691505b602082108103611b2c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107e2576107e2611b67565b5f82611bac57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156107e2576107e2611b67565b818103818111156107e2576107e2611b67565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611bfb575f80fd5b8151611551816119ba565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611c545784516001600160a01b031683529383019391830191600101611c2f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e92c4b93cdc6f189f5a65f50625d76dec9e0af891c09948e5e73bc3e69afcb7764736f6c63430008150033