0x6080604052600436106101d15760003560e01c80634d78fdc6116100f7578063a457c2d711610095578063bea9849e11610064578063bea9849e14610537578063d322157614610557578063dd62ed3e14610577578063f2fde38b1461059757600080fd5b8063a457c2d7146104b1578063a9059cbb146104d1578063aa4bde28146104f1578063b62496f51461050757600080fd5b8063781edb3c116100d1578063781edb3c1461043e5780637c0a893d1461045e5780638da5cb5b1461047e57806395d89b411461049c57600080fd5b80634d78fdc6146103d357806370a08231146103f3578063715018a61461042957600080fd5b806323b872dd1161016f57806334cf1fea1161013e57806334cf1fea14610354578063378dc3dc14610369578063395093511461037f57806349bd5a5e1461039f57600080fd5b806323b872dd146102e357806327a14fc2146103035780632cc25d1414610323578063313ce5671461033857600080fd5b8063098df585116101ab578063098df585146102555780630bd05b69146102775780631694505e1461028c57806318160ddd146102c457600080fd5b8063064a59d0146101dd57806306fdde0314610213578063095ea7b31461023557600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506006546101fe90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561021f57600080fd5b506102286105b7565b60405161020a91906117d9565b34801561024157600080fd5b506101fe61025036600461183f565b610649565b34801561026157600080fd5b5061027561027036600461186b565b610663565b005b34801561028357600080fd5b5061027561080b565b34801561029857600080fd5b506006546102ac906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b3480156102d057600080fd5b506003545b60405190815260200161020a565b3480156102ef57600080fd5b506101fe6102fe366004611884565b61088b565b34801561030f57600080fd5b5061027561031e36600461186b565b6108af565b34801561032f57600080fd5b50610275610977565b34801561034457600080fd5b506040516012815260200161020a565b34801561036057600080fd5b50610275610b3f565b34801561037557600080fd5b506102d560075481565b34801561038b57600080fd5b506101fe61039a36600461183f565b610ba6565b3480156103ab57600080fd5b506102ac7f000000000000000000000000a6eb1299b2eb7ff9541c9fe8ebef5c83f393f03a81565b3480156103df57600080fd5b506102756103ee3660046118c5565b610bc8565b3480156103ff57600080fd5b506102d561040e3660046118c5565b6001600160a01b031660009081526001602052604090205490565b34801561043557600080fd5b50610275610ca7565b34801561044a57600080fd5b506102756104593660046118f7565b610d1b565b34801561046a57600080fd5b506102756104793660046118c5565b610e2e565b34801561048a57600080fd5b506000546001600160a01b03166102ac565b3480156104a857600080fd5b50610228610f13565b3480156104bd57600080fd5b506101fe6104cc36600461183f565b610f22565b3480156104dd57600080fd5b506101fe6104ec36600461183f565b610f9d565b3480156104fd57600080fd5b506102d560085481565b34801561051357600080fd5b506101fe6105223660046118c5565b600e6020526000908152604090205460ff1681565b34801561054357600080fd5b506102756105523660046118c5565b610fab565b34801561056357600080fd5b506102756105723660046118f7565b6110a2565b34801561058357600080fd5b506102d5610592366004611930565b611124565b3480156105a357600080fd5b506102756105b23660046118c5565b61114f565b6060600480546105c69061195e565b80601f01602080910402602001604051908101604052809291908181526020018280546105f29061195e565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b5050505050905090565b600033610657818585611239565b60019150505b92915050565b6000546001600160a01b031633146106965760405162461bcd60e51b815260040161068d90611998565b60405180910390fd5b478111156106fb5760405162461bcd60e51b815260206004820152602c60248201527f4e6572643a2043616e6e6f742073656e64206d6f7265207468616e20636f6e7460448201526b726163742062616c616e636560a01b606482015260840161068d565b600080546040516001600160a01b039091169083908381818185875af1925050503d8060008114610748576040519150601f19603f3d011682016040523d82523d6000602084013e61074d565b606091505b50509050801561080757600654604080516315ab88c960e31b815290517fb16273d5dd95f4997020a9e2e429331d472940f09fe08af28db9672639cc251d926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa1580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e491906119cd565b604080516001600160a01b03909216825260208201859052015b60405180910390a15b5050565b6000546001600160a01b031633146108355760405162461bcd60e51b815260040161068d90611998565b6006805460ff60a01b1916600160a01b179055600a5460000361085b5743600a55426009555b6040516000906001907fa0f694e30e34d9f05d12691b612650129ed8888d1f93b25fa0cd92e4416a8338908390a3565b60003361089985828561135d565b6108a48585856113d7565b506001949350505050565b6000546001600160a01b031633146108d95760405162461bcd60e51b815260040161068d90611998565b60085481036109445760405162461bcd60e51b815260206004820152603160248201527f4e6572643a2043616e6e6f7420757064617465206d617857616c6c6574416d6f604482015270756e7420746f2073616d652076616c756560781b606482015260840161068d565b60085460405182907f6d3e257c59a11116c3e97bb144abf5ba1a6a9da6bd509192ecf0d48f7be1fc7690600090a3600855565b6000546001600160a01b031633146109a15760405162461bcd60e51b815260040161068d90611998565b6000600954116109f35760405162461bcd60e51b815260206004820152601f60248201527f4e6572643a204c61756e6368206d7573742068617665206f6363757272656400604482015260640161068d565b6005600a5443610a039190611a00565b11610a6c5760405162461bcd60e51b815260206004820152603360248201527f4e6572643a204f6e6c7920636c61696d206c61756e636820746f6b656e73206160448201527266746572206669727374203520626c6f636b7360681b606482015260840161068d565b30600081815260016020526040812054815490929063a9059cbb906001600160a01b03166040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190611a13565b905080156108075760408051308152602081018490527fb16273d5dd95f4997020a9e2e429331d472940f09fe08af28db9672639cc251d91016107fe565b6000546001600160a01b03163314610b695760405162461bcd60e51b815260040161068d90611998565b6006805460ff60a01b191690556040516001906000907fa0f694e30e34d9f05d12691b612650129ed8888d1f93b25fa0cd92e4416a8338908290a3565b600033610657818585610bb98383611124565b610bc39190611a30565b611239565b6000546001600160a01b03163314610bf25760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166000908152600b602052604090205460ff16610c5a5760405162461bcd60e51b815260206004820152601c60248201527f4e6572643a204163636f756e74206973206e6f7420626c6f636b656400000000604482015260640161068d565b6001600160a01b0381166000818152600b6020526040808220805460ff19169055519091907f2f092974a5a89dc001cc04aa60bc3afe575e0b7444ef2197f7bb5714b51528ba908390a350565b6000546001600160a01b03163314610cd15760405162461bcd60e51b815260040161068d90611998565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d455760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0382166000908152600d602052604090205481151560ff909116151503610dce5760405162461bcd60e51b815260206004820152603060248201527f4e6572643a204163636f756e7420697320616c7265616479207468652076616c60448201526f7565206f6620276578636c756465642760801b606482015260840161068d565b6001600160a01b0382166000818152600d6020908152604091829020805460ff191685151590811790915591519182527ff5133f371b17bf21ce0df4ae2c1b6e11ca7c2f27257eb55282edb1ccfd4ecb2e91015b60405180910390a25050565b6000546001600160a01b03163314610e585760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166000908152600b602052604090205460ff1615610ec15760405162461bcd60e51b815260206004820181905260248201527f4e6572643a204163636f756e7420697320616c726561647920626c6f636b6564604482015260640161068d565b6001600160a01b0381166000818152600b6020526040808220805460ff1916600190811790915590519092917f2f092974a5a89dc001cc04aa60bc3afe575e0b7444ef2197f7bb5714b51528ba91a350565b6060600580546105c69061195e565b60003381610f308286611124565b905083811015610f905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161068d565b6108a48286868403611239565b6000336106578185856113d7565b6000546001600160a01b03163314610fd55760405162461bcd60e51b815260040161068d90611998565b6006546001600160a01b03908116908216036110455760405162461bcd60e51b815260206004820152602960248201527f4e6572643a2054686520726f7574657220616c7265616479206861732074686160448201526874206164647265737360b81b606482015260840161068d565b6006546040516001600160a01b03918216918316907f2afbff3ed601a8723765c7072d8ea8445e08f6f1874afd34a2b747a272c3ebad90600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110cc5760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0382166000818152600c6020908152604091829020805460ff191685151590811790915591519182527fcb9f97b7b4b41413e5c8d418a8cf9a88db1cf34dee66b213d070faf881d9d3509101610e22565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146111795760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166111de5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161068d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661129b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161068d565b6001600160a01b0382166112fc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161068d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006113698484611124565b905060001981146113d157818110156113c45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161068d565b6113d18484848403611239565b50505050565b6001600160a01b0383166113fd5760405162461bcd60e51b815260040161068d90611a43565b6001600160a01b0382166114235760405162461bcd60e51b815260040161068d90611a88565b8060000361143c57611437838360006116a8565b505050565b6001600160a01b0383166000908152600c602052604090205460ff1615801561147e57506001600160a01b0382166000908152600c602052604090205460ff16155b1561167157600654600160a01b900460ff166114e85760405162461bcd60e51b8152602060048201526024808201527f4e6572643a2054726164696e672069732063757272656e746c792064697361626044820152633632b21760e11b606482015260840161068d565b6001600160a01b0382166000908152600b602052604090205460ff161561154c5760405162461bcd60e51b815260206004820152601860248201527713995c990e881058d8dbdd5b9d081a5cc8189b1bd8dad95960421b604482015260640161068d565b6001600160a01b0383166000908152600b602052604090205460ff16156115b05760405162461bcd60e51b815260206004820152601860248201527713995c990e881058d8dbdd5b9d081a5cc8189b1bd8dad95960421b604482015260640161068d565b6001600160a01b0382166000908152600d602052604090205460ff1661167157600854816115f3846001600160a01b031660009081526001602052604090205490565b6115fd9190611a30565b11156116715760405162461bcd60e51b815260206004820152603960248201527f4e6572643a2045787065637465642077616c6c657420616d6f756e742065786360448201527f6565647320746865206d617857616c6c6574416d6f756e742e00000000000000606482015260840161068d565b600060095411801561169157506005600a544361168e9190611a00565b11155b156116a1576114378330836116a8565b6114378383835b6001600160a01b0383166116ce5760405162461bcd60e51b815260040161068d90611a43565b6001600160a01b0382166116f45760405162461bcd60e51b815260040161068d90611a88565b6001600160a01b0383166000908152600160205260409020548181101561176c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161068d565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117cc9086815260200190565b60405180910390a36113d1565b600060208083528351808285015260005b81811015611806578581018301518582016040015282016117ea565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461183c57600080fd5b50565b6000806040838503121561185257600080fd5b823561185d81611827565b946020939093013593505050565b60006020828403121561187d57600080fd5b5035919050565b60008060006060848603121561189957600080fd5b83356118a481611827565b925060208401356118b481611827565b929592945050506040919091013590565b6000602082840312156118d757600080fd5b81356118e281611827565b9392505050565b801515811461183c57600080fd5b6000806040838503121561190a57600080fd5b823561191581611827565b91506020830135611925816118e9565b809150509250929050565b6000806040838503121561194357600080fd5b823561194e81611827565b9150602083013561192581611827565b600181811c9082168061197257607f821691505b60208210810361199257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119df57600080fd5b81516118e281611827565b634e487b7160e01b600052601160045260246000fd5b8181038181111561065d5761065d6119ea565b600060208284031215611a2557600080fd5b81516118e2816118e9565b8082018082111561065d5761065d6119ea565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b60608201526080019056fea2646970667358221220124c1927ff4a075bea2fea8bfe1248006aaa73c0f295dece7ce894db212bcd6364736f6c63430008130033
0x60a06040526d14bddab3e51a57cff87a5000000060075561271060075460966200002a9190620005be565b620000369190620005de565b6008553480156200004657600080fd5b506040518060400160405280600a8152602001692722a922102a37b5b2b760b11b815250604051806040016040528060048152602001631391549160e21b815250600062000099620003ea60201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506004620000f18382620006a5565b506005620001008282620006a5565b5050506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200015d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000183919062000771565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f7919062000771565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b919062000771565b600680546001600160a01b0319166001600160a01b0385811691909117909155811660805290506200029f816001620003ee565b6001600c6000620002b86000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530808252600c85528382208054871660019081179091557f5edcfdbae90238920add7ae5e74e1d7eaf4b89b50a4ede406bdde5b832ada00f80548816821790557f1bea79804154005750a60e3a76d247be8b6d694ba7a09e03c651beed03b62b5380548816821790558784168352600d958690528483208054881682179055600654909316825283822080548716841790558152918220805490941681179093556200039a6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620003e2620003d96000546001600160a01b031690565b600754620004de565b5050620007b9565b3390565b6001600160a01b0382166000908152600e602052604090205481151560ff9091161515036200048a5760405162461bcd60e51b815260206004820152603e60248201527f4e6572643a204175746f6d61746564206d61726b6574206d616b65722070616960448201527f7220697320616c72656164792073657420746f20746861742076616c7565000060648201526084015b60405180910390fd5b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fa666b9b2dc2c8f2d86fda7ba3a115be30d3a958fd84d359cbc6bc919df97990a91a35050565b6001600160a01b038216620005365760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000481565b80600360008282546200054a9190620007a3565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620005d857620005d8620005a8565b92915050565b600082620005fc57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200062c57607f821691505b6020821081036200064d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005a357600081815260208120601f850160051c810160208610156200067c5750805b601f850160051c820191505b818110156200069d5782815560010162000688565b505050505050565b81516001600160401b03811115620006c157620006c162000601565b620006d981620006d2845462000617565b8462000653565b602080601f831160018114620007115760008415620006f85750858301515b600019600386901b1c1916600185901b1785556200069d565b600085815260208120601f198616915b82811015620007425788860151825594840194600190910190840162000721565b5085821015620007615787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200078457600080fd5b81516001600160a01b03811681146200079c57600080fd5b9392505050565b80820180821115620005d857620005d8620005a8565b608051611b01620007d560003960006103b10152611b016000f3fe6080604052600436106101d15760003560e01c80634d78fdc6116100f7578063a457c2d711610095578063bea9849e11610064578063bea9849e14610537578063d322157614610557578063dd62ed3e14610577578063f2fde38b1461059757600080fd5b8063a457c2d7146104b1578063a9059cbb146104d1578063aa4bde28146104f1578063b62496f51461050757600080fd5b8063781edb3c116100d1578063781edb3c1461043e5780637c0a893d1461045e5780638da5cb5b1461047e57806395d89b411461049c57600080fd5b80634d78fdc6146103d357806370a08231146103f3578063715018a61461042957600080fd5b806323b872dd1161016f57806334cf1fea1161013e57806334cf1fea14610354578063378dc3dc14610369578063395093511461037f57806349bd5a5e1461039f57600080fd5b806323b872dd146102e357806327a14fc2146103035780632cc25d1414610323578063313ce5671461033857600080fd5b8063098df585116101ab578063098df585146102555780630bd05b69146102775780631694505e1461028c57806318160ddd146102c457600080fd5b8063064a59d0146101dd57806306fdde0314610213578063095ea7b31461023557600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506006546101fe90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561021f57600080fd5b506102286105b7565b60405161020a91906117d9565b34801561024157600080fd5b506101fe61025036600461183f565b610649565b34801561026157600080fd5b5061027561027036600461186b565b610663565b005b34801561028357600080fd5b5061027561080b565b34801561029857600080fd5b506006546102ac906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b3480156102d057600080fd5b506003545b60405190815260200161020a565b3480156102ef57600080fd5b506101fe6102fe366004611884565b61088b565b34801561030f57600080fd5b5061027561031e36600461186b565b6108af565b34801561032f57600080fd5b50610275610977565b34801561034457600080fd5b506040516012815260200161020a565b34801561036057600080fd5b50610275610b3f565b34801561037557600080fd5b506102d560075481565b34801561038b57600080fd5b506101fe61039a36600461183f565b610ba6565b3480156103ab57600080fd5b506102ac7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103df57600080fd5b506102756103ee3660046118c5565b610bc8565b3480156103ff57600080fd5b506102d561040e3660046118c5565b6001600160a01b031660009081526001602052604090205490565b34801561043557600080fd5b50610275610ca7565b34801561044a57600080fd5b506102756104593660046118f7565b610d1b565b34801561046a57600080fd5b506102756104793660046118c5565b610e2e565b34801561048a57600080fd5b506000546001600160a01b03166102ac565b3480156104a857600080fd5b50610228610f13565b3480156104bd57600080fd5b506101fe6104cc36600461183f565b610f22565b3480156104dd57600080fd5b506101fe6104ec36600461183f565b610f9d565b3480156104fd57600080fd5b506102d560085481565b34801561051357600080fd5b506101fe6105223660046118c5565b600e6020526000908152604090205460ff1681565b34801561054357600080fd5b506102756105523660046118c5565b610fab565b34801561056357600080fd5b506102756105723660046118f7565b6110a2565b34801561058357600080fd5b506102d5610592366004611930565b611124565b3480156105a357600080fd5b506102756105b23660046118c5565b61114f565b6060600480546105c69061195e565b80601f01602080910402602001604051908101604052809291908181526020018280546105f29061195e565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b5050505050905090565b600033610657818585611239565b60019150505b92915050565b6000546001600160a01b031633146106965760405162461bcd60e51b815260040161068d90611998565b60405180910390fd5b478111156106fb5760405162461bcd60e51b815260206004820152602c60248201527f4e6572643a2043616e6e6f742073656e64206d6f7265207468616e20636f6e7460448201526b726163742062616c616e636560a01b606482015260840161068d565b600080546040516001600160a01b039091169083908381818185875af1925050503d8060008114610748576040519150601f19603f3d011682016040523d82523d6000602084013e61074d565b606091505b50509050801561080757600654604080516315ab88c960e31b815290517fb16273d5dd95f4997020a9e2e429331d472940f09fe08af28db9672639cc251d926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa1580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e491906119cd565b604080516001600160a01b03909216825260208201859052015b60405180910390a15b5050565b6000546001600160a01b031633146108355760405162461bcd60e51b815260040161068d90611998565b6006805460ff60a01b1916600160a01b179055600a5460000361085b5743600a55426009555b6040516000906001907fa0f694e30e34d9f05d12691b612650129ed8888d1f93b25fa0cd92e4416a8338908390a3565b60003361089985828561135d565b6108a48585856113d7565b506001949350505050565b6000546001600160a01b031633146108d95760405162461bcd60e51b815260040161068d90611998565b60085481036109445760405162461bcd60e51b815260206004820152603160248201527f4e6572643a2043616e6e6f7420757064617465206d617857616c6c6574416d6f604482015270756e7420746f2073616d652076616c756560781b606482015260840161068d565b60085460405182907f6d3e257c59a11116c3e97bb144abf5ba1a6a9da6bd509192ecf0d48f7be1fc7690600090a3600855565b6000546001600160a01b031633146109a15760405162461bcd60e51b815260040161068d90611998565b6000600954116109f35760405162461bcd60e51b815260206004820152601f60248201527f4e6572643a204c61756e6368206d7573742068617665206f6363757272656400604482015260640161068d565b6005600a5443610a039190611a00565b11610a6c5760405162461bcd60e51b815260206004820152603360248201527f4e6572643a204f6e6c7920636c61696d206c61756e636820746f6b656e73206160448201527266746572206669727374203520626c6f636b7360681b606482015260840161068d565b30600081815260016020526040812054815490929063a9059cbb906001600160a01b03166040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610add573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190611a13565b905080156108075760408051308152602081018490527fb16273d5dd95f4997020a9e2e429331d472940f09fe08af28db9672639cc251d91016107fe565b6000546001600160a01b03163314610b695760405162461bcd60e51b815260040161068d90611998565b6006805460ff60a01b191690556040516001906000907fa0f694e30e34d9f05d12691b612650129ed8888d1f93b25fa0cd92e4416a8338908290a3565b600033610657818585610bb98383611124565b610bc39190611a30565b611239565b6000546001600160a01b03163314610bf25760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166000908152600b602052604090205460ff16610c5a5760405162461bcd60e51b815260206004820152601c60248201527f4e6572643a204163636f756e74206973206e6f7420626c6f636b656400000000604482015260640161068d565b6001600160a01b0381166000818152600b6020526040808220805460ff19169055519091907f2f092974a5a89dc001cc04aa60bc3afe575e0b7444ef2197f7bb5714b51528ba908390a350565b6000546001600160a01b03163314610cd15760405162461bcd60e51b815260040161068d90611998565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610d455760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0382166000908152600d602052604090205481151560ff909116151503610dce5760405162461bcd60e51b815260206004820152603060248201527f4e6572643a204163636f756e7420697320616c7265616479207468652076616c60448201526f7565206f6620276578636c756465642760801b606482015260840161068d565b6001600160a01b0382166000818152600d6020908152604091829020805460ff191685151590811790915591519182527ff5133f371b17bf21ce0df4ae2c1b6e11ca7c2f27257eb55282edb1ccfd4ecb2e91015b60405180910390a25050565b6000546001600160a01b03163314610e585760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166000908152600b602052604090205460ff1615610ec15760405162461bcd60e51b815260206004820181905260248201527f4e6572643a204163636f756e7420697320616c726561647920626c6f636b6564604482015260640161068d565b6001600160a01b0381166000818152600b6020526040808220805460ff1916600190811790915590519092917f2f092974a5a89dc001cc04aa60bc3afe575e0b7444ef2197f7bb5714b51528ba91a350565b6060600580546105c69061195e565b60003381610f308286611124565b905083811015610f905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161068d565b6108a48286868403611239565b6000336106578185856113d7565b6000546001600160a01b03163314610fd55760405162461bcd60e51b815260040161068d90611998565b6006546001600160a01b03908116908216036110455760405162461bcd60e51b815260206004820152602960248201527f4e6572643a2054686520726f7574657220616c7265616479206861732074686160448201526874206164647265737360b81b606482015260840161068d565b6006546040516001600160a01b03918216918316907f2afbff3ed601a8723765c7072d8ea8445e08f6f1874afd34a2b747a272c3ebad90600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110cc5760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0382166000818152600c6020908152604091829020805460ff191685151590811790915591519182527fcb9f97b7b4b41413e5c8d418a8cf9a88db1cf34dee66b213d070faf881d9d3509101610e22565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146111795760405162461bcd60e51b815260040161068d90611998565b6001600160a01b0381166111de5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161068d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661129b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161068d565b6001600160a01b0382166112fc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161068d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006113698484611124565b905060001981146113d157818110156113c45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161068d565b6113d18484848403611239565b50505050565b6001600160a01b0383166113fd5760405162461bcd60e51b815260040161068d90611a43565b6001600160a01b0382166114235760405162461bcd60e51b815260040161068d90611a88565b8060000361143c57611437838360006116a8565b505050565b6001600160a01b0383166000908152600c602052604090205460ff1615801561147e57506001600160a01b0382166000908152600c602052604090205460ff16155b1561167157600654600160a01b900460ff166114e85760405162461bcd60e51b8152602060048201526024808201527f4e6572643a2054726164696e672069732063757272656e746c792064697361626044820152633632b21760e11b606482015260840161068d565b6001600160a01b0382166000908152600b602052604090205460ff161561154c5760405162461bcd60e51b815260206004820152601860248201527713995c990e881058d8dbdd5b9d081a5cc8189b1bd8dad95960421b604482015260640161068d565b6001600160a01b0383166000908152600b602052604090205460ff16156115b05760405162461bcd60e51b815260206004820152601860248201527713995c990e881058d8dbdd5b9d081a5cc8189b1bd8dad95960421b604482015260640161068d565b6001600160a01b0382166000908152600d602052604090205460ff1661167157600854816115f3846001600160a01b031660009081526001602052604090205490565b6115fd9190611a30565b11156116715760405162461bcd60e51b815260206004820152603960248201527f4e6572643a2045787065637465642077616c6c657420616d6f756e742065786360448201527f6565647320746865206d617857616c6c6574416d6f756e742e00000000000000606482015260840161068d565b600060095411801561169157506005600a544361168e9190611a00565b11155b156116a1576114378330836116a8565b6114378383835b6001600160a01b0383166116ce5760405162461bcd60e51b815260040161068d90611a43565b6001600160a01b0382166116f45760405162461bcd60e51b815260040161068d90611a88565b6001600160a01b0383166000908152600160205260409020548181101561176c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161068d565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117cc9086815260200190565b60405180910390a36113d1565b600060208083528351808285015260005b81811015611806578581018301518582016040015282016117ea565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461183c57600080fd5b50565b6000806040838503121561185257600080fd5b823561185d81611827565b946020939093013593505050565b60006020828403121561187d57600080fd5b5035919050565b60008060006060848603121561189957600080fd5b83356118a481611827565b925060208401356118b481611827565b929592945050506040919091013590565b6000602082840312156118d757600080fd5b81356118e281611827565b9392505050565b801515811461183c57600080fd5b6000806040838503121561190a57600080fd5b823561191581611827565b91506020830135611925816118e9565b809150509250929050565b6000806040838503121561194357600080fd5b823561194e81611827565b9150602083013561192581611827565b600181811c9082168061197257607f821691505b60208210810361199257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119df57600080fd5b81516118e281611827565b634e487b7160e01b600052601160045260246000fd5b8181038181111561065d5761065d6119ea565b600060208284031215611a2557600080fd5b81516118e2816118e9565b8082018082111561065d5761065d6119ea565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b60608201526080019056fea2646970667358221220124c1927ff4a075bea2fea8bfe1248006aaa73c0f295dece7ce894db212bcd6364736f6c63430008130033