0x608060405234801561001057600080fd5b50600436106101005760003560e01c80635c19a95c1161009757806395d89b411161006657806395d89b4114610383578063a9059cbb1461038b578063b4b5ea57146103b7578063dd62ed3e146103dd57610100565b80635c19a95c146102e35780636fcfff451461030b57806370a0823114610331578063782d6fe11461035757610100565b806323b872dd116100d357806323b872dd14610208578063313ce5671461023e57806347f761f51461025c578063587cde1e146102a157610100565b806306fdde0314610105578063095ea7b3146101825780630cdfebfa146101c257806318160ddd14610200575b600080fd5b61010d61040b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b03813516906020013561042b565b604080519115158252519081900360200190f35b6101ee600480360360408110156101d857600080fd5b506001600160a01b0381351690602001356104d8565b60408051918252519081900360200190f35b6101ee6104f5565b6101ae6004803603606081101561021e57600080fd5b506001600160a01b03813581169160208101359091169060400135610504565b6102466105e8565b6040805160ff9092168252519081900360200190f35b6102886004803603604081101561027257600080fd5b506001600160a01b0381351690602001356105ed565b6040805192835260208301919091528051918290030190f35b6102c7600480360360208110156102b757600080fd5b50356001600160a01b0316610628565b604080516001600160a01b039092168252519081900360200190f35b610309600480360360208110156102f957600080fd5b50356001600160a01b0316610643565b005b6101ee6004803603602081101561032157600080fd5b50356001600160a01b0316610650565b6101ee6004803603602081101561034757600080fd5b50356001600160a01b0316610662565b6101ee6004803603604081101561036d57600080fd5b506001600160a01b03813516906020013561067d565b61010d610832565b6101ae600480360360408110156103a157600080fd5b506001600160a01b038135169060200135610851565b6101ee600480360360208110156103cd57600080fd5b50356001600160a01b0316610867565b6101ee600480360360408110156103f357600080fd5b506001600160a01b03813581169160200135166108be565b60405180604001604052806004815260200163526f736560e01b81525081565b60006001600160a01b0383166104725760405162461bcd60e51b8152600401808060200182810382526022815260200180610ed76022913960400191505060405180910390fd5b336000818152602081815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600360209081526000928352604080842090915290825290205481565b6a108b2a2c2802909400000081565b6001600160a01b0383166000818152602081815260408083203380855292528220549192909190821480159061053c57506000198114155b156105d157600061056e856040518060600160405280603d8152602001610ef9603d913984919063ffffffff6108e716565b6001600160a01b038089166000818152602081815260408083209489168084529482529182902085905581518581529151949550929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592918290030190a3505b6105dc86868661097e565b50600195945050505050565b601281565b6001600160a01b0382166000908152600360209081526040808320848452909152812054819061061c81610b45565b90969095509350505050565b6002602052600090815260409020546001600160a01b031681565b61064d3382610b5a565b50565b60046020526000908152604090205481565b6001600160a01b031660009081526001602052604090205490565b60004382106106bd5760405162461bcd60e51b815260040180806020018281038252602781526020018061100a6027913960400191505060405180910390fd5b6001600160a01b038316600090815260046020526040902054806106e55760009150506104d2565b6001600160a01b038416600090815260036020908152604080832060001985018452909152812054819061071890610b45565b9150915084821161072d5792506104d2915050565b6001600160a01b038616600090815260036020908152604080832083805290915281205461075a90610b45565b509050858111156107725760009450505050506104d2565b600060001985015b818111156107f6576001600160a01b0389166000908152600360209081526040808320600286860304850380855292528220549091806107b983610b45565b915091508b8214156107d65799506104d298505050505050505050565b8b8210156107e6578395506107ed565b6001840394505b5050505061077a565b6001600160a01b038916600090815260036020908152604080832085845290915281205461082390610b45565b9b9a5050505050505050505050565b60405180604001604052806003815260200162526f7360e81b81525081565b600061085e33848461097e565b50600192915050565b6001600160a01b038116600090815260046020908152604080832054600383528184206000198201855290925282205482906108a290610b45565b915050600082116108b45760006108b6565b805b949350505050565b6001600160a01b0391821660009081526020818152604080832093909416825291909152205490565b600081848411156109765760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561093b578181015183820152602001610923565b50505050905090810190601f1680156109685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166109c35760405162461bcd60e51b815260040180806020018281038252603c815260200180610fce603c913960400191505060405180910390fd5b6001600160a01b038216610a085760405162461bcd60e51b815260040180806020018281038252603a815260200180610f36603a913960400191505060405180910390fd5b610a4b81604051806060016040528060368152602001610f98603691396001600160a01b038616600090815260016020526040902054919063ffffffff6108e716565b60016000856001600160a01b03166001600160a01b0316815260200190815260200160002081905550610ab781604051806060016040528060308152602001611031603091396001600160a01b038516600090815260016020526040902054919063ffffffff610bee16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a36001600160a01b03808416600090815260026020526040808220548584168352912054610b4092918216911683610c4c565b505050565b67ffffffffffffffff81169160409190911c90565b6001600160a01b03808316600081815260026020818152604080842080546001845294829020549383528787166001600160a01b0319861681179091558151958652939095169084018190528385019290925292519092917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f919081900360600190a1610be8828483610c4c565b50505050565b60008383018285821015610c435760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561093b578181015183820152602001610923565b50949350505050565b816001600160a01b0316836001600160a01b031614158015610c6e5750600081115b15610b40576001600160a01b03831615610d15576001600160a01b0383166000908152600460209081526040808320546003835281842060001982018552909252822054909190610cbe90610b45565b9150506000808311610cd1576000610cd3565b815b90506000610d0285604051806060016040528060288152602001610f706028913984919063ffffffff6108e716565b9050610d1087858484610dbb565b505050505b6001600160a01b03821615610b40576001600160a01b0382166000908152600460209081526040808320546003835281842060001982018552909252822054909190610d6090610b45565b9150506000808311610d73576000610d75565b815b90506000610da4856040518060600160405280602781526020016110616027913984919063ffffffff610bee16565b9050610db286858484610dbb565b50505050505050565b6001600160a01b038416600090815260036020908152604080832060001987018452909152812054439190610def90610b45565b509050600085118015610e0157508181145b15610e3d57610e108184610ecf565b6001600160a01b03871660009081526003602090815260408083206000198a018452909152902055610e7e565b610e478284610ecf565b6001600160a01b03871660008181526003602090815260408083208a84528252808320949094559181526004909152206001860190555b604080516001600160a01b03881681526020810186905280820185905290517fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249181900360600190a1505050505050565b60401b179056fe45524332303a20617070726f766520746f20746865207a65726f2061646472657373526f73653a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365526f73653a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373526f73653a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773526f73653a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365526f73653a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f2061646472657373526f73653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564526f73653a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773526f73653a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773a265627a7a723158207cb7bd1636522be10184124fca8b3a5be6d33bf8f9f1de416690a4dc2fe7495064736f6c63430005110032
0x608060405234801561001057600080fd5b5060405161115e38038061115e8339818101604052602081101561003357600080fd5b50516001600160a01b03811660008181526001602090815260408083206a108b2a2c2802909400000090819055815190815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3506110bc806100a26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80635c19a95c1161009757806395d89b411161006657806395d89b4114610383578063a9059cbb1461038b578063b4b5ea57146103b7578063dd62ed3e146103dd57610100565b80635c19a95c146102e35780636fcfff451461030b57806370a0823114610331578063782d6fe11461035757610100565b806323b872dd116100d357806323b872dd14610208578063313ce5671461023e57806347f761f51461025c578063587cde1e146102a157610100565b806306fdde0314610105578063095ea7b3146101825780630cdfebfa146101c257806318160ddd14610200575b600080fd5b61010d61040b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b03813516906020013561042b565b604080519115158252519081900360200190f35b6101ee600480360360408110156101d857600080fd5b506001600160a01b0381351690602001356104d8565b60408051918252519081900360200190f35b6101ee6104f5565b6101ae6004803603606081101561021e57600080fd5b506001600160a01b03813581169160208101359091169060400135610504565b6102466105e8565b6040805160ff9092168252519081900360200190f35b6102886004803603604081101561027257600080fd5b506001600160a01b0381351690602001356105ed565b6040805192835260208301919091528051918290030190f35b6102c7600480360360208110156102b757600080fd5b50356001600160a01b0316610628565b604080516001600160a01b039092168252519081900360200190f35b610309600480360360208110156102f957600080fd5b50356001600160a01b0316610643565b005b6101ee6004803603602081101561032157600080fd5b50356001600160a01b0316610650565b6101ee6004803603602081101561034757600080fd5b50356001600160a01b0316610662565b6101ee6004803603604081101561036d57600080fd5b506001600160a01b03813516906020013561067d565b61010d610832565b6101ae600480360360408110156103a157600080fd5b506001600160a01b038135169060200135610851565b6101ee600480360360208110156103cd57600080fd5b50356001600160a01b0316610867565b6101ee600480360360408110156103f357600080fd5b506001600160a01b03813581169160200135166108be565b60405180604001604052806004815260200163526f736560e01b81525081565b60006001600160a01b0383166104725760405162461bcd60e51b8152600401808060200182810382526022815260200180610ed76022913960400191505060405180910390fd5b336000818152602081815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600360209081526000928352604080842090915290825290205481565b6a108b2a2c2802909400000081565b6001600160a01b0383166000818152602081815260408083203380855292528220549192909190821480159061053c57506000198114155b156105d157600061056e856040518060600160405280603d8152602001610ef9603d913984919063ffffffff6108e716565b6001600160a01b038089166000818152602081815260408083209489168084529482529182902085905581518581529151949550929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592918290030190a3505b6105dc86868661097e565b50600195945050505050565b601281565b6001600160a01b0382166000908152600360209081526040808320848452909152812054819061061c81610b45565b90969095509350505050565b6002602052600090815260409020546001600160a01b031681565b61064d3382610b5a565b50565b60046020526000908152604090205481565b6001600160a01b031660009081526001602052604090205490565b60004382106106bd5760405162461bcd60e51b815260040180806020018281038252602781526020018061100a6027913960400191505060405180910390fd5b6001600160a01b038316600090815260046020526040902054806106e55760009150506104d2565b6001600160a01b038416600090815260036020908152604080832060001985018452909152812054819061071890610b45565b9150915084821161072d5792506104d2915050565b6001600160a01b038616600090815260036020908152604080832083805290915281205461075a90610b45565b509050858111156107725760009450505050506104d2565b600060001985015b818111156107f6576001600160a01b0389166000908152600360209081526040808320600286860304850380855292528220549091806107b983610b45565b915091508b8214156107d65799506104d298505050505050505050565b8b8210156107e6578395506107ed565b6001840394505b5050505061077a565b6001600160a01b038916600090815260036020908152604080832085845290915281205461082390610b45565b9b9a5050505050505050505050565b60405180604001604052806003815260200162526f7360e81b81525081565b600061085e33848461097e565b50600192915050565b6001600160a01b038116600090815260046020908152604080832054600383528184206000198201855290925282205482906108a290610b45565b915050600082116108b45760006108b6565b805b949350505050565b6001600160a01b0391821660009081526020818152604080832093909416825291909152205490565b600081848411156109765760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561093b578181015183820152602001610923565b50505050905090810190601f1680156109685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166109c35760405162461bcd60e51b815260040180806020018281038252603c815260200180610fce603c913960400191505060405180910390fd5b6001600160a01b038216610a085760405162461bcd60e51b815260040180806020018281038252603a815260200180610f36603a913960400191505060405180910390fd5b610a4b81604051806060016040528060368152602001610f98603691396001600160a01b038616600090815260016020526040902054919063ffffffff6108e716565b60016000856001600160a01b03166001600160a01b0316815260200190815260200160002081905550610ab781604051806060016040528060308152602001611031603091396001600160a01b038516600090815260016020526040902054919063ffffffff610bee16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a36001600160a01b03808416600090815260026020526040808220548584168352912054610b4092918216911683610c4c565b505050565b67ffffffffffffffff81169160409190911c90565b6001600160a01b03808316600081815260026020818152604080842080546001845294829020549383528787166001600160a01b0319861681179091558151958652939095169084018190528385019290925292519092917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f919081900360600190a1610be8828483610c4c565b50505050565b60008383018285821015610c435760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561093b578181015183820152602001610923565b50949350505050565b816001600160a01b0316836001600160a01b031614158015610c6e5750600081115b15610b40576001600160a01b03831615610d15576001600160a01b0383166000908152600460209081526040808320546003835281842060001982018552909252822054909190610cbe90610b45565b9150506000808311610cd1576000610cd3565b815b90506000610d0285604051806060016040528060288152602001610f706028913984919063ffffffff6108e716565b9050610d1087858484610dbb565b505050505b6001600160a01b03821615610b40576001600160a01b0382166000908152600460209081526040808320546003835281842060001982018552909252822054909190610d6090610b45565b9150506000808311610d73576000610d75565b815b90506000610da4856040518060600160405280602781526020016110616027913984919063ffffffff610bee16565b9050610db286858484610dbb565b50505050505050565b6001600160a01b038416600090815260036020908152604080832060001987018452909152812054439190610def90610b45565b509050600085118015610e0157508181145b15610e3d57610e108184610ecf565b6001600160a01b03871660009081526003602090815260408083206000198a018452909152902055610e7e565b610e478284610ecf565b6001600160a01b03871660008181526003602090815260408083208a84528252808320949094559181526004909152206001860190555b604080516001600160a01b03881681526020810186905280820185905290517fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249181900360600190a1505050505050565b60401b179056fe45524332303a20617070726f766520746f20746865207a65726f2061646472657373526f73653a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365526f73653a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657220746f20746865207a65726f2061646472657373526f73653a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773526f73653a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365526f73653a3a5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f2061646472657373526f73653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564526f73653a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773526f73653a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773a265627a7a723158207cb7bd1636522be10184124fca8b3a5be6d33bf8f9f1de416690a4dc2fe7495064736f6c63430005110032000000000000000000000000379b19e410a7d635d112aebfab21254d9fbbdf36