0x6080604052600436106102465760003560e01c806364dd48f51161013957806398dca210116100b6578063c3cda5201161007a578063c3cda520146108b7578063dd62ed3e1461090b578063e7a324dc14610946578063ec342ad01461095b578063f1127ed814610970578063fa8f34551461071657610246565b806398dca21014610716578063a457c2d7146103c9578063a9059cbb146103c9578063b4b5ea5714610530578063b6fa8576146108a257610246565b8063782d6fe1116100fd578063782d6fe1146107d45780637af548c11461080d5780637ecebe001461084557806395d89b411461087857806397d63f931461088d57610246565b806364dd48f51461075e5780636fc6407c146107735780636fcfff451461078857806370a082311461053057806373f03dff1461071657610246565b8063313ce567116101c75780634bda2e201161018b5780634bda2e2014610614578063555bcc401461062b578063587cde1e146106f35780635c19a95c146107165780635c60da1b1461074957610246565b8063313ce5671461050557806339509351146103c95780633af9e6691461053057806340c10f19146103c95780634487152f1461056357610246565b806312d43a511161020e57806312d43a511461046e57806318160ddd1461048357806320606b701461049857806323b872dd146104ad57806325240810146104f057610246565b806306fdde031461028e5780630933c1ed14610318578063095ea7b3146103c957806311d3e6c41461041657806311fd8a831461043d575b34156102835760405162461bcd60e51b81526004018080602001828103825260348152602001806112b96034913960400191505060405180910390fd5b61028b6109cf565b50005b34801561029a57600080fd5b506102a3610a57565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102dd5781810151838201526020016102c5565b50505050905090810190601f16801561030a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032457600080fd5b506102a36004803603602081101561033b57600080fd5b810190602081018135600160201b81111561035557600080fd5b82018360208201111561036757600080fd5b803590602001918460018302840111600160201b8311171561038857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ae4945050505050565b3480156103d557600080fd5b50610402600480360360408110156103ec57600080fd5b506001600160a01b038135169060200135610b03565b604080519115158252519081900360200190f35b34801561042257600080fd5b5061042b610b14565b60408051918252519081900360200190f35b34801561044957600080fd5b50610452610b22565b604080516001600160a01b039092168252519081900360200190f35b34801561047a57600080fd5b50610452610b31565b34801561048f57600080fd5b5061042b610b45565b3480156104a457600080fd5b5061042b610b4b565b3480156104b957600080fd5b50610402600480360360608110156104d057600080fd5b506001600160a01b03813581169160208101359091169060400135610b66565b3480156104fc57600080fd5b50610452610b78565b34801561051157600080fd5b5061051a610b87565b6040805160ff9092168252519081900360200190f35b34801561053c57600080fd5b5061042b6004803603602081101561055357600080fd5b50356001600160a01b0316610b90565b34801561056f57600080fd5b506102a36004803603602081101561058657600080fd5b810190602081018135600160201b8111156105a057600080fd5b8201836020820111156105b257600080fd5b803590602001918460018302840111600160201b831117156105d357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ba0945050505050565b34801561062057600080fd5b50610629610dbf565b005b34801561063757600080fd5b506106296004803603606081101561064e57600080fd5b6001600160a01b03823516916020810135151591810190606081016040820135600160201b81111561067f57600080fd5b82018360208201111561069157600080fd5b803590602001918460018302840111600160201b831117156106b257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610dca945050505050565b3480156106ff57600080fd5b506104526004803603602081101561055357600080fd5b34801561072257600080fd5b506106296004803603602081101561073957600080fd5b50356001600160a01b0316610f6d565b34801561075557600080fd5b50610452610f79565b34801561076a57600080fd5b5061042b610f88565b34801561077f57600080fd5b50610452610f96565b34801561079457600080fd5b506107bb600480360360208110156107ab57600080fd5b50356001600160a01b0316610fa5565b6040805163ffffffff9092168252519081900360200190f35b3480156107e057600080fd5b5061042b600480360360408110156107f757600080fd5b506001600160a01b038135169060200135610fbd565b34801561081957600080fd5b5061042b6004803603606081101561083057600080fd5b50803590602081013590604001351515610b66565b34801561085157600080fd5b5061042b6004803603602081101561086857600080fd5b50356001600160a01b0316610fc7565b34801561088457600080fd5b506102a3610fd9565b34801561089957600080fd5b5061042b611031565b3480156108ae57600080fd5b5061042b611037565b3480156108c357600080fd5b50610629600480360360c08110156108da57600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a0013561103d565b34801561091757600080fd5b5061042b6004803603604081101561092e57600080fd5b506001600160a01b0381358116916020013516610fbd565b34801561095257600080fd5b5061042b61104e565b34801561096757600080fd5b5061042b611069565b34801561097c57600080fd5b506109af6004803603604081101561099357600080fd5b5080356001600160a01b0316906020013563ffffffff16611075565b6040805163ffffffff909316835260208301919091528051918290030190f35b6010546040516060916000916001600160a01b0390911690829036908083838082843760405192019450600093509091505080830381855af49150503d8060008114610a37576040519150601f19603f3d011682016040523d82523d6000602084013e610a3c565b606091505b505090506040513d6000823e818015610a53573d82f35b3d82fd5b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610adc5780601f10610ab157610100808354040283529160200191610adc565b820191906000526020600020905b815481529060010190602001808311610abf57829003601f168201915b505050505081565b601054606090610afd906001600160a01b0316836110a2565b92915050565b6000610b0d6109cf565b5092915050565b6000610b1e611164565b5090565b6005546001600160a01b031681565b60035461010090046001600160a01b031681565b60075481565b6040518060436112ed82396043019050604051809103902081565b6000610b706109cf565b509392505050565b6004546001600160a01b031681565b60035460ff1681565b6000610b9a611164565b50919050565b606060006060306001600160a01b0316846040516024018080602001828103825283818151815260200191508051906020019080838360005b83811015610bf1578181015183820152602001610bd9565b50505050905090810190601f168015610c1e5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b0316630933c1ed60e01b178152905182519295509350839250908083835b60208310610c795780518252601f199092019160209182019101610c5a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610cd9576040519150601f19603f3d011682016040523d82523d6000602084013e610cde565b606091505b50915091506000821415610cf3573d60208201fd5b808060200190516020811015610d0857600080fd5b8101908080516040519392919084600160201b821115610d2757600080fd5b908301906020820185811115610d3c57600080fd5b8251600160201b811182820188101715610d5557600080fd5b82525081516020918201929091019080838360005b83811015610d82578181015183820152602001610d6a565b50505050905090810190601f168015610daf5780820380516001836020036101000a031916815260200191505b5060405250505092505050919050565b610dc76109cf565b50565b60035461010090046001600160a01b03163314610e185760405162461bcd60e51b81526004018080602001828103825260348152602001806112856034913960400191505060405180910390fd5b8115610e52576040805160048152602481019091526020810180516001600160e01b031663153ab50560e01b179052610e5090610ae4565b505b601080546001600160a01b038581166001600160a01b03198316179092556040516020602482018181528551604484015285519490931693610f1e938693909283926064909201919085019080838360005b83811015610ebc578181015183820152602001610ea4565b50505050905090810190601f168015610ee95780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b0316630adccee560e31b1790529250610ae4915050565b50601054604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a150505050565b610f756109cf565b5050565b6010546001600160a01b031681565b69d3c21bcecceda100000081565b6006546001600160a01b031681565b600e6020526000908152604090205463ffffffff1681565b6000610b0d611164565b600f6020526000908152604090205481565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610adc5780601f10610ab157610100808354040283529160200191610adc565b600b5481565b60085481565b6110456109cf565b50505050505050565b60405180603a6113308239603a019050604051809103902081565b670de0b6b3a764000081565b600d6020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b606060006060846001600160a01b0316846040518082805190602001908083835b602083106110e25780518252601f1990920191602091820191016110c3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114611142576040519150601f19603f3d011682016040523d82523d6000602084013e611147565b606091505b5091509150600082141561115c573d60208201fd5b949350505050565b60606000306001600160a01b03166000366040516024018080602001828103825284848281815260200192508082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b0316630933c1ed60e01b17815292518151919750955085945091925081905083835b602083106112055780518252601f1990920191602091820191016111e6565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114611265576040519150601f19603f3d011682016040523d82523d6000602084013e61126a565b606091505b505090506040513d6000823e818015610a53573d60408301f3fe59414d44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2043616c6c6572206d75737420626520676f7659414d44656c656761746f723a66616c6c6261636b3a2063616e6e6f742073656e642076616c756520746f2066616c6c6261636b454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742944656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e743235362065787069727929a265627a7a72315820ba208db35b2efb4a82aefb63e5081cdea89189c0c3d2ca473c1ff79682e1f70c64736f6c63430005110032
0x60806040523480156200001157600080fd5b5060038054610100600160a81b031916336101008102919091179091556040805160126064820152608481019290925269021e19e0c9bab240000060a483015260a06024830152600e60c48301526d534852494d502e46494e414e434560901b60e483015260e060448301526006610104830152650534852494d560d41b61012480840191909152815180840390910181526101449092019052602081018051636c94522160e01b6001600160e01b0391821617909152620000ea91739468dec2e19240d6e287f27e1d757ae7b9f15f7d916200012816565b5062000122739468dec2e19240d6e287f27e1d757ae7b9f15f7d600060405180602001604052806000815250620001ef60201b60201c565b620003d0565b606060006060846001600160a01b0316846040518082805190602001908083835b602083106200016a5780518252601f19909201916020918201910162000149565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114620001cc576040519150601f19603f3d011682016040523d82523d6000602084013e620001d1565b606091505b50915091506000821415620001e7573d60208201fd5b949350505050565b60035461010090046001600160a01b031633146200023f5760405162461bcd60e51b81526004018080602001828103825260348152602001806200177e6034913960400191505060405180910390fd5b811562000281576040805160048152602481019091526020810180516001600160e01b0390811663153ab50560e01b179091526200027f9190620003a616565b505b601080546001600160a01b038581166001600160a01b0319831617909255604051602060248201818152855160448401528551949093169362000357938693909283926064909201919085019080838360005b83811015620002ee578181015183820152602001620002d4565b50505050905090810190601f1680156200031c5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03908116630adccee560e31b17909152909350620003a616915050565b50601054604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a150505050565b601054606090620003ca906001600160a01b0316836001600160e01b036200012816565b92915050565b61139e80620003e06000396000f3fe6080604052600436106102465760003560e01c806364dd48f51161013957806398dca210116100b6578063c3cda5201161007a578063c3cda520146108b7578063dd62ed3e1461090b578063e7a324dc14610946578063ec342ad01461095b578063f1127ed814610970578063fa8f34551461071657610246565b806398dca21014610716578063a457c2d7146103c9578063a9059cbb146103c9578063b4b5ea5714610530578063b6fa8576146108a257610246565b8063782d6fe1116100fd578063782d6fe1146107d45780637af548c11461080d5780637ecebe001461084557806395d89b411461087857806397d63f931461088d57610246565b806364dd48f51461075e5780636fc6407c146107735780636fcfff451461078857806370a082311461053057806373f03dff1461071657610246565b8063313ce567116101c75780634bda2e201161018b5780634bda2e2014610614578063555bcc401461062b578063587cde1e146106f35780635c19a95c146107165780635c60da1b1461074957610246565b8063313ce5671461050557806339509351146103c95780633af9e6691461053057806340c10f19146103c95780634487152f1461056357610246565b806312d43a511161020e57806312d43a511461046e57806318160ddd1461048357806320606b701461049857806323b872dd146104ad57806325240810146104f057610246565b806306fdde031461028e5780630933c1ed14610318578063095ea7b3146103c957806311d3e6c41461041657806311fd8a831461043d575b34156102835760405162461bcd60e51b81526004018080602001828103825260348152602001806112b96034913960400191505060405180910390fd5b61028b6109cf565b50005b34801561029a57600080fd5b506102a3610a57565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102dd5781810151838201526020016102c5565b50505050905090810190601f16801561030a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032457600080fd5b506102a36004803603602081101561033b57600080fd5b810190602081018135600160201b81111561035557600080fd5b82018360208201111561036757600080fd5b803590602001918460018302840111600160201b8311171561038857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ae4945050505050565b3480156103d557600080fd5b50610402600480360360408110156103ec57600080fd5b506001600160a01b038135169060200135610b03565b604080519115158252519081900360200190f35b34801561042257600080fd5b5061042b610b14565b60408051918252519081900360200190f35b34801561044957600080fd5b50610452610b22565b604080516001600160a01b039092168252519081900360200190f35b34801561047a57600080fd5b50610452610b31565b34801561048f57600080fd5b5061042b610b45565b3480156104a457600080fd5b5061042b610b4b565b3480156104b957600080fd5b50610402600480360360608110156104d057600080fd5b506001600160a01b03813581169160208101359091169060400135610b66565b3480156104fc57600080fd5b50610452610b78565b34801561051157600080fd5b5061051a610b87565b6040805160ff9092168252519081900360200190f35b34801561053c57600080fd5b5061042b6004803603602081101561055357600080fd5b50356001600160a01b0316610b90565b34801561056f57600080fd5b506102a36004803603602081101561058657600080fd5b810190602081018135600160201b8111156105a057600080fd5b8201836020820111156105b257600080fd5b803590602001918460018302840111600160201b831117156105d357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ba0945050505050565b34801561062057600080fd5b50610629610dbf565b005b34801561063757600080fd5b506106296004803603606081101561064e57600080fd5b6001600160a01b03823516916020810135151591810190606081016040820135600160201b81111561067f57600080fd5b82018360208201111561069157600080fd5b803590602001918460018302840111600160201b831117156106b257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610dca945050505050565b3480156106ff57600080fd5b506104526004803603602081101561055357600080fd5b34801561072257600080fd5b506106296004803603602081101561073957600080fd5b50356001600160a01b0316610f6d565b34801561075557600080fd5b50610452610f79565b34801561076a57600080fd5b5061042b610f88565b34801561077f57600080fd5b50610452610f96565b34801561079457600080fd5b506107bb600480360360208110156107ab57600080fd5b50356001600160a01b0316610fa5565b6040805163ffffffff9092168252519081900360200190f35b3480156107e057600080fd5b5061042b600480360360408110156107f757600080fd5b506001600160a01b038135169060200135610fbd565b34801561081957600080fd5b5061042b6004803603606081101561083057600080fd5b50803590602081013590604001351515610b66565b34801561085157600080fd5b5061042b6004803603602081101561086857600080fd5b50356001600160a01b0316610fc7565b34801561088457600080fd5b506102a3610fd9565b34801561089957600080fd5b5061042b611031565b3480156108ae57600080fd5b5061042b611037565b3480156108c357600080fd5b50610629600480360360c08110156108da57600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a0013561103d565b34801561091757600080fd5b5061042b6004803603604081101561092e57600080fd5b506001600160a01b0381358116916020013516610fbd565b34801561095257600080fd5b5061042b61104e565b34801561096757600080fd5b5061042b611069565b34801561097c57600080fd5b506109af6004803603604081101561099357600080fd5b5080356001600160a01b0316906020013563ffffffff16611075565b6040805163ffffffff909316835260208301919091528051918290030190f35b6010546040516060916000916001600160a01b0390911690829036908083838082843760405192019450600093509091505080830381855af49150503d8060008114610a37576040519150601f19603f3d011682016040523d82523d6000602084013e610a3c565b606091505b505090506040513d6000823e818015610a53573d82f35b3d82fd5b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610adc5780601f10610ab157610100808354040283529160200191610adc565b820191906000526020600020905b815481529060010190602001808311610abf57829003601f168201915b505050505081565b601054606090610afd906001600160a01b0316836110a2565b92915050565b6000610b0d6109cf565b5092915050565b6000610b1e611164565b5090565b6005546001600160a01b031681565b60035461010090046001600160a01b031681565b60075481565b6040518060436112ed82396043019050604051809103902081565b6000610b706109cf565b509392505050565b6004546001600160a01b031681565b60035460ff1681565b6000610b9a611164565b50919050565b606060006060306001600160a01b0316846040516024018080602001828103825283818151815260200191508051906020019080838360005b83811015610bf1578181015183820152602001610bd9565b50505050905090810190601f168015610c1e5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b0316630933c1ed60e01b178152905182519295509350839250908083835b60208310610c795780518252601f199092019160209182019101610c5a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610cd9576040519150601f19603f3d011682016040523d82523d6000602084013e610cde565b606091505b50915091506000821415610cf3573d60208201fd5b808060200190516020811015610d0857600080fd5b8101908080516040519392919084600160201b821115610d2757600080fd5b908301906020820185811115610d3c57600080fd5b8251600160201b811182820188101715610d5557600080fd5b82525081516020918201929091019080838360005b83811015610d82578181015183820152602001610d6a565b50505050905090810190601f168015610daf5780820380516001836020036101000a031916815260200191505b5060405250505092505050919050565b610dc76109cf565b50565b60035461010090046001600160a01b03163314610e185760405162461bcd60e51b81526004018080602001828103825260348152602001806112856034913960400191505060405180910390fd5b8115610e52576040805160048152602481019091526020810180516001600160e01b031663153ab50560e01b179052610e5090610ae4565b505b601080546001600160a01b038581166001600160a01b03198316179092556040516020602482018181528551604484015285519490931693610f1e938693909283926064909201919085019080838360005b83811015610ebc578181015183820152602001610ea4565b50505050905090810190601f168015610ee95780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b0316630adccee560e31b1790529250610ae4915050565b50601054604080516001600160a01b038085168252909216602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a150505050565b610f756109cf565b5050565b6010546001600160a01b031681565b69d3c21bcecceda100000081565b6006546001600160a01b031681565b600e6020526000908152604090205463ffffffff1681565b6000610b0d611164565b600f6020526000908152604090205481565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610adc5780601f10610ab157610100808354040283529160200191610adc565b600b5481565b60085481565b6110456109cf565b50505050505050565b60405180603a6113308239603a019050604051809103902081565b670de0b6b3a764000081565b600d6020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b606060006060846001600160a01b0316846040518082805190602001908083835b602083106110e25780518252601f1990920191602091820191016110c3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114611142576040519150601f19603f3d011682016040523d82523d6000602084013e611147565b606091505b5091509150600082141561115c573d60208201fd5b949350505050565b60606000306001600160a01b03166000366040516024018080602001828103825284848281815260200192508082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b0316630933c1ed60e01b17815292518151919750955085945091925081905083835b602083106112055780518252601f1990920191602091820191016111e6565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114611265576040519150601f19603f3d011682016040523d82523d6000602084013e61126a565b606091505b505090506040513d6000823e818015610a53573d60408301f3fe59414d44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2043616c6c6572206d75737420626520676f7659414d44656c656761746f723a66616c6c6261636b3a2063616e6e6f742073656e642076616c756520746f2066616c6c6261636b454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742944656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e743235362065787069727929a265627a7a72315820ba208db35b2efb4a82aefb63e5081cdea89189c0c3d2ca473c1ff79682e1f70c64736f6c6343000511003259414d44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2043616c6c6572206d75737420626520676f76