60806040526000600555600060065534801561001a57600080fd5b506040516040806113f58339810180604052604081101561003a57600080fd5b508051602091820151600080546001600160a01b0319166001600160a01b0384161781559192909190610070906100e4811b901c565b600380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b0319166001600160a01b0392909216919091179055506100e8565b3390565b6112fe806100f76000396000f3fe608060405234801561001057600080fd5b50600436106101575760003560e01c80638da5cb5b116100c3578063def68a9c1161007c578063def68a9c146102e7578063df136d651461030d578063e9fad8ee14610315578063ebe2b12b1461031d578063f2fde38b14610325578063f7c618c11461034b57610157565b80638da5cb5b146102725780638f32d59b14610296578063a694fc3a146102b2578063c8f33c91146102cf578063cc7a262e146102d7578063cd3daf9d146102df57610157565b80633d18b912116101155780633d18b9121461020657806370a082311461020e578063715018a6146102345780637b0a47ee1461023c57806380faa57d146102445780638b8763471461024c57610157565b80628cc2621461015c5780630700037d1461019457806318160ddd146101ba5780631be05289146101c25780632e1a7d4d146101ca5780633c6b16ab146101e9575b600080fd5b6101826004803603602081101561017257600080fd5b50356001600160a01b0316610353565b60408051918252519081900360200190f35b610182600480360360208110156101aa57600080fd5b50356001600160a01b03166103d9565b6101826103eb565b6101826103f2565b6101e7600480360360208110156101e057600080fd5b50356103f9565b005b6101e7600480360360208110156101ff57600080fd5b50356104ee565b6101e761065b565b6101826004803603602081101561022457600080fd5b50356001600160a01b031661072d565b6101e7610748565b6101826107de565b6101826107e4565b6101826004803603602081101561026257600080fd5b50356001600160a01b03166107f7565b61027a610809565b604080516001600160a01b039092168252519081900360200190f35b61029e610818565b604080519115158252519081900360200190f35b6101e7600480360360208110156102c857600080fd5b503561083e565b610182610933565b61027a610939565b610182610948565b6101e7600480360360208110156102fd57600080fd5b50356001600160a01b031661099e565b610182610b25565b6101e7610b2b565b610182610b46565b6101e76004803603602081101561033b57600080fd5b50356001600160a01b0316610b4c565b61027a610ba4565b6001600160a01b0381166000908152600a602090815260408083205460099092528220546103d391906103c790670de0b6b3a7640000906103bb906103a69061039a610948565b9063ffffffff610bb316565b6103af8861072d565b9063ffffffff610bfc16565b9063ffffffff610c5c16565b9063ffffffff610c9e16565b92915050565b600a6020526000908152604090205481565b6001545b90565b6201518081565b33610402610948565b60085561040d6107e4565b6007556001600160a01b038116156104545761042881610353565b6001600160a01b0382166000908152600a60209081526040808320939093556008546009909152919020555b8115156104ab5760408051600160e51b62461bcd02815260206004820152601160248201527f43616e6e6f742077697468647261772030000000000000000000000000000000604482015290519081900360640190fd5b6104b482610cfb565b60408051838152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a25050565b6104f6610818565b151561053a5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611289833981519152604482015290519081900360640190fd5b6000610544610948565b60085561054f6107e4565b6007556001600160a01b038116156105965761056a81610353565b6001600160a01b0382166000908152600a60209081526040808320939093556008546009909152919020555b60055442106105ba576105b2826201518063ffffffff610c5c16565b600655610608565b6005546000906105d0904263ffffffff610bb316565b905060006105e960065483610bfc90919063ffffffff16565b9050610602620151806103bb868463ffffffff610c9e16565b60065550505b426007819055610621906201518063ffffffff610c9e16565b6005556040805183815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a15050565b33610664610948565b60085561066f6107e4565b6007556001600160a01b038116156106b65761068a81610353565b6001600160a01b0382166000908152600a60209081526040808320939093556008546009909152919020555b60006106c133610353565b9050801561072957336000818152600a60205260408120556004546106f2916001600160a01b039091169083610d58565b60408051828152905133917fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486919081900360200190a25b5050565b6001600160a01b031660009081526002602052604090205490565b610750610818565b15156107945760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611289833981519152604482015290519081900360640190fd5b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b60065481565b60006107f242600554610db2565b905090565b60096020526000908152604090205481565b6003546001600160a01b031690565b6003546000906001600160a01b031661082f610dc8565b6001600160a01b031614905090565b33610847610948565b6008556108526107e4565b6007556001600160a01b038116156108995761086d81610353565b6001600160a01b0382166000908152600a60209081526040808320939093556008546009909152919020555b8115156108f05760408051600160e51b62461bcd02815260206004820152600e60248201527f43616e6e6f74207374616b652030000000000000000000000000000000000000604482015290519081900360640190fd5b6108f982610dcc565b60408051838152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a25050565b60075481565b6000546001600160a01b031681565b60006109526103eb565b151561096157506008546103ef565b6107f261098f61096f6103eb565b6103bb670de0b6b3a76400006103af6006546103af60075461039a6107e4565b6008549063ffffffff610c9e16565b6109a6610818565b15156109ea5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611289833981519152604482015290519081900360640190fd5b6000546001600160a01b0382811691161415610a3d5760408051600160e51b62461bcd0281526020600482015260076024820152600160ca1b66085cdd185ad95902604482015290519081900360640190fd5b6004546001600160a01b0382811691161415610a905760408051600160e51b62461bcd0281526020600482015260076024820152600160ca1b66085c995dd85c9902604482015290519081900360640190fd5b60408051600160e01b6370a0823102815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d6020811015610b0757600080fd5b505190506107296001600160a01b038316338363ffffffff610d5816565b60085481565b610b3c610b373361072d565b6103f9565b610b4461065b565b565b60055481565b610b54610818565b1515610b985760408051600160e51b62461bcd0281526020600482018190526024820152600080516020611289833981519152604482015290519081900360640190fd5b610ba181610e2e565b50565b6004546001600160a01b031681565b6000610bf583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ed4565b9392505050565b6000821515610c0d575060006103d3565b828202828482811515610c1c57fe5b0414610bf557604051600160e51b62461bcd0281526004018080602001828103825260218152602001806112686021913960400191505060405180910390fd5b6000610bf583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f6e565b600082820183811015610bf55760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600154610d0e908263ffffffff610bb316565b60015533600090815260026020526040902054610d31908263ffffffff610bb316565b336000818152600260205260408120929092559054610ba1916001600160a01b0390911690835b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0316600160e01b63a9059cbb02179052610dad908490610fdb565b505050565b6000818310610dc15781610bf5565b5090919050565b3390565b600154610ddf908263ffffffff610c9e16565b60015533600090815260026020526040902054610e02908263ffffffff610c9e16565b336000818152600260205260408120929092559054610ba1916001600160a01b039091169030846111a8565b6001600160a01b0381161515610e7857604051600160e51b62461bcd0281526004018080602001828103825260268152602001806112426026913960400191505060405180910390fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008184841115610f6657604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f2b578181015183820152602001610f13565b50505050905090810190601f168015610f585780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081831515610fc357604051600160e51b62461bcd02815260040180806020018281038252838181518152602001915080519060200190808383600083811015610f2b578181015183820152602001610f13565b5060008385811515610fd157fe5b0495945050505050565b610fed826001600160a01b0316611205565b15156110435760408051600160e51b62461bcd02815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106110815780518252601f199092019160209182019101611062565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146110e3576040519150601f19603f3d011682016040523d82523d6000602084013e6110e8565b606091505b50915091508115156111445760408051600160e51b62461bcd02815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156111a25780806020019051602081101561116057600080fd5b505115156111a257604051600160e51b62461bcd02815260040180806020018281038252602a8152602001806112a9602a913960400191505060405180910390fd5b50505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b0316600160e01b6323b872dd021790526111a2908590610fdb565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061123957508115155b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a165627a7a7230582094a3194e74ec115a5f6af650c058ccc67223c3cd1e0506c3d0ea1f0ecbf4762e00290000000000000000000000005870700f1272a1adbb87c3140bd770880a95e55d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2