merged from trunk
merged from trunk
merged from trunk
merged from trunk
merged from trunk
merged from trunk
merged from trunk
merged from trunk
merged from trunk
merged from trunk