60806040523480156200001157600080fd5b5060405180604001604052806006815260200165446f6767696560d01b81525060405180604001604052806003815260200162444f4760e81b81525081600090816200005e919062000122565b5060016200006d828262000122565b5050600060065550620001ee565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a657607f821691505b602082108103620000c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011d576000816000526020600020601f850160051c81016020861015620000f85750805b601f850160051c820191505b81811015620001195782815560010162000104565b5050505b505050565b81516001600160401b038111156200013e576200013e6200007b565b62000156816200014f845462000091565b84620000cd565b602080601f8311600181146200018e5760008415620001755750858301515b600019600386901b1c1916600185901b17855562000119565b600085815260208120601f198616915b82811015620001bf578886015182559484019460019091019084016200019e565b5085821015620001de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6113bd80620001fe6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063b88d4fde11610066578063b88d4fde146101e1578063c87b56dd146101f4578063d85d3d2714610207578063e985e9c51461021a57600080fd5b806370a08231146101a557806395d89b41146101c6578063a22cb465146101ce57600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f5780636352211e1461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610df8565b61022d565b60405190151581526020015b60405180910390f35b61011f61027f565b60405161010e9190610e62565b61013f61013a366004610e75565b610311565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610eaa565b6103ab565b005b61016a61017a366004610ed4565b6104c0565b61016a61018d366004610ed4565b6104f1565b61013f6101a0366004610e75565b61050c565b6101b86101b3366004610f10565b610583565b60405190815260200161010e565b61011f61060a565b61016a6101dc366004610f2b565b610619565b61016a6101ef366004610ff3565b610628565b61011f610202366004610e75565b610660565b61016a61021536600461106f565b610702565b6101026102283660046110b8565b610742565b60006001600160e01b031982166380ac58cd60e01b148061025e57506001600160e01b03198216635b5e139f60e01b145b8061027957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461028e906110eb565b80601f01602080910402602001604051908101604052809291908181526020018280546102ba906110eb565b80156103075780601f106102dc57610100808354040283529160200191610307565b820191906000526020600020905b8154815290600101906020018083116102ea57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661038f5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006103b68261050c565b9050806001600160a01b0316836001600160a01b0316036104235760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610386565b336001600160a01b038216148061043f575061043f8133610742565b6104b15760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610386565b6104bb8383610770565b505050565b6104ca33826107de565b6104e65760405162461bcd60e51b815260040161038690611125565b6104bb8383836108b5565b6104bb83838360405180602001604052806000815250610628565b6000818152600260205260408120546001600160a01b0316806102795760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610386565b60006001600160a01b0382166105ee5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610386565b506001600160a01b031660009081526003602052604090205490565b60606001805461028e906110eb565b610624338383610a51565b5050565b61063233836107de565b61064e5760405162461bcd60e51b815260040161038690611125565b61065a84848484610b1f565b50505050565b600081815260076020526040902080546060919061067d906110eb565b80601f01602080910402602001604051908101604052809291908181526020018280546106a9906110eb565b80156106f65780601f106106cb576101008083540402835291602001916106f6565b820191906000526020600020905b8154815290600101906020018083116106d957829003601f168201915b50505050509050919050565b600654600090815260076020526040902061071d82826111c6565b506006805490600061072e8361129c565b919050555061073f33600654610b52565b50565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906107a58261050c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166108575760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610386565b60006108628361050c565b9050806001600160a01b0316846001600160a01b0316148061089d5750836001600160a01b031661089284610311565b6001600160a01b0316145b806108ad57506108ad8185610742565b949350505050565b826001600160a01b03166108c88261050c565b6001600160a01b03161461092c5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610386565b6001600160a01b03821661098e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610386565b610999600082610770565b6001600160a01b03831660009081526003602052604081208054600192906109c29084906112b5565b90915550506001600160a01b03821660009081526003602052604081208054600192906109f09084906112c8565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603610ab25760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610386565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610b2a8484846108b5565b610b3684848484610b6c565b61065a5760405162461bcd60e51b8152600401610386906112db565b610624828260405180602001604052806000815250610c6d565b60006001600160a01b0384163b15610c6257604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610bb090339089908890889060040161132d565b6020604051808303816000875af1925050508015610beb575060408051601f3d908101601f19168201909252610be89181019061136a565b60015b610c48573d808015610c19576040519150601f19603f3d011682016040523d82523d6000602084013e610c1e565b606091505b508051600003610c405760405162461bcd60e51b8152600401610386906112db565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506108ad565b506001949350505050565b610c778383610ca0565b610c846000848484610b6c565b6104bb5760405162461bcd60e51b8152600401610386906112db565b6001600160a01b038216610cf65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610386565b6000818152600260205260409020546001600160a01b031615610d5b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610386565b6001600160a01b0382166000908152600360205260408120805460019290610d849084906112c8565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b03198116811461073f57600080fd5b600060208284031215610e0a57600080fd5b8135610e1581610de2565b9392505050565b6000815180845260005b81811015610e4257602081850181015186830182015201610e26565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610e156020830184610e1c565b600060208284031215610e8757600080fd5b5035919050565b80356001600160a01b0381168114610ea557600080fd5b919050565b60008060408385031215610ebd57600080fd5b610ec683610e8e565b946020939093013593505050565b600080600060608486031215610ee957600080fd5b610ef284610e8e565b9250610f0060208501610e8e565b9150604084013590509250925092565b600060208284031215610f2257600080fd5b610e1582610e8e565b60008060408385031215610f3e57600080fd5b610f4783610e8e565b915060208301358015158114610f5c57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610f9857610f98610f67565b604051601f8501601f19908116603f01168101908282118183101715610fc057610fc0610f67565b81604052809350858152868686011115610fd957600080fd5b858560208301376000602087830101525050509392505050565b6000806000806080858703121561100957600080fd5b61101285610e8e565b935061102060208601610e8e565b925060408501359150606085013567ffffffffffffffff81111561104357600080fd5b8501601f8101871361105457600080fd5b61106387823560208401610f7d565b91505092959194509250565b60006020828403121561108157600080fd5b813567ffffffffffffffff81111561109857600080fd5b8201601f810184136110a957600080fd5b6108ad84823560208401610f7d565b600080604083850312156110cb57600080fd5b6110d483610e8e565b91506110e260208401610e8e565b90509250929050565b600181811c908216806110ff57607f821691505b60208210810361111f57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b601f8211156104bb576000816000526020600020601f850160051c8101602086101561119f5750805b601f850160051c820191505b818110156111be578281556001016111ab565b505050505050565b815167ffffffffffffffff8111156111e0576111e0610f67565b6111f4816111ee84546110eb565b84611176565b602080601f83116001811461122957600084156112115750858301515b600019600386901b1c1916600185901b1785556111be565b600085815260208120601f198616915b8281101561125857888601518255948401946001909101908401611239565b50858210156112765787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b6000600182016112ae576112ae611286565b5060010190565b8181038181111561027957610279611286565b8082018082111561027957610279611286565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061136090830184610e1c565b9695505050505050565b60006020828403121561137c57600080fd5b8151610e1581610de256fea26469706673582212201525a115832a392cf6fc81a6c1666ee51fe037ba2d6d71863b80f85d19c9a44664736f6c63430008160033